[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