summaryrefslogtreecommitdiffstats
path: root/vespa-maven-plugin
diff options
context:
space:
mode:
authorJon Marius Venstad <jvenstad@yahoo-inc.com>2019-05-14 14:49:13 +0200
committerJon Marius Venstad <jvenstad@yahoo-inc.com>2019-05-14 15:10:06 +0200
commitdbe747d9d70d99cba32136be6c186d678d5c24ac (patch)
tree3774e07520f25b03b35170db28319e51019f802b /vespa-maven-plugin
parent29963c7368aa6d8bbc4cdbf682752dcef50495fe (diff)
Improve output from mojos
Diffstat (limited to 'vespa-maven-plugin')
-rw-r--r--vespa-maven-plugin/pom.xml5
-rw-r--r--vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/AbstractVespaMojo.java16
-rw-r--r--vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/CompileVersionMojo.java19
-rw-r--r--vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/DeployMojo.java17
-rw-r--r--vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/SubmitMojo.java2
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()));
}
}