diff options
author | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2019-05-14 14:49:13 +0200 |
---|---|---|
committer | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2019-05-14 15:10:06 +0200 |
commit | dbe747d9d70d99cba32136be6c186d678d5c24ac (patch) | |
tree | 3774e07520f25b03b35170db28319e51019f802b /vespa-maven-plugin | |
parent | 29963c7368aa6d8bbc4cdbf682752dcef50495fe (diff) |
Improve output from mojos
Diffstat (limited to 'vespa-maven-plugin')
5 files changed, 36 insertions, 23 deletions
diff --git a/vespa-maven-plugin/pom.xml b/vespa-maven-plugin/pom.xml index 321ab0074e7..57ce1ccadf8 100644 --- a/vespa-maven-plugin/pom.xml +++ b/vespa-maven-plugin/pom.xml @@ -41,11 +41,6 @@ </dependency> <dependency> - <groupId>org.fusesource.jansi</groupId> - <artifactId>jansi</artifactId> - <version>1.17.1</version> - </dependency> - <dependency> <groupId>commons-cli</groupId> <artifactId>commons-cli</artifactId> </dependency> diff --git a/vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/AbstractVespaMojo.java b/vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/AbstractVespaMojo.java index fd3409dcfcb..e2bbbb86706 100644 --- a/vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/AbstractVespaMojo.java +++ b/vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/AbstractVespaMojo.java @@ -3,6 +3,7 @@ package ai.vespa.hosted.plugin; import ai.vespa.hosted.api.ControllerHttpClient; import com.yahoo.config.provision.ApplicationId; import org.apache.maven.plugin.AbstractMojo; +import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; @@ -43,18 +44,23 @@ public abstract class AbstractVespaMojo extends AbstractMojo { protected ControllerHttpClient controller; @Override - public final void execute() { - setup(); - doExecute(); + public final void execute() throws MojoExecutionException { + try { + setup(); + doExecute(); + } + catch (Exception e) { + throw new MojoExecutionException("Execution failed for application '" + id + "':", e); + } } /** Override this in subclasses, instead of {@link #execute()}. */ - protected abstract void doExecute(); + protected abstract void doExecute() throws Exception; protected void setup() { tenant = firstNonBlank(tenant, project.getProperties().getProperty("tenant")); application = firstNonBlank(application, project.getProperties().getProperty("application")); - instance = firstNonBlank(instance, project.getProperties().getProperty("instance"), "default"); + instance = firstNonBlank(instance, project.getProperties().getProperty("instance", "default")); id = ApplicationId.from(tenant, application, instance); controller = certificateFile == null diff --git a/vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/CompileVersionMojo.java b/vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/CompileVersionMojo.java index 24e2c42d756..715bd0e3009 100644 --- a/vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/CompileVersionMojo.java +++ b/vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/CompileVersionMojo.java @@ -1,6 +1,13 @@ package ai.vespa.hosted.plugin; import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; + +import java.io.IOException; +import java.io.UncheckedIOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; /** * Finds the Vespa version to compile against, for a hosted Vespa application. @@ -10,9 +17,17 @@ import org.apache.maven.plugins.annotations.Mojo; @Mojo(name = "compileVersion") public class CompileVersionMojo extends AbstractVespaMojo { + @Parameter(property = "outputFile", defaultValue = "target/vespa.compile.version") + private String outputFile; + @Override - protected void doExecute() { - System.out.println(controller.compileVersion(id)); + protected void doExecute() throws IOException { + Path output = Paths.get(outputFile).toAbsolutePath(); + String compileVersion = controller.compileVersion(id); + getLog().info("Vespa version to compile against is '" + compileVersion + "'."); + getLog().info("Writing compile version to '" + output + "'."); + Files.createDirectories(output.getParent()); + Files.writeString(output, compileVersion); } } diff --git a/vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/DeployMojo.java b/vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/DeployMojo.java index 28e5553131f..75f0d2d1f48 100644 --- a/vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/DeployMojo.java +++ b/vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/DeployMojo.java @@ -1,6 +1,5 @@ package ai.vespa.hosted.plugin; -import ai.vespa.hosted.api.ControllerHttpClient; import ai.vespa.hosted.api.Deployment; import ai.vespa.hosted.api.DeploymentLog; import ai.vespa.hosted.api.DeploymentResult; @@ -8,7 +7,6 @@ import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.zone.ZoneId; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; -import org.fusesource.jansi.Ansi; import java.nio.file.Paths; import java.time.ZoneOffset; @@ -63,7 +61,7 @@ public class DeployMojo extends AbstractVespaMojo { ZoneId zone = environment == null || region == null ? controller.devZone() : ZoneId.from(environment, region); DeploymentResult result = controller.deploy(deployment, id, zone); - System.out.println(result.message()); + getLog().info(result.message()); if (follow) tailLogs(id, zone, result.run()); } @@ -73,10 +71,10 @@ public class DeployMojo extends AbstractVespaMojo { while (true) { DeploymentLog log = controller.deploymentLog(id, zone, run, last); for (DeploymentLog.Entry entry : log.entries()) - System.out.println(formatted(entry)); + print(entry); last = log.last().orElse(last); - if (!log.isActive()) + if ( ! log.isActive()) break; try { @@ -91,14 +89,13 @@ public class DeployMojo extends AbstractVespaMojo { private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss").withZone(ZoneOffset.UTC); - private static String formatted(DeploymentLog.Entry entry) { + private void print(DeploymentLog.Entry entry) { String timestamp = formatter.format(entry.at()); switch (entry.level()) { - case "info" : timestamp = Ansi.ansi().bold().fgBlue().a(timestamp).reset().toString(); break; - case "warning" : timestamp = Ansi.ansi().bold().fgYellow().a(timestamp).reset().toString(); break; - case "error" : timestamp = Ansi.ansi().bold().fgRed().a(timestamp).reset().toString(); break; + case "warning" : getLog().warn(" [" + timestamp + "] " + entry.message()); break; + case "error" : getLog().error("[" + timestamp + "] " + entry.message()); break; + default: getLog().info(" [" + timestamp + "] " + entry.message()); break; } - return "[" + timestamp + "] " + entry.message(); } } diff --git a/vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/SubmitMojo.java b/vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/SubmitMojo.java index eda9ea9b799..3aee3a5ce96 100644 --- a/vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/SubmitMojo.java +++ b/vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/SubmitMojo.java @@ -46,7 +46,7 @@ public class SubmitMojo extends AbstractVespaMojo { Paths.get(applicationTestZip), projectId == null ? OptionalLong.empty() : OptionalLong.of(projectId)); - System.out.println(controller.submit(submission, id.tenant(), id.application())); + getLog().info(controller.submit(submission, id.tenant(), id.application())); } } |