Skip to content

Commit f85812f

Browse files
ia3andypull[bot]
authored andcommitted
Check for min java version when updating (partial)
1 parent fdb20fd commit f85812f

File tree

23 files changed

+224
-105
lines changed

23 files changed

+224
-105
lines changed

devtools/cli/src/main/java/io/quarkus/cli/CreateApp.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import io.quarkus.cli.create.TargetGAVGroup;
1313
import io.quarkus.cli.create.TargetLanguageGroup;
1414
import io.quarkus.devtools.commands.CreateProject.CreateProjectKey;
15-
import io.quarkus.devtools.commands.SourceType;
15+
import io.quarkus.devtools.project.SourceType;
1616
import io.quarkus.devtools.commands.data.QuarkusCommandInvocation;
1717
import io.quarkus.devtools.commands.handlers.CreateJBangProjectCommandHandler;
1818
import io.quarkus.devtools.commands.handlers.CreateProjectCommandHandler;

devtools/cli/src/main/java/io/quarkus/cli/CreateCli.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import io.quarkus.cli.create.TargetGAVGroup;
1313
import io.quarkus.cli.create.TargetLanguageGroup;
1414
import io.quarkus.devtools.commands.CreateProject.CreateProjectKey;
15-
import io.quarkus.devtools.commands.SourceType;
15+
import io.quarkus.devtools.project.SourceType;
1616
import io.quarkus.devtools.commands.data.QuarkusCommandInvocation;
1717
import io.quarkus.devtools.commands.handlers.CreateJBangProjectCommandHandler;
1818
import io.quarkus.devtools.commands.handlers.CreateProjectCommandHandler;

devtools/cli/src/main/java/io/quarkus/cli/create/BaseCreateCommand.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package io.quarkus.cli.create;
22

3-
import static io.quarkus.devtools.commands.CreateProjectHelper.computeJavaVersion;
3+
import static io.quarkus.devtools.project.JavaVersion.computeJavaVersion;
44

55
import java.nio.file.Path;
66
import java.util.Collection;
@@ -17,7 +17,7 @@
1717
import io.quarkus.cli.registry.ToggleRegistryClientMixin;
1818
import io.quarkus.devtools.commands.CreateProject.CreateProjectKey;
1919
import io.quarkus.devtools.commands.CreateProjectHelper;
20-
import io.quarkus.devtools.commands.SourceType;
20+
import io.quarkus.devtools.project.SourceType;
2121
import io.quarkus.devtools.commands.data.QuarkusCommandInvocation;
2222
import io.quarkus.devtools.project.BuildTool;
2323
import io.quarkus.devtools.project.QuarkusProject;

devtools/cli/src/main/java/io/quarkus/cli/create/TargetLanguageGroup.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
import java.util.stream.Collectors;
66

77
import io.quarkus.cli.common.OutputOptionMixin;
8-
import io.quarkus.devtools.commands.CreateProjectHelper;
9-
import io.quarkus.devtools.commands.SourceType;
8+
import io.quarkus.devtools.project.SourceType;
109
import io.quarkus.devtools.project.BuildTool;
10+
import io.quarkus.devtools.project.JavaVersion;
1111
import picocli.CommandLine;
1212
import picocli.CommandLine.Model.CommandSpec;
1313
import picocli.CommandLine.ParameterException;
@@ -17,13 +17,13 @@ public class TargetLanguageGroup {
1717

1818
static class VersionCandidates extends ArrayList<String> {
1919
VersionCandidates() {
20-
super(CreateProjectHelper.JAVA_VERSIONS_LTS.stream().map(String::valueOf).collect(Collectors.toList()));
20+
super(JavaVersion.JAVA_VERSIONS_LTS.stream().map(String::valueOf).collect(Collectors.toList()));
2121
}
2222
}
2323

2424
@CommandLine.Option(names = {
25-
"--java" }, description = "Target Java version.\n Valid values: ${COMPLETION-CANDIDATES}", completionCandidates = VersionCandidates.class, defaultValue = CreateProjectHelper.DETECT_JAVA_RUNTIME_VERSION)
26-
String javaVersion = CreateProjectHelper.DETECT_JAVA_RUNTIME_VERSION;
25+
"--java" }, description = "Target Java version.\n Valid values: ${COMPLETION-CANDIDATES}", completionCandidates = VersionCandidates.class, defaultValue = JavaVersion.DETECT_JAVA_RUNTIME_VERSION)
26+
String javaVersion = JavaVersion.DETECT_JAVA_RUNTIME_VERSION;
2727

2828
@CommandLine.Option(names = { "--kotlin" }, description = "Use Kotlin")
2929
boolean kotlin = false;

devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusPlatformTask.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,12 @@
1515
import org.gradle.api.GradleException;
1616
import org.gradle.api.artifacts.Configuration;
1717
import org.gradle.api.artifacts.Dependency;
18+
import org.gradle.api.tasks.TaskCollection;
19+
import org.gradle.api.tasks.compile.JavaCompile;
1820

1921
import io.quarkus.bootstrap.BootstrapConstants;
2022
import io.quarkus.devtools.messagewriter.MessageWriter;
23+
import io.quarkus.devtools.project.JavaVersion;
2124
import io.quarkus.devtools.project.QuarkusProject;
2225
import io.quarkus.devtools.project.QuarkusProjectHelper;
2326
import io.quarkus.devtools.project.buildfile.BuildFile;
@@ -118,7 +121,6 @@ protected String quarkusCoreVersion() {
118121
}
119122

120123
protected QuarkusProject getQuarkusProject(boolean limitExtensionsToImportedPlatforms) {
121-
122124
final GradleMessageWriter log = messageWriter();
123125
final ExtensionCatalog catalog = extensionsCatalog(limitExtensionsToImportedPlatforms, log);
124126

@@ -136,7 +138,17 @@ protected QuarkusProject getQuarkusProject(boolean limitExtensionsToImportedPlat
136138
throw new GradleException(
137139
"Mixed DSL is not supported. Both build and settings file need to use either Kotlin or Groovy DSL");
138140
}
139-
return QuarkusProjectHelper.getProject(getProject().getProjectDir().toPath(), catalog, buildFile, log);
141+
final JavaVersion javaVersion = resolveProjectJavaVersion();
142+
return QuarkusProjectHelper.getProject(getProject().getProjectDir().toPath(), catalog, buildFile, javaVersion, log);
143+
}
144+
145+
private JavaVersion resolveProjectJavaVersion() {
146+
TaskCollection<JavaCompile> compileTasks = getProject().getTasks().withType(JavaCompile.class);
147+
if (compileTasks.isEmpty()) {
148+
return JavaVersion.NA;
149+
}
150+
final JavaCompile task = compileTasks.iterator().next();
151+
return new JavaVersion(task.getTargetCompatibility());
140152
}
141153

142154
protected GradleMessageWriter messageWriter() {

devtools/maven/src/main/java/io/quarkus/maven/CreateJBangMojo.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import io.quarkus.devtools.commands.data.QuarkusCommandException;
2727
import io.quarkus.devtools.messagewriter.MessageWriter;
2828
import io.quarkus.devtools.project.BuildTool;
29+
import io.quarkus.devtools.project.JavaVersion;
2930
import io.quarkus.devtools.project.QuarkusProject;
3031
import io.quarkus.devtools.project.QuarkusProjectHelper;
3132
import io.quarkus.maven.utilities.MojoUtils;
@@ -117,7 +118,7 @@ public void execute() throws MojoExecutionException {
117118
.artifactResolver(mvn)
118119
.build();
119120
final CreateJBangProject createJBangProject = new CreateJBangProject(QuarkusProject.of(projectDirPath, catalog,
120-
codestartsResourceLoader, log, BuildTool.MAVEN))
121+
codestartsResourceLoader, log, BuildTool.MAVEN, new JavaVersion(javaVersion)))
121122
.extensions(extensions)
122123
.javaVersion(javaVersion)
123124
.setValue(NO_JBANG_WRAPPER, noJBangWrapper);

devtools/maven/src/main/java/io/quarkus/maven/CreateProjectMojo.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import io.quarkus.devtools.commands.CreateProjectHelper;
3838
import io.quarkus.devtools.messagewriter.MessageWriter;
3939
import io.quarkus.devtools.project.BuildTool;
40+
import io.quarkus.devtools.project.JavaVersion;
4041
import io.quarkus.devtools.project.QuarkusProject;
4142
import io.quarkus.devtools.project.QuarkusProjectHelper;
4243
import io.quarkus.maven.components.MavenVersionEnforcer;
@@ -297,7 +298,7 @@ public void execute() throws MojoExecutionException {
297298
.artifactResolver(mvn)
298299
.build();
299300
QuarkusProject newProject = QuarkusProject.of(projectDirPath, catalog,
300-
codestartsResourceLoader, log, buildToolEnum);
301+
codestartsResourceLoader, log, buildToolEnum, new JavaVersion(javaVersion, javaVersion));
301302
final CreateProject createProject = new CreateProject(newProject)
302303
.groupId(projectGroupId)
303304
.artifactId(projectArtifactId)

devtools/maven/src/main/java/io/quarkus/maven/QuarkusProjectMojoBase.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import io.quarkus.bootstrap.resolver.maven.MavenArtifactResolver;
3030
import io.quarkus.devtools.messagewriter.MessageWriter;
3131
import io.quarkus.devtools.project.BuildTool;
32+
import io.quarkus.devtools.project.JavaVersion;
3233
import io.quarkus.devtools.project.QuarkusProject;
3334
import io.quarkus.devtools.project.QuarkusProjectHelper;
3435
import io.quarkus.devtools.project.buildfile.MavenProjectBuildFile;
@@ -106,7 +107,7 @@ public void execute() throws MojoExecutionException {
106107
final List<ResourceLoader> codestartsResourceLoader = getCodestartResourceLoaders(resolveExtensionCatalog());
107108
quarkusProject = QuarkusProject.of(baseDir(), resolveExtensionCatalog(),
108109
codestartsResourceLoader,
109-
log, buildTool);
110+
log, buildTool, JavaVersion.NA);
110111
}
111112

112113
doExecute(quarkusProject, getMessageWriter());

independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/codestarts/jbang/QuarkusJBangCodestartProjectInputBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
import io.quarkus.devtools.codestarts.CodestartProjectInputBuilder;
1010
import io.quarkus.devtools.codestarts.DataKey;
1111
import io.quarkus.devtools.codestarts.utils.NestedMaps;
12-
import io.quarkus.devtools.commands.CreateProjectHelper;
1312
import io.quarkus.devtools.messagewriter.MessageWriter;
13+
import io.quarkus.devtools.project.JavaVersion;
1414
import io.quarkus.devtools.project.extensions.Extensions;
1515
import io.quarkus.maven.dependency.ArtifactCoords;
1616
import io.quarkus.maven.dependency.ArtifactKey;
@@ -86,7 +86,7 @@ public boolean noJBangWrapper() {
8686
public QuarkusJBangCodestartProjectInput build() {
8787
if (!this.containsData("java")) {
8888
this.addData(NestedMaps
89-
.unflatten(Map.of("java.version", String.valueOf(CreateProjectHelper.determineBestJavaLtsVersion()))));
89+
.unflatten(Map.of("java.version", String.valueOf(JavaVersion.determineBestJavaLtsVersion()))));
9090
}
9191
return new QuarkusJBangCodestartProjectInput(this);
9292
}

independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/commands/CreateJBangProject.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package io.quarkus.devtools.commands;
22

3-
import static io.quarkus.devtools.commands.CreateProjectHelper.computeJavaVersion;
3+
import static io.quarkus.devtools.project.JavaVersion.computeJavaVersion;
44
import static java.util.Objects.requireNonNull;
55

66
import java.util.HashMap;
@@ -14,6 +14,7 @@
1414
import io.quarkus.devtools.commands.data.QuarkusCommandOutcome;
1515
import io.quarkus.devtools.commands.handlers.CreateJBangProjectCommandHandler;
1616
import io.quarkus.devtools.project.QuarkusProject;
17+
import io.quarkus.devtools.project.SourceType;
1718

1819
public class CreateJBangProject {
1920
public interface CreateJBangProjectKey {

0 commit comments

Comments
 (0)