nacho 2002/06/23 15:48:02 Modified: jk/java/org/apache/jk/apr TomcatStarter.java jk/native2/common jk_worker_jni.c Log: * changed the JNI Java starter, to pass 2 filenames for stdout and stderr log, in addition to Args one.. Revision Changes Path 1.8 +10 -5 jakarta-tomcat-connectors/jk/java/org/apache/jk/apr/TomcatStarter.java Index: TomcatStarter.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/apr/TomcatStarter.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- TomcatStarter.java 10 May 2002 23:34:12 -0000 1.7 +++ TomcatStarter.java 23 Jun 2002 22:48:02 -0000 1.8 @@ -23,14 +23,19 @@ // If someone has time - we can also guess the classpath and do other // fancy guessings. - public static void main( String args[] ) { + public static void main( String args[], String stdout, String stderr ) { System.err.println("TomcatStarter: main()"); try { - System.setOut( System.err ); - System.err.println("TomcatStarter: err"); - System.out.println("TomcatStarter: out"); - + try{ + if( stdout!=null ){ + System.setOut( new PrintStream(new FileOutputStream(stdout))); + } + if( stderr!=null ){ + System.setErr( new PrintStream(new FileOutputStream(stderr))); + } + }catch (Throwable th){ + } AprImpl.jniMode(); // Find the class 1.19 +21 -7 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.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- jk_worker_jni.c 10 Jun 2002 21:55:06 -0000 1.18 +++ jk_worker_jni.c 23 Jun 2002 22:48:02 -0000 1.19 @@ -83,6 +83,8 @@ jclass jk_java_bridge_class; jmethodID jk_main_method; char *className; + char *stdout_name; + char *stderr_name; /* Hack to allow multiple 'options' for the class name */ char **classNameOptions; char **args; @@ -100,7 +102,7 @@ p->jk_main_method = (*jniEnv)->GetStaticMethodID(jniEnv, p->jk_java_bridge_class, "main", - "([Ljava/lang/String;)V"); + "([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V"); if(!p->jk_main_method) { @@ -122,20 +124,24 @@ static int JK_METHOD jk2_jni_worker_setProperty(jk_env_t *env, jk_bean_t *mbean, char *name, void *valueP) { - jk_worker_t *pThis=mbean->object; + jk_worker_t *_this=mbean->object; char *value=valueP; jni_worker_data_t *jniWorker; int mem_config = 0; - if(! pThis || ! pThis->worker_private) { + if(! _this || ! _this->worker_private) { env->l->jkLog(env, env->l, JK_LOG_ERROR, "In validate, assert failed - invalid parameters\n"); return JK_ERR; } - jniWorker = pThis->worker_private; + jniWorker = _this->worker_private; - if( strcmp( name, "class" )==0 ) { + if( strcmp( name, "stdout" )==0 ) { + jniWorker->stdout_name = value; + } else if( strcmp( name, "stderr" )==0 ) { + jniWorker->stderr_name = value; + } else if( strcmp( name, "class" )==0 ) { if( jniWorker->className != NULL ) { int i; for( i=0; i<4; i++ ) { @@ -172,7 +178,6 @@ jclass jstringClass; jarray jargs; int i=0; - if(! _this || ! _this->worker_private) { env->l->jkLog(env, env->l, JK_LOG_EMERG, "In init, assert failed - invalid parameters\n"); @@ -201,6 +206,13 @@ "workerJni.init() Can't attach to VM\n"); return JK_ERR; } + + if(jniWorker->stdout_name) { + stdout_name = (*jniEnv)->NewStringUTF(jniEnv, jniWorker->stdout_name); + } + if(jniWorker->stderr_name) { + stderr_name = (*jniEnv)->NewStringUTF(jniEnv, jniWorker->stderr_name); + } jniWorker->jk_java_bridge_class = (*jniEnv)->FindClass(jniEnv, jniWorker->className ); @@ -283,7 +295,7 @@ (*jniEnv)->CallStaticVoidMethod(jniEnv, jniWorker->jk_java_bridge_class, jniWorker->jk_main_method, - jargs); + jargs,stdout_name,stderr_name); vm->detach(env, vm); @@ -365,6 +377,8 @@ jniData->args = pool->calloc( env, pool, 64 * sizeof( char *)); jniData->nArgs =0; + jniData->stdout_name= NULL; + jniData->stderr_name= NULL; result->init = jk2_jni_worker_init; result->destroy = jk2_jni_worker_destroy;
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>