[libinline-java-perl] 96/398: Adapted 0.40 Added set_classpath at compile time because extending classes requires it Removed error_copy
Jonas Smedegaard
dr at jones.dk
Thu Feb 26 11:42:53 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 8aa9849fe81c319957481eb48ab44c077d3e47ee
Author: Patrick LeBoutillier <patl at cpan.org>
Date: Fri Jun 1 13:57:41 2001 +0000
Adapted 0.40
Added set_classpath at compile time because extending classes requires
it
Removed error_copy
---
Java.pm | 210 +++++++++++++++++++++++++++++++++++++---------------------------
1 file changed, 122 insertions(+), 88 deletions(-)
diff --git a/Java.pm b/Java.pm
index 4e5a3a8..c4b65b0 100644
--- a/Java.pm
+++ b/Java.pm
@@ -7,7 +7,7 @@ package Inline::Java ;
use strict ;
-$Inline::Java::VERSION = '0.21' ;
+$Inline::Java::VERSION = '0.22' ;
# DEBUG is set via the DEBUG config
@@ -69,15 +69,17 @@ my $COMMAND_COM =
sub done {
my $signal = shift ;
+ # To preserve the passed exit code...
+ # Thanks Maria
+ my $ec = $? ;
+
$DONE = 1 ;
- my $ec = 0 ;
if (! $signal){
Inline::Java::debug("killed by natural death.") ;
}
else{
Inline::Java::debug("killed by signal SIG$signal.") ;
- $ec = 1 ;
}
if ($JVM){
@@ -150,38 +152,38 @@ sub _validate {
croak "Inline::Java does not currently support multiple Inline sections" ;
}
- if (! exists($o->{Java}->{PORT})){
- $o->{Java}->{PORT} = 7890 ;
+ if (! exists($o->{ILSM}->{PORT})){
+ $o->{ILSM}->{PORT} = 7890 ;
}
- if (! exists($o->{Java}->{STARTUP_DELAY})){
- $o->{Java}->{STARTUP_DELAY} = 15 ;
+ if (! exists($o->{ILSM}->{STARTUP_DELAY})){
+ $o->{ILSM}->{STARTUP_DELAY} = 15 ;
}
- if (! exists($o->{Java}->{DEBUG})){
- $o->{Java}->{DEBUG} = 0 ;
+ if (! exists($o->{ILSM}->{DEBUG})){
+ $o->{ILSM}->{DEBUG} = 0 ;
}
- if (! exists($o->{Java}->{JNI})){
- $o->{Java}->{JNI} = 0 ;
+ if (! exists($o->{ILSM}->{JNI})){
+ $o->{ILSM}->{JNI} = 0 ;
}
- if (! exists($o->{Java}->{CLASSPATH})){
- $o->{Java}->{CLASSPATH} = '' ;
+ if (! exists($o->{ILSM}->{CLASSPATH})){
+ $o->{ILSM}->{CLASSPATH} = '' ;
}
- if (! exists($o->{Java}->{WARN_METHOD_SELECT})){
- $o->{Java}->{WARN_METHOD_SELECT} = '' ;
+ if (! exists($o->{ILSM}->{WARN_METHOD_SELECT})){
+ $o->{ILSM}->{WARN_METHOD_SELECT} = '' ;
}
- if (! exists($o->{Java}->{AUTOSTUDY})){
- $o->{Java}->{AUTOSTUDY} = 0 ;
+ if (! exists($o->{ILSM}->{AUTOSTUDY})){
+ $o->{ILSM}->{AUTOSTUDY} = 0 ;
}
while (@_) {
my ($key, $value) = (shift, shift) ;
if ($key eq 'BIN'){
- $o->{Java}->{$key} = $value ;
+ $o->{ILSM}->{$key} = $value ;
}
elsif ($key eq 'CLASSPATH'){
- $o->{Java}->{$key} = $value ;
+ $o->{ILSM}->{$key} = $value ;
}
elsif ($key eq 'WARN_METHOD_SELECT'){
- $o->{Java}->{$key} = $value ;
+ $o->{ILSM}->{$key} = $value ;
}
elsif (
($key eq 'PORT')||
@@ -193,20 +195,20 @@ sub _validate {
if (! $value){
croak "config '$key' can't be zero" ;
}
- $o->{Java}->{$key} = $value ;
+ $o->{ILSM}->{$key} = $value ;
}
elsif ($key eq 'DEBUG'){
- $o->{Java}->{$key} = $value ;
+ $o->{ILSM}->{$key} = $value ;
$Inline::Java::DEBUG = $value ;
}
elsif ($key eq 'JNI'){
- $o->{Java}->{$key} = $value ;
+ $o->{ILSM}->{$key} = $value ;
}
elsif ($key eq 'AUTOSTUDY'){
- $o->{Java}->{$key} = $value ;
+ $o->{ILSM}->{$key} = $value ;
}
elsif ($key eq 'STUDY'){
- $o->{Java}->{$key} = $o->check_config_array(
+ $o->{ILSM}->{$key} = $o->check_config_array(
$key, $value,
"Java class names") ;
}
@@ -218,7 +220,7 @@ sub _validate {
}
if (defined($ENV{PERL_INLINE_JAVA_JNI})){
- $o->{Java}->{JNI} = $ENV{PERL_INLINE_JAVA_JNI} ;
+ $o->{ILSM}->{JNI} = $ENV{PERL_INLINE_JAVA_JNI} ;
}
$o->set_java_bin() ;
@@ -248,12 +250,43 @@ sub check_config_array {
}
+sub get_java_config {
+ my $o = shift ;
+ my $param = shift ;
+
+ return $o->{ILSM}->{$param} ;
+}
+
+
+# In theory we shouldn't need to use this, but it seems
+# it's not all accessible by the API yet.
+sub get_config {
+ my $o = shift ;
+ my $param = shift ;
+
+ if (defined($param)){
+ return $o->{CONFIG}->{$param} ;
+ }
+ else{
+ return %{$o->{CONFIG}} ;
+ }
+}
+
+
+sub get_api {
+ my $o = shift ;
+ my $param = shift ;
+
+ return $o->{API}->{$param} ;
+}
+
+
sub set_java_bin {
my $o = shift ;
my $sep = portable("PATH_SEP_RE") ;
- my $cjb = $o->{Java}->{BIN} ;
+ my $cjb = $o->{ILSM}->{BIN} ;
my $ejb = $ENV{PERL_INLINE_JAVA_BIN} ;
if ($cjb){
$cjb =~ s/$sep+$// ;
@@ -261,7 +294,7 @@ sub set_java_bin {
}
elsif ($ejb) {
$ejb =~ s/$sep+$// ;
- $o->{Java}->{BIN} = $ejb ;
+ $o->{ILSM}->{BIN} = $ejb ;
return $o->find_java_bin([$ejb]) ;
}
@@ -279,7 +312,7 @@ sub find_java_bin {
my $path = $o->find_file_in_path([$java, $javac], $paths) ;
if (defined($path)){
- $o->{Java}->{BIN} = $path ;
+ $o->{ILSM}->{BIN} = $path ;
}
else{
croak
@@ -345,17 +378,17 @@ sub find_file_in_path {
sub build {
my $o = shift ;
- if ($o->{Java}->{built}){
+ if ($o->{ILSM}->{built}){
return ;
}
- my $code = $o->{code} ;
+ my $code = $o->get_api('code') ;
my $study_only = ($code eq 'STUDY') ;
- $o->write_java($study_only) ;
+ $o->write_java($study_only, $code) ;
$o->compile($study_only) ;
- $o->{Java}->{built} = 1 ;
+ $o->{ILSM}->{built} = 1 ;
}
@@ -363,12 +396,12 @@ sub build {
sub write_java {
my $o = shift ;
my $study_only = shift ;
+ my $code = shift ;
- my $build_dir = $o->{build_dir} ;
- my $modfname = $o->{modfname} ;
- my $code = $o->{code} ;
+ my $build_dir = $o->get_api('build_dir') ;
+ my $modfname = $o->get_api('modfname') ;
- $o->mkpath($o->{build_dir}) ;
+ $o->mkpath($build_dir) ;
if (! $study_only){
open(JAVA, ">$build_dir/$modfname.java") or
@@ -391,23 +424,25 @@ sub compile {
my $o = shift ;
my $study_only = shift ;
- my $build_dir = $o->{build_dir} ;
- my $modpname = $o->{modpname} ;
- my $modfname = $o->{modfname} ;
- my $suffix = $o->{ILSM_suffix} ;
- my $install_lib = $o->{install_lib} ;
+ my $build_dir = $o->get_api('build_dir') ;
+ my $modpname = $o->get_api('modpname') ;
+ my $modfname = $o->get_api('modfname') ;
+ my $suffix = $o->get_api('suffix') ;
+ my $install_lib = $o->get_api('install_lib') ;
my $install = "$install_lib/auto/$modpname" ;
+ my $pinstall = portable("RE_FILE", $install) ;
$o->mkpath("$install") ;
+ $o->set_classpath($pinstall) ;
- my $javac = $o->{Java}->{BIN} . "/javac" . portable("EXE_EXTENSION") ;
+ my $javac = $o->{ILSM}->{BIN} . "/javac" . portable("EXE_EXTENSION") ;
my $predir = portable("IO_REDIR") ;
my $pjavac = portable("RE_FILE", $javac) ;
my $cwd = Cwd::cwd() ;
- if ($o->{config}->{UNTAINT}){
+ if ($o->get_config('UNTAINT')){
($cwd) = $cwd =~ /(.*)/ ;
}
@@ -447,14 +482,13 @@ sub compile {
}
}
else{
- if ($o->{config}->{UNTAINT}){
+ if ($o->get_config('UNTAINT')){
($cmd) = $cmd =~ /(.*)/ ;
}
Inline::Java::debug("$cmd") ;
my $res = system($cmd) ;
$res and do {
- $o->error_copy ;
croak $o->compile_error_msg($cmd, $cwd) ;
} ;
}
@@ -463,9 +497,8 @@ sub compile {
}
}
- if ($o->{config}->{CLEAN_AFTER_BUILD} and
- not $o->{config}->{REPORTBUG}){
- $o->rmpath($o->{config}->{DIRECTORY} . 'build/', $modpname) ;
+ if ($o->get_api('cleanup')){
+ $o->rmpath('', $build_dir) ;
}
Inline::Java::debug("compile done.") ;
@@ -477,17 +510,18 @@ sub compile_error_msg {
my $cmd = shift ;
my $cwd = shift ;
- my $build_dir = $o->{build_dir} ;
+ my $build_dir = $o->get_api('build_dir') ;
my $error = '' ;
if (open(CMD, "<cmd.out")){
$error = join("", <CMD>) ;
close(CMD) ;
}
+ my $lang = $o->get_api('language') ;
return <<MSG
A problem was encountered while attempting to compile and install your Inline
-$o->{language} code. The command that failed was:
+$lang code. The command that failed was:
$cmd
The build directory was:
@@ -507,9 +541,9 @@ sub copy_classes {
my $o = shift ;
my $install = shift ;
- my $build_dir = $o->{build_dir} ;
- my $modpname = $o->{modpname} ;
- my $install_lib = $o->{install_lib} ;
+ my $build_dir = $o->get_api('build_dir') ;
+ my $modpname = $o->get_api('modpname') ;
+ my $install_lib = $o->get_api('install_lib') ;
my $pinstall = portable("RE_FILE", $install) ;
my $src_dir = $build_dir ;
@@ -529,7 +563,7 @@ sub copy_classes {
}
foreach my $file (@flist){
- if ($o->{config}->{UNTAINT}){
+ if ($o->get_config('UNTAINT')){
($file) = $file =~ /(.*)/ ;
}
Inline::Java::debug("copy_classes: $file, $dest_dir/$file") ;
@@ -561,18 +595,18 @@ sub touch_file {
sub load {
my $o = shift ;
- if ($o->{Java}->{loaded}){
+ if ($o->{ILSM}->{loaded}){
return ;
}
- my $install_lib = $o->{install_lib} ;
- my $modfname = $o->{modfname} ;
- my $modpname = $o->{modpname} ;
+ my $install_lib = $o->get_api('install_lib') ;
+ my $modfname = $o->get_api('modfname') ;
+ my $modpname = $o->get_api('modpname') ;
my $install = "$install_lib/auto/$modpname" ;
my $pinstall = portable("RE_FILE", $install) ;
# Make sure the default options are set.
- $o->_validate(1, %{$o->{config}}) ;
+ $o->_validate(1, $o->get_config()) ;
# If the JVM is not running, we need to start it here.
if (! $JVM){
@@ -584,11 +618,11 @@ sub load {
$INLINES->{$modfname} = $o ;
$o->_study() ;
- if ((defined($o->{Java}->{STUDY}))&&(scalar($o->{Java}->{STUDY}))){
- $o->_study($o->{Java}->{STUDY}) ;
+ if ((defined($o->{ILSM}->{STUDY}))&&(scalar($o->{ILSM}->{STUDY}))){
+ $o->_study($o->{ILSM}->{STUDY}) ;
}
- $o->{Java}->{loaded} = 1 ;
+ $o->{ILSM}->{loaded} = 1 ;
}
@@ -601,8 +635,8 @@ sub set_classpath {
if (defined($ENV{CLASSPATH})){
push @list, $ENV{CLASSPATH} ;
}
- if (defined($o->{Java}->{CLASSPATH})){
- push @list, $o->{Java}->{CLASSPATH} ;
+ if (defined($o->{ILSM}->{CLASSPATH})){
+ push @list, $o->{ILSM}->{CLASSPATH} ;
}
if (defined($path)){
push @list, $path ;
@@ -642,10 +676,10 @@ sub report {
my $o = shift ;
my $classes = shift ;
- my $install_lib = $o->{install_lib} ;
- my $modpname = $o->{modpname} ;
- my $modfname = $o->{modfname} ;
- my $suffix = $o->{ILSM_suffix} ;
+ my $install_lib = $o->get_api('install_lib') ;
+ my $modpname = $o->get_api('modpname') ;
+ my $modfname = $o->get_api('modfname') ;
+ my $suffix = $o->get_api('suffix') ;
my $install = "$install_lib/auto/$modpname" ;
my $pinstall = portable("RE_FILE", $install) ;
@@ -669,7 +703,7 @@ sub report {
foreach my $class (@{$classes}){
$class = Inline::Java::Class::ValidateClass($class) ;
- if (! Inline::Java::known_to_perl($o->{pkg}, $class)){
+ if (! Inline::Java::known_to_perl($o->get_api('pkg'), $class)){
push @new_classes, $class ;
}
}
@@ -679,7 +713,7 @@ sub report {
}
my $resp = undef ;
- if (($use_cache)&&(! $o->{Java}->{built})){
+ if (($use_cache)&&(! $o->{ILSM}->{built})){
# Since we didn't build the module, this means that
# it was up to date. We can therefore use the data
# from the cache
@@ -701,7 +735,7 @@ sub report {
$resp = $pc->Report(join(" ", @new_classes)) ;
}
- if (($use_cache)&&($o->{Java}->{built})){
+ if (($use_cache)&&($o->{ILSM}->{built})){
# Update the cache.
Inline::Java::debug("updating jdat cache") ;
if (open(CACHE, ">$install/$modfname.$suffix")){
@@ -729,12 +763,12 @@ sub load_jdat {
# We need an array here since the same object can have many
# load sessions.
- if (! defined($o->{Java}->{data})){
- $o->{Java}->{data} = [] ;
+ if (! defined($o->{ILSM}->{data})){
+ $o->{ILSM}->{data} = [] ;
}
my $d = {} ;
- my $data_idx = scalar(@{$o->{Java}->{data}}) ;
- push @{$o->{Java}->{data}}, $d ;
+ my $data_idx = scalar(@{$o->{ILSM}->{data}}) ;
+ push @{$o->{ILSM}->{data}}, $d ;
my $re = '[\w.\$\[;]+' ;
@@ -745,7 +779,7 @@ sub load_jdat {
if ($line =~ /^class ($re)$/){
# We found a class definition
my $java_class = $1 ;
- $current_class = Inline::Java::java2perl($o->{pkg}, $java_class) ;
+ $current_class = Inline::Java::java2perl($o->get_api('pkg'), $java_class) ;
$d->{classes}->{$current_class} = {} ;
$d->{classes}->{$current_class}->{java_class} = $java_class ;
$d->{classes}->{$current_class}->{constructors} = {} ;
@@ -813,7 +847,7 @@ sub bind_jdat {
my $d = shift ;
my $idx = shift ;
- my $modfname = $o->{modfname} ;
+ my $modfname = $o->get_api('modfname') ;
if (! defined($d->{classes})){
return ;
@@ -864,7 +898,7 @@ sub new {
my \@args = \@_ ;
my \$o = Inline::Java::get_INLINE('$modfname') ;
- my \$d = \$o->{Java}->{data}->[$idx] ;
+ my \$d = \$o->{ILSM}->{data}->[$idx] ;
my \$signatures = \$d->{classes}->{'$class'}->{constructors} ;
my (\$proto, \$new_args, \$static) = \$class->__validate_prototype('new', [\@args], \$signatures, \$o) ;
@@ -909,7 +943,7 @@ sub bind_method {
my $method = shift ;
my $static = shift ;
- my $modfname = $o->{modfname} ;
+ my $modfname = $o->get_api('modfname') ;
my $code = <<CODE;
@@ -918,7 +952,7 @@ sub $method {
my \@args = \@_ ;
my \$o = Inline::Java::get_INLINE('$modfname') ;
- my \$d = \$o->{Java}->{data}->[$idx] ;
+ my \$d = \$o->{ILSM}->{data}->[$idx] ;
my \$signatures = \$d->{classes}->{'$class'}->{methods}->{'$method'} ;
my (\$proto, \$new_args, \$static) = \$this->__validate_prototype('$method', [\@args], \$signatures, \$o) ;
@@ -946,7 +980,7 @@ sub get_fields {
my $class = shift ;
my $fields = {} ;
- my $data_list = $o->{Java}->{data} ;
+ my $data_list = $o->{ILSM}->{data} ;
foreach my $d (@{$data_list}){
if (exists($d->{classes}->{$class})){
@@ -965,18 +999,18 @@ sub info {
my $o = shift;
# Make sure the default options are set.
- $o->_validate(1, %{$o->{config}}) ;
+ $o->_validate(1, $o->get_config()) ;
- if ((! $o->{mod_exists})&&(! $o->{Java}->{built})){
+ if ((! $o->get_api('mod_exists'))&&(! $o->{ILSM}->{built})){
$o->build ;
}
- if (! $o->{Java}->{loaded}){
+ if (! $o->{ILSM}->{loaded}){
$o->load ;
}
my $info = '' ;
- my $data_list = $o->{Java}->{data} ;
+ my $data_list = $o->{ILSM}->{data} ;
foreach my $d (@{$data_list}){
if (! defined($d->{classes})){
@@ -1143,7 +1177,7 @@ sub portable {
IO_REDIR => ($COMMAND_COM ? '' : undef),
GOT_ALARM => 0,
COMMAND_COM => $COMMAND_COM,
- }
+ },
} ;
if (! defined($defmap->{$key})){
@@ -1155,7 +1189,7 @@ sub portable {
if (defined($val)){
my $f = $map->{$^O}->{$key}->[0] ;
my $t = $map->{$^O}->{$key}->[1] ;
- $val =~ s/$f/$t/eg ;
+ $val =~ s/$f/$t/g ;
Inline::Java::debug("portable: $key => $val for $^O is '$val'") ;
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