Bug 551503 - [14] Add Execution Environment for JavaSE-14
Change-Id: I36576e16862c4a8ac09f974687e22dd90623d3f0
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/EECompilationParticipant.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/EECompilationParticipant.java
index 8197339..ac0efad 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/EECompilationParticipant.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/EECompilationParticipant.java
@@ -6,6 +6,10 @@
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
+ * This is an implementation of an early-draft specification developed under the Java
+ * Community Process (JCP) and is made available for testing and evaluation purposes
+ * only. The code is not compatible with any specification of the JCP.
+ *
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
@@ -232,6 +236,8 @@
String version = vMInstall.getJavaVersion();
if (version == null) {
return null;
+ } else if (version.startsWith(JavaCore.VERSION_14)) {
+ return JavaCore.VERSION_14;
} else if (version.startsWith(JavaCore.VERSION_13)) {
return JavaCore.VERSION_13;
} else if (version.startsWith(JavaCore.VERSION_12)) {
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMType.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMType.java
index b550dbc..408e84c 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMType.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMType.java
@@ -6,6 +6,10 @@
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
+ * This is an implementation of an early-draft specification developed under the Java
+ * Community Process (JCP) and is made available for testing and evaluation purposes
+ * only. The code is not compatible with any specification of the JCP.
+ *
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
@@ -844,7 +848,10 @@
*/
public static URL getDefaultJavadocLocation(String version) {
try {
- if (version.startsWith(JavaCore.VERSION_13)) {
+ if (version.startsWith(JavaCore.VERSION_14)) {
+ // Needs an update after Java 14 release
+ return new URL("https://docs.oracle.com/en/java/javase/13/docs/api/"); //$NON-NLS-1$
+ } else if (version.startsWith(JavaCore.VERSION_13)) {
return new URL("https://docs.oracle.com/en/java/javase/13/docs/api/"); //$NON-NLS-1$
} else if (version.startsWith(JavaCore.VERSION_12)) {
return new URL("https://docs.oracle.com/en/java/javase/12/docs/api/"); //$NON-NLS-1$
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/EnvironmentsManager.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/EnvironmentsManager.java
index fc0e141..4c21954 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/EnvironmentsManager.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/EnvironmentsManager.java
@@ -6,6 +6,10 @@
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
+ * This is an implementation of an early-draft specification developed under the Java
+ * Community Process (JCP) and is made available for testing and evaluation purposes
+ * only. The code is not compatible with any specification of the JCP.
+ *
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
@@ -196,7 +200,9 @@
private String getExecutionEnvironmentCompliance(IExecutionEnvironment executionEnvironment) {
String desc = executionEnvironment.getId();
- if (desc.indexOf(JavaCore.VERSION_13) != -1) {
+ if (desc.indexOf(JavaCore.VERSION_14) != -1) {
+ return JavaCore.VERSION_14;
+ } else if (desc.indexOf(JavaCore.VERSION_13) != -1) {
return JavaCore.VERSION_13;
} else if (desc.indexOf(JavaCore.VERSION_12) != -1) {
return JavaCore.VERSION_12;
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/ExecutionEnvironmentAnalyzer.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/ExecutionEnvironmentAnalyzer.java
index e3c9daf..52582c6 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/ExecutionEnvironmentAnalyzer.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/environments/ExecutionEnvironmentAnalyzer.java
@@ -6,6 +6,10 @@
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
+ * This is an implementation of an early-draft specification developed under the Java
+ * Community Process (JCP) and is made available for testing and evaluation purposes
+ * only. The code is not compatible with any specification of the JCP.
+ *
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
@@ -41,6 +45,7 @@
// XXX: Note that this string is not yet standardized by OSGi, see http://wiki.osgi.org/wiki/Execution_Environment
+ private static final String JavaSE_14 = "JavaSE-14"; //$NON-NLS-1$
private static final String JavaSE_13 = "JavaSE-13"; //$NON-NLS-1$
private static final String JavaSE_12 = "JavaSE-12"; //$NON-NLS-1$
private static final String JavaSE_11 = "JavaSE-11"; //$NON-NLS-1$
@@ -87,10 +92,11 @@
mappings.put(JavaSE_1_8, new String[] { JavaSE_1_7 });
mappings.put(JavaSE_9, new String[] { JavaSE_1_8 });
mappings.put(JavaSE_10, new String[] { JavaSE_9 });
- mappings.put(JavaSE_10_Plus, new String[] { JavaSE_13 });
+ mappings.put(JavaSE_10_Plus, new String[] { JavaSE_14 });
mappings.put(JavaSE_11, new String[] { JavaSE_10 });
mappings.put(JavaSE_12, new String[] { JavaSE_11 });
mappings.put(JavaSE_13, new String[] { JavaSE_12 });
+ mappings.put(JavaSE_14, new String[] { JavaSE_13 });
}
@Override
public CompatibleEnvironment[] analyze(IVMInstall vm, IProgressMonitor monitor) throws CoreException {
@@ -116,7 +122,9 @@
types = getTypes(CDC_FOUNDATION_1_1);
}
} else {
- if (javaVersion.startsWith("13")) { //$NON-NLS-1$
+ if (javaVersion.startsWith("14")) { //$NON-NLS-1$
+ types = getTypes(JavaSE_14);
+ } else if (javaVersion.startsWith("13")) { //$NON-NLS-1$
types = getTypes(JavaSE_13);
} else if (javaVersion.startsWith("12")) { //$NON-NLS-1$
types = getTypes(JavaSE_12);
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java
index 35078b3..eefb80b 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java
@@ -6,6 +6,10 @@
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
+ * This is an implementation of an early-draft specification developed under the Java
+ * Community Process (JCP) and is made available for testing and evaluation purposes
+ * only. The code is not compatible with any specification of the JCP.
+ *
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
@@ -3337,8 +3341,11 @@
} else if (javaVersion.startsWith(JavaCore.VERSION_13)
&& (javaVersion.length() == JavaCore.VERSION_13.length() || javaVersion.charAt(JavaCore.VERSION_13.length()) == '.')) {
compliance = JavaCore.VERSION_13;
+ } else if (javaVersion.startsWith(JavaCore.VERSION_14)
+ && (javaVersion.length() == JavaCore.VERSION_14.length() || javaVersion.charAt(JavaCore.VERSION_14.length()) == '.')) {
+ compliance = JavaCore.VERSION_14;
} else {
- compliance = JavaCore.VERSION_13; // use latest by default
+ compliance = JavaCore.VERSION_14; // use latest by default
}
Hashtable<String, String> options= JavaCore.getOptions();
diff --git a/org.eclipse.jdt.launching/plugin.properties b/org.eclipse.jdt.launching/plugin.properties
index 7983d1e..b3d3cfc 100644
--- a/org.eclipse.jdt.launching/plugin.properties
+++ b/org.eclipse.jdt.launching/plugin.properties
@@ -79,6 +79,7 @@
environment.description.15 = Java Platform, Standard Edition 11
environment.description.16 = Java Platform, Standard Edition 12
environment.description.17 = Java Platform, Standard Edition 13
+environment.description.18 = Java Platform, Standard Edition 14
classpathVariableInitializer.deprecated = Use the JRE System Library instead
diff --git a/org.eclipse.jdt.launching/plugin.xml b/org.eclipse.jdt.launching/plugin.xml
index 406b5c3..8007ab8 100644
--- a/org.eclipse.jdt.launching/plugin.xml
+++ b/org.eclipse.jdt.launching/plugin.xml
@@ -346,7 +346,12 @@
description="%environment.description.17"
id="JavaSE-13"
compliance="13">
- </environment>
+ </environment>
+ <environment
+ description="%environment.description.18"
+ id="JavaSE-14"
+ compliance="14">
+ </environment>
<analyzer
class="org.eclipse.jdt.internal.launching.environments.ExecutionEnvironmentAnalyzer"
id="org.eclipse.jdt.launching.eeAnalyzer"/>