costin 2002/06/10 14:27:39 Modified: jk/native2/common jk_worker_jni.c Log: Second part of the patch. Revision Changes Path 1.16 +27 -2 jakarta-tomcat-connectors/jk/native2/common/jk_worker_jni.c Index: jk_worker_jni.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_worker_jni.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- jk_worker_jni.c 16 May 2002 23:48:27 -0000 1.15 +++ jk_worker_jni.c 10 Jun 2002 21:27:39 -0000 1.16 @@ -71,7 +71,9 @@ #include "jk_vm.h" #include "jk_registry.h" -#include "jni.h" +#include <jni.h> + +extern jint jk_jni_aprImpl_registerNatives(JNIEnv *, jclass); /* default only, will be configurable */ #define JAVA_BRIDGE_CLASS_NAME ("org/apache/jk/apr/TomcatStarter") @@ -88,7 +90,6 @@ typedef struct jni_worker_data jni_worker_data_t; - /** -------------------- Startup -------------------- */ /** Static methods - much easier... @@ -166,6 +167,7 @@ char *str_config = NULL; jk_map_t *props=_this->workerEnv->initData; jk_vm_t *vm=_this->workerEnv->vm; + jclass aprImplClass; jclass jstringClass; jarray jargs; int i=0; @@ -228,6 +230,29 @@ env->l->jkLog(env, env->l, JK_LOG_INFO, "Loaded %s\n", jniWorker->className); +/* Instead of loading mod_jk2.so from java, use the JNI RegisterGlobals. + XXX Need the way to customize JAVA_BRIDGE_CLASS_APRI, but since + it's hardcoded in JniHandler.java doesn't matter for now. +*/ + aprImplClass = + (*jniEnv)->FindClass(jniEnv, JAVA_BRIDGE_CLASS_APRI ); + + if( aprImplClass == NULL ) { + env->l->jkLog(env, env->l, JK_LOG_ERROR, + "Can't find class %s\n", JAVA_BRIDGE_CLASS_APRI ); + /* [V] the detach here may segfault on 1.1 JVM... */ + vm->detach(env, vm); + return JK_ERR; + } + rc = jk_jni_aprImpl_registerNatives( jniEnv, aprImplClass); + + if( rc != 0) { + env->l->jkLog(env, env->l, JK_LOG_ERROR, + "Can't register native functions for %s \n", JAVA_BRIDGE_CLASS_APRI ); + vm->detach(env, vm); + return JK_ERR; + } + rc=jk2_get_method_ids(env, jniWorker, jniEnv); if( rc!=JK_OK ) { env->l->jkLog(env, env->l, JK_LOG_EMERG,
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>