cvs: /php4/sapi/servlet Makefile.am README config.h.stub config.m4 servlet.c servlet.dsp servlet.java web.xml /php4/ext/java Makefile.am config.m4
java.c java.dsp reflect.java /php4/ext/standard info.c

From: Date: Mon, 29 Nov 1999 15:36:57 +0000
Subject: cvs: /php4/sapi/servlet Makefile.am README config.h.stub config.m4 servlet.c servlet.dsp servlet.java web.xml /php4/ext/java Makefile.am config.m4
java.c java.dsp reflect.java /php4/ext/standard info.c
Groups: php.version4 
Request: Send a blank email to php-version4+get-7048@lists.php.net to get a copy of this message
rubys Mon Nov 29 10:36:57 1999 EDT Added files: /php4/sapi/servlet Makefile.am README config.h.stub config.m4 servlet.c servlet.dsp servlet.java web.xml Modified files: /php4/ext/java Makefile.am config.m4 java.c java.dsp reflect.java /php4/ext/standard info.c Log: Initial alpha-level of sapi/servlet. See README for details. Index: php4/ext/java/Makefile.am diff -u php4/ext/java/Makefile.am:1.1 php4/ext/java/Makefile.am:1.2 --- php4/ext/java/Makefile.am:1.1 Tue Nov 9 07:02:19 1999 +++ php4/ext/java/Makefile.am Mon Nov 29 10:36:22 1999 @@ -1,4 +1,4 @@ -# $Id: Makefile.am,v 1.1 1999/11/09 12:02:19 rubys Exp $ +# $Id: Makefile.am,v 1.2 1999/11/29 15:36:22 rubys Exp $ SRC=java.c @@ -16,9 +16,10 @@ @test -e net || mkdir net @test -e net/php || mkdir net/php @cp reflect.java net/php + @echo library=php4>net/php/reflect.properties javac net/php/reflect.java @test ! -f reflect.class || mv reflect.class net/php # bug in KJC javac - zip -q0 php_java.jar net/php/*.class + zip -q0 php_java.jar net/php/*.class net/php/*.properties @rm net/php/reflect.* @rmdir net/php @rmdir net Index: php4/ext/java/config.m4 diff -u php4/ext/java/config.m4:1.2 php4/ext/java/config.m4:1.3 --- php4/ext/java/config.m4:1.2 Tue Nov 9 12:32:04 1999 +++ php4/ext/java/config.m4 Mon Nov 29 10:36:22 1999 @@ -1,4 +1,4 @@ -# $Id: config.m4,v 1.2 1999/11/09 17:32:04 ssb Exp $ +# $Id: config.m4,v 1.3 1999/11/29 15:36:22 rubys Exp $ # config.m4 for extension java AC_MSG_CHECKING(for Java support) @@ -14,9 +14,11 @@ if test -d /usr/local/lib/kaffe; then JAVA_CFLAGS="-DKAFFE" JAVA_INCLUDE=-I/usr/local/include/kaffe + JAVA_CLASSPATH=/usr/local/share/kaffe/Klasses.jar elif test -d /usr/lib/kaffe; then JAVA_CFLAGS="-DKAFFE" JAVA_INCLUDE=-I/usr/include/kaffe + JAVA_CLASSPATH=/usr/share/kaffe/Klasses.jar else AC_MSG_RESULT(no) AC_MSG_ERROR(unable to find Java VM libraries) @@ -26,6 +28,8 @@ JAVA_INCLUDE="-I$withval/include" test -f $withval/lib/classes.zip && JAVA_CFLAGS="-DJNI_11" test -f $withval/lib/jvm.jar && JAVA_CFLAGS="-DJNI_12" + test -f $withval/lib/classes.zip && JAVA_CLASSPATH="$withval/lib/classes.zip" + test -f $withval/lib/jvm.jar && JAVA_CLASSPATH="$withval/lib/jvm.jar" for i in $JAVA_INCLUDE/*; do test -f $i/jni_md.h && JAVA_INCLUDE="$JAVA_INCLUDE $i" done @@ -35,6 +39,8 @@ test -f $i/jni_md.h && JAVA_INCLUDE="$JAVA_INCLUDE -I$i" test -f $i/classes.zip && JAVA_CFLAGS="-DJNI_11" test -f $i/jvm.jar && JAVA_CFLAGS="-DJNI_12" + test -f $i/classes.zip && JAVA_CLASSPATH="$i/classes.zip" + test -f $i/jvm.jar && JAVA_CLASSPATH="$i/jvm.jar" done if test -z "$JAVA_INCLUDE"; then AC_MSG_RESULT(no) @@ -55,6 +61,7 @@ ]) AC_SUBST(JAVA_CFLAGS) +AC_SUBST(JAVA_CLASSPATH) AC_SUBST(JAVA_INCLUDE) AC_SUBST(JAVA_SHARED) AC_SUBST(JAVA_LFLAGS) Index: php4/ext/java/java.c diff -u php4/ext/java/java.c:1.2 php4/ext/java/java.c:1.3 --- php4/ext/java/java.c:1.2 Sun Nov 21 05:45:00 1999 +++ php4/ext/java/java.c Mon Nov 29 10:36:22 1999 @@ -255,8 +255,8 @@ arg=0; } (*jenv)->SetObjectArrayElement(jenv, result, i, arg); - if (argv[i]->type != IS_OBJECT) - (*jenv)->DeleteLocalRef(jenv, arg); + if (argv[i]->type != IS_OBJECT) + (*jenv)->DeleteLocalRef(jenv, arg); } return result; } @@ -271,6 +271,7 @@ return 0; } + /***************************************************************************/ /* @@ -290,9 +291,9 @@ pval **arguments = (pval **) emalloc(sizeof(pval *)*arg_count); getParametersArray(ht, arg_count, arguments); - if (iniUpdated && jvm) jvm_destroy(); - if (!jvm) jvm_create(); - if (!jvm) return; + if (iniUpdated && jenv) jvm_destroy(); + if (!jenv) jvm_create(); + if (!jenv) return; if (!strcmp("java",function_name->element.value.str.val)) { @@ -399,7 +400,7 @@ /***************************************************************************/ static void _php3_java_destructor(void *jobject) { - (*jenv)->DeleteGlobalRef(jenv, jobject); + if (jenv) (*jenv)->DeleteGlobalRef(jenv, jobject); } PHP_MINIT_FUNCTION(java) { @@ -448,7 +449,7 @@ /***************************************************************************/ JNIEXPORT void JNICALL Java_net_php_reflect_setResultFromString - (JNIEnv *jenv, jobject self, jlong result, jstring value) + (JNIEnv *jenv, jclass self, jlong result, jstring value) { const char *valueAsUTF = (*jenv)->GetStringUTFChars(jenv, value, 0); pval *presult = (pval*)(long)result; @@ -460,7 +461,7 @@ } JNIEXPORT void JNICALL Java_net_php_reflect_setResultFromLong - (JNIEnv *jenv, jobject self, jlong result, jlong value) + (JNIEnv *jenv, jclass self, jlong result, jlong value) { pval *presult = (pval*)(long)result; presult->type=IS_LONG; @@ -468,7 +469,7 @@ } JNIEXPORT void JNICALL Java_net_php_reflect_setResultFromDouble - (JNIEnv *jenv, jobject self, jlong result, jdouble value) + (JNIEnv *jenv, jclass self, jlong result, jdouble value) { pval *presult = (pval*)(long)result; presult->type=IS_DOUBLE; @@ -476,7 +477,7 @@ } JNIEXPORT void JNICALL Java_net_php_reflect_setResultFromBoolean - (JNIEnv *jenv, jobject self, jlong result, jboolean value) + (JNIEnv *jenv, jclass self, jlong result, jboolean value) { pval *presult = (pval*)(long)result; presult->type=IS_BOOL; @@ -484,7 +485,7 @@ } JNIEXPORT void JNICALL Java_net_php_reflect_setResultFromObject - (JNIEnv *jenv, jobject self, jlong result, jobject value) + (JNIEnv *jenv, jclass self, jlong result, jobject value) { /* wrapper the java object in a pval object */ pval *presult = (pval*)(long)result; @@ -510,9 +511,18 @@ } JNIEXPORT void JNICALL Java_net_php_reflect_setException - (JNIEnv *jenv, jobject self, jlong result, jstring value) + (JNIEnv *jenv, jclass self, jlong result, jstring value) { pval *presult = (pval*)(long)result; Java_net_php_reflect_setResultFromString(jenv, self, result, value); presult->type=IS_EXCEPTION; +} + +JNIEXPORT void JNICALL Java_net_php_reflect_setEnv + (JNIEnv *newJenv, jclass self) +{ + iniUpdated=0; + jenv=newJenv; + if (!self) self = (*jenv)->FindClass(jenv, "net/php/reflect"); + php_reflect = (*jenv)->NewGlobalRef(jenv, self); } Index: php4/ext/java/java.dsp diff -u php4/ext/java/java.dsp:1.1 php4/ext/java/java.dsp:1.2 --- php4/ext/java/java.dsp:1.1 Tue Nov 9 07:02:19 1999 +++ php4/ext/java/java.dsp Mon Nov 29 10:36:23 1999 @@ -177,8 +177,9 @@ if not exist net mkdir net if not exist net\php mkdir net\php copy $(InputPath) net\php > nul + echo library=php_java>net\php\reflect.properties $(JAVA_HOME)\bin\javac net\php\reflect.java - $(JAVA_HOME)\bin\jar c0f $(OutDir)\php_java.jar net\php\*.class + $(JAVA_HOME)\bin\jar c0f $(OutDir)\php_java.jar net\php\*.class net\php\*.properties erase net\php\reflect.* rmdir net\php rmdir net @@ -196,8 +197,9 @@ if not exist net mkdir net if not exist net\php mkdir net\php copy $(InputPath) net\php > nul + echo library=php_java>net\php\reflect.properties $(JAVA_HOME)\bin\javac -g net\php\reflect.java - $(JAVA_HOME)\bin\jar c0f $(OutDir)\php_java.jar net\php\*.class + $(JAVA_HOME)\bin\jar c0f $(OutDir)\php_java.jar net\php\*.class net\php\*.properties erase net\php\reflect.* rmdir net\php rmdir net @@ -215,8 +217,9 @@ if not exist net mkdir net if not exist net\php mkdir net\php copy $(InputPath) net\php > nul + echo library=php_java>net\php\reflect.properties $(JAVA_HOME)\bin\javac -g net\php\reflect.java - $(JAVA_HOME)\bin\jar c0f $(OutDir)\php_java.jar net\php\*.class + $(JAVA_HOME)\bin\jar c0f $(OutDir)\php_java.jar net\php\*.class net\php\*.properties erase net\php\reflect.* rmdir net\php rmdir net @@ -234,8 +237,9 @@ if not exist net mkdir net if not exist net\php mkdir net\php copy $(InputPath) net\php > nul + echo library=php_java>net\php\reflect.properties $(JAVA_HOME)\bin\javac net\php\reflect.java - $(JAVA_HOME)\bin\jar c0f $(OutDir)\php_java.jar net\php\*.class + $(JAVA_HOME)\bin\jar c0f $(OutDir)\php_java.jar net\php\*.class net\php\*.properties erase net\php\reflect.* rmdir net\php rmdir net Index: php4/ext/java/reflect.java diff -u php4/ext/java/reflect.java:1.1 php4/ext/java/reflect.java:1.2 --- php4/ext/java/reflect.java:1.1 Tue Nov 9 07:02:19 1999 +++ php4/ext/java/reflect.java Mon Nov 29 10:36:23 1999 @@ -19,11 +19,21 @@ package net.php; import java.lang.reflect.*; +import java.util.ResourceBundle; import java.beans.*; class reflect { - static { System.loadLibrary("php_java"); } + static { loadLibrary("reflect"); } + + protected static void loadLibrary(String property) { + try { + ResourceBundle bundle = ResourceBundle.getBundle("net.php."+property); + System.loadLibrary(bundle.getString("library")); + } catch (Exception e) { + e.printStackTrace(); + } + } // // Native methods @@ -34,6 +44,7 @@ private static native void setResultFromBoolean(long result, boolean value); private static native void setResultFromObject(long result, Object value); private static native void setException(long result, String value); + public static native void setEnv(); // // Helper routines which encapsulate the native methods Index: php4/ext/standard/info.c diff -u php4/ext/standard/info.c:1.43 php4/ext/standard/info.c:1.44 --- php4/ext/standard/info.c:1.43 Wed Nov 24 12:56:31 1999 +++ php4/ext/standard/info.c Mon Nov 29 10:36:24 1999 @@ -309,6 +309,7 @@ CREDIT_LINE("ISAPI SAPI Module", "Andi Gutmans, Zeev Suraski"); CREDIT_LINE("CGI SAPI Module", "Rasmus Lerdorf, Stig Bakken"); CREDIT_LINE("AOLserver SAPI Module", "Sascha Schumann"); + CREDIT_LINE("Servlet SAPI Module", "Sam Ruby"); CREDIT_LINE("Overall Work", "Thies C. Arntzen, Stig Bakken, Shane Caraveo, \ Rasmus Lerdorf, Sascha Schumann, Zeev Suraski, Andrei Zmievski, \ and others");

« previous php.version4 (#7048) next »