Skip to content

Commit 1865ac8

Browse files
committed
Adds support for java 17 in generated projects codestart
Adding support to java versions lts Updated template of builds for support java 17 Fixs imports Remove sysout Change codestart dockerfiles to use openjdk-xx-runtime Remove no longer needed RUN_JAVA_VERSION
1 parent 2764b1f commit 1865ac8

File tree

8 files changed

+59
-44
lines changed

8 files changed

+59
-44
lines changed

independent-projects/tools/base-codestarts/src/main/resources/codestarts/quarkus/buildtool/gradle-kotlin-dsl/base/build-layout.include.qute

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ java {
5353
{#if java.version == "11"}
5454
sourceCompatibility = JavaVersion.VERSION_11
5555
targetCompatibility = JavaVersion.VERSION_11
56+
{#else if java.version == "17"}
57+
sourceCompatibility = JavaVersion.VERSION_17
58+
targetCompatibility = JavaVersion.VERSION_17
5659
{#else}
5760
sourceCompatibility = JavaVersion.VERSION_1_8
5861
targetCompatibility = JavaVersion.VERSION_1_8

independent-projects/tools/base-codestarts/src/main/resources/codestarts/quarkus/buildtool/gradle/base/build-layout.include.qute

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ java {
4949
{#if java.version == "11"}
5050
sourceCompatibility = JavaVersion.VERSION_11
5151
targetCompatibility = JavaVersion.VERSION_11
52+
{#else if java.version == "17"}
53+
sourceCompatibility = JavaVersion.VERSION_17
54+
targetCompatibility = JavaVersion.VERSION_17
5255
{#else}
5356
sourceCompatibility = JavaVersion.VERSION_1_8
5457
targetCompatibility = JavaVersion.VERSION_1_8

independent-projects/tools/base-codestarts/src/main/resources/codestarts/quarkus/tooling/dockerfiles/base/Dockerfile-layout.include.qute

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,31 +18,18 @@
1818
#
1919
# Then run the container using :
2020
#
21-
# docker run -i --rm -p 8080:8080 -p 5005:5005 -e JAVA_ENABLE_DEBUG="true" quarkus/{project.artifact-id}-{type}
21+
# docker run -i --rm -p 8080:8080 quarkus/{project.artifact-id}-{type}
2222
#
2323
###
24-
FROM {#insert image /}
25-
{#insert args /}
24+
FROM registry.access.redhat.com/ubi8/openjdk-{java.version}-runtime:1.10
25+
2626
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en'
27-
# Install java and the run-java script
28-
# Also set up permissions for user `1001`
29-
RUN microdnf install curl ca-certificates $\{JAVA_PACKAGE} \
30-
&& microdnf update \
31-
&& microdnf clean all \
32-
&& mkdir /deployments \
33-
&& chown 1001 /deployments \
34-
&& chmod "g+rwX" /deployments \
35-
&& chown 1001:root /deployments \
36-
&& curl https://repo1.maven.org/maven2/io/fabric8/run-java-sh/$\{RUN_JAVA_VERSION}/run-java-sh-$\{RUN_JAVA_VERSION}-sh.sh -o /deployments/run-java.sh \
37-
&& chown 1001 /deployments/run-java.sh \
38-
&& chmod 540 /deployments/run-java.sh \
39-
&& echo "securerandom.source=file:/dev/urandom" >> /etc/alternatives/jre/conf/security/java.security
4027

4128
# Configure the JAVA_OPTIONS, you can add -XshowSettings:vm to also display the heap size.
4229
ENV JAVA_OPTIONS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
4330
{#insert copy /}
4431

4532
EXPOSE 8080
46-
USER 1001
33+
USER 185
4734

48-
ENTRYPOINT [ "/deployments/run-java.sh" ]
35+
ENTRYPOINT [ "java", "-jar", "/deployments/quarkus-run.jar" ]
Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,11 @@
11
{#include Dockerfile-layout type='jvm'}
22
{#quarkusbuild}{buildtool.cli} {buildtool.cmd.package}{/quarkusbuild}
3-
{#image}{dockerfile.jvm.from} {/image}
4-
{#args}
5-
ARG JAVA_PACKAGE={dockerfile.jvm.java-package}
6-
ARG RUN_JAVA_VERSION={dockerfile.jvm.run-java-version}
7-
{/args}
83
{#copy}
94
# We make four distinct layers so if there are application changes the library layers can be re-used
10-
COPY --chown=1001 {buildtool.build-dir}/quarkus-app/lib/ /deployments/lib/
11-
COPY --chown=1001 {buildtool.build-dir}/quarkus-app/*.jar /deployments/
12-
COPY --chown=1001 {buildtool.build-dir}/quarkus-app/app/ /deployments/app/
13-
COPY --chown=1001 {buildtool.build-dir}/quarkus-app/quarkus/ /deployments/quarkus/
5+
COPY --chown=185 {buildtool.build-dir}/quarkus-app/lib/ /deployments/lib/
6+
COPY --chown=185 {buildtool.build-dir}/quarkus-app/*.jar /deployments/
7+
COPY --chown=185 {buildtool.build-dir}/quarkus-app/app/ /deployments/app/
8+
COPY --chown=185 {buildtool.build-dir}/quarkus-app/quarkus/ /deployments/quarkus/
149
{/copy}
1510
{/include}
1611

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
11
{#include Dockerfile-layout type='legacy-jar'}
22
{#quarkusbuild}{buildtool.cli} {buildtool.cmd.package-legacy-jar}{/quarkusbuild}
3-
{#image}{dockerfile.legacy-jar.from} {/image}
4-
{#args}
5-
ARG JAVA_PACKAGE={dockerfile.legacy-jar.java-package}
6-
ARG RUN_JAVA_VERSION={dockerfile.legacy-jar.run-java-version}
7-
{/args}
83
{#copy}
94
COPY {buildtool.build-dir}/lib/* /deployments/lib/
10-
COPY {buildtool.build-dir}/*-runner.jar /deployments/app.jar
5+
COPY {buildtool.build-dir}/*-runner.jar /deployments/quarkus-run.jar
116
{/copy}
127
{/include}

independent-projects/tools/base-codestarts/src/main/resources/codestarts/quarkus/tooling/dockerfiles/codestart.yml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,6 @@ language:
44
base:
55
data:
66
dockerfile:
7-
jvm:
8-
from: registry.access.redhat.com/ubi8/ubi-minimal:8.4
9-
java-package: java-11-openjdk-headless
10-
run-java-version: 1.3.8
11-
legacy-jar:
12-
from: registry.access.redhat.com/ubi8/ubi-minimal:8.4
13-
java-package: java-11-openjdk-headless
14-
run-java-version: 1.3.8
157
native:
168
from: registry.access.redhat.com/ubi8/ubi-minimal:8.4
179
native-distroless:

independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/project/codegen/CreateProjectHelper.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import java.nio.file.Path;
99
import java.util.Collection;
1010
import java.util.HashSet;
11+
import java.util.List;
1112
import java.util.Map;
1213
import java.util.Objects;
1314
import java.util.Optional;
@@ -18,6 +19,9 @@
1819
import javax.lang.model.SourceVersion;
1920

2021
public class CreateProjectHelper {
22+
23+
private static final List<Integer> JAVA_VERSIONS_LTS = List.of(8, 11, 17);
24+
private static final int DEFAULT_JAVA_VERSION = 11;
2125
private static final Pattern JAVA_VERSION_PATTERN = Pattern.compile("(?:1\\.)?(\\d+)(?:\\..*)?");
2226

2327
public static final String DEFAULT_GROUP_ID = "org.acme";
@@ -78,10 +82,16 @@ public static void setJavaVersion(Map<String, Object> values, String javaTarget)
7882

7983
Matcher matcher = JAVA_VERSION_PATTERN
8084
.matcher(javaTarget != null ? javaTarget : System.getProperty("java.version", ""));
81-
if (matcher.matches() && Integer.parseInt(matcher.group(1)) < 11) {
82-
values.put(ProjectGenerator.JAVA_TARGET, "8");
85+
86+
if (matcher.matches()) {
87+
int versionExtracted = Integer.parseInt(matcher.group(1));
88+
int version = JAVA_VERSIONS_LTS.stream()
89+
.filter(e -> e.equals(versionExtracted))
90+
.findFirst().orElse(DEFAULT_JAVA_VERSION);
91+
92+
values.put(ProjectGenerator.JAVA_TARGET, String.valueOf(version));
8393
} else {
84-
values.put(ProjectGenerator.JAVA_TARGET, "11");
94+
values.put(ProjectGenerator.JAVA_TARGET, String.valueOf(DEFAULT_JAVA_VERSION));
8595
}
8696
}
8797

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package io.quarkus.devtools.project.codegen;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
5+
import java.util.HashMap;
6+
import java.util.Map;
7+
import org.junit.jupiter.api.Test;
8+
9+
import static org.junit.jupiter.api.Assertions.assertEquals;
10+
11+
class CreateProjectHelperTest {
12+
13+
@Test
14+
public void givenJavaVersion17ShouldReturn17() {
15+
Map<String, Object> values = new HashMap<>();
16+
values.put("nonull", "nonull");
17+
18+
CreateProjectHelper.setJavaVersion(values, "17");
19+
assertEquals("17", values.get("java_target"));
20+
}
21+
22+
@Test
23+
public void givenJavaVersion16ShouldReturn11() {
24+
Map<String, Object> values = new HashMap<>();
25+
values.put("nonull", "nonull");
26+
27+
CreateProjectHelper.setJavaVersion(values, "16.0.1");
28+
assertEquals("11", values.get("java_target"));
29+
}
30+
}

0 commit comments

Comments
 (0)