From a43993e3ecbf652d6e1da5775560abd69cb6c9bd Mon Sep 17 00:00:00 2001 From: CalDescent Date: Fri, 11 Jun 2021 19:01:35 +0100 Subject: [PATCH] Use placeholder build timestamp and build version when building without mvn package (e.g. from within an IDE) This fixes an exception thrown when running directly in IntelliJ, as previously we relied on mvn package to parse the commit hash and timestamp. --- .../org/qortal/controller/Controller.java | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/qortal/controller/Controller.java b/src/main/java/org/qortal/controller/Controller.java index 86d405a4..9074e751 100644 --- a/src/main/java/org/qortal/controller/Controller.java +++ b/src/main/java/org/qortal/controller/Controller.java @@ -259,17 +259,29 @@ public class Controller extends Thread { throw new RuntimeException("Can't read build.properties resource", e); } + // Determine build timestamp String buildTimestampProperty = properties.getProperty("build.timestamp"); - if (buildTimestampProperty == null) + if (buildTimestampProperty == null) { throw new RuntimeException("Can't read build.timestamp from build.properties resource"); - - this.buildTimestamp = LocalDateTime.parse(buildTimestampProperty, DateTimeFormatter.ofPattern("yyyyMMddHHmmss")).toEpochSecond(ZoneOffset.UTC); + } + if (buildTimestampProperty.startsWith("$")) { + // Maven vars haven't been replaced - this was most likely built using an IDE, not via mvn package + this.buildTimestamp = System.currentTimeMillis(); + buildTimestampProperty = "unknown"; + } else { + this.buildTimestamp = LocalDateTime.parse(buildTimestampProperty, DateTimeFormatter.ofPattern("yyyyMMddHHmmss")).toEpochSecond(ZoneOffset.UTC); + } LOGGER.info(String.format("Build timestamp: %s", buildTimestampProperty)); + // Determine build version String buildVersionProperty = properties.getProperty("build.version"); - if (buildVersionProperty == null) + if (buildVersionProperty == null) { throw new RuntimeException("Can't read build.version from build.properties resource"); - + } + if (buildVersionProperty.contains("${git.commit.id.abbrev}")) { + // Maven vars haven't been replaced - this was most likely built using an IDE, not via mvn package + buildVersionProperty = buildVersionProperty.replace("${git.commit.id.abbrev}", "debug"); + } this.buildVersion = VERSION_PREFIX + buildVersionProperty; LOGGER.info(String.format("Build version: %s", this.buildVersion));