You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by bi...@apache.org on 2004/03/18 05:20:20 UTC
cvs commit: jakarta-commons/daemon/src/native/nt/procrun procrun.c
billbarker 2004/03/17 20:20:19
Modified: daemon/src/native/nt/procrun procrun.c
Log:
Allow the ability to pass multiple arguments to the startup and shutdown methods.
Based on patch Submitted By: Ryan M. Graham <ry...@ELOQUENT-SYSTEMS.com>
Revision Changes Path
1.15 +31 -12 jakarta-commons/daemon/src/native/nt/procrun/procrun.c
Index: procrun.c
===================================================================
RCS file: /home/cvs/jakarta-commons/daemon/src/native/nt/procrun/procrun.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- procrun.c 11 Feb 2004 06:52:24 -0000 1.14
+++ procrun.c 18 Mar 2004 04:20:19 -0000 1.15
@@ -923,7 +923,11 @@
if (p) {
*p = '\0';
++p;
- proc->java.start_param = pool_strdup(proc->pool, p);
+ proc->java.start_param = pool_calloc(proc->pool, strlen(p)+2);
+ p = strcpy(proc->java.start_param, p);
+ while((p = strchr(p, ';')) != NULL) {
+ *p++ = '\0';
+ }
}
}
}
@@ -942,7 +946,11 @@
if (p) {
*p = '\0';
++p;
- proc->java.stop_param = pool_strdup(proc->pool, p);
+ proc->java.stop_param = pool_calloc(proc->pool, strlen(p)+2);
+ p = strcpy(proc->java.stop_param, p);
+ while((p = strchr(p, ';')) != NULL) {
+ *p++ = '\0';
+ }
}
}
}
@@ -1261,9 +1269,14 @@
strclass = (*env)->FindClass(env, "java/lang/String");
if (proc->java.stop_param) {
- jstring arg = (*env)->NewStringUTF(env, proc->java.stop_param);
- jargs = (*env)->NewObjectArray(env, 1, strclass, NULL);
- (*env)->SetObjectArrayElement(env, jargs, 0, arg);
+ char opts[64];
+ int nopts = make_array(proc->java.stop_param, opts, 60, proc);
+ int i;
+ jargs = (*env)->NewObjectArray(env, nopts, strclass, NULL);
+ for(i=0; i < nopts; i++) {
+ jstring arg = (*env)->NewStringUTF(env, opts[i]);
+ (*env)->SetObjectArrayElement(env, jargs, i, arg);
+ }
}
(*env)->CallStaticVoidMethod(env,
proc->java.stop_bridge,
@@ -1310,7 +1323,7 @@
jclass strclass;
jarray jargs = NULL;
char *cp;
- char *opts[32];
+ char *opts[64];
int optn, i, err;
vm_args11.version = JNI_VERSION_1_2;
@@ -1329,7 +1342,7 @@
if(proc->service.path != NULL) {
SetCurrentDirectory(proc->service.path);
}
- optn = make_array(proc->java.opts, opts, 30, proc);
+ optn = make_array(proc->java.opts, opts, 60, proc);
for (i = 0; i < optn; i++)
options[i].optionString = remove_quotes(opts[i]);
cp = (char *)pool_alloc(proc->pool, strlen("-Djava.class.path=") +
@@ -1404,9 +1417,12 @@
}
strclass = (*env)->FindClass(env, "java/lang/String");
if (proc->java.start_param) {
- jstring arg = (*env)->NewStringUTF(env, proc->java.start_param);
- jargs = (*env)->NewObjectArray(env, 1, strclass, NULL);
- (*env)->SetObjectArrayElement(env, jargs, 0, arg);
+ optn = make_array(proc->java.start_param, opts, 60, proc);
+ jargs = (*env)->NewObjectArray(env, optn, strclass, NULL);
+ for(i=0; i < optn; i++) {
+ jstring arg = (*env)->NewStringUTF(env, opts[i]);
+ (*env)->SetObjectArrayElement(env, jargs, i, arg);
+ }
}
(*env)->CallStaticVoidMethod(env,
proc->java.start_bridge,
@@ -1701,8 +1717,11 @@
strcat(nargw, " ");
strcat(nargw, javaClass);
if (javaParam) {
- strcat(nargw, " ");
- strcat(nargw, javaParam);
+ j = make_array(javaParam, opts, 60, env->m);
+ for(i=0; i < j; i++) {
+ strcat(nargw, " ");
+ strcat(nargw, opts[i]);
+ }
}
env->m->argw = nargw;
program = env->m->java.jbin;
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org