summaryrefslogtreecommitdiffstats
path: root/vespa-application-maven-plugin
diff options
context:
space:
mode:
authorJon Marius Venstad <jvenstad@yahoo-inc.com>2019-01-11 11:04:22 +0100
committerJon Marius Venstad <jvenstad@yahoo-inc.com>2019-01-11 11:04:22 +0100
commit97ff88ac1c4c5a769fdd4a288fe810c62835e8c2 (patch)
tree6bc68925a05d6a2895f072afe1209ec0a2d52aa8 /vespa-application-maven-plugin
parente8ec6b51dcf52fcbf893eb2c1dbc0206e80a28ef (diff)
Let vespa-application-plugin store meta data about build in package
Diffstat (limited to 'vespa-application-maven-plugin')
-rw-r--r--vespa-application-maven-plugin/src/main/java/com/yahoo/container/plugin/mojo/ApplicationMojo.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/vespa-application-maven-plugin/src/main/java/com/yahoo/container/plugin/mojo/ApplicationMojo.java b/vespa-application-maven-plugin/src/main/java/com/yahoo/container/plugin/mojo/ApplicationMojo.java
index 1d20a06d0da..bd149e5a41e 100644
--- a/vespa-application-maven-plugin/src/main/java/com/yahoo/container/plugin/mojo/ApplicationMojo.java
+++ b/vespa-application-maven-plugin/src/main/java/com/yahoo/container/plugin/mojo/ApplicationMojo.java
@@ -15,6 +15,8 @@ import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import java.util.Collections;
import java.util.List;
@@ -38,6 +40,7 @@ public class ApplicationMojo extends AbstractMojo {
File applicationPackage = new File(project.getBasedir(), sourceDir);
File applicationDestination = new File(project.getBasedir(), destinationDir);
copyApplicationPackage(applicationPackage, applicationDestination);
+ addBuildMetaData(applicationDestination);
File componentsDir = createComponentsDir(applicationDestination);
copyModuleBundles(project.getBasedir(), componentsDir);
@@ -50,6 +53,24 @@ public class ApplicationMojo extends AbstractMojo {
}
}
+ /** Writes meta data about this package if the destination directory exists, and the "vespaversion" property is set. */
+ private void addBuildMetaData(File applicationDestination) throws MojoExecutionException {
+ String compileVersion = project.getProperties().getProperty("vespaversion");
+ if ( ! applicationDestination.exists() || compileVersion == null)
+ return;
+
+ String metaData = String.format("{\"compileVersion\": \"%s\",\n \"buildTime\": %d}",
+ compileVersion,
+ System.currentTimeMillis());
+ try {
+ Files.write(applicationDestination.toPath().resolve("build-meta.json"),
+ metaData.getBytes(StandardCharsets.UTF_8));
+ }
+ catch (IOException e) {
+ throw new MojoExecutionException("Failed writing compile version and build time.", e);
+ }
+ }
+
private void copyBundlesForSubModules(File componentsDir) throws MojoExecutionException {
List<String> modules = emptyListIfNull(project.getModules());
for (String module : modules) {