diff --git a/devtools/aesh/src/main/java/io/quarkus/cli/commands/CreateProjectCommand.java b/devtools/aesh/src/main/java/io/quarkus/cli/commands/CreateProjectCommand.java
index 34a77f314e917..265cfba9e8670 100644
--- a/devtools/aesh/src/main/java/io/quarkus/cli/commands/CreateProjectCommand.java
+++ b/devtools/aesh/src/main/java/io/quarkus/cli/commands/CreateProjectCommand.java
@@ -12,6 +12,7 @@
import org.aesh.io.Resource;
import io.quarkus.cli.commands.writer.FileProjectWriter;
+import io.quarkus.platform.tools.config.QuarkusPlatformConfig;
/**
* @author Ståle Pedersen
@@ -42,11 +43,12 @@ public CommandResult execute(CommandInvocation commandInvocation) {
if (path != null) {
try {
- boolean status = new CreateProject(new FileProjectWriter(new File(path.getAbsolutePath())))
- .groupId(groupid)
- .artifactId(artifactid)
- .version(this.version)
- .doCreateProject(new HashMap<>());
+ boolean status = new CreateProject(new FileProjectWriter(new File(path.getAbsolutePath())),
+ QuarkusPlatformConfig.getGlobalDefault().getPlatformDescriptor())
+ .groupId(groupid)
+ .artifactId(artifactid)
+ .version(this.version)
+ .doCreateProject(new HashMap<>());
if (status) {
commandInvocation.println("Project " + artifactid + " created successfully.");
} else {
diff --git a/devtools/aesh/src/main/java/io/quarkus/cli/commands/ListExtensionsCommand.java b/devtools/aesh/src/main/java/io/quarkus/cli/commands/ListExtensionsCommand.java
index 7e0b1b2ebd354..7f8163d1b8a43 100644
--- a/devtools/aesh/src/main/java/io/quarkus/cli/commands/ListExtensionsCommand.java
+++ b/devtools/aesh/src/main/java/io/quarkus/cli/commands/ListExtensionsCommand.java
@@ -15,6 +15,7 @@
import io.quarkus.cli.commands.file.GradleBuildFile;
import io.quarkus.cli.commands.file.MavenBuildFile;
import io.quarkus.cli.commands.writer.FileProjectWriter;
+import io.quarkus.cli.commands.writer.ProjectWriter;
import io.quarkus.platform.tools.config.QuarkusPlatformConfig;
/**
@@ -44,19 +45,19 @@ public CommandResult execute(CommandInvocation commandInvocation) throws Command
} else {
try {
BuildFile buildFile = null;
+ ProjectWriter writer = null;
if (path != null) {
File projectDirectory = new File(path.getAbsolutePath());
- try (FileProjectWriter writer = new FileProjectWriter(projectDirectory)) {
- if (new File(projectDirectory, "build.gradle").exists()
- || new File(projectDirectory, "build.gradle.kts").exists()) {
- buildFile = new GradleBuildFile(writer);
- } else {
- buildFile = new MavenBuildFile(writer);
- }
+ writer = new FileProjectWriter(projectDirectory);
+ if (new File(projectDirectory, "build.gradle").exists()
+ || new File(projectDirectory, "build.gradle.kts").exists()) {
+ buildFile = new GradleBuildFile(writer);
+ } else {
+ buildFile = new MavenBuildFile(writer);
}
}
- new ListExtensions(buildFile, QuarkusPlatformConfig.getGlobalDefault().getPlatformDescriptor())
- .listExtensions(all, format, searchPattern);
+ new ListExtensions(writer, buildFile, QuarkusPlatformConfig.getGlobalDefault().getPlatformDescriptor())
+ .all(all).format(format).search(searchPattern);
} catch (IOException e) {
throw new CommandException("Unable to list extensions", e);
}
diff --git a/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusAddExtension.java b/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusAddExtension.java
index 6d5d7a0a794b1..96a65f61d4a39 100644
--- a/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusAddExtension.java
+++ b/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusAddExtension.java
@@ -40,7 +40,7 @@ public void addExtension() {
.collect(toSet());
try {
- new AddExtensions(getGradleBuildFile(), platformDescriptor())
+ new AddExtensions(getWriter(), getGradleBuildFile(), platformDescriptor())
.extensions(extensionsSet)
.execute();
} catch (Exception e) {
diff --git a/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusListExtensions.java b/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusListExtensions.java
index 1644d9f8b5969..05645ede916bf 100644
--- a/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusListExtensions.java
+++ b/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusListExtensions.java
@@ -7,7 +7,6 @@
import org.gradle.api.tasks.options.Option;
import io.quarkus.cli.commands.ListExtensions;
-import io.quarkus.cli.commands.writer.FileProjectWriter;
import io.quarkus.gradle.GradleBuildFileFromConnector;
public class QuarkusListExtensions extends QuarkusPlatformTask {
@@ -57,7 +56,7 @@ public QuarkusListExtensions() {
@TaskAction
public void listExtensions() {
try {
- new ListExtensions(new GradleBuildFileFromConnector(new FileProjectWriter(getProject().getProjectDir())),
+ new ListExtensions(getWriter(), new GradleBuildFileFromConnector(getWriter()),
platformDescriptor())
.all(isAll())
.format(getFormat())
diff --git a/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusPlatformTask.java b/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusPlatformTask.java
index 82087c556b4fc..ac76d1aa9b084 100644
--- a/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusPlatformTask.java
+++ b/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusPlatformTask.java
@@ -66,8 +66,13 @@ protected QuarkusPlatformDescriptor platformDescriptor() {
@Internal
protected GradleBuildFile getGradleBuildFile() {
return getProject().getParent() == null
- ? new GradleBuildFile(new FileProjectWriter(getProject().getProjectDir()))
- : new GradleBuildFile(new FileProjectWriter(getProject().getProjectDir()),
+ ? new GradleBuildFile(getWriter())
+ : new GradleBuildFile(getWriter(),
new FileProjectWriter(getProject().getRootProject().getProjectDir()));
}
+
+ @Internal
+ protected FileProjectWriter getWriter() {
+ return new FileProjectWriter(getProject().getProjectDir());
+ }
}
diff --git a/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusRemoveExtension.java b/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusRemoveExtension.java
index 427b3f9fd9555..2c646851a4e62 100644
--- a/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusRemoveExtension.java
+++ b/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusRemoveExtension.java
@@ -39,7 +39,7 @@ public void removeExtension() {
.map(String::trim)
.collect(toSet());
try {
- new RemoveExtensions(getGradleBuildFile(), platformDescriptor())
+ new RemoveExtensions(getWriter(), getGradleBuildFile(), platformDescriptor())
.extensions(extensionsSet)
.execute();
} catch (Exception e) {
diff --git a/devtools/maven/src/main/java/io/quarkus/maven/AddExtensionMojo.java b/devtools/maven/src/main/java/io/quarkus/maven/AddExtensionMojo.java
index ba2f1ff21372d..f0edefb59652e 100644
--- a/devtools/maven/src/main/java/io/quarkus/maven/AddExtensionMojo.java
+++ b/devtools/maven/src/main/java/io/quarkus/maven/AddExtensionMojo.java
@@ -14,7 +14,7 @@
import io.quarkus.cli.commands.AddExtensions;
import io.quarkus.cli.commands.QuarkusCommandOutcome;
import io.quarkus.cli.commands.file.BuildFile;
-import io.quarkus.cli.commands.writer.FileProjectWriter;
+import io.quarkus.cli.commands.writer.ProjectWriter;
import io.quarkus.generators.BuildTool;
import io.quarkus.platform.descriptor.QuarkusPlatformDescriptor;
import io.quarkus.platform.tools.MessageWriter;
@@ -49,12 +49,11 @@ protected void validateParameters() throws MojoExecutionException {
}
@Override
- public void doExecute(BuildFile buildFile, QuarkusPlatformDescriptor platformDescr, MessageWriter log)
+ public void doExecute(ProjectWriter writer, BuildFile buildFile, QuarkusPlatformDescriptor platformDescr, MessageWriter log)
throws MojoExecutionException {
-
if (buildFile == null) {
try {
- buildFile = BuildTool.MAVEN.createBuildFile(new FileProjectWriter(project.getBasedir()));
+ buildFile = BuildTool.MAVEN.createBuildFile(writer);
} catch (IOException e) {
throw new MojoExecutionException("Failed to initialize the project's build descriptor", e);
}
@@ -69,7 +68,7 @@ public void doExecute(BuildFile buildFile, QuarkusPlatformDescriptor platformDes
}
try {
- final QuarkusCommandOutcome outcome = new AddExtensions(buildFile, platformDescr)
+ final QuarkusCommandOutcome outcome = new AddExtensions(writer, buildFile, platformDescr)
.extensions(ext.stream().map(String::trim).collect(Collectors.toSet()))
.execute();
if (!outcome.isSuccess()) {
diff --git a/devtools/maven/src/main/java/io/quarkus/maven/BuildFileMojoBase.java b/devtools/maven/src/main/java/io/quarkus/maven/BuildFileMojoBase.java
index 940c4e75bc132..8c79d2104cb57 100644
--- a/devtools/maven/src/main/java/io/quarkus/maven/BuildFileMojoBase.java
+++ b/devtools/maven/src/main/java/io/quarkus/maven/BuildFileMojoBase.java
@@ -23,6 +23,7 @@
import io.quarkus.cli.commands.file.GradleBuildFile;
import io.quarkus.cli.commands.file.MavenBuildFile;
import io.quarkus.cli.commands.writer.FileProjectWriter;
+import io.quarkus.cli.commands.writer.ProjectWriter;
import io.quarkus.platform.descriptor.CombinedQuarkusPlatformDescriptor;
import io.quarkus.platform.descriptor.QuarkusPlatformDescriptor;
import io.quarkus.platform.descriptor.resolver.json.QuarkusJsonPlatformDescriptorResolver;
@@ -118,7 +119,7 @@ public void execute() throws MojoExecutionException {
platformDescr = CreateUtils.resolvePlatformDescriptor(bomGroupId, bomArtifactId, bomVersion, mvn, getLog());
}
- doExecute(buildFile, platformDescr, log);
+ doExecute(fileProjectWriter, buildFile, platformDescr, log);
} catch (IOException e) {
throw new MojoExecutionException("Failed to initialize project reading tools", e);
} finally {
@@ -168,7 +169,8 @@ private Artifact resolveJsonOrNull(MavenArtifactResolver mvn, String bomGroupId,
protected void validateParameters() throws MojoExecutionException {
}
- protected abstract void doExecute(BuildFile buildFile, QuarkusPlatformDescriptor platformDescr, MessageWriter log)
+ protected abstract void doExecute(ProjectWriter writer, BuildFile buildFile, QuarkusPlatformDescriptor platformDescr,
+ MessageWriter log)
throws MojoExecutionException;
private String resolveValue(String expr, BuildFile buildFile) throws IOException {
diff --git a/devtools/maven/src/main/java/io/quarkus/maven/CreateProjectMojo.java b/devtools/maven/src/main/java/io/quarkus/maven/CreateProjectMojo.java
index bd26c6867a537..75c3cf391d5ca 100644
--- a/devtools/maven/src/main/java/io/quarkus/maven/CreateProjectMojo.java
+++ b/devtools/maven/src/main/java/io/quarkus/maven/CreateProjectMojo.java
@@ -210,7 +210,7 @@ public void execute() throws MojoExecutionException {
.className(className)
.extensions(extensions);
if (path != null) {
- createProject.setProperty("path", path);
+ createProject.setValue("path", path);
}
success = createProject.execute().isSuccess();
diff --git a/devtools/maven/src/main/java/io/quarkus/maven/ListExtensionsMojo.java b/devtools/maven/src/main/java/io/quarkus/maven/ListExtensionsMojo.java
index 68d6fa733d1dc..6eb444087e1fb 100644
--- a/devtools/maven/src/main/java/io/quarkus/maven/ListExtensionsMojo.java
+++ b/devtools/maven/src/main/java/io/quarkus/maven/ListExtensionsMojo.java
@@ -6,6 +6,7 @@
import io.quarkus.cli.commands.ListExtensions;
import io.quarkus.cli.commands.file.BuildFile;
+import io.quarkus.cli.commands.writer.ProjectWriter;
import io.quarkus.platform.descriptor.QuarkusPlatformDescriptor;
import io.quarkus.platform.tools.MessageWriter;
@@ -38,10 +39,10 @@ public class ListExtensionsMojo extends BuildFileMojoBase {
protected String searchPattern;
@Override
- public void doExecute(BuildFile buildFile, QuarkusPlatformDescriptor platformDescr, MessageWriter log)
+ public void doExecute(ProjectWriter writer, BuildFile buildFile, QuarkusPlatformDescriptor platformDescr, MessageWriter log)
throws MojoExecutionException {
try {
- new ListExtensions(buildFile, platformDescr)
+ new ListExtensions(writer, buildFile, platformDescr)
.all(all)
.format(format)
.search(searchPattern)
diff --git a/devtools/maven/src/main/java/io/quarkus/maven/RemoveExtensionMojo.java b/devtools/maven/src/main/java/io/quarkus/maven/RemoveExtensionMojo.java
index 5b2595e983a2f..bd4482b1a2aa0 100644
--- a/devtools/maven/src/main/java/io/quarkus/maven/RemoveExtensionMojo.java
+++ b/devtools/maven/src/main/java/io/quarkus/maven/RemoveExtensionMojo.java
@@ -14,7 +14,7 @@
import io.quarkus.cli.commands.QuarkusCommandOutcome;
import io.quarkus.cli.commands.RemoveExtensions;
import io.quarkus.cli.commands.file.BuildFile;
-import io.quarkus.cli.commands.writer.FileProjectWriter;
+import io.quarkus.cli.commands.writer.ProjectWriter;
import io.quarkus.generators.BuildTool;
import io.quarkus.platform.descriptor.QuarkusPlatformDescriptor;
import io.quarkus.platform.tools.MessageWriter;
@@ -49,12 +49,12 @@ protected void validateParameters() throws MojoExecutionException {
}
@Override
- public void doExecute(BuildFile buildFile, QuarkusPlatformDescriptor platformDescr, MessageWriter log)
+ public void doExecute(ProjectWriter writer, BuildFile buildFile, QuarkusPlatformDescriptor platformDescr, MessageWriter log)
throws MojoExecutionException {
if (buildFile == null) {
try {
- buildFile = BuildTool.MAVEN.createBuildFile(new FileProjectWriter(project.getBasedir()));
+ buildFile = BuildTool.MAVEN.createBuildFile(writer);
} catch (IOException e) {
throw new MojoExecutionException("Failed to initialize the project's build descriptor", e);
}
@@ -69,7 +69,7 @@ public void doExecute(BuildFile buildFile, QuarkusPlatformDescriptor platformDes
}
try {
- final QuarkusCommandOutcome outcome = new RemoveExtensions(buildFile, platformDescr)
+ final QuarkusCommandOutcome outcome = new RemoveExtensions(writer, buildFile, platformDescr)
.extensions(ext.stream().map(String::trim).collect(Collectors.toSet()))
.execute();
if (!outcome.isSuccess()) {
diff --git a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/AddExtensionResult.java b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/AddExtensionResult.java
deleted file mode 100644
index 056b03fecfc02..0000000000000
--- a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/AddExtensionResult.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package io.quarkus.cli.commands;
-
-/**
- * @deprecated in 1.3.0.CR1
- * This class was replaced with {@link QuarkusCommandOutcome} as the generic outcome of a project manipulating
- * command.
- * @see QuarkusCommand
- */
-@Deprecated
-public class AddExtensionResult {
-
- private final boolean updated;
- private final boolean succeeded;
-
- public AddExtensionResult(boolean updated, boolean succeeded) {
- this.updated = updated;
- this.succeeded = succeeded;
- }
-
- public boolean isUpdated() {
- return updated;
- }
-
- public boolean succeeded() {
- return succeeded;
- }
-}
diff --git a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/AddExtensions.java b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/AddExtensions.java
index c61f94a2859cd..1d4b941cdb597 100644
--- a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/AddExtensions.java
+++ b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/AddExtensions.java
@@ -1,5 +1,7 @@
package io.quarkus.cli.commands;
+import static com.google.common.base.Preconditions.checkNotNull;
+
import io.quarkus.cli.commands.file.BuildFile;
import io.quarkus.cli.commands.file.MavenBuildFile;
import io.quarkus.cli.commands.writer.ProjectWriter;
@@ -7,7 +9,6 @@
import io.quarkus.platform.descriptor.QuarkusPlatformDescriptor;
import io.quarkus.platform.tools.ToolsConstants;
import io.quarkus.platform.tools.ToolsUtils;
-import io.quarkus.platform.tools.config.QuarkusPlatformConfig;
import java.io.IOException;
import java.util.Set;
@@ -22,46 +23,18 @@ public class AddExtensions {
private final QuarkusCommandInvocation invocation;
- /**
- * @deprecated in 1.3.0.CR1
- * Please use the variant that accepts {@link QuarkusPlatformDescriptor} as an argument.
- */
- @Deprecated
- public AddExtensions(ProjectWriter writer) throws IOException {
- this(writer, QuarkusPlatformConfig.getGlobalDefault().getPlatformDescriptor());
- }
-
- /**
- * @deprecated in 1.3.0.CR1
- * Please use the variant that accepts {@link QuarkusPlatformDescriptor} as an argument.
- */
- @Deprecated
- public AddExtensions(BuildFile buildFile) throws IOException {
- this(buildFile, QuarkusPlatformConfig.getGlobalDefault().getPlatformDescriptor());
- }
-
- /**
- * @deprecated in 1.3.0.CR1
- * Please use the variant that accepts {@link QuarkusPlatformDescriptor} as an argument.
- */
- @Deprecated
- public AddExtensions(final ProjectWriter writer, final BuildTool buildTool)
- throws IOException {
- this(writer, buildTool, QuarkusPlatformConfig.getGlobalDefault().getPlatformDescriptor());
- }
-
public AddExtensions(final ProjectWriter writer, QuarkusPlatformDescriptor platformDescr) throws IOException {
- this(new MavenBuildFile(writer), platformDescr);
+ this(writer, new MavenBuildFile(writer), platformDescr);
}
public AddExtensions(final ProjectWriter writer, final BuildTool buildTool, QuarkusPlatformDescriptor platformDescr)
throws IOException {
- this(buildTool.createBuildFile(writer), platformDescr);
+ this(writer, buildTool.createBuildFile(writer), platformDescr);
}
- public AddExtensions(final BuildFile buildFile, QuarkusPlatformDescriptor platformDescr) {
- invocation = new QuarkusCommandInvocation(platformDescr);
- invocation.setBuildFile(buildFile);
+ public AddExtensions(final ProjectWriter writer, final BuildFile buildFile, QuarkusPlatformDescriptor platformDescr) {
+ checkNotNull(buildFile, "buildFile is required");
+ invocation = new QuarkusCommandInvocation(platformDescr, writer, buildFile);
}
public AddExtensions extensions(Set extensions) {
@@ -69,22 +42,6 @@ public AddExtensions extensions(Set extensions) {
return this;
}
- /**
- * @deprecated in 1.3.0.CR1
- * Please call {@link #extensions(Set)} and then {@link #execute()}
- */
- @Deprecated
- public AddExtensionResult addExtensions(final Set extensions) throws IOException {
- final QuarkusCommandOutcome outcome;
- try {
- outcome = extensions(extensions).execute();
- } catch (QuarkusCommandException e) {
- throw new IOException("Failed to list extensions", e);
- }
- return new AddExtensionResult(outcome.getValue(OUTCOME_UPDATED, false), outcome.isSuccess());
-
- }
-
public QuarkusCommandOutcome execute() throws QuarkusCommandException {
return new AddExtensionsCommandHandler().execute(invocation);
}
diff --git a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/AddExtensionsCommandHandler.java b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/AddExtensionsCommandHandler.java
index 350619c683eda..34c1637acc9bd 100644
--- a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/AddExtensionsCommandHandler.java
+++ b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/AddExtensionsCommandHandler.java
@@ -72,7 +72,7 @@ public QuarkusCommandOutcome execute(QuarkusCommandInvocation invocation) throws
throw new QuarkusCommandException("Failed to add extensions", e);
}
- if (updated) {
+ if (buildFile != null && updated) {
try {
buildFile.close();
} catch (IOException e) {
diff --git a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/CreateProject.java b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/CreateProject.java
index fcc0e19e8c965..6f2617955354b 100644
--- a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/CreateProject.java
+++ b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/CreateProject.java
@@ -1,5 +1,6 @@
package io.quarkus.cli.commands;
+import static com.google.common.base.Preconditions.checkNotNull;
import static io.quarkus.generators.ProjectGenerator.CLASS_NAME;
import static io.quarkus.generators.ProjectGenerator.IS_SPRING;
import static io.quarkus.generators.ProjectGenerator.JAVA_TARGET;
@@ -13,9 +14,9 @@
import io.quarkus.generators.BuildTool;
import io.quarkus.generators.SourceType;
import io.quarkus.platform.descriptor.QuarkusPlatformDescriptor;
-import io.quarkus.platform.tools.config.QuarkusPlatformConfig;
import java.io.IOException;
import java.util.Collection;
+import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
@@ -32,54 +33,36 @@ public class CreateProject {
private static final Pattern JAVA_VERSION_PATTERN = Pattern.compile("(?:1\\.)?(\\d+)(?:\\..*)?");
- public static SourceType determineSourceType(Set extensions) {
- Optional sourceType = extensions.stream()
- .map(SourceType::parse)
- .filter(Optional::isPresent)
- .map(e -> e.orElse(SourceType.JAVA))
- .findAny();
- return sourceType.orElse(SourceType.JAVA);
- }
-
- private static boolean isSpringStyle(Collection extensions) {
- return extensions != null && extensions.stream().anyMatch(e -> e.toLowerCase().contains("spring-web"));
- }
-
- private QuarkusCommandInvocation invocation;
-
+ private final ProjectWriter writer;
+ private final QuarkusPlatformDescriptor platformDescr;
private String javaTarget;
+ private BuildFile buildFile;
+ private BuildTool buildTool = BuildTool.MAVEN;
- /**
- * @deprecated since 1.3.0.CR1
- * Please use {@link #CreateProject(ProjectWriter, QuarkusPlatformDescriptor)} instead.
- */
- @Deprecated
- public CreateProject(ProjectWriter writer) {
- this(writer, QuarkusPlatformConfig.getGlobalDefault().getPlatformDescriptor());
- }
+ private Map values = new HashMap<>();
public CreateProject(final ProjectWriter writer, QuarkusPlatformDescriptor platformDescr) {
- invocation = new QuarkusCommandInvocation(platformDescr);
- invocation.setProjectWriter(writer);
+ this.writer = checkNotNull(writer, "writer is required");
+ this.platformDescr = checkNotNull(platformDescr, "platformDescr is required");
}
public CreateProject groupId(String groupId) {
- setProperty(PROJECT_GROUP_ID, groupId);
+ setValue(PROJECT_GROUP_ID, groupId);
return this;
}
public CreateProject artifactId(String artifactId) {
- setProperty(PROJECT_ARTIFACT_ID, artifactId);
+ setValue(PROJECT_ARTIFACT_ID, artifactId);
return this;
}
public CreateProject version(String version) {
- setProperty(PROJECT_VERSION, version);
+ setValue(PROJECT_VERSION, version);
return this;
}
public CreateProject sourceType(SourceType sourceType) {
- invocation.setValue(SOURCE_TYPE, sourceType);
+ setValue(SOURCE_TYPE, sourceType);
return this;
}
@@ -95,7 +78,13 @@ public CreateProject className(String className) {
if (!(SourceVersion.isName(className) && !SourceVersion.isKeyword(className))) {
throw new IllegalArgumentException(className + " is not a valid class name");
}
- setProperty(CLASS_NAME, className);
+ setValue(CLASS_NAME, className);
+ return this;
+ }
+
+ public CreateProject buildFile(BuildFile buildFile) {
+ this.buildFile = buildFile;
+ this.buildTool(buildFile.getBuildTool());
return this;
}
@@ -105,28 +94,18 @@ public CreateProject className(String className) {
@Deprecated
public CreateProject extensions(Set extensions) {
if (isSpringStyle(extensions)) {
- invocation.setValue(IS_SPRING, true);
+ setValue(IS_SPRING, true);
}
return this;
}
- public CreateProject setProperty(String name, String value) {
- invocation.setProperty(name, value);
- return this;
- }
-
public CreateProject setValue(String name, Object value) {
- invocation.setValue(name, value);
- return this;
- }
-
- public CreateProject buildFile(BuildFile buildFile) {
- invocation.setBuildFile(buildFile);
+ values.put(name, value);
return this;
}
public CreateProject buildTool(BuildTool buildTool) {
- invocation.setBuildTool(buildTool);
+ this.buildTool = checkNotNull(buildTool, "buildTool is required");
return this;
}
@@ -134,7 +113,7 @@ public boolean doCreateProject(final Map context) throws IOExcep
if (context != null && !context.isEmpty()) {
for (Map.Entry entry : context.entrySet()) {
if (entry.getValue() != null) {
- invocation.setProperty(entry.getKey(), entry.getValue().toString());
+ setValue(entry.getKey(), entry.getValue());
}
}
}
@@ -151,11 +130,41 @@ public QuarkusCommandOutcome execute() throws QuarkusCommandException {
Matcher matcher = JAVA_VERSION_PATTERN
.matcher(this.javaTarget != null ? this.javaTarget : System.getProperty("java.version", ""));
if (matcher.matches() && Integer.parseInt(matcher.group(1)) < 11) {
- invocation.setProperty(JAVA_TARGET, "8");
+ setValue(JAVA_TARGET, "8");
} else {
- invocation.setProperty(JAVA_TARGET, "11");
+ setValue(JAVA_TARGET, "11");
}
+ final BuildFile computeBuildFile = computeBuildFile();
+ final QuarkusCommandInvocation invocation = new QuarkusCommandInvocation(values, platformDescr, writer,
+ computeBuildFile);
return new CreateProjectCommandHandler().execute(invocation);
}
+
+ private BuildFile computeBuildFile() throws QuarkusCommandException {
+ if (buildFile != null) {
+ return buildFile;
+ }
+ if (buildTool != null) {
+ try {
+ return buildTool.createBuildFile(writer);
+ } catch (final IOException e) {
+ throw new QuarkusCommandException("Failed to create project", e);
+ }
+ }
+ throw new QuarkusCommandException("Either BuildTool or BuildFile must be defined");
+ }
+
+ public static SourceType determineSourceType(Set extensions) {
+ Optional sourceType = extensions.stream()
+ .map(SourceType::parse)
+ .filter(Optional::isPresent)
+ .map(e -> e.orElse(SourceType.JAVA))
+ .findAny();
+ return sourceType.orElse(SourceType.JAVA);
+ }
+
+ private static boolean isSpringStyle(Collection extensions) {
+ return extensions != null && extensions.stream().anyMatch(e -> e.toLowerCase().contains("spring-web"));
+ }
}
diff --git a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/CreateProjectCommandHandler.java b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/CreateProjectCommandHandler.java
index d04cb36129f08..52b3caec87fdf 100644
--- a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/CreateProjectCommandHandler.java
+++ b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/CreateProjectCommandHandler.java
@@ -1,16 +1,6 @@
package io.quarkus.cli.commands;
-import static io.quarkus.generators.ProjectGenerator.BOM_ARTIFACT_ID;
-import static io.quarkus.generators.ProjectGenerator.BOM_GROUP_ID;
-import static io.quarkus.generators.ProjectGenerator.BOM_VERSION;
-import static io.quarkus.generators.ProjectGenerator.BUILD_FILE;
-import static io.quarkus.generators.ProjectGenerator.CLASS_NAME;
-import static io.quarkus.generators.ProjectGenerator.PACKAGE_NAME;
-import static io.quarkus.generators.ProjectGenerator.PROJECT_ARTIFACT_ID;
-import static io.quarkus.generators.ProjectGenerator.PROJECT_GROUP_ID;
-import static io.quarkus.generators.ProjectGenerator.PROJECT_VERSION;
-import static io.quarkus.generators.ProjectGenerator.QUARKUS_VERSION;
-import static io.quarkus.generators.ProjectGenerator.SOURCE_TYPE;
+import static io.quarkus.generators.ProjectGenerator.*;
import io.quarkus.cli.commands.file.BuildFile;
import io.quarkus.cli.commands.writer.ProjectWriter;
@@ -39,36 +29,34 @@ public QuarkusCommandOutcome execute(QuarkusCommandInvocation invocation) throws
}
final QuarkusPlatformDescriptor platformDescr = invocation.getPlatformDescriptor();
- invocation.setProperty(BOM_GROUP_ID, platformDescr.getBomGroupId());
- invocation.setProperty(BOM_ARTIFACT_ID, platformDescr.getBomArtifactId());
- invocation.setProperty(QUARKUS_VERSION, platformDescr.getQuarkusVersion());
- invocation.setProperty(BOM_VERSION, platformDescr.getBomVersion());
+ invocation.setValue(BOM_GROUP_ID, platformDescr.getBomGroupId());
+ invocation.setValue(BOM_ARTIFACT_ID, platformDescr.getBomArtifactId());
+ invocation.setValue(QUARKUS_VERSION, platformDescr.getQuarkusVersion());
+ invocation.setValue(BOM_VERSION, platformDescr.getBomVersion());
final Properties quarkusProps = ToolsUtils.readQuarkusProperties(platformDescr);
- quarkusProps.forEach((k, v) -> invocation.setProperty(k.toString().replace("-", "_"), v.toString()));
+ quarkusProps.forEach((k, v) -> invocation.setValue(k.toString().replace("-", "_"), v.toString()));
try (BuildFile buildFile = invocation.getBuildFile()) {
- invocation.setValue(BUILD_FILE, buildFile);
-
- String className = invocation.getProperty(CLASS_NAME);
+ String className = invocation.getStringValue(CLASS_NAME);
if (className != null) {
className = invocation.getValue(SOURCE_TYPE, SourceType.JAVA).stripExtensionFrom(className);
int idx = className.lastIndexOf('.');
if (idx >= 0) {
- String pkgName = invocation.getProperty(PACKAGE_NAME);
+ String pkgName = invocation.getStringValue(PACKAGE_NAME);
if (pkgName == null) {
- invocation.setProperty(PACKAGE_NAME, className.substring(0, idx));
+ invocation.setValue(PACKAGE_NAME, className.substring(0, idx));
}
className = className.substring(idx + 1);
}
- invocation.setProperty(CLASS_NAME, className);
+ invocation.setValue(CLASS_NAME, className);
}
ProjectGeneratorRegistry.get(BasicRestProjectGenerator.NAME).generate(projectWriter, invocation);
// call close at the end to save file
- buildFile.completeFile(invocation.getProperty(PROJECT_GROUP_ID),
- invocation.getProperty(PROJECT_ARTIFACT_ID),
- invocation.getProperty(PROJECT_VERSION),
+ buildFile.completeFile(invocation.getStringValue(PROJECT_GROUP_ID),
+ invocation.getStringValue(PROJECT_ARTIFACT_ID),
+ invocation.getStringValue(PROJECT_VERSION),
platformDescr, quarkusProps);
} catch (IOException e) {
throw new QuarkusCommandException("Failed to create project", e);
diff --git a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/ListExtensions.java b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/ListExtensions.java
index 6f7daf0e3a401..c1d8f98eb00de 100644
--- a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/ListExtensions.java
+++ b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/ListExtensions.java
@@ -1,10 +1,10 @@
package io.quarkus.cli.commands;
import io.quarkus.cli.commands.file.BuildFile;
+import io.quarkus.cli.commands.writer.ProjectWriter;
import io.quarkus.platform.descriptor.QuarkusPlatformDescriptor;
import io.quarkus.platform.tools.ToolsConstants;
import io.quarkus.platform.tools.ToolsUtils;
-import io.quarkus.platform.tools.config.QuarkusPlatformConfig;
import java.io.IOException;
import java.util.Map;
import org.apache.maven.model.Dependency;
@@ -22,20 +22,9 @@ public class ListExtensions {
private final QuarkusCommandInvocation invocation;
private final ListExtensionsCommandHandler handler = new ListExtensionsCommandHandler();
- /**
- * @deprecated since 1.3.0.CR1
- * Please use {@link #ListExtensions(BuildFile, QuarkusPlatformDescriptor)} instead.
- */
- @Deprecated
- public ListExtensions(final BuildFile buildFile) throws IOException {
- this(buildFile, QuarkusPlatformConfig.getGlobalDefault().getPlatformDescriptor());
- }
-
- public ListExtensions(final BuildFile buildFile, QuarkusPlatformDescriptor platformDescr) throws IOException {
- this.invocation = new QuarkusCommandInvocation(platformDescr);
- if (buildFile != null) {
- invocation.setBuildFile(buildFile);
- }
+ public ListExtensions(final ProjectWriter writer, final BuildFile buildFile, QuarkusPlatformDescriptor platformDescr)
+ throws IOException {
+ this.invocation = new QuarkusCommandInvocation(platformDescr, writer, buildFile);
}
public ListExtensions all(boolean all) {
diff --git a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/ListExtensionsCommandHandler.java b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/ListExtensionsCommandHandler.java
index 6fe372b9eaea0..4e7995ba29f61 100644
--- a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/ListExtensionsCommandHandler.java
+++ b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/ListExtensionsCommandHandler.java
@@ -4,7 +4,6 @@
import io.quarkus.cli.commands.file.GradleBuildFile;
import io.quarkus.dependencies.Extension;
import java.io.IOException;
-import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -102,12 +101,7 @@ private BuildFile getBuildFileSafe(QuarkusCommandInvocation invocation) {
}
Map findInstalled(QuarkusCommandInvocation invocation) throws IOException {
- final BuildFile buildFile = invocation.getBuildFile(false);
- if (buildFile != null) {
- return buildFile.findInstalled();
- } else {
- return Collections.emptyMap();
- }
+ return invocation.getBuildFile().findInstalled();
}
private boolean filterUnlisted(Extension e) {
diff --git a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/QuarkusCommandInvocation.java b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/QuarkusCommandInvocation.java
index b83636cd7dfc9..6853e34405dff 100644
--- a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/QuarkusCommandInvocation.java
+++ b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/QuarkusCommandInvocation.java
@@ -1,49 +1,45 @@
package io.quarkus.cli.commands;
+import static com.google.common.base.Preconditions.checkNotNull;
+
import io.quarkus.cli.commands.file.BuildFile;
-import io.quarkus.cli.commands.file.MavenBuildFile;
import io.quarkus.cli.commands.writer.ProjectWriter;
-import io.quarkus.generators.BuildTool;
import io.quarkus.platform.descriptor.QuarkusPlatformDescriptor;
import io.quarkus.platform.tools.DefaultMessageWriter;
import io.quarkus.platform.tools.MessageWriter;
-import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
-import java.util.Properties;
public class QuarkusCommandInvocation extends ValueMap {
protected final QuarkusPlatformDescriptor platformDescr;
protected final MessageWriter log;
- protected final Properties props;
- private BuildTool buildTool;
- private BuildFile buildFile;
- private ProjectWriter writer;
+ private final BuildFile buildFile;
+ private final ProjectWriter writer;
- public QuarkusCommandInvocation(QuarkusPlatformDescriptor platformDescr) {
- this(platformDescr, new DefaultMessageWriter());
+ public QuarkusCommandInvocation(QuarkusPlatformDescriptor platformDescr, ProjectWriter writer,
+ BuildFile buildFile) {
+ this(new HashMap<>(), platformDescr, writer, buildFile, new DefaultMessageWriter());
}
- public QuarkusCommandInvocation(QuarkusPlatformDescriptor platformDescr, MessageWriter log) {
- this(platformDescr, log, new HashMap<>(), new Properties(System.getProperties()));
+ public QuarkusCommandInvocation(Map values, QuarkusPlatformDescriptor platformDescr, ProjectWriter writer,
+ BuildFile buildFile) {
+ this(values, platformDescr, writer, buildFile, new DefaultMessageWriter());
}
- public QuarkusCommandInvocation(QuarkusPlatformDescriptor platformDescr, MessageWriter log, Map values,
- Properties props) {
+ public QuarkusCommandInvocation(Map values, QuarkusPlatformDescriptor platformDescr, ProjectWriter writer,
+ BuildFile buildFile, MessageWriter log) {
super(values);
- this.platformDescr = platformDescr;
- this.log = log;
- this.props = props;
+ this.platformDescr = checkNotNull(platformDescr, "platformDescr is required");
+ this.log = checkNotNull(log, "log is required");
+ this.writer = checkNotNull(writer, "writer is required");
+ this.buildFile = checkNotNull(buildFile, "buildFile is required");
}
public QuarkusCommandInvocation(QuarkusCommandInvocation original) {
super(original.values);
this.platformDescr = original.platformDescr;
this.log = original.log;
- this.props = new Properties();
- this.props.putAll(original.props);
- this.buildTool = original.buildTool;
this.buildFile = original.buildFile;
this.writer = original.writer;
}
@@ -56,71 +52,12 @@ public QuarkusPlatformDescriptor getPlatformDescriptor() {
return platformDescr;
}
- public String getProperty(String name) {
- final String value = props.getProperty(name, NOT_SET);
- return value == NOT_SET ? System.getProperty(name) : value;
- }
-
- public boolean hasProperty(String name) {
- return props.getOrDefault(name, NOT_SET) != NOT_SET;
- }
-
- public QuarkusCommandInvocation setProperty(String name, String value) {
- props.setProperty(name, value);
- return this;
- }
-
- public Properties getProperties() {
- return props;
- }
-
- public BuildTool getBuildTool() {
- return buildTool;
- }
-
- public void setBuildTool(BuildTool buildTool) {
- this.buildTool = buildTool;
- }
-
public BuildFile getBuildFile() {
- return getBuildFile(true);
- }
-
- BuildFile getBuildFile(boolean required) {
- if (buildFile == null) {
- if (writer == null) {
- if (required) {
- throw new IllegalStateException(
- "Neither project's build file handler nor the project writer has been provided");
- }
- return null;
- }
- if (buildTool == null) {
- try {
- buildFile = new MavenBuildFile(writer);
- } catch (IOException e) {
- throw new IllegalStateException("Failed to initialize project's build file handler", e);
- }
- } else {
- try {
- buildFile = buildTool.createBuildFile(writer);
- } catch (IOException e) {
- throw new IllegalStateException("Failed to initialize project's build file handler", e);
- }
- }
- }
return buildFile;
}
- public void setBuildFile(BuildFile buildFile) {
- this.buildFile = buildFile;
- }
-
public ProjectWriter getProjectWriter() {
return writer;
}
- public void setProjectWriter(ProjectWriter writer) {
- this.writer = writer;
- }
}
diff --git a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/RemoveExtensions.java b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/RemoveExtensions.java
index dfc5669e396e0..e23b8edcfff01 100644
--- a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/RemoveExtensions.java
+++ b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/RemoveExtensions.java
@@ -1,7 +1,6 @@
package io.quarkus.cli.commands;
import io.quarkus.cli.commands.file.BuildFile;
-import io.quarkus.cli.commands.file.MavenBuildFile;
import io.quarkus.cli.commands.writer.ProjectWriter;
import io.quarkus.generators.BuildTool;
import io.quarkus.platform.descriptor.QuarkusPlatformDescriptor;
@@ -22,17 +21,17 @@ public class RemoveExtensions {
private final QuarkusCommandInvocation invocation;
public RemoveExtensions(final ProjectWriter writer, QuarkusPlatformDescriptor platformDescr) throws IOException {
- this(new MavenBuildFile(writer), platformDescr);
+ this(writer, BuildTool.MAVEN, platformDescr);
}
public RemoveExtensions(final ProjectWriter writer, final BuildTool buildTool, QuarkusPlatformDescriptor platformDescr)
throws IOException {
- this(buildTool.createBuildFile(writer), platformDescr);
+ this(writer, buildTool.createBuildFile(writer), platformDescr);
}
- public RemoveExtensions(final BuildFile buildFile, QuarkusPlatformDescriptor platformDescr) {
- invocation = new QuarkusCommandInvocation(platformDescr);
- invocation.setBuildFile(buildFile);
+ public RemoveExtensions(final ProjectWriter writer, final BuildFile buildFile, QuarkusPlatformDescriptor platformDescr)
+ throws IOException {
+ invocation = new QuarkusCommandInvocation(platformDescr, writer, buildFile);
}
public RemoveExtensions extensions(Set extensions) {
diff --git a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/ValueMap.java b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/ValueMap.java
index 607a357f6610e..7636d9a88b5c6 100644
--- a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/ValueMap.java
+++ b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/ValueMap.java
@@ -37,6 +37,17 @@ public T getValue(String name, T defaultValue) {
return (T) value;
}
+ public String getStringValue(String name) {
+ final Object value = getValue(name, null);
+ if (value == null) {
+ return null;
+ }
+ if (value instanceof String) {
+ return ((String) value);
+ }
+ throw new IllegalStateException("value for '" + name + "' must be a String");
+ }
+
public boolean getValue(String name, boolean defaultValue) {
final Object value = getValue(name, null);
if (value == null) {
@@ -48,6 +59,10 @@ public boolean getValue(String name, boolean defaultValue) {
return Boolean.parseBoolean(value.toString());
}
+ public Map getValues() {
+ return values;
+ }
+
public boolean valueIs(String name, Object o) {
final Object value = values.get(name);
return o == null ? value == null : o.equals(value);
diff --git a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/file/BuildFile.java b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/file/BuildFile.java
index 2602ca12fb525..8c1ce02ee9274 100644
--- a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/file/BuildFile.java
+++ b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/file/BuildFile.java
@@ -1,5 +1,6 @@
package io.quarkus.cli.commands.file;
+import static com.google.common.base.Preconditions.checkNotNull;
import static io.quarkus.maven.utilities.MojoUtils.credentials;
import static java.util.stream.Collectors.toList;
@@ -28,8 +29,8 @@ public abstract class BuildFile implements Closeable {
private final BuildTool buildTool;
public BuildFile(final ProjectWriter writer, BuildTool buildTool) {
- this.writer = writer;
- this.buildTool = buildTool;
+ this.writer = checkNotNull(writer, "writer is required");
+ this.buildTool = checkNotNull(buildTool, "buildTool is required");
}
protected void write(String fileName, String content) throws IOException {
diff --git a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/legacy/LegacyQuarkusCommandInvocation.java b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/legacy/LegacyQuarkusCommandInvocation.java
deleted file mode 100644
index 98e3c9afde66c..0000000000000
--- a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/legacy/LegacyQuarkusCommandInvocation.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package io.quarkus.cli.commands.legacy;
-
-import io.quarkus.cli.commands.QuarkusCommandInvocation;
-import io.quarkus.platform.tools.config.QuarkusPlatformConfig;
-import java.util.Map;
-import java.util.Properties;
-
-/**
- * @deprecated since 1.3.0.CR1
- * Please use {@link QuarkusCommandInvocation} instead
- */
-@Deprecated
-public class LegacyQuarkusCommandInvocation extends QuarkusCommandInvocation {
-
- public LegacyQuarkusCommandInvocation() {
- this(null);
- }
-
- public LegacyQuarkusCommandInvocation(Map params) {
- super(QuarkusPlatformConfig.getGlobalDefault().getPlatformDescriptor(),
- QuarkusPlatformConfig.getGlobalDefault().getMessageWriter(),
- params,
- new Properties(System.getProperties()));
- if (params != null && !params.isEmpty()) {
- for (Map.Entry entry : params.entrySet()) {
- if (entry.getValue() != null) {
- setProperty(entry.getKey(), entry.getValue().toString());
- }
- }
- }
- }
-}
diff --git a/independent-projects/tools/common/src/main/java/io/quarkus/generators/BuildTool.java b/independent-projects/tools/common/src/main/java/io/quarkus/generators/BuildTool.java
index 2f07a880ed7c6..1440f30ad1f9c 100644
--- a/independent-projects/tools/common/src/main/java/io/quarkus/generators/BuildTool.java
+++ b/independent-projects/tools/common/src/main/java/io/quarkus/generators/BuildTool.java
@@ -1,5 +1,7 @@
package io.quarkus.generators;
+import static com.google.common.base.Preconditions.checkNotNull;
+
import io.quarkus.cli.commands.file.BuildFile;
import io.quarkus.cli.commands.file.GradleBuildFile;
import io.quarkus.cli.commands.file.MavenBuildFile;
@@ -53,6 +55,7 @@ public String getBuildDirectory() {
}
public BuildFile createBuildFile(final ProjectWriter writer) throws IOException {
+ checkNotNull(writer, "writer is required");
switch (this) {
case GRADLE:
return new GradleBuildFile(writer);
diff --git a/independent-projects/tools/common/src/main/java/io/quarkus/generators/ProjectGenerator.java b/independent-projects/tools/common/src/main/java/io/quarkus/generators/ProjectGenerator.java
index ef9a66f4a60cc..1579d6c9a1971 100644
--- a/independent-projects/tools/common/src/main/java/io/quarkus/generators/ProjectGenerator.java
+++ b/independent-projects/tools/common/src/main/java/io/quarkus/generators/ProjectGenerator.java
@@ -1,10 +1,8 @@
package io.quarkus.generators;
import io.quarkus.cli.commands.QuarkusCommandInvocation;
-import io.quarkus.cli.commands.legacy.LegacyQuarkusCommandInvocation;
import io.quarkus.cli.commands.writer.ProjectWriter;
import java.io.IOException;
-import java.util.Map;
public interface ProjectGenerator {
String BOM_GROUP_ID = "bom_groupId";
@@ -26,14 +24,5 @@ public interface ProjectGenerator {
String getName();
- /**
- * @deprecated since 1.3.0.CR1
- * Please use {@link #generate(ProjectWriter, QuarkusCommandInvocation)} instead.
- */
- @Deprecated
- default void generate(ProjectWriter writer, Map parameters) throws IOException {
- generate(writer, new LegacyQuarkusCommandInvocation(parameters));
- }
-
void generate(ProjectWriter writer, QuarkusCommandInvocation invocation) throws IOException;
}
diff --git a/independent-projects/tools/common/src/main/java/io/quarkus/generators/rest/BasicRestProjectGenerator.java b/independent-projects/tools/common/src/main/java/io/quarkus/generators/rest/BasicRestProjectGenerator.java
index ad20146203a15..557c7f8a26a69 100644
--- a/independent-projects/tools/common/src/main/java/io/quarkus/generators/rest/BasicRestProjectGenerator.java
+++ b/independent-projects/tools/common/src/main/java/io/quarkus/generators/rest/BasicRestProjectGenerator.java
@@ -4,7 +4,6 @@
import static java.lang.String.format;
import io.quarkus.cli.commands.QuarkusCommandInvocation;
-import io.quarkus.cli.commands.file.BuildFile;
import io.quarkus.cli.commands.writer.ProjectWriter;
import io.quarkus.generators.BuildTool;
import io.quarkus.generators.ProjectGenerator;
@@ -61,11 +60,7 @@ private BasicRestProject(final ProjectWriter writer, QuarkusCommandInvocation in
@SuppressWarnings("unchecked")
private T get(final String key, final T defaultValue) {
- Object value = invocation.getValue(key);
- if (value == null) {
- value = invocation.getProperty(key);
- }
- return value == null ? defaultValue : (T) value;
+ return invocation.getValue(key, defaultValue);
}
private boolean initProject() throws IOException {
@@ -88,11 +83,11 @@ private boolean initProject() throws IOException {
private boolean initBuildTool() throws IOException {
BuildTool buildTool = getBuildTool();
- if (!invocation.hasProperty(ADDITIONAL_GITIGNORE_ENTRIES)) {
- invocation.setProperty(ADDITIONAL_GITIGNORE_ENTRIES, buildTool.getGitIgnoreEntries());
+ if (!invocation.hasValue(ADDITIONAL_GITIGNORE_ENTRIES)) {
+ invocation.setValue(ADDITIONAL_GITIGNORE_ENTRIES, buildTool.getGitIgnoreEntries());
}
- if (!invocation.hasProperty(BUILD_DIRECTORY)) {
- invocation.setProperty(BUILD_DIRECTORY, buildTool.getBuildDirectory());
+ if (!invocation.hasValue(BUILD_DIRECTORY)) {
+ invocation.setValue(BUILD_DIRECTORY, buildTool.getBuildDirectory());
}
boolean newProject = !writer.exists(buildTool.getDependenciesFile());
@@ -118,18 +113,17 @@ private boolean initBuildTool() throws IOException {
}
}
if (gav[0] != null) {
- invocation.setProperty(PROJECT_GROUP_ID, gav[0]);
+ invocation.setValue(PROJECT_GROUP_ID, gav[0]);
}
if (gav[1] != null) {
- invocation.setProperty(PROJECT_ARTIFACT_ID, gav[1]);
+ invocation.setValue(PROJECT_ARTIFACT_ID, gav[1]);
}
}
return newProject;
}
private BuildTool getBuildTool() {
- BuildFile buildFileManager = get(BUILD_FILE, null);
- return buildFileManager == null ? BuildTool.MAVEN : buildFileManager.getBuildTool();
+ return invocation.getBuildFile().getBuildTool();
}
private void generate(final String templateName, QuarkusCommandInvocation invocation, final String outputFilePath,
@@ -140,15 +134,15 @@ private void generate(final String templateName, QuarkusCommandInvocation invoca
if (template == null) {
throw new IOException("Template resource is missing: " + templateName);
}
- for (Entry