summaryrefslogtreecommitdiff
path: root/jpl/JNI/JNI.pm
diff options
context:
space:
mode:
Diffstat (limited to 'jpl/JNI/JNI.pm')
-rw-r--r--jpl/JNI/JNI.pm342
1 files changed, 0 insertions, 342 deletions
diff --git a/jpl/JNI/JNI.pm b/jpl/JNI/JNI.pm
deleted file mode 100644
index a5ce515c27..0000000000
--- a/jpl/JNI/JNI.pm
+++ /dev/null
@@ -1,342 +0,0 @@
-package JNI;
-
-use strict;
-use Carp;
-use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $AUTOLOAD $JVM @JVM_ARGS $JAVALIB);
-
-require Exporter;
-require DynaLoader;
-require AutoLoader;
-
-@ISA = qw(Exporter DynaLoader);
-
-@EXPORT = qw(
- JNI_ABORT
- JNI_COMMIT
- JNI_ERR
- JNI_FALSE
- JNI_H
- JNI_OK
- JNI_TRUE
- GetVersion
- DefineClass
- FindClass
- GetSuperclass
- IsAssignableFrom
- Throw
- ThrowNew
- ExceptionOccurred
- ExceptionDescribe
- ExceptionClear
- FatalError
- NewGlobalRef
- DeleteGlobalRef
- DeleteLocalRef
- IsSameObject
- AllocObject
- NewObject
- NewObjectA
- GetObjectClass
- IsInstanceOf
- GetMethodID
- CallObjectMethod
- CallObjectMethodA
- CallBooleanMethod
- CallBooleanMethodA
- CallByteMethod
- CallByteMethodA
- CallCharMethod
- CallCharMethodA
- CallShortMethod
- CallShortMethodA
- CallIntMethod
- CallIntMethodA
- CallLongMethod
- CallLongMethodA
- CallFloatMethod
- CallFloatMethodA
- CallDoubleMethod
- CallDoubleMethodA
- CallVoidMethod
- CallVoidMethodA
- CallNonvirtualObjectMethod
- CallNonvirtualObjectMethodA
- CallNonvirtualBooleanMethod
- CallNonvirtualBooleanMethodA
- CallNonvirtualByteMethod
- CallNonvirtualByteMethodA
- CallNonvirtualCharMethod
- CallNonvirtualCharMethodA
- CallNonvirtualShortMethod
- CallNonvirtualShortMethodA
- CallNonvirtualIntMethod
- CallNonvirtualIntMethodA
- CallNonvirtualLongMethod
- CallNonvirtualLongMethodA
- CallNonvirtualFloatMethod
- CallNonvirtualFloatMethodA
- CallNonvirtualDoubleMethod
- CallNonvirtualDoubleMethodA
- CallNonvirtualVoidMethod
- CallNonvirtualVoidMethodA
- GetFieldID
- GetObjectField
- GetBooleanField
- GetByteField
- GetCharField
- GetShortField
- GetIntField
- GetLongField
- GetFloatField
- GetDoubleField
- SetObjectField
- SetBooleanField
- SetByteField
- SetCharField
- SetShortField
- SetIntField
- SetLongField
- SetFloatField
- SetDoubleField
- GetStaticMethodID
- CallStaticObjectMethod
- CallStaticObjectMethodA
- CallStaticBooleanMethod
- CallStaticBooleanMethodA
- CallStaticByteMethod
- CallStaticByteMethodA
- CallStaticCharMethod
- CallStaticCharMethodA
- CallStaticShortMethod
- CallStaticShortMethodA
- CallStaticIntMethod
- CallStaticIntMethodA
- CallStaticLongMethod
- CallStaticLongMethodA
- CallStaticFloatMethod
- CallStaticFloatMethodA
- CallStaticDoubleMethod
- CallStaticDoubleMethodA
- CallStaticVoidMethod
- CallStaticVoidMethodA
- GetStaticFieldID
- GetStaticObjectField
- GetStaticBooleanField
- GetStaticByteField
- GetStaticCharField
- GetStaticShortField
- GetStaticIntField
- GetStaticLongField
- GetStaticFloatField
- GetStaticDoubleField
- SetStaticObjectField
- SetStaticBooleanField
- SetStaticByteField
- SetStaticCharField
- SetStaticShortField
- SetStaticIntField
- SetStaticLongField
- SetStaticFloatField
- SetStaticDoubleField
- NewString
- GetStringLength
- GetStringChars
- NewStringUTF
- GetStringUTFLength
- GetStringUTFChars
- GetArrayLength
- NewObjectArray
- GetObjectArrayElement
- SetObjectArrayElement
- NewBooleanArray
- NewByteArray
- NewCharArray
- NewShortArray
- NewIntArray
- NewLongArray
- NewFloatArray
- NewDoubleArray
- GetBooleanArrayElements
- GetByteArrayElements
- GetCharArrayElements
- GetShortArrayElements
- GetIntArrayElements
- GetLongArrayElements
- GetFloatArrayElements
- GetDoubleArrayElements
- GetBooleanArrayRegion
- GetByteArrayRegion
- GetCharArrayRegion
- GetShortArrayRegion
- GetIntArrayRegion
- GetLongArrayRegion
- GetFloatArrayRegion
- GetDoubleArrayRegion
- SetBooleanArrayRegion
- SetByteArrayRegion
- SetCharArrayRegion
- SetShortArrayRegion
- SetIntArrayRegion
- SetLongArrayRegion
- SetFloatArrayRegion
- SetDoubleArrayRegion
- RegisterNatives
- UnregisterNatives
- MonitorEnter
- MonitorExit
- GetJavaVM
-);
-
-$VERSION = '0.2';
-
-sub AUTOLOAD {
- # This AUTOLOAD is used to 'autoload' constants from the constant()
- # XS function. If a constant is not found then control is passed
- # to the AUTOLOAD in AutoLoader.
-
- my $constname;
- ($constname = $AUTOLOAD) =~ s/.*:://;
- my $val = constant($constname, @_ ? $_[0] : 0);
- if ($! != 0) {
- if ($! =~ /Invalid/) {
- $AutoLoader::AUTOLOAD = $AUTOLOAD;
- goto &AutoLoader::AUTOLOAD;
- }
- else {
- croak "Your vendor has not defined JNI macro $constname";
- }
- }
- eval "sub $AUTOLOAD { $val }";
- goto &$AUTOLOAD;
-}
-
-bootstrap JNI $VERSION;
-
-if (not $JPL::_env_) {
- # Note that only Kaffe support only cares about what JNI::Config says
- use JNI::Config qw($KAFFE $LD_LIBRARY_PATH $CLASS_HOME $LIB_HOME $JAVA_LIB);
-
- # Win32 and Sun JDK pay attention to $ENV{JAVA_HOME}; Kaffe doesn't
- $ENV{JAVA_HOME} ||= "/usr/local/java";
-
- my ($arch, @CLASSPATH);
- if ($^O eq 'MSWin32' and (! $JNI::Config::KAFFE) ) {
-
- $arch = 'MSWin32' unless -d "$ENV{JAVA_HOME}/lib/$arch";
- @CLASSPATH = split(/;/, $ENV{CLASSPATH});
- @CLASSPATH = "." unless @CLASSPATH;
- push @CLASSPATH,
- "$ENV{JAVA_HOME}\\classes",
- "$ENV{JAVA_HOME}\\lib\\classes.zip",
- # MSR - added for JDK 1.3
- "$ENV{JAVA_HOME}\\jre\\lib\\rt.jar",
- # MSR - added to find Closer.class
- '.';
-
- $ENV{CLASSPATH} = join(';', @CLASSPATH);
- $ENV{THREADS_TYPE} ||= "green_threads";
-
- #$JAVALIB = "$ENV{JAVA_HOME}/lib/$arch/$ENV{THREADS_TYPE}";
- # MSR - changed above for JDK 1.3
- $JAVALIB = "$ENV{JAVA_HOME}/lib/";
-
- $ENV{LD_LIBRARY_PATH} .= ":$JAVALIB";
-
- push @JVM_ARGS, "classpath", $ENV{CLASSPATH};
- print "JVM_ARGS=@JVM_ARGS!\n" if $JPL::DEBUG;
- $JVM = GetJavaVM("$JAVALIB/javai.dll",@JVM_ARGS);
- } elsif ($^O eq 'MSWin32' and $JNI::Config::KAFFE) {
- croak "Kaffe is not yet supported on MSWin32 platform!";
- } elsif ($JNI::Config::KAFFE) {
- # The following code has to build a classpath for us. It would be
- # better if we could have *both* a classpath and a classhome, and
- # not have to "guess" at the classpath like this. We should be able
- # to send in, say, a classpath of ".", and classhome of
- # ".../share/kaffe", and have it build the right classpath. That
- # doesn't work. The function initClasspath() in findInJar.c in the
- # Kaffe source says: "Oh, you have a classpath, well forget
- # classhome!" This seems brain-dead to me. But, anyway, that's why
- # I don't use the classhome option on GetJavaVM. I have to build
- # the classpath by hand. *sigh*
- # -- bkuhn
-
- my $classpath = $ENV{CLASSPATH} || ".";
- my %classCheck;
- @classCheck{split(/\s*:\s*/, $classpath)} = 1;
- foreach my $jarFile (qw(Klasses.jar comm.jar pjava.jar
- tools.jar microsoft.jar rmi.jar)) {
- $classpath .= ":$JNI::Config::CLASS_HOME/$jarFile"
- unless defined $classCheck{"$JNI::Config::CLASS_HOME/$jarFile"};
- # Assume that if someone else already put these here, they knew
- # what they were doing and have the order right.
- }
- $classpath = ".:$classpath" unless defined $classCheck{"."};
-
- $ENV{CLASSPATH} = $classpath; # Not needed for GetJavaVM(), since
- # we pass it in as a JVM option, but
- # something else might expect it.
- # (also see comment above)
- print STDERR "bkuhn: JNI classpath=$classpath\n";
- unshift(@JVM_ARGS, "classpath", $classpath,
- "libraryhome", $JNI::Config::LIB_HOME);
-
- # The following line is useless; see comment above.
- # "classhome", $JNI::Config::CLASS_HOME);
-
- $JVM = GetJavaVM($JNI::Config::JAVA_LIB, @JVM_ARGS);
- } else {
- chop($arch = `uname -p`);
- chop($arch = `uname -m`) unless -d "$ENV{JAVA_HOME}/lib/$arch";
-
- @CLASSPATH = split(/:/, $ENV{CLASSPATH});
- @CLASSPATH = "." unless @CLASSPATH;
- push @CLASSPATH,
- "$ENV{JAVA_HOME}/classes",
- "$ENV{JAVA_HOME}/lib/classes.zip";
- $ENV{CLASSPATH} = join(':', @CLASSPATH);
-
- $ENV{THREADS_TYPE} ||= "green_threads";
-
- $JAVALIB = "$ENV{JAVA_HOME}/lib/$arch/$ENV{THREADS_TYPE}";
- $ENV{LD_LIBRARY_PATH} .= ":$JAVALIB";
- push @JVM_ARGS, "classpath", $ENV{CLASSPATH};
- print "JVM_ARGS=@JVM_ARGS!\n" if $JPL::DEBUG;
- $JVM = GetJavaVM("$JAVALIB/libjava.so",@JVM_ARGS);
- }
-}
-
-1;
-__END__
-
-=head1 NAME
-
-JNI - Perl encapsulation of the Java Native Interface
-
-=head1 SYNOPSIS
-
- use JNI;
-
-=head1 DESCRIPTION
-
-=head1 Exported constants
-
- JNI_ABORT
- JNI_COMMIT
- JNI_ERR
- JNI_FALSE
- JNI_H
- JNI_OK
- JNI_TRUE
-
-
-=head1 AUTHOR
-
-Copyright 1998, O'Reilly & Associates, Inc.
-
-This package may be copied under the same terms as Perl itself.
-
-=head1 SEE ALSO
-
-perl(1).
-
-=cut