aboutsummaryrefslogtreecommitdiffstats
path: root/vespa-maven-plugin
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2020-01-20 12:07:11 +0100
committerJon Marius Venstad <venstad@gmail.com>2020-01-20 12:07:11 +0100
commit115a3b242be1e6043d927bcd7570de5c6efefa44 (patch)
treeadb71bdb5ebe71d9e4c7185b46f7e67ba09ede3f /vespa-maven-plugin
parent0c6b28ef310bb5714b8c2ba10651ae87068e9b59 (diff)
Make mojo send only specified data, and make it all optional
Diffstat (limited to 'vespa-maven-plugin')
-rw-r--r--vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/AbstractVespaMojo.java13
-rw-r--r--vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/SubmitMojo.java18
2 files changed, 22 insertions, 9 deletions
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 1dae2b76711..8602d89c90c 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
@@ -15,6 +15,8 @@ import java.net.URI;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
+import java.util.Optional;
+import java.util.function.Function;
/**
* Base class for hosted Vespa plugin mojos.
@@ -98,4 +100,15 @@ public abstract class AbstractVespaMojo extends AbstractMojo {
throw new IllegalArgumentException("No valid value given");
}
+ protected static Optional<String> optionalOf(String value) {
+ return Optional.ofNullable(value)
+ .filter(data -> ! data.isBlank());
+ }
+
+ protected static <T> Optional<T> optionalOf(String value, Function<String, T> mapper) {
+ return Optional.ofNullable(value)
+ .filter(data -> ! data.isBlank())
+ .map(mapper);
+ }
+
}
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 80655cf1d36..6669f771a0e 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
@@ -23,32 +23,32 @@ public class SubmitMojo extends AbstractVespaMojo {
@Parameter(property = "applicationTestZip")
private String applicationTestZip;
- @Parameter(property = "authorEmail", required = true)
+ @Parameter(property = "authorEmail")
private String authorEmail;
- @Parameter(property = "repository", defaultValue = "unknown")
+ @Parameter(property = "repository")
private String repository;
- @Parameter(property = "branch", defaultValue = "unknown")
+ @Parameter(property = "branch")
private String branch;
- @Parameter(property = "commit", defaultValue = "unknown")
+ @Parameter(property = "commit")
private String commit;
@Parameter(property = "sourceUrl")
private String sourceUrl;
@Parameter(property = "projectId")
- private Long projectId;
+ private String projectId;
@Override
public void doExecute() {
applicationZip = firstNonBlank(applicationZip, projectPathOf("target", "application.zip"));
applicationTestZip = firstNonBlank(applicationTestZip, projectPathOf("target", "application-test.zip"));
- Submission submission = new Submission(repository, branch, commit, Optional.ofNullable(sourceUrl), authorEmail,
- Paths.get(applicationZip),
- Paths.get(applicationTestZip),
- projectId == null ? OptionalLong.empty() : OptionalLong.of(projectId));
+ Submission submission = new Submission(optionalOf(repository), optionalOf(branch), optionalOf(commit),
+ optionalOf(sourceUrl), optionalOf(authorEmail),
+ Paths.get(applicationZip), Paths.get(applicationTestZip),
+ optionalOf(projectId, Long::parseLong));
getLog().info(controller.submit(submission, id.tenant(), id.application()));
}