From 71f0c47baf2ade3f9d3b91406be954a34fa19f6b Mon Sep 17 00:00:00 2001 From: Ryan Tse Date: Fri, 9 Aug 2019 22:43:12 -0700 Subject: [PATCH] Add filtering for build server data. --- .../project13/maven/git/GitCommitIdMojo.java | 4 ++- .../git/build/BuildServerDataProvider.java | 33 ++++++++++++++----- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/src/main/java/pl/project13/maven/git/GitCommitIdMojo.java b/src/main/java/pl/project13/maven/git/GitCommitIdMojo.java index 6d54d26d..de0dd4a9 100644 --- a/src/main/java/pl/project13/maven/git/GitCommitIdMojo.java +++ b/src/main/java/pl/project13/maven/git/GitCommitIdMojo.java @@ -504,7 +504,9 @@ private void loadBuildData(Properties properties) { .setDateFormat(dateFormat) .setDateFormatTimeZone(dateFormatTimeZone) .setProject(project) - .setPrefixDot(prefixDot); + .setPrefixDot(prefixDot) + .setExcludeProperties(excludeProperties) + .setIncludeOnlyProperties(includeOnlyProperties); buildServerDataProvider.loadBuildData(properties); } diff --git a/src/main/java/pl/project13/maven/git/build/BuildServerDataProvider.java b/src/main/java/pl/project13/maven/git/build/BuildServerDataProvider.java index d06a3b86..fb7cdf75 100644 --- a/src/main/java/pl/project13/maven/git/build/BuildServerDataProvider.java +++ b/src/main/java/pl/project13/maven/git/build/BuildServerDataProvider.java @@ -19,6 +19,7 @@ import org.apache.maven.project.MavenProject; import pl.project13.maven.git.GitCommitPropertyConstant; +import pl.project13.maven.git.PropertiesFilterer; import pl.project13.maven.git.log.LoggerBridge; import pl.project13.maven.git.util.PropertyManager; @@ -28,6 +29,7 @@ import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; +import java.util.List; import java.util.Properties; import java.util.TimeZone; import java.util.function.Supplier; @@ -40,6 +42,8 @@ public abstract class BuildServerDataProvider { private String dateFormatTimeZone = null; private String prefixDot = ""; private MavenProject project = null; + private List excludeProperties = null; + private List includeOnlyProperties = null; BuildServerDataProvider(@Nonnull LoggerBridge log, @Nonnull Map env) { this.log = log; @@ -66,6 +70,16 @@ public BuildServerDataProvider setPrefixDot(@Nonnull String prefixDot) { return this; } + public BuildServerDataProvider setExcludeProperties(List excludeProperties) { + this.excludeProperties = excludeProperties; + return this; + } + + public BuildServerDataProvider setIncludeOnlyProperties(List includeOnlyProperties) { + this.includeOnlyProperties = includeOnlyProperties; + return this; + } + /** * Get the {@link BuildServerDataProvider} implementation for the running environment * @@ -113,15 +127,18 @@ public void loadBuildData(@Nonnull Properties properties) { public abstract String getBuildBranch(); private void loadBuildVersionAndTimeData(@Nonnull Properties properties) { - Date buildDate = new Date(); - SimpleDateFormat smf = new SimpleDateFormat(dateFormat); - if (dateFormatTimeZone != null) { - smf.setTimeZone(TimeZone.getTimeZone(dateFormatTimeZone)); - } - put(properties, GitCommitPropertyConstant.BUILD_TIME, smf.format(buildDate)); + Supplier buildTimeSupplier = () -> { + Date buildDate = new Date(); + SimpleDateFormat smf = new SimpleDateFormat(dateFormat); + if (dateFormatTimeZone != null) { + smf.setTimeZone(TimeZone.getTimeZone(dateFormatTimeZone)); + } + return smf.format(buildDate); + }; + maybePut(properties, GitCommitPropertyConstant.BUILD_TIME, buildTimeSupplier); if (project != null) { - put(properties, GitCommitPropertyConstant.BUILD_VERSION, project.getVersion()); + maybePut(properties, GitCommitPropertyConstant.BUILD_VERSION, () -> project.getVersion()); } } @@ -152,7 +169,7 @@ protected void maybePut(@Nonnull Properties properties, @Nonnull String key, Sup if (properties.contains(keyWithPrefix)) { String propertyValue = properties.getProperty(keyWithPrefix); log.info("Using cached {} with value {}", keyWithPrefix, propertyValue); - } else { + } else if (PropertiesFilterer.isIncluded(keyWithPrefix, includeOnlyProperties, excludeProperties)) { String propertyValue = supplier.get(); log.info("Collected {} with value {}", keyWithPrefix, propertyValue); PropertyManager.putWithoutPrefix(properties, keyWithPrefix, propertyValue);