You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ma...@apache.org on 2017/11/06 23:37:58 UTC

svn commit: r1814446 - /commons/proper/daemon/trunk/src/native/windows/src/javajni.c

Author: markt
Date: Mon Nov  6 23:37:58 2017
New Revision: 1814446

URL: http://svn.apache.org/viewvc?rev=1814446&view=rev
Log:
Add code to detect if Java 9 is being used in jvm mode and include a place-holder for where the Java 9 options will need to be added.

Modified:
    commons/proper/daemon/trunk/src/native/windows/src/javajni.c

Modified: commons/proper/daemon/trunk/src/native/windows/src/javajni.c
URL: http://svn.apache.org/viewvc/commons/proper/daemon/trunk/src/native/windows/src/javajni.c?rev=1814446&r1=1814445&r2=1814446&view=diff
==============================================================================
--- commons/proper/daemon/trunk/src/native/windows/src/javajni.c (original)
+++ commons/proper/daemon/trunk/src/native/windows/src/javajni.c Mon Nov  6 23:37:58 2017
@@ -29,6 +29,13 @@
 
 #define JNI_VERSION_DEFAULT JNI_VERSION_1_6
 
+/* Need to be able to detect Java 9 without requiring compilation against Java 9
+ * headers.
+ */
+#ifndef JNI_VERSION_9
+#define JNI_VERSION_9  0x00090000
+#endif
+
 /* Standard jvm.dll prototypes
  * since only single jvm can exist per process
  * make those global
@@ -613,6 +620,20 @@ static LPSTR __apxEvalClasspath(APXHANDL
         return pCpy;
 }
 
+BOOL
+__apxIsJavaNine()
+{
+    JavaVMInitArgs  vmArgs;
+    vmArgs.version = JNI_VERSION_9;
+    /* Returns an error if requested version is not supported */
+    if (DYNLOAD_FPTR(JNI_GetDefaultJavaVMInitArgs)(&vmArgs) != JNI_OK) {
+        return FALSE;
+    }
+    else {
+        return TRUE;
+    }
+}
+
 /* ANSI version only */
 BOOL
 apxJavaInitialize(APXHANDLE hJava, LPCSTR szClassPath,
@@ -624,6 +645,7 @@ apxJavaInitialize(APXHANDLE hJava, LPCST
     JavaVMOption    *lpJvmOptions;
     DWORD           i, nOptions, sOptions = 0;
     BOOL            rv = FALSE;
+
     if (hJava->dwType != APXHANDLE_TYPE_JVM)
         return FALSE;
 
@@ -664,6 +686,10 @@ apxJavaInitialize(APXHANDLE hJava, LPCST
         if (szClassPath && *szClassPath)
             ++sOptions;
 
+        if (__apxIsJavaNine()) {
+            apxLogWrite(APXLOG_MARK_ERROR "TODO: Merge additional Java 9 JVM options");
+        }
+
         sOptions++; /* unconditionally set for extraInfo exit  */
         sOptions++; /* unconditionally set for extraInfo abort */