From 674aeaaffb05f00f81ab45757fa8cb80ed04654a Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Tue, 25 Sep 2018 14:07:22 -0400 Subject: [PATCH] Add support to Java 11 --- .../JavaVersionRequestPostProcessor.java | 8 +++- .../SpringBoot2RequestPostProcessor.java | 3 +- .../src/main/resources/application.yml | 2 + .../JavaVersionRequestPostProcessorTests.java | 48 +++++++++++++++++++ 4 files changed, 59 insertions(+), 2 deletions(-) diff --git a/initializr-service/src/main/java/io/spring/initializr/service/extension/JavaVersionRequestPostProcessor.java b/initializr-service/src/main/java/io/spring/initializr/service/extension/JavaVersionRequestPostProcessor.java index ed596790..0ddeba25 100644 --- a/initializr-service/src/main/java/io/spring/initializr/service/extension/JavaVersionRequestPostProcessor.java +++ b/initializr-service/src/main/java/io/spring/initializr/service/extension/JavaVersionRequestPostProcessor.java @@ -39,6 +39,8 @@ class JavaVersionRequestPostProcessor implements ProjectRequestPostProcessor { private static final Version VERSION_2_0_1 = Version.parse("2.0.1.RELEASE"); + private static final Version VERSION_2_1_0_M1 = Version.parse("2.1.0.M1"); + private static final List UNSUPPORTED_LANGUAGES = Arrays.asList("groovy", "kotlin"); @@ -62,12 +64,16 @@ class JavaVersionRequestPostProcessor implements ProjectRequestPostProcessor { if (javaGeneration == 10 && VERSION_2_0_1.compareTo(requestVersion) > 0) { request.setJavaVersion("1.8"); } + // 11 support only as of 2.1.x + if (javaGeneration == 11 && VERSION_2_1_0_M1.compareTo(requestVersion) > 0) { + request.setJavaVersion("1.8"); + } } private Integer determineJavaGeneration(String javaVersion) { try { int generation = Integer.valueOf(javaVersion); - return ((generation > 8 && generation <= 10) ? generation : null); + return ((generation > 8 && generation <= 11) ? generation : null); } catch (NumberFormatException ex) { return null; diff --git a/initializr-service/src/main/java/io/spring/initializr/service/extension/SpringBoot2RequestPostProcessor.java b/initializr-service/src/main/java/io/spring/initializr/service/extension/SpringBoot2RequestPostProcessor.java index c1f8fa97..ad95ff8e 100644 --- a/initializr-service/src/main/java/io/spring/initializr/service/extension/SpringBoot2RequestPostProcessor.java +++ b/initializr-service/src/main/java/io/spring/initializr/service/extension/SpringBoot2RequestPostProcessor.java @@ -36,7 +36,8 @@ class SpringBoot2RequestPostProcessor extends AbstractProjectRequestPostProcesso private static final Version VERSION_2_0_0_M1 = Version.parse("2.0.0.M1"); - private static final List VALID_VERSIONS = Arrays.asList("1.8", "9", "10"); + private static final List VALID_VERSIONS = Arrays.asList("1.8", "9", "10", + "11"); @Override public void postProcessAfterResolution(ProjectRequest request, diff --git a/initializr-service/src/main/resources/application.yml b/initializr-service/src/main/resources/application.yml index 3c3b9510..002ed84d 100644 --- a/initializr-service/src/main/resources/application.yml +++ b/initializr-service/src/main/resources/application.yml @@ -1358,6 +1358,8 @@ initializr: id: war default: false javaVersions: + - id: 11 + default: false - id: 10 default: false - id: 1.8 diff --git a/initializr-service/src/test/java/io/spring/initializr/service/extension/JavaVersionRequestPostProcessorTests.java b/initializr-service/src/test/java/io/spring/initializr/service/extension/JavaVersionRequestPostProcessorTests.java index 7761c7e9..df62f4b3 100755 --- a/initializr-service/src/test/java/io/spring/initializr/service/extension/JavaVersionRequestPostProcessorTests.java +++ b/initializr-service/src/test/java/io/spring/initializr/service/extension/JavaVersionRequestPostProcessorTests.java @@ -143,4 +143,52 @@ public class JavaVersionRequestPostProcessorTests generateGradleBuild(request).hasJavaVersion("10"); } + @Test + public void java11CannotBeUsedWithSpringBoot1Maven() { + ProjectRequest request = createProjectRequest("web"); + request.setBootVersion("1.5.8.RELEASE"); + request.setJavaVersion("11"); + generateMavenPom(request).hasJavaVersion("1.8"); + } + + @Test + public void java11CannotBeUsedWithSpringBoot1Gradle() { + ProjectRequest request = createProjectRequest("data-jpa"); + request.setBootVersion("1.99.99.BUILD-SNAPSHOT"); + request.setJavaVersion("11"); + generateGradleBuild(request).hasJavaVersion("1.8"); + } + + @Test + public void java11CannotBeUsedWithSpringBoot20Maven() { + ProjectRequest request = createProjectRequest("web"); + request.setBootVersion("2.0.5.RELEASE"); + request.setJavaVersion("11"); + generateMavenPom(request).hasJavaVersion("1.8"); + } + + @Test + public void java11CannotBeUsedWithSpringBoot20Gradle() { + ProjectRequest request = createProjectRequest("data-jpa"); + request.setBootVersion("2.0.5.RELEASE"); + request.setJavaVersion("11"); + generateGradleBuild(request).hasJavaVersion("1.8"); + } + + @Test + public void java11CanBeUsedWithSpringBoot21Maven() { + ProjectRequest request = createProjectRequest("web"); + request.setBootVersion("2.1.0.M1"); + request.setJavaVersion("11"); + generateMavenPom(request).hasJavaVersion("11"); + } + + @Test + public void java11CanBeUsedWithSpringBoot21Gradle() { + ProjectRequest request = createProjectRequest("data-jpa"); + request.setBootVersion("2.1.1.RELEASE"); + request.setJavaVersion("11"); + generateGradleBuild(request).hasJavaVersion("11"); + } + }