diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2020-01-20 12:07:11 +0100 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2020-01-20 12:07:11 +0100 |
commit | 115a3b242be1e6043d927bcd7570de5c6efefa44 (patch) | |
tree | adb71bdb5ebe71d9e4c7185b46f7e67ba09ede3f /vespa-maven-plugin | |
parent | 0c6b28ef310bb5714b8c2ba10651ae87068e9b59 (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.java | 13 | ||||
-rw-r--r-- | vespa-maven-plugin/src/main/java/ai/vespa/hosted/plugin/SubmitMojo.java | 18 |
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())); } |