mturk 2002/10/15 06:59:49 Modified: jk/native2/common jk_vm_default.c Log: Add the classpath option to the vm: Revision Changes Path 1.22 +35 -9 jakarta-tomcat-connectors/jk/native2/common/jk_vm_default.c Index: jk_vm_default.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_vm_default.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- jk_vm_default.c 8 Jul 2002 13:35:02 -0000 1.21 +++ jk_vm_default.c 15 Oct 2002 13:59:49 -0000 1.22 @@ -424,10 +424,11 @@ jk_map_t *props=jkvm->properties; JavaVMInitArgs vm_args; JNIEnv *penv; - JavaVMOption options[100]; + JavaVMOption options[JK2_MAXOPTIONS * 2]; JavaVM *jvm; - int optn = 0, err; - + int optn = 0, err, classn = 0, classl = 0, i; + char *classpath = NULL; + /** Make sure we have the vm dll */ if( jkvm->jvm_dll_path ==NULL || ! jk2_file_exists(env, jkvm->jvm_dll_path )) { @@ -486,14 +487,32 @@ vm_args.version = JNI_VERSION_1_2; vm_args.options = options; - + for (classn = 0; classn < jkvm->nClasspath; classn++) + classl += strlen(jkvm->classpath[classn]); + if (classl) { + classpath = jkvm->pool->calloc(env, jkvm->pool, + classl + classn + sizeof("-Djava.class.path=")); + strcpy(classpath, "-Djava.class.path="); + strcat(classpath, jkvm->classpath[0]); + for (i = 1; i < classn; i++) { + strcat(classpath, ";"); + strcat(classpath, jkvm->classpath[i]); + } + } while(jkvm->options[optn]) { - env->l->jkLog(env, env->l, JK_LOG_INFO, - "vm.openJvm2() Option: %s\n", jkvm->options[optn]); + if (jkvm->mbean->debug > 1) + env->l->jkLog(env, env->l, JK_LOG_DEBUG, + "vm.openJvm2() Option: %s\n", jkvm->options[optn]); /* Pass it "as is" */ options[optn].optionString = jkvm->options[optn]; optn++; } + if (classpath) { + if (jkvm->mbean->debug > 1) + env->l->jkLog(env, env->l, JK_LOG_DEBUG, + "vm.openJvm2() Classpath: %s\n", classpath); + options[optn++].optionString = classpath; + } vm_args.nOptions = optn; @@ -557,10 +576,18 @@ char *value=valueP; if( strcmp( name, "OPT" )==0 ) { - jkvm->options[jkvm->nOptions]=value; - jkvm->nOptions++; + if (jkvm->nOptions < JK2_MAXOPTIONS) { + jkvm->options[jkvm->nOptions]=value; + jkvm->nOptions++; + } } else if( strcmp( name, "JVM" )==0 ) { jkvm->jvm_dll_path=value; + } + else if( strcmp( name, "classpath" )==0 ) { + if (jkvm->nClasspath < JK2_MAXOPTIONS) { + jkvm->classpath[jkvm->nClasspath]=value; + jkvm->nClasspath++; + } } else { return JK_ERR; } @@ -580,7 +607,6 @@ jkvm->pool=pool; jkvm->jvm_dll_path = NULL; - jkvm->options = pool->calloc( env, pool, 64 * sizeof( char *)); jkvm->nOptions =0; jkvm->init=jk2_vm_initVM;
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>