Hadoop-Inline-ClassLoader

 view release on metacpan or  search on metacpan

lib/Hadoop/Inline/ClassLoader.pm  view on Meta::CPAN

}

sub _map_java_imports_to_short_names {
    my $class = shift;
    # Give somewhat meaningful names to the imported Java classes

    state $package_delimiter = PACKAGE_DELIMITER;

    my $base_ns = 'org::apache::hadoop::';
    my $filter  = do {
        my @rv = split m{ $package_delimiter }xms, $base_ns;
        pop @rv;
        join PACKAGE_DELIMITER, @rv;
    };

    my @ns = $class->_namespace_probe( $base_ns );
    shift @ns;

    @ns = grep { m{ $package_delimiter \z }xms } @ns;

    no strict qw( refs );
    foreach my $class ( @ns ) {
        (my $short_name = $class) =~ s{
            \Q$filter\E
            $package_delimiter
        }{}xms;
        $short_name = join  PACKAGE_DELIMITER,
                            map { ucfirst $_ } split m{ $package_delimiter }xms,
                            $short_name
        ;
        # import() was called multiple times?
        next if %{ $short_name . PACKAGE_DELIMITER };

        printf STDERR 'Mapping %s => %s', $short_name, $class if DEBUG;

        *{ $short_name . PACKAGE_DELIMITER } = \*{ $class };
    }



( run in 2.918 seconds using v1.01-cache-2.11-cpan-71847e10f99 )