This is an automated email from the git hooks/post-receive script.

js pushed a commit to tag 0.55
in repository libinline-java-perl.

commit b41f94882d688c596a86c3dee0909d2a7d494dab
Author: Patrick LeBoutillier <p...@cpan.org>
Date:   Fri Dec 7 18:59:17 2001 +0000

    *** empty log message ***
---
 Java.pm              | 112 ++++++++++++++-------------------------------------
 TODO                 |   3 +-
 t/07_polymorph.t     |  14 ++++++-
 t/12_exceptions.t    |   4 +-
 t/shared_jvm_test.pl |  17 ++++----
 5 files changed, 57 insertions(+), 93 deletions(-)

diff --git a/Java.pm b/Java.pm
index 6d69aaa..1cb0b68 100644
--- a/Java.pm
+++ b/Java.pm
@@ -34,6 +34,7 @@ use Inline::Java::Class ;
 use Inline::Java::Object ;
 use Inline::Java::Array ;
 use Inline::Java::Protocol ;
+use Inline::Java::Callback ;
 # Must be last.
 use Inline::Java::Init ;
 use Inline::Java::JVM ;
@@ -51,10 +52,6 @@ my $JVM = undef ;
 my $INLINES = {} ;
 
 
-# Stores the last uncaught exception
-my $UNCAUGHT_EXCEPTION = undef ;
-
-
 # Here is some code to figure out if we are running on command.com
 # shell under Windows.
 my $COMMAND_COM = 
@@ -202,9 +199,6 @@ sub _validate {
                        }
                        $o->{ILSM}->{$key} = $value ;
                }
-               elsif ($key eq 'REMOTE_HOST'){
-                       $o->{ILSM}->{$key} = $value ;
-               }
                elsif ($key eq 'SHARED_JVM'){
                        $o->{ILSM}->{$key} = $value ;
                }
@@ -245,12 +239,6 @@ sub _validate {
        if (($o->{ILSM}->{JNI})&&($o->{ILSM}->{SHARED_JVM})){
                croak("You can't use the 'SHARED_JVM' option in 'JNI' mode") ;
        }
-       if (($o->{ILSM}->{JNI})&&($o->{ILSM}->{REMOTE_HOST})){
-               croak("You can't use the 'REMOTE_HOST' option in 'JNI' mode") ;
-       }
-       if (($o->{ILSM}->{REMOTE_HOST})&&($o->{ILSM}->{SHARED_JVM})){
-               croak("You can't use the 'REMOTE_HOST' option in combination 
with the 'SHARED_JVM' option") ;
-       }
 
        $o->set_java_bin() ;
 
@@ -435,13 +423,18 @@ sub write_java {
        if (! $study_only){
                open(Inline::Java::JAVA, ">$build_dir/$modfname.java") or
                        croak "Can't open $build_dir/$modfname.java: $!" ;
-               Inline::Java::Init::DumpUserJavaCode(\*Inline::Java::JAVA, 
$modfname, $code) ;
+               Inline::Java::Init::DumpUserJavaCode(\*Inline::Java::JAVA, 
$code) ;
                close(Inline::Java::JAVA) ;
        }
 
        open(Inline::Java::JAVA, ">$build_dir/InlineJavaServer.java") or
                croak "Can't open $build_dir/InlineJavaServer.java: $!" ;
-       Inline::Java::Init::DumpServerJavaCode(\*Inline::Java::JAVA, $modfname) 
;
+       Inline::Java::Init::DumpServerJavaCode(\*Inline::Java::JAVA) ;
+       close(Inline::Java::JAVA) ;
+
+       open(Inline::Java::JAVA, ">$build_dir/InlineJavaPerlCaller.java") or
+               croak "Can't open $build_dir/InlineJavaPerlCaller.java: $!" ;
+       Inline::Java::Init::DumpCallbackJavaCode(\*Inline::Java::JAVA) ;
        close(Inline::Java::JAVA) ;
 
        Inline::Java::debug("write_java done.") ;
@@ -684,31 +677,33 @@ sub set_classpath {
        my @cp = split(/$sep/, join($sep, @list)) ;
        my %cp = map { ($_ !~ /^\s*$/ ? ($_, 1) : ()) } @cp ;
 
-       foreach my $k (keys %cp){
-               if ($k =~ /\s*\[PERL_INLINE_JAVA=(.*?)\]\s*/){
-                       my $modules = $1 ;
-                       Inline::Java::debug("   found special CLASSPATH entry: 
$modules") ;
+       my $tmp = join($sep, keys %cp) ;
 
-                       my @modules = split(/\s*,\s*/, $modules) ;
-                       my $sep = portable("PATH_SEP") ;
-                       my $sep_re = portable("PATH_SEP_RE") ;
-                       my $dir = $o->get_config('DIRECTORY') . $sep . "lib" . 
$sep ."auto" ;
+       $tmp =~ s/\s*\[PERL_INLINE_JAVA\s*=\s*(.*?)\s*\]\s*/{
+               my $modules = $1 ;
+               Inline::Java::debug("   found special CLASSPATH entry: 
$modules") ;
+               
+               my @modules = split(m#\s*,\s*#, $modules) ;
+               my $psep = portable("PATH_SEP") ;
+               my $psep_re = portable("PATH_SEP_RE") ;
+               my $dir = $o->get_config('DIRECTORY') . $psep . "lib" . $psep 
."auto" ;
 
-                       foreach my $m (@modules){
-                               $m =~ s/::/$sep_re/g ;
+               my %paths = () ;
+               foreach my $m (@modules){
+                       $m =~ s#::#$psep_re#g ;
 
-                               # Here we must make sure that the directory 
exists, or
-                               # else it is removed from the CLASSPATH by Java
-                               my $path = "$dir$sep$m" ;
-                               $o->mkpath($path) ;
+                       # Here we must make sure that the directory exists, or
+                       # else it is removed from the CLASSPATH by Java
+                       my $path = "$dir$psep$m" ;
+                       $o->mkpath($path) ;
 
-                               $cp{$path} = 1 ;
-                       }
-
-                       delete $cp{$k} ;
+                       $paths{$path} = 1 ;
                }
-       }
-       $ENV{CLASSPATH} = join($sep, keys %cp) ;
+
+               join($sep, keys %paths) ;
+       }/eg ;
+
+       $ENV{CLASSPATH} = $tmp ;
 
        Inline::Java::debug("  classpath: " . $ENV{CLASSPATH}) ;
 }
@@ -755,7 +750,7 @@ sub report {
                my @cl = glob("$pinstall/*.class") ;
                foreach my $class (@cl){
                        $class =~ s/^\Q$pinstall\E\/(.*)\.class$/$1/ ;
-                       if ($class !~ /^InlineJavaServer/){
+                       if ($class !~ /^InlineJava(Server|Perl)/){
                                push @{$classes}, $class ;
                        }
                }
@@ -1358,44 +1353,6 @@ sub study_classes {
 }
 
 
-sub try (&){
-       my $coderef = shift ;
-       eval {
-               $coderef->() ;
-       } ;
-       my $e = $@ ;
-       if ($e){
-               if (! UNIVERSAL::isa($e, "Inline::Java::Object")){
-                       die $e ;
-               }
-
-               $UNCAUGHT_EXCEPTION = $@ ;
-               $@ = undef ;
-       }
-}
-
-
-sub catch ($$){
-       my $class = shift ;
-       my $coderef = shift ;
-
-       $class = Inline::Java::Class::ValidateClass($class) ;
-
-       my $e = $UNCAUGHT_EXCEPTION ;
-       if ($e){
-               if (UNIVERSAL::isa($e, "Inline::Java::Object")){
-                       my ($msg, $score) = $e->__isa($class) ;
-                       if ($msg){
-                               croak $msg ;
-                       }
-                       $coderef->($e) ;
-                       # clear $@ for other blocks that follow
-                       $UNCAUGHT_EXCEPTION = undef ;
-               }
-       }
-}
-
-
 sub caught {
        my $class = shift ;
 
@@ -1417,13 +1374,6 @@ sub caught {
 }
 
 
-sub with (&){
-       my $coderef = shift ;
-
-       return $coderef ;
-}
-
-
 1 ;
 
 __END__
diff --git a/TODO b/TODO
index 92538db..eb58166 100644
--- a/TODO
+++ b/TODO
@@ -1,6 +1,5 @@
 CODE:
-- Localize filehandles
-
+- Callbacks
 
 TEST:
 - Add test script for configuration options (other than BIN)
diff --git a/t/07_polymorph.t b/t/07_polymorph.t
index 00c2d6d..c306f59 100644
--- a/t/07_polymorph.t
+++ b/t/07_polymorph.t
@@ -12,7 +12,7 @@ use Inline::Java qw(cast) ;
 
 
 BEGIN {
-       plan(tests => 17) ;
+       plan(tests => 18) ;
 }
 
 
@@ -43,6 +43,10 @@ my $t = new types7() ;
        ok($t1->f($t2), "t1") ;
        ok($t2->f($t1), "t2") ;
        ok($t2->f(cast("t17", $t2)), "t2") ;
+
+       # Interfaces
+       my $al = $t1->get_al() ;
+       ok(0, $t1->count($al)) ;
 }
 
 ok($t->__get_private()->{proto}->ObjectCount(), 1) ;
@@ -62,6 +66,14 @@ class t17 {
        public String f(t27 o){
                return "t1" ;
        }
+
+       public ArrayList get_al(){
+               return new ArrayList() ;
+       }
+
+       public int count(Collection c){
+               return c.size() ;
+       }
 }
 
 
diff --git a/t/12_exceptions.t b/t/12_exceptions.t
index f5d4bd8..774e96a 100644
--- a/t/12_exceptions.t
+++ b/t/12_exceptions.t
@@ -24,10 +24,10 @@ my $t = new t9(0) ;
                $t->f() ;
        } ;
        if ($@){
-               if (Inline::Java::caught("java.io.IOException")){
+               if (caught("java.io.IOException")){
                        $msg = $@->getMessage() . "io" ;
                }
-               elsif (Inline::Java::caught("java.lang.Exception")){
+               elsif (caught("java.lang.Exception")){
                        $msg = $@->getMessage() ;
                }
                else {
diff --git a/t/shared_jvm_test.pl b/t/shared_jvm_test.pl
index 9124ed0..d4f5b07 100644
--- a/t/shared_jvm_test.pl
+++ b/t/shared_jvm_test.pl
@@ -1,3 +1,5 @@
+package shared_jvm_test ;
+
 use strict ;
 
 use blib ;
@@ -12,20 +14,21 @@ use Inline Config =>
            DIRECTORY => './_Inline_test' ;
 
 
-use Inline(
+use Inline (
        Java => 'DATA',
+       NAME => "shared_jvm_test",
        SHARED_JVM => 1,
 ) ;
 
 
-$t::i = 0 ;
+$shared_jvm_test::t::i = 0 ;
 
 my $nb = 10 ;
 my $sum = (($nb) * ($nb + 1)) / 2 ;
 for (my $i = 0 ; $i < $nb ; $i++){
        if (! fork()){
                print STDERR "." ;
-               do_child($i) ;
+               shared_jvm_test::do_child($i) ;
        }
 }
 
@@ -37,7 +40,7 @@ for (my $i = 0 ; $i < 5 ; $i++){
 }
 print STDERR "\n" ;
 
-if ($t::i == $sum){
+if ($shared_jvm_test::t::i == $sum){
        print STDERR "Test succeeded\n" ;
 }
 else{
@@ -50,7 +53,7 @@ sub do_child {
 
        Inline::Java::reconnect_JVM() ;
 
-       my $t = new t() ;
+       my $t = new shared_jvm_test::t() ;
        my $j = 0 ;
        for ( ; $j <= $i ; $j++){
                $t->incr_i() ;
@@ -59,14 +62,14 @@ sub do_child {
 }
 
 
-__END__
+__DATA__
 
 __Java__
 
 
 import java.util.* ;
 
-class t {
+class t extends InlineJavaPerlCaller {
        static public int i = 0 ;
 
        public t(){

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-perl/packages/libinline-java-perl.git

_______________________________________________
Pkg-perl-cvs-commits mailing list
Pkg-perl-cvs-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits

Reply via email to