diff --git a/pom.xml b/pom.xml index c5d03b1..b8bf355 100644 --- a/pom.xml +++ b/pom.xml @@ -185,12 +185,6 @@ joda-time 2.10.10 - - - org.sonatype.plexus - plexus-build-api - 0.0.7 - com.google.code.findbugs jsr305 @@ -219,18 +213,6 @@ ${junit.version} test - - org.codehaus.plexus - plexus-utils - 3.3.0 - test - - - org.codehaus.plexus - plexus-container-default - 2.1.0 - test - org.assertj assertj-core diff --git a/src/main/java/pl/project13/core/PropertiesFileGenerator.java b/src/main/java/pl/project13/core/PropertiesFileGenerator.java index a8f5fb0..7b60c65 100644 --- a/src/main/java/pl/project13/core/PropertiesFileGenerator.java +++ b/src/main/java/pl/project13/core/PropertiesFileGenerator.java @@ -18,8 +18,8 @@ package pl.project13.core; import nu.studer.java.util.OrderedProperties; -import org.sonatype.plexus.build.incremental.BuildContext; import pl.project13.core.log.LoggerBridge; +import pl.project13.core.util.BuildFileChangeListener; import pl.project13.core.util.JsonManager; import pl.project13.core.util.PropertyManager; @@ -33,14 +33,14 @@ public class PropertiesFileGenerator { private LoggerBridge log; - private BuildContext buildContext; + private BuildFileChangeListener buildFileChangeListener; private String format; private String prefixDot; private String projectName; - public PropertiesFileGenerator(LoggerBridge log, BuildContext buildContext, String format, String prefixDot, String projectName) { + public PropertiesFileGenerator(LoggerBridge log, BuildFileChangeListener buildFileChangeListener, String format, String prefixDot, String projectName) { this.log = log; - this.buildContext = buildContext; + this.buildFileChangeListener = buildFileChangeListener; this.format = format; this.prefixDot = prefixDot; this.projectName = projectName; @@ -97,8 +97,8 @@ public void maybeGeneratePropertiesFile(@Nonnull Properties localProperties, Fil throw new RuntimeException("Cannot create custom git properties file: " + gitPropsFile, ex); } - if (buildContext != null) { - buildContext.refresh(gitPropsFile); + if (buildFileChangeListener != null) { + buildFileChangeListener.changed(gitPropsFile); } } else { diff --git a/src/main/java/pl/project13/core/util/BuildFileChangeListener.java b/src/main/java/pl/project13/core/util/BuildFileChangeListener.java new file mode 100644 index 0000000..d1faa3a --- /dev/null +++ b/src/main/java/pl/project13/core/util/BuildFileChangeListener.java @@ -0,0 +1,40 @@ +/* + * This file is part of git-commit-id-plugin-core by Konrad 'ktoso' Malawski + * + * git-commit-id-plugin-core is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * git-commit-id-plugin-core is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with git-commit-id-plugin-core. If not, see . + */ + +package pl.project13.core.util; + +import javax.annotation.Nonnull; +import java.io.File; +import java.util.EventListener; + +public interface BuildFileChangeListener extends EventListener { + /** + * Event will be fired when then {@link pl.project13.core.PropertiesFileGenerator} changed the output file. + * A client who may want to implement that listener may want to perform other actions. + * E.g. + * {code} + * BuildContext buildContext = ... + * new BuildFileChangeListener() { + * void changed(@Nonnull File file) { + * buildContext.refresh(file); + * } + * } + * {code} + * @param file The output properties File that was changed by the generator + */ + void changed(@Nonnull File file); +} diff --git a/src/test/java/pl/project13/core/PropertiesFileGeneratorTest.java b/src/test/java/pl/project13/core/PropertiesFileGeneratorTest.java index a3097bb..39954c8 100644 --- a/src/test/java/pl/project13/core/PropertiesFileGeneratorTest.java +++ b/src/test/java/pl/project13/core/PropertiesFileGeneratorTest.java @@ -21,10 +21,9 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; -import org.sonatype.plexus.build.incremental.BuildContext; -import org.sonatype.plexus.build.incremental.DefaultBuildContext; import pl.project13.core.log.LoggerBridge; import pl.project13.core.log.StdOutLoggerBridge; +import pl.project13.core.util.BuildFileChangeListener; import java.io.IOException; import java.nio.file.Files; @@ -39,13 +38,16 @@ public class PropertiesFileGeneratorTest { public final TemporaryFolder temporaryFolder = new TemporaryFolder(); private final LoggerBridge loggerBridge = new StdOutLoggerBridge(false); - private final BuildContext buildContext = new DefaultBuildContext(); private PropertiesFileGenerator propertiesFileGenerator; @Before public void setUp() { - propertiesFileGenerator = new PropertiesFileGenerator(loggerBridge, buildContext, "properties", "", "test"); + BuildFileChangeListener buildFileChangeListener = file -> { + // Ignore + }; + + propertiesFileGenerator = new PropertiesFileGenerator(loggerBridge, buildFileChangeListener, "properties", "", "test"); } @Test