[libinline-java-perl] 02/398: *** empty log message ***

Jonas Smedegaard dr at jones.dk
Thu Feb 26 11:42:35 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 fdd903d3eedc4e33bcf6af4a5a23416571bfad5d
Author: patrick <>
Date:   Wed Feb 28 20:02:47 2001 +0000

    *** empty log message ***
---
 Java.pm          | 114 ++++++++++++++++++++++++++++++++-----------------------
 Java/Init.pm     |  38 +++++++++----------
 Java/Object.pm   |  10 ++---
 Java/Protocol.pm |  14 +++----
 4 files changed, 97 insertions(+), 79 deletions(-)

diff --git a/Java.pm b/Java.pm
index c5d3923..9869dd2 100644
--- a/Java.pm
+++ b/Java.pm
@@ -1,4 +1,4 @@
-package Inline::Java;
+package Inline::Java ;
 @Inline::Java::ISA = qw(Inline) ;
 
 
@@ -8,7 +8,9 @@ use strict ;
 $Inline::Java::VERSION = '0.01' ;
 
 # DEBUG is set via the JAVA_DEBUG config
-$Inline::Java::private::DEBUG = undef ;
+if (! defined($Inline::Java::DEBUG)){
+	$Inline::Java::DEBUG = 0 ;
+}
 
 
 require Inline ;
@@ -20,10 +22,10 @@ use Cwd qw(cwd abs_path) ;
 
 use IO::Socket ;
 
-use Inline::Java::private::Object ;
-use Inline::Java::private::Protocol ;
+use Inline::Java::Object ;
+use Inline::Java::Protocol ;
 # Must be last.
-use Inline::Java::private::Init ;
+use Inline::Java::Init ;
 
 
 # Stores a list of the Java interpreters running
@@ -128,7 +130,7 @@ sub _validate {
 		}
 		elsif ($key eq 'JAVA_DEBUG'){
 		    $o->{Java}->{$key} = $value ;
-			$Inline::Java::private::DEBUG = $value ;
+			$Inline::Java::DEBUG = $value ;
 		}
 		else{
 			if (! $ignore_other_configs){
@@ -151,15 +153,16 @@ sub build {
 
 	my $install_lib = $o->{install_lib} ;
 	my $modpname = $o->{modpname} ;
+
 	my $install = "$install_lib/auto/$modpname" ;
+	$o->set_classpath($install) ; 
 
 	$o->write_java ;
 	$o->write_makefile ;
+	
 	$o->compile ;
 
 	$o->{Java}->{built} = 1 ;
-
-	set_classpath($install) ;
 }
 
 
@@ -225,9 +228,12 @@ sub write_java {
 
 	open(JAVA, ">$build_dir/$modfname.java") or 
 		croak "Can't open $build_dir/$modfname.java: $!" ;
+	Inline::Java::Init::DumpUserJavaCode(\*JAVA, $modfname, $code) ;
+	close(JAVA) ;
 
-	Inline::Java::private::Init::DumpJavaCode(\*JAVA, $modfname, $code) ;
-
+	open(JAVA, ">$build_dir/InlineJavaServer.java") or 
+		croak "Can't open $build_dir/InlineJavaServer.java: $!" ;
+	Inline::Java::Init::DumpServerJavaCode(\*JAVA, $modfname) ;
 	close(JAVA) ;
 
 	debug("write_java done.") ;
@@ -249,7 +255,7 @@ sub write_makefile {
 	my $javac = $o->{Java}->{JAVA_BIN} . "/javac" ;
 	my $java = $o->{Java}->{JAVA_BIN} . "/java" ;
 
-	my $debug = ($Inline::Java::private::DEBUG ? "true" : "false") ;
+	my $debug = ($Inline::Java::DEBUG ? "true" : "false") ;
 
 	open(MAKE, ">$build_dir/Makefile") or 
 		croak "Can't open $build_dir/Makefile: $!" ;
@@ -258,8 +264,12 @@ sub write_makefile {
 	print MAKE "\t$javac $modfname.java > cmd.out 2<&1\n" ;
 	print MAKE "\tcp -f *.class $install\n" ;
 	print MAKE "\n" ;
+	print MAKE "server:\n" ;
+	print MAKE "\t$javac InlineJavaServer.java > cmd.out 2<&1\n" ;
+	print MAKE "\tcp -f *.class $install\n" ;
+	print MAKE "\n" ;
 	print MAKE "report:\n" ;
-	print MAKE "\t$java $modfname report $debug *.class > cmd.out 2<&1\n" ;
+	print MAKE "\t$java InlineJavaServer report $debug $modfname *.class > cmd.out 2<&1\n" ;
 	print MAKE "\tcp -f *.jdat $install\n" ;
 
 	close(MAKE) ;
@@ -272,7 +282,8 @@ sub set_classpath {
 	my $o = shift ;
 	my $path = shift ;
 
-	my @cp = split(/:/, "$ENV{CLASSPATH}:$o->{Java}->{JAVA_CLASSPATH}:$path") ;
+	my @cp = split(/:/, join(":", $ENV{CLASSPATH}, $o->{Java}->{JAVA_CLASSPATH}, $path)) ;
+
 	my %cp = map { ($_ !~ /^\s*$/ ? ($_, 1) : ()) } @cp ;
 
 	$ENV{CLASSPATH} = join(":", keys %cp) ;
@@ -306,12 +317,22 @@ sub find_java_bin {
 	my $o = shift ;
 	my @paths = @_ ;
 	
+	my $home = $ENV{HOME} ;
+
 	my $found = 0 ;
 	foreach my $p (@paths){
 		if ($p !~ /^\s*$/){
 			$p =~ s/\/+$// ;
-			my $home = (getpwuid($<))[7] ;
-			$p =~ s/^~/$home/ ;
+
+			if ($p =~ /^~/){
+				if ($home){
+					$p =~ s/^~/$home/ ;
+				}
+				else{
+					# -f don't work with ~/...
+					next ;
+				}
+			}
 	
 			my $java = $p . "/java" ;
 			if (-f $java){
@@ -351,17 +372,21 @@ sub compile {
 
 	foreach my $cmd (
 		"make -s class",
+		"make -s server",
 		"make -s report",
 		) {
 
-		chdir $build_dir ;
-		my $res = system($cmd) ;
-		$res and do {
-			$o->error_copy ;
-			croak $o->error_msg($cmd, $cwd) ;
-		} ;
+		if ($cmd){
+			debug("$cmd") ;
+			chdir $build_dir ;
+			my $res = system($cmd) ;
+			$res and do {
+				$o->error_copy ;
+				croak $o->error_msg($cmd, $cwd) ;
+			} ;
 
-	    chdir $cwd ;
+		    chdir $cwd ;
+		}
 	}
 
     if ($o->{config}{CLEAN_AFTER_BUILD} and 
@@ -414,12 +439,12 @@ sub load {
 	my $modpname = $o->{modpname} ;
 	my $modfname = $o->{modfname} ;
 
-	my $class_dir = "$install_lib/auto/$modpname" ;
+	my $install = "$install_lib/auto/$modpname" ;
 	my $class = $modfname ;
 
 	# Now we must open the jdat file and read it's contents.
-	if (! open(JDAT, "$class_dir/$class.jdat")){
-		croak "Can't open $class_dir/$class.jdat code information file" ;
+	if (! open(JDAT, "$install/$class.jdat")){
+		croak "Can't open $install/$class.jdat code information file" ;
 	}
 	my @lines = <JDAT> ;
 	close(JDAT) ;
@@ -430,7 +455,9 @@ sub load {
 	$o->bind_jdat() ;
 
 	my $java = $o->{Java}->{JAVA_BIN} . "/java" ;
+	my $cp = $ENV{CLASSPATH} ;
 
+	debug("  cwd is: " . cwd()) ;
 	debug("  load is forking.") ;
 	my $pid = fork() ;
 	if (! defined($pid)){
@@ -438,14 +465,17 @@ sub load {
 	}
 	$CHILD_CNT++ ;
 
+	my $port = $o->{Java}->{JAVA_PORT} + ($CHILD_CNT - 1) ;
+
 	if ($pid){
 		# parent here
 		debug("  parent here.") ;
 
 		push @CHILDREN, $pid ;
 
-		$o->setup_socket() ;		
+		$o->setup_socket($port) ;
 	
+		$Inline::Java::LOADED = 1 ;
 		$o->{Java}->{loaded} = 1 ;
 		debug("load done.") ;
 	}
@@ -453,12 +483,10 @@ sub load {
 		# child here
 		debug("  child here.") ;
 
-		my $port = $o->{Java}->{JAVA_PORT} + ($CHILD_CNT - 1) ;
-		my $debug = ($Inline::Java::private::DEBUG ? "true" : "false") ;
-		debug("    $java $class run $debug $port") ;
+		my $debug = ($Inline::Java::DEBUG ? "true" : "false") ;
+		debug("    $java InlineJavaServer run $debug $port") ;
 
-		chdir $class_dir ;
-		exec $java, $class, "run", $debug, $port, 
+		exec "$java InlineJavaServer run $debug $port"
 			or croak "Can't exec Java interpreter" ;
 	}
 }
@@ -550,7 +578,7 @@ sub bind_jdat {
 		$class_name =~ s/^(.*)::// ;
 		my $code = <<CODE;
 package $o->{pkg}::$class ;
-\@$o->{pkg}::$class$c:ISA = qw(Inline::Java::private::Object) ;
+\@$o->{pkg}::$class$c:ISA = qw(Inline::Java::Object) ;
 \$$o->{pkg}::$class$c:EXISTS = 1 ;
 
 CODE
@@ -593,16 +621,11 @@ sub $method {
 	my \$err = \$class->__validate_prototype([\@args], [($signature)]) ;
 	croak \$err if \$err ;
 	
-	my \$proto = new Inline::Java::private::Protocol(undef, '$modfname') ;
+	my \$proto = new Inline::Java::Protocol(undef, '$modfname') ;
 
 	return \$proto->CallStaticJavaMethod('$java_class', '$pkg', '$method', \@args) ;
 }
 
-
-sub $class_name {
-	return new(\@_) ;
-}
-
 CODE
 		}
 
@@ -622,11 +645,6 @@ sub $method {
 	return \$this->{private}->{proto}->CallJavaMethod('$method', \@args) ;
 }
 
-
-sub $class_name {
-	return new(\@_) ;
-}
-
 CODE
 		}
 		
@@ -642,9 +660,9 @@ CODE
 # Sets up the communication socket to the Java program
 sub setup_socket {
 	my $o = shift ;
-
+	my $port = shift ;
+	
 	my $timeout = $o->{Java}->{JAVA_STARTUP_DELAY} ;
-	my $port = $o->{Java}->{JAVA_PORT} + ($CHILD_CNT - 1) ;
 
 	my $modfname = $o->{modfname} ;
 	my $socket = undef ;
@@ -679,12 +697,12 @@ sub setup_socket {
 	}
 
 	$socket->autoflush(1) ;
-	$Inline::Java::private::Protocol::socket->{$modfname} = $socket ;
+	$Inline::Java::Protocol::socket->{$modfname} = $socket ;
 }
 
 
 sub debug {
-	if ($Inline::Java::private::DEBUG){
+	if ($Inline::Java::DEBUG){
 		my $str = join("", @_) ;
 		while (chomp($str)) {}
 		print STDERR "perl: $str\n" ;
@@ -695,7 +713,7 @@ sub debug {
 sub debug_obj {
 	my $obj = shift ;
 
-	if ($Inline::Java::private::DEBUG){
+	if ($Inline::Java::DEBUG){
 		print STDERR Dumper($obj) ;
 	}
 }
diff --git a/Java/Init.pm b/Java/Init.pm
index efa71cb..1899947 100644
--- a/Java/Init.pm
+++ b/Java/Init.pm
@@ -1,23 +1,28 @@
-package Inline::Java::private::Init ;
+package Inline::Java::Init ;
 
 my $DATA = join('', <DATA>) ;
-my $OBJECT_DATA = join('', <Inline::Java::private::Object::DATA>) ;
-my $PROTO_DATA = join('', <Inline::Java::private::Protocol::DATA>) ;
+my $OBJECT_DATA = join('', <Inline::Java::Object::DATA>) ;
+my $PROTO_DATA = join('', <Inline::Java::Protocol::DATA>) ;
 
-sub DumpJavaCode {
+sub DumpUserJavaCode {
 	my $fh = shift ;
 	my $modfname = shift ;
 	my $code = shift ;
 
+	print $fh $code ;
+}
+
+
+sub DumpServerJavaCode {
+	my $fh = shift ;
+	my $modfname = shift ;
+
 	my $java = $DATA ;
 	my $java_obj = $OBJECT_DATA ;
 	my $java_proto = $PROTO_DATA ;
 
 	$java =~ s/<INLINE_JAVA_OBJECT>/$java_obj/g ;
 	$java =~ s/<INLINE_JAVA_PROTOCOL>/$java_proto/g ;
-	$java =~ s/<INLINE_JAVA_CODE>/$code/g ;
-
-	$java =~ s/<INLINE_MODFNAME>/$modfname/g ;
 
 	print $fh $java ;
 }
@@ -29,25 +34,20 @@ sub DumpJavaCode {
 
 
 __DATA__
-
 import java.net.* ;
 import java.io.* ;
 import java.util.* ;
 import java.lang.reflect.* ;
 
 
-<INLINE_JAVA_CODE>
-
-
-public class <INLINE_MODFNAME> {
+public class InlineJavaServer {
 	public ServerSocket ss ;
-	String module = "<INLINE_MODFNAME>" ;
 	boolean debug = false ;
 
 	public HashMap objects = new HashMap() ;
 	public int objid = 1 ;
 
-	<INLINE_MODFNAME>(String[] argv) {
+	InlineJavaServer(String[] argv) {
 		String mode = argv[0] ;
 		debug = new Boolean(argv[1]).booleanValue() ;
 
@@ -103,13 +103,16 @@ public class <INLINE_MODFNAME> {
 
 
 	void Report (String [] class_list, int idx){
+		String module = class_list[idx] ;
+		idx++ ;
+
 		// First we must open the file
 		try {
 			File dat = new File(module + ".jdat") ;
 			PrintWriter pw = new PrintWriter(new FileWriter(dat)) ;
 
 			for (int i = idx ; i < class_list.length ; i++){
-				if (! class_list[i].startsWith(module)){
+				if (! class_list[i].startsWith("InlineJavaServer")){
 					StringBuffer name = new StringBuffer(class_list[i]) ;
 					name.replace(name.length() - 6, name.length(), "") ;
 					Class c = Class.forName(name.toString()) ;
@@ -169,7 +172,7 @@ public class <INLINE_MODFNAME> {
 
 
 	public static void main(String[] argv) {
-		new <INLINE_MODFNAME>(argv) ;
+		new InlineJavaServer(argv) ;
 	}
 
 
@@ -200,6 +203,3 @@ public class <INLINE_MODFNAME> {
 		}
 	}
 }
-
-
-
diff --git a/Java/Object.pm b/Java/Object.pm
index ae01bea..08518d8 100644
--- a/Java/Object.pm
+++ b/Java/Object.pm
@@ -1,5 +1,5 @@
-package Inline::Java::private::Object ;
- at Inline::Java::private::Object::ISA = qw(Tie::StdHash) ;
+package Inline::Java::Object ;
+ at Inline::Java::Object::ISA = qw(Tie::StdHash) ;
 
 
 use strict ;
@@ -7,7 +7,7 @@ use strict ;
 use Carp ;
 use Data::Dumper ;
 use Tie::Hash ;
-use Inline::Java::private::Protocol ;
+use Inline::Java::Protocol ;
 
 
 
@@ -31,14 +31,14 @@ sub __new {
 	my @args = @_ ;
 
 	my %this = () ;
-	tie %this, 'Inline::Java::private::Object' ;
+	tie %this, 'Inline::Java::Object' ;
 	bless (\%this, $class) ;
 
 	my $this = \%this ;
 	$this->{private} = {} ;
 	$this->{private}->{class} = $java_class ;
 	$this->{private}->{pkg} = $pkg ;
-	$this->{private}->{proto} = new Inline::Java::private::Protocol($this->{private}, $module) ;
+	$this->{private}->{proto} = new Inline::Java::Protocol($this->{private}, $module) ;
 	if ($objid <= 0){
 		$this->{private}->{proto}->CreateJavaObject($java_class, @args) ;
 		Inline::Java::debug("Object created in perl script ($class):") ;
diff --git a/Java/Protocol.pm b/Java/Protocol.pm
index 882453d..6f841f3 100644
--- a/Java/Protocol.pm
+++ b/Java/Protocol.pm
@@ -1,4 +1,4 @@
-package Inline::Java::private::Protocol ;
+package Inline::Java::Protocol ;
 
 
 use strict ;
@@ -9,7 +9,7 @@ use Data::Dumper ;
 
 
 # This will be set when the code is loaded.
-$Inline::Java::private::Protocol::socket = {} ;
+$Inline::Java::Protocol::socket = {} ;
 
 
 sub new {
@@ -150,7 +150,7 @@ sub ValidateArgs {
 			push @ret, "undef:" ;
 		}
 		elsif (ref($arg)){
-			if (! UNIVERSAL::isa($arg, "Inline::Java::private::Object")){
+			if (! UNIVERSAL::isa($arg, "Inline::Java::Object")){
 				croak "A Java method can only have Java objects or scalars as arguments" ;
 			}
 			my $class = $arg->{private}->{class} ;
@@ -171,7 +171,7 @@ sub Send {
 	my $data = shift ;
 	my $const = shift ;
 
-	my $sock = $Inline::Java::private::Protocol::socket->{$this->{module}} ;
+	my $sock = $Inline::Java::Protocol::socket->{$this->{module}} ;
 	print $sock $data . "\n" or
 		croak "Can't send packet over socket: $!" ;
 
@@ -212,7 +212,7 @@ sub Send {
 			}
 			else{
 				Inline::Java::debug("  returned class doesn't exist!") ;
-				$obj = Inline::Java::private::Object->__new($class, $pkg, $this->{module}, $id) ;
+				$obj = Inline::Java::Object->__new($class, $pkg, $this->{module}, $id) ;
 			}
 			return $obj ;
 		}
@@ -228,11 +228,11 @@ __DATA__
 
 
 class InlineJavaProtocol {
-	<INLINE_MODFNAME> main ;
+	InlineJavaServer main ;
 	String cmd ;
 	String response ;
 
-	InlineJavaProtocol(<INLINE_MODFNAME> _m, String _cmd) {
+	InlineJavaProtocol(InlineJavaServer _m, String _cmd) {
 		main = _m ;
 		cmd = _cmd ;
 	}

-- 
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