Skip to content

Commit 4a43812

Browse files
committed
GH-130 JDK 12 support added
1 parent 91716d2 commit 4a43812

File tree

23 files changed

+95
-110
lines changed

23 files changed

+95
-110
lines changed

visualvm/jvmstat/src/org/graalvm/visualvm/jvmstat/JvmJvmstatModelProvider.java

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public JvmJvmstatModel createModelFor(Application app) {
4545
if (jvmstat != null) {
4646

4747
JvmJvmstatModel model = null;
48-
// Check for Sun VM (and maybe other?)
48+
// Check for Sun/Oracle VM (and maybe other?)
4949
// try java.property.java.version from HotSpot Express 14.0
5050
String javaVersion = jvmstat.findByName("java.property.java.version"); // NOI18N
5151

@@ -59,15 +59,13 @@ public JvmJvmstatModel createModelFor(Application app) {
5959
// JVM 1.9
6060
else if (javaVersion.startsWith("1.9.")) model = new JvmJvmstatModel_8(app,jvmstat); // NOI18N
6161
// JVM 9
62-
else if (javaVersion.equals("9")) model = new JvmJvmstatModel_8(app,jvmstat); // NOI18N
63-
else if (javaVersion.startsWith("9.")) model = new JvmJvmstatModel_8(app,jvmstat); // NOI18N
62+
else if (isJavaVersion(javaVersion, "9")) model = new JvmJvmstatModel_8(app,jvmstat); // NOI18N
6463
// JVM 10
65-
else if (javaVersion.equals("10")) model = new JvmJvmstatModel_8(app,jvmstat); // NOI18N
66-
else if (javaVersion.startsWith("10.")) model = new JvmJvmstatModel_8(app,jvmstat); // NOI18N
64+
else if (isJavaVersion(javaVersion,"10")) model = new JvmJvmstatModel_8(app,jvmstat); // NOI18N
6765
// JVM 11
68-
else if (javaVersion.equals("11")) model = new JvmJvmstatModel_8(app,jvmstat); // NOI18N
69-
else if (javaVersion.equals("11-ea")) model = new JvmJvmstatModel_8(app,jvmstat); // NOI18N
70-
else if (javaVersion.startsWith("11.")) model = new JvmJvmstatModel_8(app,jvmstat); // NOI18N
66+
else if (isJavaVersion(javaVersion,"11")) model = new JvmJvmstatModel_8(app,jvmstat); // NOI18N
67+
// JVM 12
68+
else if (isJavaVersion(javaVersion,"12")) model = new JvmJvmstatModel_8(app,jvmstat); // NOI18N
7169
}
7270

7371
if (model == null) {
@@ -92,14 +90,20 @@ public JvmJvmstatModel createModelFor(Application app) {
9290
else if (vmVersion.startsWith("13.")) model = new JvmJvmstatModel_5(app,jvmstat); // NOI18N
9391
else if (vmVersion.startsWith("14.")) model = new JvmJvmstatModel_5(app,jvmstat); // NOI18N
9492

95-
if (model == null) { // still not recognized, fallback to JvmJvmstatModel_5
93+
if (model == null) { // still not recognized, fallback to JvmJvmstatModel_8
9694
LOGGER.log(Level.WARNING, "Unrecognized java.vm.version " + vmVersion); // NOI18N
97-
model = new JvmJvmstatModel_5(app,jvmstat); // NOI18N
95+
model = new JvmJvmstatModel_8(app,jvmstat); // NOI18N
9896
}
9997
}
10098
return model;
10199
}
102100
return null;
103101
}
104102

103+
private static final boolean isJavaVersion(String javaVersionProperty, String releaseVersion) {
104+
if (javaVersionProperty.equals(releaseVersion)) return true;
105+
if (javaVersionProperty.equals(releaseVersion+"-ea")) return true;
106+
if (javaVersionProperty.startsWith(releaseVersion+".")) return true;
107+
return false;
108+
}
105109
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Manifest-Version: 1.0
22
OpenIDE-Module: org.graalvm.visualvm.lib.common/1
33
OpenIDE-Module-Localizing-Bundle: org/graalvm/visualvm/lib/common/Bundle.properties
4-
OpenIDE-Module-Specification-Version: 1.50
4+
OpenIDE-Module-Specification-Version: 1.51
55
OpenIDE-Module-Needs: org.graalvm.visualvm.lib.common.Profiler
66

visualvm/libs.profiler/lib.profiler.common/nbproject/project.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ made subject to such option by the copyright holder.
5656
<compile-dependency/>
5757
<run-dependency>
5858
<release-version>1</release-version>
59-
<specification-version>1.112</specification-version>
59+
<specification-version>1.114</specification-version>
6060
</run-dependency>
6161
</dependency>
6262
<dependency>

visualvm/libs.profiler/lib.profiler.common/src/org/graalvm/visualvm/lib/common/integration/Bundle.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ IntegrationUtils_PlatformJava80=Java SE 8.0
4848
IntegrationUtils_PlatformJava90=Java SE 9.0
4949
IntegrationUtils_PlatformJava100=Java SE 10.0
5050
IntegrationUtils_PlatformJava110=Java SE 11
51+
IntegrationUtils_PlatformJava120=Java SE 12
5152
IntegrationUtils_PlatformJavaCvm=CVM
5253
IntegrationUtils_PlatformWindowsOs=Windows, 32bit JVM
5354
IntegrationUtils_PlatformWindowsAmd64Os=Windows, 64bit JVM
@@ -83,6 +84,7 @@ IntegrationUtils_Jdk80Name=Java SE 8 (JRE or JDK)
8384
IntegrationUtils_Jdk90Name=Java SE 9 (JRE or JDK)
8485
IntegrationUtils_Jdk100Name=Java SE 10 (JRE or JDK)
8586
IntegrationUtils_Jdk110Name=Java SE 11 (JRE or JDK)
87+
IntegrationUtils_Jdk120Name=Java SE 12 (JRE or JDK)
8688
IntegrationUtils_JdkCvmName=CVM
8789
IntegrationUtils_RemoteString=remote
8890
# HTML-formatted

visualvm/libs.profiler/lib.profiler.common/src/org/graalvm/visualvm/lib/common/integration/IntegrationUtils.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ public class IntegrationUtils {
7474
public static final String PLATFORM_JAVA_90 = messages.getString("IntegrationUtils_PlatformJava90"); // NOI18N
7575
public static final String PLATFORM_JAVA_100 = messages.getString("IntegrationUtils_PlatformJava100"); // NOI18N
7676
public static final String PLATFORM_JAVA_110 = messages.getString("IntegrationUtils_PlatformJava110"); // NOI18N
77+
public static final String PLATFORM_JAVA_120 = messages.getString("IntegrationUtils_PlatformJava120"); // NOI18N
7778
public static final String PLATFORM_JAVA_CVM = messages.getString("IntegrationUtils_PlatformJavaCvm"); // NOI18N
7879
public static final String PLATFORM_WINDOWS_OS = messages.getString("IntegrationUtils_PlatformWindowsOs"); // NOI18N
7980
public static final String PLATFORM_WINDOWS_AMD64_OS = messages.getString("IntegrationUtils_PlatformWindowsAmd64Os"); // NOI18N
@@ -102,6 +103,7 @@ public class IntegrationUtils {
102103
private static final String JDK_90_NAME = messages.getString("IntegrationUtils_Jdk90Name"); // NOI18N
103104
private static final String JDK_100_NAME = messages.getString("IntegrationUtils_Jdk100Name"); // NOI18N
104105
private static final String JDK_110_NAME = messages.getString("IntegrationUtils_Jdk110Name"); // NOI18N
106+
private static final String JDK_120_NAME = messages.getString("IntegrationUtils_Jdk120Name"); // NOI18N
105107
private static final String JDK_CVM_NAME = messages.getString("IntegrationUtils_JdkCvmName"); // NOI18N
106108
private static final String HTML_REMOTE_STRING = "&lt;" + messages.getString("IntegrationUtils_RemoteString") + "&gt;"; // NOI18N
107109
private static final String EXPORT_SETENV_MESSAGE = messages.getString("IntegrationUtils_ExportSetenvMessage"); // NOI18N
@@ -277,6 +279,8 @@ public static String getJavaPlatformFromJavaVersionString(String javaVersionStri
277279
return PLATFORM_JAVA_100;
278280
} else if (javaVersionString.equals(CommonConstants.JDK_110_STRING)) {
279281
return PLATFORM_JAVA_110;
282+
} else if (javaVersionString.equals(CommonConstants.JDK_120_STRING)) {
283+
return PLATFORM_JAVA_120;
280284
} else if (javaVersionString.equals(CommonConstants.JDK_CVM_STRING)) {
281285
return PLATFORM_JAVA_CVM;
282286
}
@@ -344,6 +348,8 @@ public static String getJavaPlatformName(String javaPlatform) {
344348
return JDK_100_NAME;
345349
} else if (javaPlatform.equals(PLATFORM_JAVA_110)) {
346350
return JDK_110_NAME;
351+
} else if (javaPlatform.equals(PLATFORM_JAVA_120)) {
352+
return JDK_120_NAME;
347353
} else if (javaPlatform.equals(PLATFORM_JAVA_CVM)) {
348354
return JDK_CVM_NAME;
349355
}
@@ -411,6 +417,8 @@ public static String getLocalJavaPlatform() {
411417
return PLATFORM_JAVA_100;
412418
} else if (jdkVersion == Platform.JDK_110) {
413419
return PLATFORM_JAVA_110;
420+
} else if (jdkVersion == Platform.JDK_120) {
421+
return PLATFORM_JAVA_120;
414422
}
415423

416424
return null;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Manifest-Version: 1.0
22
OpenIDE-Module: org.graalvm.visualvm.lib.jfluid/1
33
OpenIDE-Module-Localizing-Bundle: org/graalvm/visualvm/lib/jfluid/Bundle.properties
4-
OpenIDE-Module-Specification-Version: 1.113
4+
OpenIDE-Module-Specification-Version: 1.114
55

visualvm/libs.profiler/lib.profiler/src/org/graalvm/visualvm/lib/jfluid/ProfilerClient.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1597,7 +1597,8 @@ private boolean setVMProperties(VMPropertiesResponse resp, boolean terminateOnEr
15971597
if (!status.remoteProfiling
15981598
&& settings.getTargetJDKVersionString() != CommonConstants.JDK_19_STRING
15991599
&& settings.getTargetJDKVersionString() != CommonConstants.JDK_100_STRING
1600-
&& settings.getTargetJDKVersionString() != CommonConstants.JDK_110_STRING) {
1600+
&& settings.getTargetJDKVersionString() != CommonConstants.JDK_110_STRING
1601+
&& settings.getTargetJDKVersionString() != CommonConstants.JDK_120_STRING) {
16011602
settings.setWorkingDir(resp.getWorkingDir());
16021603
settings.setVMClassPaths(resp.getJavaClassPath(), resp.getJavaExtDirs(), resp.getBootClassPath());
16031604
} else {

visualvm/libs.profiler/lib.profiler/src/org/graalvm/visualvm/lib/jfluid/TargetAppRunner.java

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -339,28 +339,24 @@ public void detachFromTargetJVM() {
339339
}
340340

341341
public boolean hasSupportedJDKForHeapDump() {
342-
// not supported for JDK other than 10 & 1.9 & 1.8 & 1.7 & 1.6 & 1.5.0_12 and up
342+
// not supported for JDK other than 10+ & 1.9 & 1.8 & 1.7 & 1.6 & 1.5.0_12 and up
343343
String jdkVersion = getProfilerEngineSettings().getTargetJDKVersionString();
344344

345-
if (CommonConstants.JDK_16_STRING.equals(jdkVersion)
346-
|| CommonConstants.JDK_17_STRING.equals(jdkVersion)
347-
|| CommonConstants.JDK_18_STRING.equals(jdkVersion)
348-
|| CommonConstants.JDK_19_STRING.equals(jdkVersion)
349-
|| CommonConstants.JDK_100_STRING.equals(jdkVersion)
350-
|| CommonConstants.JDK_110_STRING.equals(jdkVersion)) {
351-
return true;
352-
}
353-
354345
if (CommonConstants.JDK_15_STRING.equals(jdkVersion)) {
355346
String fullJDKString = getProfilingSessionStatus().fullTargetJDKVersionString;
356347
int minorVersion = Platform.getJDKMinorNumber(fullJDKString);
357348

358349
if (minorVersion >= 12) {
359350
return true;
360351
}
352+
return false;
361353
}
362-
363-
return false;
354+
if (CommonConstants.JDK_CVM_STRING.equals(jdkVersion)
355+
|| CommonConstants.JDK_UNSUPPORTED_STRING.equals(jdkVersion)
356+
) {
357+
return false;
358+
}
359+
return true;
364360
}
365361

366362
/**
@@ -707,7 +703,8 @@ private boolean startTargetVM(String[] jvmArgs, String mainClassName, String[] m
707703
|| jdkVer.equals(JDK_18_STRING)
708704
|| jdkVer.equals(JDK_19_STRING)
709705
|| jdkVer.equals(JDK_100_STRING)
710-
|| jdkVer.equals(JDK_110_STRING)) {
706+
|| jdkVer.equals(JDK_110_STRING)
707+
|| jdkVer.equals(JDK_120_STRING)) {
711708
// for now the 1.6 and 1.7 and 1.8 and 9 and 10 and 11 profiling uses the same agent as 1.5
712709
jdkVer = JDK_15_STRING;
713710
}
@@ -759,13 +756,9 @@ private boolean startTargetVM(String[] jvmArgs, String mainClassName, String[] m
759756
commands.add(settings.getTargetJVMExeFile());
760757

761758
String jdk = settings.getTargetJDKVersionString();
762-
if (jdk.equals(Platform.JDK_15_STRING)
763-
|| jdk.equals(Platform.JDK_16_STRING)
764-
|| jdk.equals(Platform.JDK_17_STRING)
765-
|| jdk.equals(Platform.JDK_18_STRING)
766-
|| jdk.equals(Platform.JDK_19_STRING)
767-
|| jdk.equals(Platform.JDK_100_STRING)
768-
|| jdk.equals(Platform.JDK_110_STRING)) {
759+
if (!jdk.equals(Platform.JDK_CVM_STRING) &&
760+
!jdk.equals(Platform.JDK_UNSUPPORTED)
761+
) {
769762
String jfNativeLibFullName = Platform.getAgentNativeLibFullName(settings.getJFluidRootDirName(), false,
770763
settings.getTargetJDKVersionString(),
771764
settings.getSystemArchitecture());

visualvm/libs.profiler/lib.profiler/src/org/graalvm/visualvm/lib/jfluid/global/CalibrationDataFileIO.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -187,13 +187,8 @@ public static boolean saveCalibrationData(ProfilingSessionStatus status) {
187187

188188
public static boolean validateCalibrationInput(String javaVersionString, String javaExecutable) {
189189
if ((javaVersionString != null) && (javaExecutable != null)) {
190-
if (CommonConstants.JDK_15_STRING.equals(javaVersionString)
191-
|| CommonConstants.JDK_16_STRING.equals(javaVersionString)
192-
|| CommonConstants.JDK_17_STRING.equals(javaVersionString)
193-
|| CommonConstants.JDK_18_STRING.equals(javaVersionString)
194-
|| CommonConstants.JDK_19_STRING.equals(javaVersionString)
195-
|| CommonConstants.JDK_100_STRING.equals(javaVersionString)
196-
|| CommonConstants.JDK_110_STRING.equals(javaVersionString)) {
190+
if (!CommonConstants.JDK_UNSUPPORTED_STRING.equals(javaVersionString)
191+
&& CommonConstants.JDK_CVM_STRING.equals(javaVersionString)) {
197192
if (new File(javaExecutable).exists()) {
198193
return true;
199194
}

visualvm/libs.profiler/lib.profiler/src/org/graalvm/visualvm/lib/jfluid/global/CommonConstants.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ public interface CommonConstants {
9999
public static final int JDK_19 = 7;
100100
public static final int JDK_100 = 8;
101101
public static final int JDK_110 = 9;
102+
public static final int JDK_120 = 10;
102103
public static final int JDK_CVM = 5;
103104
public static final int JDK_UNSUPPORTED = -1;
104105

@@ -110,6 +111,7 @@ public interface CommonConstants {
110111
public static final String JDK_19_STRING = "jdk19"; // NOI18N
111112
public static final String JDK_100_STRING = "jdk100"; // NOI18N
112113
public static final String JDK_110_STRING = "jdk110"; // NOI18N
114+
public static final String JDK_120_STRING = "jdk120"; // NOI18N
113115
public static final String JDK_CVM_STRING = "cvm"; // NOI18N
114116
public static final String JDK_UNSUPPORTED_STRING = "UNSUPPORTED_JDK"; // NOI18N
115117

0 commit comments

Comments
 (0)