You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by mt...@apache.org on 2010/10/17 13:06:15 UTC
svn commit: r1023457 - in /commons/proper/daemon/trunk/src:
java/org/apache/commons/daemon/support/DaemonLoader.java
native/unix/native/java.c
Author: mturk
Date: Sun Oct 17 11:06:15 2010
New Revision: 1023457
URL: http://svn.apache.org/viewvc?rev=1023457&view=rev
Log:
Pass few handy things as system properties
Modified:
commons/proper/daemon/trunk/src/java/org/apache/commons/daemon/support/DaemonLoader.java
commons/proper/daemon/trunk/src/native/unix/native/java.c
Modified: commons/proper/daemon/trunk/src/java/org/apache/commons/daemon/support/DaemonLoader.java
URL: http://svn.apache.org/viewvc/commons/proper/daemon/trunk/src/java/org/apache/commons/daemon/support/DaemonLoader.java?rev=1023457&r1=1023456&r2=1023457&view=diff
==============================================================================
--- commons/proper/daemon/trunk/src/java/org/apache/commons/daemon/support/DaemonLoader.java (original)
+++ commons/proper/daemon/trunk/src/java/org/apache/commons/daemon/support/DaemonLoader.java Sun Oct 17 11:06:15 2010
@@ -52,6 +52,12 @@ public final class DaemonLoader
" (build " +
System.getProperty("java.vm.version") +
", " + System.getProperty("java.vm.info") + ")");
+ System.err.println("commons daemon version \"" +
+ System.getProperty("commons.daemon.version") + "\"");
+ System.err.println("commons daemon process (id: " +
+ System.getProperty("commons.daemon.process.id") +
+ ", parent: " +
+ System.getProperty("commons.daemon.process.parent") + ")");
}
public static boolean check(String cn)
Modified: commons/proper/daemon/trunk/src/native/unix/native/java.c
URL: http://svn.apache.org/viewvc/commons/proper/daemon/trunk/src/native/unix/native/java.c?rev=1023457&r1=1023456&r2=1023457&view=diff
==============================================================================
--- commons/proper/daemon/trunk/src/native/unix/native/java.c (original)
+++ commons/proper/daemon/trunk/src/native/unix/native/java.c Sun Oct 17 11:06:15 2010
@@ -20,6 +20,7 @@
#ifdef OS_CYGWIN
typedef long long __int64;
#endif
+#include <unistd.h>
#include <jni.h>
#ifdef CHARSET_EBCDIC
@@ -125,7 +126,7 @@ bool java_init(arg_data *args, home_data
char shutdownparams[] = "(Z)V";
char failedmethod[] = "failed";
char failedparams[] = "(Ljava/lang/String;)V";
-
+ char daemonprocid[64];
/* Decide WHAT virtual machine we need to use */
libf = java_library(args, data);
if (libf == NULL) {
@@ -227,14 +228,29 @@ bool java_init(arg_data *args, home_data
}
#endif
arg.ignoreUnrecognized = FALSE;
- arg.nOptions = args->onum;
- arg.nOptions++; /* Add abort code */
+ arg.nOptions = args->onum + 4; /* pid, ppid and abort */
opt = (JavaVMOption *) malloc(arg.nOptions * sizeof(JavaVMOption));
for (x = 0; x < args->onum; x++) {
opt[x].optionString = strdup(args->opts[x]);
jsvc_xlate_to_ascii(opt[x].optionString);
opt[x].extraInfo = NULL;
}
+ /* Add our daemon process id */
+ snprintf(daemonprocid, sizeof(daemonprocid),
+ "-Dcommons.daemon.process.id=%d", (int)getpid());
+ opt[x].optionString = strdup(daemonprocid);
+ jsvc_xlate_to_ascii(opt[x].optionString);
+ opt[x++].extraInfo = NULL;
+ snprintf(daemonprocid, sizeof(daemonprocid),
+ "-Dcommons.daemon.process.parent=%d", (int)getppid());
+ opt[x].optionString = strdup(daemonprocid);
+ jsvc_xlate_to_ascii(opt[x].optionString);
+ opt[x++].extraInfo = NULL;
+ snprintf(daemonprocid, sizeof(daemonprocid),
+ "-Dcommons.daemon.version=%s", JSVC_VERSION_STRING);
+ opt[x].optionString = strdup(daemonprocid);
+ jsvc_xlate_to_ascii(opt[x].optionString);
+ opt[x++].extraInfo = NULL;
opt[x].optionString = strdup("abort");
jsvc_xlate_to_ascii(opt[x].optionString);
opt[x].extraInfo = (void *)java_abort123;
@@ -246,7 +262,7 @@ bool java_init(arg_data *args, home_data
log_debug("| Version: %#08x", arg.version);
log_debug("| Ignore Unrecognized Arguments: %s",
arg.ignoreUnrecognized == TRUE ? "True" : "False");
- log_debug("| Extra options: %d", arg.nOptions);
+ log_debug("| Extra options: %d", args->onum);
for (x = 0; x < args->onum; x++) {
jsvc_xlate_from_ascii(opt[x].optionString);
@@ -255,6 +271,15 @@ bool java_init(arg_data *args, home_data
jsvc_xlate_to_ascii(opt[x].optionString);
}
log_debug("+-------------------------------------------------------");
+ log_debug("| Internal options: %d", arg.nOptions - args->onum);
+
+ for (; x < arg.nOptions; x++) {
+ jsvc_xlate_from_ascii(opt[x].optionString);
+ log_debug("| \"%s\" (0x%08x)", opt[x].optionString,
+ opt[x].extraInfo);
+ jsvc_xlate_to_ascii(opt[x].optionString);
+ }
+ log_debug("+-------------------------------------------------------");
}
/* And finally create the Java VM */
@@ -362,7 +387,6 @@ bool java_load(arg_data *args)
jsvc_xlate_to_ascii(lang);
stringClass = (*env)->FindClass(env, lang);
- jsvc_xlate_from_ascii(lang);
if (stringClass == NULL) {
log_error("Cannot find class java/lang/String");
return false;
@@ -377,8 +401,8 @@ bool java_load(arg_data *args)
for (x = 0; x < args->anum; x++) {
jsvc_xlate_to_ascii(args->args[x]);
currentArgument = (*env)->NewStringUTF(env, args->args[x]);
- jsvc_xlate_from_ascii(args->args[x]);
if (currentArgument == NULL) {
+ jsvc_xlate_from_ascii(args->args[x]);
log_error("Cannot create string for argument %s", args->args[x]);
return false;
}