Skip to content

Commit

Permalink
Merge pull request #16629 from aloubyansky/cli-bom-import
Browse files Browse the repository at this point in the history
Refactoring of the MavenProjectBuildFile to make it usable by the CLI
  • Loading branch information
aloubyansky committed Apr 20, 2021
2 parents e079334 + ca0ff4c commit 9ebe9f8
Show file tree
Hide file tree
Showing 25 changed files with 552 additions and 325 deletions.
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.

0 comments on commit 9ebe9f8

Please sign in to comment.