diff options
author | Fred Bricon | 2018-08-27 19:31:32 +0000 |
---|---|---|
committer | Fred Bricon | 2018-08-27 19:31:48 +0000 |
commit | d8b346fe01eaac5538de85db08d421e4a6d45dee (patch) | |
tree | 90ca6909f029aab1abe386c6780e3a3ac7b5212a | |
parent | 6b70e6e1352a6347f3070612deafbf5cf83d1fc6 (diff) | |
download | m2e-core-d8b346fe01eaac5538de85db08d421e4a6d45dee.tar.gz m2e-core-d8b346fe01eaac5538de85db08d421e4a6d45dee.tar.xz m2e-core-d8b346fe01eaac5538de85db08d421e4a6d45dee.zip |
Bug 538319: provide minimal Java 11 support
The change consists in making the Java project configurator
look into available JavaSE-* environments, so that future
Java version will be automatically supported, without needing specific
development, assuming the versioning scheme remains stable.
Change-Id: Ie393cd14f2f7a40660bed689b31c9e61dca9a384
Signed-off-by: Fred Bricon <fbricon@gmail.com>
-rw-r--r-- | org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/internal/AbstractJavaProjectConfigurator.java | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/internal/AbstractJavaProjectConfigurator.java b/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/internal/AbstractJavaProjectConfigurator.java index 93a80a8a..abd8533d 100644 --- a/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/internal/AbstractJavaProjectConfigurator.java +++ b/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/internal/AbstractJavaProjectConfigurator.java @@ -97,12 +97,11 @@ public abstract class AbstractJavaProjectConfigurator extends AbstractProjectCon static { - List<String> sources = new ArrayList<>(Arrays.asList("1.1,1.2,1.3,1.4,1.5,5,1.6,6,1.7,7,1.8,8,1.9,9".split(","))); //$NON-NLS-1$ //$NON-NLS-2$ + List<String> sources = new ArrayList<>(Arrays.asList("1.1,1.2,1.3,1.4,1.5,5,1.6,6,1.7,7,1.8,8".split(","))); //$NON-NLS-1$ //$NON-NLS-2$ - List<String> targets = new ArrayList<>( - Arrays.asList("1.1,1.2,1.3,1.4,jsr14,1.5,5,1.6,6,1.7,7,1.8,8,1.9,9".split(","))); //$NON-NLS-1$ //$NON-NLS-2$ + List<String> targets = new ArrayList<>(Arrays.asList("1.1,1.2,1.3,1.4,jsr14,1.5,5,1.6,6,1.7,7,1.8,8".split(","))); //$NON-NLS-1$ //$NON-NLS-2$ - List<String> releases = new ArrayList<>(Arrays.asList("6,7,8,9".split(","))); //$NON-NLS-1$ //$NON-NLS-2$ + List<String> releases = new ArrayList<>(Arrays.asList("6,7,8".split(","))); //$NON-NLS-1$ //$NON-NLS-2$ ENVIRONMENTS.put("1.1", "JRE-1.1"); //$NON-NLS-1$ //$NON-NLS-2$ ENVIRONMENTS.put("1.2", "J2SE-1.2"); //$NON-NLS-1$ //$NON-NLS-2$ @@ -113,20 +112,23 @@ public abstract class AbstractJavaProjectConfigurator extends AbstractProjectCon ENVIRONMENTS.put("1.6", "JavaSE-1.6"); //$NON-NLS-1$ //$NON-NLS-2$ ENVIRONMENTS.put("1.7", "JavaSE-1.7"); //$NON-NLS-1$ //$NON-NLS-2$ ENVIRONMENTS.put("1.8", "JavaSE-1.8"); //$NON-NLS-1$ //$NON-NLS-2$ - ENVIRONMENTS.put("9", "JavaSE-9"); //$NON-NLS-1$ //$NON-NLS-2$ - IExecutionEnvironment javaSe10 = JavaRuntime.getExecutionEnvironmentsManager().getEnvironment("JavaSE-10");//$NON-NLS-1$ - if(javaSe10 != null) { - String level = "10"; - //add support for 1.10, see https://bugs.java.com/view_bug.do?bug_id=8180865 + for(int i = 9; i < 20; i++ ) { //Check from Java 9 to 20, because yeah, Java evolves that fast + String level = String.valueOf(i); + IExecutionEnvironment modernJavaSe = JavaRuntime.getExecutionEnvironmentsManager() + .getEnvironment("JavaSE-" + level);//$NON-NLS-1$ + if(modernJavaSe == null) { + break;//we didn't find that level, so we bail because there's nothing after that + } String level1 = "1." + level;//$NON-NLS-1$ sources.add(level1); sources.add(level); targets.add(level1); targets.add(level); releases.add(level); - ENVIRONMENTS.put(level, javaSe10.getId()); + ENVIRONMENTS.put(level, modernJavaSe.getId()); } + SOURCES = Collections.unmodifiableList(sources); TARGETS = Collections.unmodifiableList(targets); RELEASES = Collections.unmodifiableList(releases); @@ -640,10 +642,6 @@ public abstract class AbstractJavaProjectConfigurator extends AbstractProjectCon private String sanitizeJavaVersion(String version) { switch(version) { - case "1.9": - case "1.10": - version = version.substring(2); - break; case "5": case "6": case "7": @@ -651,6 +649,12 @@ public abstract class AbstractJavaProjectConfigurator extends AbstractProjectCon version = "1." + version; break; default: + if(version.startsWith("1.")) { + String subVersion = version.substring(2); + if(Integer.parseInt(subVersion) > 8) { + version = subVersion; + } + } break; } return version; |