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]>

Reply via email to