Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactoring of the MavenProjectBuildFile to make it usable by the CLI #16629

Merged
merged 1 commit into from Apr 20, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 1 addition & 3 deletions devtools/cli/src/main/java/io/quarkus/cli/Add.java
Expand Up @@ -7,12 +7,10 @@

import io.quarkus.cli.core.BaseSubCommand;
import io.quarkus.cli.core.BuildsystemCommand;
import io.quarkus.cli.core.QuarkusCliVersion;
import io.quarkus.devtools.commands.AddExtensions;
import io.quarkus.devtools.commands.data.QuarkusCommandOutcome;
import io.quarkus.devtools.project.BuildTool;
import io.quarkus.devtools.project.QuarkusProject;
import io.quarkus.devtools.project.QuarkusProjectHelper;
import picocli.CommandLine;

@CommandLine.Command(name = "add", mixinStandardHelpOptions = false, description = "Add extension(s) to current project.")
Expand Down Expand Up @@ -48,7 +46,7 @@ public List<String> getArguments(Path projectDir, BuildTool buildtool) {

private Integer addMaven(Path projectDirectory) {
try {
QuarkusProject quarkusProject = QuarkusProjectHelper.getProject(projectDirectory, QuarkusCliVersion.version());
final QuarkusProject quarkusProject = QuarkusCliUtils.getQuarkusProject(projectDirectory);

AddExtensions project = new AddExtensions(quarkusProject);
project.extensions(extensions);
Expand Down
12 changes: 4 additions & 8 deletions devtools/cli/src/main/java/io/quarkus/cli/Create.java
Expand Up @@ -6,11 +6,8 @@
import java.util.concurrent.Callable;

import io.quarkus.cli.core.BaseSubCommand;
import io.quarkus.cli.core.QuarkusCliVersion;
import io.quarkus.devtools.commands.CreateProject;
import io.quarkus.devtools.project.BuildTool;
import io.quarkus.devtools.project.QuarkusProject;
import io.quarkus.devtools.project.QuarkusProjectHelper;
import io.quarkus.devtools.project.codegen.SourceType;
import picocli.CommandLine;

Expand Down Expand Up @@ -108,14 +105,13 @@ public Integer call() throws Exception {
}

BuildTool buildTool = BuildTool.MAVEN;
if (targetBuildTool.gradle)
if (targetBuildTool.gradle) {
buildTool = BuildTool.GRADLE;
else if (targetBuildTool.gradleKotlinDsl)
} else if (targetBuildTool.gradleKotlinDsl) {
buildTool = BuildTool.GRADLE_KOTLIN_DSL;
}

final QuarkusProject project = QuarkusProjectHelper.getProject(projectRoot.getAbsoluteFile().toPath(), buildTool,
QuarkusCliVersion.version());
boolean status = new CreateProject(project)
boolean status = new CreateProject(QuarkusCliUtils.getQuarkusProject(buildTool, projectRoot.toPath()))
.groupId(groupId)
.artifactId(artifactId)
.version(version)
Expand Down
4 changes: 1 addition & 3 deletions devtools/cli/src/main/java/io/quarkus/cli/List.java
Expand Up @@ -5,11 +5,9 @@

import io.quarkus.cli.core.BaseSubCommand;
import io.quarkus.cli.core.BuildsystemCommand;
import io.quarkus.cli.core.QuarkusCliVersion;
import io.quarkus.devtools.commands.ListExtensions;
import io.quarkus.devtools.commands.data.QuarkusCommandException;
import io.quarkus.devtools.project.BuildTool;
import io.quarkus.devtools.project.QuarkusProjectHelper;
import picocli.CommandLine;

@CommandLine.Command(name = "list", sortOptions = false, mixinStandardHelpOptions = false, description = "List installed (default) or installable extensions.")
Expand Down Expand Up @@ -88,7 +86,7 @@ private Integer listExtensionsMaven(Path projectDirectory) {
// we do not have to spawn process for maven
try {

new ListExtensions(QuarkusProjectHelper.getProject(projectDirectory, QuarkusCliVersion.version()))
new ListExtensions(QuarkusCliUtils.getQuarkusProject(projectDirectory))
.fromCli(true)
.all(false)
.installed(!installable)
Expand Down
7 changes: 2 additions & 5 deletions devtools/cli/src/main/java/io/quarkus/cli/Platforms.java
Expand Up @@ -4,10 +4,8 @@

import io.quarkus.cli.core.BaseSubCommand;
import io.quarkus.cli.core.BuildsystemCommand;
import io.quarkus.cli.core.QuarkusCliVersion;
import io.quarkus.devtools.commands.ListPlatforms;
import io.quarkus.devtools.project.BuildTool;
import io.quarkus.devtools.project.QuarkusProjectHelper;
import picocli.CommandLine;

@CommandLine.Command(name = "platforms", sortOptions = false, mixinStandardHelpOptions = false, description = "List imported (default) or all available Quarkus platforms.")
Expand All @@ -17,9 +15,8 @@ public class Platforms extends BaseSubCommand implements BuildsystemCommand {
public int execute(Path projectDirectory, BuildTool buildTool) {
try {
new ListPlatforms(
QuarkusProjectHelper.getProject(projectDirectory, buildTool == null ? BuildTool.MAVEN : buildTool,
QuarkusCliVersion.version()))
.execute();
QuarkusCliUtils.getQuarkusProject(buildTool == null ? BuildTool.MAVEN : buildTool, projectDirectory))
.execute();
} catch (Exception e) {
if (parent.showErrors) {
e.printStackTrace(err());
Expand Down
36 changes: 36 additions & 0 deletions devtools/cli/src/main/java/io/quarkus/cli/QuarkusCliUtils.java
@@ -0,0 +1,36 @@
package io.quarkus.cli;

import java.nio.file.Path;

import io.quarkus.cli.core.QuarkusCliVersion;
import io.quarkus.devtools.messagewriter.MessageWriter;
import io.quarkus.devtools.project.BuildTool;
import io.quarkus.devtools.project.QuarkusProject;
import io.quarkus.devtools.project.QuarkusProjectHelper;
import io.quarkus.devtools.project.buildfile.MavenProjectBuildFile;

public class QuarkusCliUtils {

static QuarkusProject getQuarkusProject(Path projectRoot) {
return getQuarkusProject(QuarkusProject.resolveExistingProjectBuildTool(projectRoot), projectRoot);
}

static QuarkusProject getQuarkusProject(BuildTool buildTool, Path projectRoot) {
if (BuildTool.MAVEN.equals(buildTool)) {
return MavenProjectBuildFile.getProject(projectRoot.toAbsolutePath(), MessageWriter.info(),
() -> QuarkusCliVersion.version());
}
if (BuildTool.GRADLE.equals(buildTool)) {
return getNonMavenProject(projectRoot, BuildTool.GRADLE);
}
if (BuildTool.GRADLE_KOTLIN_DSL.equals(buildTool)) {
return getNonMavenProject(projectRoot, BuildTool.GRADLE_KOTLIN_DSL);
}
throw new IllegalArgumentException("Unexpected build tool " + buildTool);
}

private static QuarkusProject getNonMavenProject(Path projectRoot, BuildTool buildTool) {
return QuarkusProjectHelper.getProject(projectRoot, buildTool,
QuarkusCliVersion.version());
}
}
4 changes: 1 addition & 3 deletions devtools/cli/src/main/java/io/quarkus/cli/Remove.java
Expand Up @@ -7,11 +7,9 @@

import io.quarkus.cli.core.BaseSubCommand;
import io.quarkus.cli.core.BuildsystemCommand;
import io.quarkus.cli.core.QuarkusCliVersion;
import io.quarkus.devtools.commands.RemoveExtensions;
import io.quarkus.devtools.commands.data.QuarkusCommandOutcome;
import io.quarkus.devtools.project.BuildTool;
import io.quarkus.devtools.project.QuarkusProjectHelper;
import picocli.CommandLine;

@CommandLine.Command(name = "remove", aliases = "rm", mixinStandardHelpOptions = false, description = "Remove an extension from this project.")
Expand Down Expand Up @@ -49,7 +47,7 @@ public int execute(Path projectDir, BuildTool buildtool) throws Exception {
private Integer removeMaven(Path projectDirectory) {
try {
RemoveExtensions project = new RemoveExtensions(
QuarkusProjectHelper.getProject(projectDirectory, QuarkusCliVersion.version()))
QuarkusCliUtils.getQuarkusProject(projectDirectory))
.extensions(extensions);
QuarkusCommandOutcome result = project.execute();
return result.isSuccess() ? CommandLine.ExitCode.OK : CommandLine.ExitCode.SOFTWARE;
Expand Down

This file was deleted.