[libinline-java-perl] 304/398: ok

Jonas Smedegaard dr at jones.dk
Thu Feb 26 11:43:17 UTC 2015


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 546f4134ce61403ea0915f2a528e7c4b854400f8
Author: patrick_leb <>
Date:   Sun Mar 28 15:06:46 2004 +0000

    ok
---
 Java.pm                                            | 29 +++++--
 Java/Callback.pm                                   |  4 +-
 Java/Makefile.PL                                   |  2 +
 Java/PerlInterpreter/t/01_init.t                   | 10 +++
 Java/PerlInterpreter/t/01_perl_interpreter.t       | 26 ------
 Java/PerlInterpreter/t/02_perl_interpreter.t       | 94 ++++++++++++++++++++++
 .../org/perl/inline/java/InlineJavaPerlCaller.java | 13 ++-
 .../perl/inline/java/InlineJavaPerlNatives.java    |  9 ++-
 MANIFEST                                           |  3 +-
 Makefile.PL                                        |  2 +-
 t/12_1_callbacks.t                                 |  4 +-
 11 files changed, 149 insertions(+), 47 deletions(-)

diff --git a/Java.pm b/Java.pm
index 5e153be..a0d1ee0 100644
--- a/Java.pm
+++ b/Java.pm
@@ -340,16 +340,20 @@ sub build {
 		my $cp = $ENV{CLASSPATH} || '' ;
 		$ENV{CLASSPATH} = make_classpath($server_jar, @prev_install_dirs, $o->get_java_config('CLASSPATH')) ;
 		Inline::Java::debug(2, "classpath: $ENV{CLASSPATH}") ;
-		my $args = $o->get_java_config('EXTRA_JAVAC_ARGS') ;
+		my $args = "-deprecation " . $o->get_java_config('EXTRA_JAVAC_ARGS') ;
 		my $cmd = portable("SUB_FIX_CMD_QUOTES", "\"$javac\" $args -d \"$install_dir\" $source > cmd.out $redir") ;
 		if ($o->get_config('UNTAINT')){
 			($cmd) = $cmd =~ /(.*)/ ;
 		}
 		Inline::Java::debug(2, "$cmd") ;
 		my $res = system($cmd) ;
-		$res and do {
-			croak $o->compile_error_msg($cmd) ;
+		my $msg = $o->get_compile_error_msg() ;
+		if ($res){
+			croak $o->compile_error_msg($cmd, $msg) ;
 		} ;
+		if ($msg){
+			warn("\n$msg\n") ;
+		}
 		$ENV{CLASSPATH} = $cp ;
 		Inline::Java::debug(2, "classpath: $ENV{CLASSPATH}") ;
 
@@ -390,17 +394,26 @@ sub build {
 }
 
 
-sub compile_error_msg {
+sub get_compile_error_msg {
 	my $o = shift ;
-	my $cmd = shift ;
 
-	my $build_dir = $o->get_api('build_dir') ;
-	my $error = '' ;
+	my $msg = '' ;
 	if (open(Inline::Java::CMD, "<cmd.out")){
-		$error = join("", <Inline::Java::CMD>) ;
+		$msg = join("", <Inline::Java::CMD>) ;
 		close(Inline::Java::CMD) ;
 	}
 
+	return $msg ;
+}
+
+
+sub compile_error_msg {
+	my $o = shift ;
+	my $cmd = shift ;
+	my $error = shift ;
+
+	my $build_dir = $o->get_api('build_dir') ;
+
 	my $lang = $o->get_api('language') ;
 	return <<MSG
 
diff --git a/Java/Callback.pm b/Java/Callback.pm
index 485667e..74c6cd3 100644
--- a/Java/Callback.pm
+++ b/Java/Callback.pm
@@ -167,12 +167,12 @@ sub java_require {
 
 	if (! defined($is_file)){
 		if (-e $module){
-			$module = '"$module"' ;
+			$module = "\"$module\"" ;
 		}
 	}
 
 	if ($is_file){
-		$module = '"$module"' ;
+		$module = "\"$module\"" ;
 	}
 
 	Inline::Java::debug(3, "requiring Perl module/file: $module") ; 
diff --git a/Java/Makefile.PL b/Java/Makefile.PL
index 56cfbbd..34b29fb 100644
--- a/Java/Makefile.PL
+++ b/Java/Makefile.PL
@@ -119,6 +119,8 @@ if (($build_jni || AskYN("Do you wish to build the JNI extension?", 'y'))){
 			map {print "  $_\n"; } keys %so_dirs ;
 			print "See README.JNI for more information.\n\n" ;
 
+			# Add these so_dirs to the default_j2sdk.pl file.
+
 			@main::I = (
 				Inline::Java::Portable::portable('SUB_FIX_MAKE_QUOTES', 
 					"-I" . $files->{'jni.h'}->{selected}), 
diff --git a/Java/PerlInterpreter/t/01_init.t b/Java/PerlInterpreter/t/01_init.t
new file mode 100644
index 0000000..d889213
--- /dev/null
+++ b/Java/PerlInterpreter/t/01_init.t
@@ -0,0 +1,10 @@
+use strict ;
+use Test ;
+
+BEGIN {
+	plan(tests => 1) ;
+	mkdir('./_Inline_test', 0777) unless -e './_Inline_test' ;
+}
+
+
+ok(1) ;
diff --git a/Java/PerlInterpreter/t/01_perl_interpreter.t b/Java/PerlInterpreter/t/01_perl_interpreter.t
deleted file mode 100644
index b22faac..0000000
--- a/Java/PerlInterpreter/t/01_perl_interpreter.t
+++ /dev/null
@@ -1,26 +0,0 @@
-use strict ;
-
-use Test ;
-use File::Spec ;
-use Inline::Java ;
-use Inline::Java::Portable ;
-# Our default J2SK
-require Inline::Java->find_default_j2sdk() ;
-
-
-BEGIN {
-    plan(tests => 1) ;
-}
-
-
-$ENV{CLASSPATH} = make_classpath(get_server_jar()) ;
-
-
-my $java = File::Spec->catfile(
-	Inline::Java::get_default_j2sdk(),
-	'bin', 'java' . Inline::Java::portable("EXE_EXTENSION")) ;
-
-my $cmd = Inline::Java::portable("SUB_FIX_CMD_QUOTES", "\"$java\" org.perl.inline.java.InlineJavaPerlInterpreter") ;
-
-print STDERR "Running '$cmd'\n" ;
-print `$cmd` ;
diff --git a/Java/PerlInterpreter/t/02_perl_interpreter.t b/Java/PerlInterpreter/t/02_perl_interpreter.t
new file mode 100644
index 0000000..9f8c69f
--- /dev/null
+++ b/Java/PerlInterpreter/t/02_perl_interpreter.t
@@ -0,0 +1,94 @@
+use strict ;
+
+use Test ;
+use File::Spec ;
+
+BEGIN {
+    plan(tests => 6) ;
+}
+
+
+use Inline Config =>
+           DIRECTORY => './_Inline_test' ;
+
+use Inline (
+	Java => 'DATA',
+	NAME => 'Tests'
+) ;
+use Inline::Java::Portable ;
+ok(1) ;
+
+
+my $inline = $Tests::INLINE ;
+my $install_dir = File::Spec->catdir($inline->get_api('install_lib'),
+        'auto', $inline->get_api('modpname')) ;
+
+require Inline::Java->find_default_j2sdk() ;
+my $server_jar = get_server_jar() ;
+
+run_java($install_dir, $server_jar) ;
+
+
+#################################################
+
+
+sub run_java {
+	my @cps = @_ ;
+
+	print STDERR "\n" ;
+	$ENV{CLASSPATH} = make_classpath(@cps) ;
+	# print STDERR "CLASSPATH is $ENV{CLASSPATH}\n" ;
+
+	my $java = File::Spec->catfile(
+		Inline::Java::get_default_j2sdk(),
+		'bin', 'java' . Inline::Java::portable("EXE_EXTENSION")) ;
+
+	my $cmd = Inline::Java::portable("SUB_FIX_CMD_QUOTES", "\"$java\" Tests") ;
+	# print STDERR "Command is $cmd\n" ;
+	print `$cmd` ;
+}
+
+
+__END__
+
+__Java__
+import org.perl.inline.java.* ;
+
+class Tests extends InlineJavaPerlInterpreter {
+	private static int cnt = 2 ;
+	private Tests() throws InlineJavaException, InlineJavaPerlException {
+	}
+
+	private static void ok(Object o1, Object o2){
+		if (o1.equals(o2)){
+			String comment = " # " + o1 + " == " + o2 ;
+			System.out.println("ok " + cnt + comment) ;
+		}
+		else {
+			String comment = " # " + o1 + " != " + o2 ;
+			System.out.println("nok " + cnt + comment) ;
+		}
+		cnt++ ;
+	}
+
+	public static void main(String args[]){
+		try {
+			init("test") ;
+			InlineJavaPerlInterpreter pi = InlineJavaPerlInterpreter.getInstance() ; 
+
+			pi.require("t/Tests.pl") ;
+			ok("1", "1") ;
+			pi.require("Carp") ;
+			ok("1", "1") ;
+			Integer sum = (Integer)pi.eval("34 + 56", Integer.class) ;
+			ok(sum, new Integer(90)) ;
+			String name = (String)pi.CallPerlSub("whats_your_name", null, String.class) ;
+			ok(name, "perl") ;
+		}
+		catch (Exception e){
+			e.printStackTrace() ;
+			System.exit(1) ;
+		}
+		ok("1", "1") ;
+	}
+}
diff --git a/Java/sources/org/perl/inline/java/InlineJavaPerlCaller.java b/Java/sources/org/perl/inline/java/InlineJavaPerlCaller.java
index 62cd5f0..0948b3e 100644
--- a/Java/sources/org/perl/inline/java/InlineJavaPerlCaller.java
+++ b/Java/sources/org/perl/inline/java/InlineJavaPerlCaller.java
@@ -49,14 +49,19 @@ public class InlineJavaPerlCaller {
 		return resources ;
 	}
 
-
 	/* Old interface */
+	/**
+	 * @deprecated  As of 0.48, replaced by {@link #CallPerlSub(String,Object[])}
+	 */
 	public Object CallPerl(String pkg, String method, Object args[]) throws InlineJavaException, InlineJavaPerlException {
 		return CallPerl(pkg, method, args, null) ;
 	}
 
 
 	/* Old interface */
+	/**
+	 * @deprecated  As of 0.48, replaced by {@link #CallPerlSub(String,Object[],Class)}
+	 */
 	public Object CallPerl(String pkg, String method, Object args[], String cast) throws InlineJavaException, InlineJavaPerlException {
 		InlineJavaCallback ijc = new InlineJavaCallback(
 			(String)null, pkg + "::" + method, args, 
@@ -118,17 +123,17 @@ public class InlineJavaPerlCaller {
 
 
 	public Object require(String module_or_file) throws InlineJavaPerlException, InlineJavaException {
-		return CallPerlSub("Inline::Java::PerlInterpreter::java_require", new Object [] {module_or_file}) ;
+		return CallPerlSub("Inline::Java::Callback::java_require", new Object [] {module_or_file}) ;
 	}
 
 
 	public Object require_file(String file) throws InlineJavaPerlException, InlineJavaException {
-		return CallPerlSub("Inline::Java::PerlInterpreter::java_require", new Object [] {file, new Boolean("true")}) ;
+		return CallPerlSub("Inline::Java::Callback::java_require", new Object [] {file, new Boolean("true")}) ;
 	}
 	
 	
 	public Object require_module(String module) throws InlineJavaPerlException, InlineJavaException {
-		return CallPerlSub("Inline::Java::PerlInterpreter::java_require", new Object [] {module, new Boolean("false")}) ;
+		return CallPerlSub("Inline::Java::Callback::java_require", new Object [] {module, new Boolean("false")}) ;
 	}
 	
 
diff --git a/Java/sources/org/perl/inline/java/InlineJavaPerlNatives.java b/Java/sources/org/perl/inline/java/InlineJavaPerlNatives.java
index 10d4046..75ad0e5 100644
--- a/Java/sources/org/perl/inline/java/InlineJavaPerlNatives.java
+++ b/Java/sources/org/perl/inline/java/InlineJavaPerlNatives.java
@@ -158,19 +158,22 @@ public class InlineJavaPerlNatives extends InlineJavaPerlCaller {
 
 		// Transform the Java class name into the Perl package name
 		StringTokenizer st = new StringTokenizer(pkg, ".") ;
-		StringBuffer perl_pkg = new StringBuffer() ;
+		StringBuffer perl_sub = new StringBuffer() ;
 		// Starting with "::" means that the package is relative to the caller package
 		while (st.hasMoreTokens()){
-			perl_pkg.append("::" + st.nextToken()) ;
+			perl_sub.append("::" + st.nextToken()) ;
 		}
+		perl_sub.append("::" + method) ;
 
 		for (int i = 0 ; i < args.length ; i++){
 			InlineJavaUtils.debug(3, "InvokePerlMethod argument " + i + " = " + args[i]) ;
 		}
 
+		Object ret = CallPerlSub(perl_sub.toString(), args) ;
+
 		InlineJavaUtils.debug(3, "exiting InvokePerlMethod") ;
 
-		return CallPerl(perl_pkg.toString(), method, args) ;
+		return ret ;
 	}
 
 
diff --git a/MANIFEST b/MANIFEST
index fff56c0..af148cc 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -44,7 +44,8 @@ Java/Natives/t/02_perl_natives.t
 Java/PerlInterpreter/Makefile.PL
 Java/PerlInterpreter/PerlInterpreter.pm
 Java/PerlInterpreter/PerlInterpreter.xs
-Java/PerlInterpreter/01_perl_interpreter.t
+Java/PerlInterpreter/t/01_init.t
+Java/PerlInterpreter/t/02_perl_interpreter.t
 t/01_init.t
 t/02_primitives.t
 t/03_objects.t
diff --git a/Makefile.PL b/Makefile.PL
index 9ac19b4..89fc5cb 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -121,7 +121,7 @@ sub MY::postamble {
 # Added by Inline::Java installation
 java ::
 	\@\$(MKPATH) $obj_dir
-	"$javac" -g -d $obj_dir $src
+	"$javac" -deprecation -g -d $obj_dir $src
 	"$jar" cf $server_arch -C $obj_dir org -C $obj_dir InlineJava.properties
 	"$jar" cf $user_arch -C $obj_dir InlineJavaUserClassLink.class
 MAKE
diff --git a/t/12_1_callbacks.t b/t/12_1_callbacks.t
index 8944cf8..b3b2825 100755
--- a/t/12_1_callbacks.t
+++ b/t/12_1_callbacks.t
@@ -323,7 +323,7 @@ class t15 extends InlineJavaPerlCaller {
 	public int silly_mul_via_perl_via_java(int a, int b) throws InlineJavaException, InlineJavaPerlException {
 		int ret = 0 ;
 		for (int i = 0 ; i < b ; i++){
-			String val = (String)CallPerlSub("main::add_via_java", 
+			String val = (String)CallPerlSub("add_via_java", 
 				new Object [] {new Integer(ret), new Integer(a)}) ;
 			ret = new Integer(val).intValue() ;
 		}
@@ -332,7 +332,7 @@ class t15 extends InlineJavaPerlCaller {
 
 
 	public String cat_via_perl(String a, String b) throws InlineJavaException, InlineJavaPerlException {
-		String val = (String)CallPerl("main", "cat", 
+		String val = (String)CallPerlSub("cat", 
 			new Object [] {a, b}) ;
 
 		return val ;

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



More information about the Pkg-perl-cvs-commits mailing list