diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d6e5b9fd..bb86a999 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,10 +1,6 @@ name: ci -on: - push: - branches: - - master - pull_request: +on: [push, pull_request] jobs: setup: @@ -12,17 +8,22 @@ jobs: steps: - name: Stop old builds if: github.ref != 'refs/heads/master' - uses: styfle/cancel-workflow-action@0.9.1 + uses: styfle/cancel-workflow-action@0.11.0 with: access_token: ${{ github.token }} build: needs: setup + strategy: + matrix: + java: [ 11, 17 ] runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-java@v1 + - uses: actions/checkout@v3 + - name: "Set up JDK ${{ matrix.java }}" + uses: actions/setup-java@v3 with: - java-version: 11 + java-version: ${{ matrix.java }} + distribution: 'temurin' - name: Build & Test run: ./mvnw -B verify diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar index 279ff4cd..bf82ff01 100644 Binary files a/.mvn/wrapper/maven-wrapper.jar and b/.mvn/wrapper/maven-wrapper.jar differ diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties index be4fea70..dc3affce 100644 --- a/.mvn/wrapper/maven-wrapper.properties +++ b/.mvn/wrapper/maven-wrapper.properties @@ -1 +1,18 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar diff --git a/mvnw b/mvnw index 5bf251c0..b7f06462 100755 --- a/mvnw +++ b/mvnw @@ -19,7 +19,7 @@ # ---------------------------------------------------------------------------- # ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script +# Apache Maven Wrapper startup batch script, version 3.1.1 # # Required ENV vars: # ------------------ @@ -27,7 +27,6 @@ # # Optional ENV vars # ----------------- -# M2_HOME - location of maven2's installed home dir # MAVEN_OPTS - parameters passed to the Java VM when running Maven # e.g. to debug Maven itself, use # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 @@ -36,6 +35,10 @@ if [ -z "$MAVEN_SKIP_RC" ] ; then + if [ -f /usr/local/etc/mavenrc ] ; then + . /usr/local/etc/mavenrc + fi + if [ -f /etc/mavenrc ] ; then . /etc/mavenrc fi @@ -58,9 +61,9 @@ case "`uname`" in # See https://developer.apple.com/library/mac/qa/qa1170/_index.html if [ -z "$JAVA_HOME" ]; then if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" + JAVA_HOME="`/usr/libexec/java_home`"; export JAVA_HOME else - export JAVA_HOME="/Library/Java/Home" + JAVA_HOME="/Library/Java/Home"; export JAVA_HOME fi fi ;; @@ -72,49 +75,18 @@ if [ -z "$JAVA_HOME" ] ; then fi fi -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - # For Cygwin, ensure paths are in UNIX format before anything is touched if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"` fi -# For Migwn, ensure paths are in UNIX format before anything is touched +# For Mingw, ensure paths are in UNIX format before anything is touched if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" [ -n "$JAVA_HOME" ] && JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? fi if [ -z "$JAVA_HOME" ]; then @@ -146,7 +118,7 @@ if [ -z "$JAVACMD" ] ; then JAVACMD="$JAVA_HOME/bin/java" fi else - JAVACMD="`which java`" + JAVACMD="`\\unset -f command; \\command -v java`" fi fi @@ -160,12 +132,9 @@ if [ -z "$JAVA_HOME" ] ; then echo "Warning: JAVA_HOME environment variable is not set." fi -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - # traverses directory structure from process work directory to filesystem root # first directory with .mvn subdirectory is considered project base directory find_maven_basedir() { - if [ -z "$1" ] then echo "Path not specified to find_maven_basedir" @@ -185,7 +154,7 @@ find_maven_basedir() { fi # end of workaround done - echo "${basedir}" + printf '%s' "$(cd "$basedir"; pwd)" } # concatenates all lines of a file @@ -195,19 +164,106 @@ concat_lines() { fi } -BASE_DIR=`find_maven_basedir "$(pwd)"` +BASE_DIR=$(find_maven_basedir "$(dirname $0)") if [ -z "$BASE_DIR" ]; then exit 1; fi -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR +MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" + else + wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) wrapperUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $wrapperUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + QUIET="--quiet" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + QUIET="" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" + else + wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" + fi + [ $? -eq 0 ] || rm -f "$wrapperJarPath" + elif command -v curl > /dev/null; then + QUIET="--silent" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + QUIET="" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L + else + curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L + fi + [ $? -eq 0 ] || rm -f "$wrapperJarPath" + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaSource="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaSource=`cygpath --path --windows "$javaSource"` + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaSource" ]; then + if [ ! -e "$javaClass" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaSource") + fi + if [ -e "$javaClass" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" # For Cygwin, switch paths to Windows format before running java if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` [ -n "$CLASSPATH" ] && @@ -216,10 +272,16 @@ if $cygwin; then MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` fi +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain exec "$JAVACMD" \ $MAVEN_OPTS \ + $MAVEN_DEBUG_OPTS \ -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/pom.xml b/pom.xml index 3a300d9d..9d23251a 100644 --- a/pom.xml +++ b/pom.xml @@ -15,7 +15,7 @@ io.takari takari - 48 + 50 io.takari.maven.plugins @@ -23,20 +23,16 @@ 2.0.10-SNAPSHOT pom - - [3.6.3,) - - - 3.6.3 - 0.3.4 + 3.8.4 + 0.3.5 4.2.0 - 1.4.1 + 1.8.2 1.0.0 - 28.2-jre - 3.6.0 + 31.1-jre + 3.6.4 0.4.0 - 3.3.0 + 3.5.0 3.0.0 2.0.8 11 diff --git a/takari-lifecycle-plugin-its/pom.xml b/takari-lifecycle-plugin-its/pom.xml index c925afa3..65a48f5f 100644 --- a/takari-lifecycle-plugin-its/pom.xml +++ b/takari-lifecycle-plugin-its/pom.xml @@ -35,7 +35,7 @@ junit junit - 4.11 + 4.13.2 test diff --git a/takari-lifecycle-plugin-its/src/test/projects/compile-proc/pom.xml b/takari-lifecycle-plugin-its/src/test/projects/compile-proc/pom.xml index d0334fac..99c05ecb 100644 --- a/takari-lifecycle-plugin-its/src/test/projects/compile-proc/pom.xml +++ b/takari-lifecycle-plugin-its/src/test/projects/compile-proc/pom.xml @@ -39,9 +39,9 @@ | igorf: source/target names maybe confusing | not everyone will guess this is about java compiler --> - 1.6 + 7 - \ No newline at end of file + diff --git a/takari-lifecycle-plugin/pom.xml b/takari-lifecycle-plugin/pom.xml index 7f7dbb0b..c360c81e 100644 --- a/takari-lifecycle-plugin/pom.xml +++ b/takari-lifecycle-plugin/pom.xml @@ -70,7 +70,7 @@ org.codehaus.plexus plexus-java - 1.1.0 + 1.1.1 compile @@ -89,7 +89,7 @@ org.codehaus.plexus plexus-classworlds - 2.4 + 2.6.0 provided @@ -127,7 +127,7 @@ org.eclipse.jdt org.eclipse.jdt.core - 3.20.0 + 3.31.0 * @@ -138,7 +138,7 @@ org.eclipse.jdt org.eclipse.jdt.compiler.apt - 1.3.800 + 1.4.200 * @@ -149,7 +149,7 @@ org.eclipse.platform org.eclipse.osgi - 3.15.100 + 3.18.100 * @@ -161,7 +161,7 @@ com.github.spullara.mustache.java compiler - 0.8.17 + 0.9.10 com.google.guava @@ -172,25 +172,30 @@ io.takari takari-archiver - 0.1.11 + 0.1.29 + + + org.apache.commons + commons-compress + 1.22 com.google.code.gson gson - 2.2.4 + 2.10 org.slf4j slf4j-api - 1.7.4 + 1.7.36 org.apache.commons commons-exec - 1.2 + 1.3 @@ -209,30 +214,30 @@ junit junit - 4.11 + 4.13.2 test org.hamcrest - hamcrest-core - 1.3 + hamcrest + 2.2 test org.assertj assertj-core - 3.14.0 + 3.23.1 test xmlunit xmlunit - 1.5 + 1.6 org.slf4j slf4j-simple - 1.7.5 + 1.7.36 test @@ -256,13 +261,13 @@ io.takari takari-hash - 0.0.1 + 0.0.2 test org.ow2.asm asm - 7.2 + 9.4 test @@ -293,13 +298,13 @@ org.apache.maven.wagon wagon-file - 3.3.4 + 3.5.2 test com.squareup javapoet - 1.11.1 + 1.13.0 test @@ -326,7 +331,7 @@ org.codehaus.modello modello-maven-plugin - 1.8.3 + 2.0.0 standard @@ -343,28 +348,7 @@ - - true - - - - - - - org.codehaus.mojo - animal-sniffer-maven-plugin - 1.18 - - - org.codehaus.mojo.signature - java18 - 1.0 - - - - - diff --git a/takari-lifecycle-plugin/src/main/java/io/takari/maven/plugins/jar/AggregateSource.java b/takari-lifecycle-plugin/src/main/java/io/takari/maven/plugins/jar/AggregateSource.java index a43ceab9..cbdc8d28 100644 --- a/takari-lifecycle-plugin/src/main/java/io/takari/maven/plugins/jar/AggregateSource.java +++ b/takari-lifecycle-plugin/src/main/java/io/takari/maven/plugins/jar/AggregateSource.java @@ -9,8 +9,8 @@ import static com.google.common.collect.Iterables.concat; import static com.google.common.collect.Iterables.filter; -import io.tesla.proviso.archive.Entry; -import io.tesla.proviso.archive.Source; +import ca.vanzyl.provisio.archive.ExtendedArchiveEntry; +import ca.vanzyl.provisio.archive.Source; import java.io.IOException; import java.util.HashSet; @@ -28,19 +28,19 @@ */ class AggregateSource implements Source { - private final List> sources; + private final List> sources; - public AggregateSource(List> sources) { + public AggregateSource(List> sources) { this.sources = sources; } @Override - public Iterable entries() { - final Predicate uniquePathFilter = new Predicate() { + public Iterable entries() { + final Predicate uniquePathFilter = new Predicate() { private final Set entryNames = new HashSet<>(); @Override - public boolean apply(Entry input) { + public boolean apply(ExtendedArchiveEntry input) { return entryNames.add(input.getName()); } }; diff --git a/takari-lifecycle-plugin/src/main/java/io/takari/maven/plugins/jar/BytesEntry.java b/takari-lifecycle-plugin/src/main/java/io/takari/maven/plugins/jar/BytesEntry.java index 922973dd..151c473c 100644 --- a/takari-lifecycle-plugin/src/main/java/io/takari/maven/plugins/jar/BytesEntry.java +++ b/takari-lifecycle-plugin/src/main/java/io/takari/maven/plugins/jar/BytesEntry.java @@ -11,10 +11,11 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.util.Date; -import io.tesla.proviso.archive.Entry; +import ca.vanzyl.provisio.archive.ExtendedArchiveEntry; -class BytesEntry implements Entry { +class BytesEntry implements ExtendedArchiveEntry { private final String entryName; private final byte[] contents; @@ -62,4 +63,51 @@ public boolean isExecutable() { public long getTime() { return -1; } + + @Override + public void setFileMode( int i ) + { + } + + @Override + public void setSize( long l ) + { + + } + + @Override + public void setTime( long l ) + { + + } + + @Override + public boolean isSymbolicLink() + { + return false; + } + + @Override + public String getSymbolicLinkPath() + { + return null; + } + + @Override + public boolean isHardLink() + { + return false; + } + + @Override + public String getHardLinkPath() + { + return null; + } + + @Override + public Date getLastModifiedDate() + { + return null; + } } diff --git a/takari-lifecycle-plugin/src/main/java/io/takari/maven/plugins/jar/Jar.java b/takari-lifecycle-plugin/src/main/java/io/takari/maven/plugins/jar/Jar.java index 508baf5c..32c0539e 100644 --- a/takari-lifecycle-plugin/src/main/java/io/takari/maven/plugins/jar/Jar.java +++ b/takari-lifecycle-plugin/src/main/java/io/takari/maven/plugins/jar/Jar.java @@ -39,9 +39,9 @@ import io.takari.incrementalbuild.aggregator.InputSet; import io.takari.maven.plugins.TakariLifecycleMojo; import io.takari.maven.plugins.util.PropertiesWriter; -import io.tesla.proviso.archive.Archiver; -import io.tesla.proviso.archive.Entry; -import io.tesla.proviso.archive.source.FileEntry; +import ca.vanzyl.provisio.archive.Archiver; +import ca.vanzyl.provisio.archive.ExtendedArchiveEntry; +import ca.vanzyl.provisio.archive.source.FileEntry; @Mojo(name = "jar", defaultPhase = LifecyclePhase.PACKAGE, configurator = "takari", threadSafe = true) public class Jar extends TakariLifecycleMojo { @@ -99,7 +99,7 @@ protected void executeMojo() throws MojoExecutionException { public void aggregate(Output output, Iterable inputs) throws IOException { logger.info("Building main JAR."); - List> sources = new ArrayList<>(); + List> sources = new ArrayList<>(); if (archive != null && archive.getManifestFile() != null) { sources.add(jarManifestSource(archive.getManifestFile())); } @@ -185,7 +185,7 @@ public void aggregate(Output output, Iterable inputs) throws IOExcep } } - private void archive(File jar, List> sources) throws IOException { + private void archive(File jar, List> sources) throws IOException { Archiver archiver = Archiver.builder() // .useRoot(false) // .normalize(true) // @@ -204,16 +204,16 @@ static String getRelativePath(File basedir, File resource) { return basedir.toPath().relativize(resource.toPath()).toString().replace('\\', '/'); // always use forward slash for path separator } - private List inputsSource(Multimap inputs) { - final List entries = new ArrayList<>(); + private List inputsSource(Multimap inputs) { + final List entries = new ArrayList<>(); for (File basedir : inputs.keySet()) { entries.addAll(inputsSource(basedir, inputs.get(basedir))); } return entries; } - private List inputsSource(File basedir, Iterable inputs) { - final List entries = new ArrayList<>(); + private List inputsSource(File basedir, Iterable inputs) { + final List entries = new ArrayList<>(); for (File input : inputs) { String entryName = getRelativePath(basedir, input); entries.add(new FileEntry(entryName, input)); @@ -221,11 +221,11 @@ private List inputsSource(File basedir, Iterable inputs) { return entries; } - public static Iterable jarManifestSource(File file) { - return singleton((Entry) new FileEntry(MANIFEST_PATH, file)); + public static Iterable jarManifestSource(File file) { + return singleton((ExtendedArchiveEntry) new FileEntry(MANIFEST_PATH, file)); } - private Iterable jarManifestSource(MavenProject project) throws IOException { + private Iterable jarManifestSource(MavenProject project) throws IOException { Manifest manifest = new Manifest(); Attributes main = manifest.getMainAttributes(); main.putValue("Manifest-Version", "1.0"); @@ -255,10 +255,10 @@ private Iterable jarManifestSource(MavenProject project) throws IOExcepti ByteArrayOutputStream buf = new ByteArrayOutputStream(); manifest.write(buf); - return singleton((Entry) new BytesEntry(MANIFEST_PATH, buf.toByteArray())); + return singleton((ExtendedArchiveEntry) new BytesEntry(MANIFEST_PATH, buf.toByteArray())); } - protected Entry pomPropertiesSource(MavenProject project) throws IOException { + protected ExtendedArchiveEntry pomPropertiesSource(MavenProject project) throws IOException { String entryName = String.format("META-INF/maven/%s/%s/pom.properties", project.getGroupId(), project.getArtifactId()); ByteArrayOutputStream buf = new ByteArrayOutputStream(); diff --git a/takari-lifecycle-plugin/src/main/java/io/takari/maven/plugins/jar/PomPropertiesMojo.java b/takari-lifecycle-plugin/src/main/java/io/takari/maven/plugins/jar/PomPropertiesMojo.java index 1ba48987..edeee4ac 100644 --- a/takari-lifecycle-plugin/src/main/java/io/takari/maven/plugins/jar/PomPropertiesMojo.java +++ b/takari-lifecycle-plugin/src/main/java/io/takari/maven/plugins/jar/PomPropertiesMojo.java @@ -16,7 +16,7 @@ import org.apache.maven.plugins.annotations.Mojo; import io.takari.incrementalbuild.BasicBuildContext; -import io.tesla.proviso.archive.Entry; +import ca.vanzyl.provisio.archive.ExtendedArchiveEntry; /** * Creates standard maven pom.properties file on filesystem. @@ -32,7 +32,7 @@ public class PomPropertiesMojo extends Jar { @Override public void executeMojo() throws MojoExecutionException { try { - Entry entry = pomPropertiesSource(project); + ExtendedArchiveEntry entry = pomPropertiesSource(project); try (OutputStream os = context.processOutput(new File(classesDirectory, entry.getName())).newOutputStream()) { entry.writeEntry(os); } diff --git a/takari-lifecycle-plugin/src/main/java/io/takari/resources/filtering/FilterResourcesProcessor.java b/takari-lifecycle-plugin/src/main/java/io/takari/resources/filtering/FilterResourcesProcessor.java index d9b3a209..8de9e262 100644 --- a/takari-lifecycle-plugin/src/main/java/io/takari/resources/filtering/FilterResourcesProcessor.java +++ b/takari-lifecycle-plugin/src/main/java/io/takari/resources/filtering/FilterResourcesProcessor.java @@ -129,13 +129,13 @@ public MapReflectionObjectHandler(final Resource resource, final MissingProperty } @Override - public Wrapper find(final String name, Object[] scopes) { + public Wrapper find(final String name, List scopes) { Wrapper result = null; for (final Object scope : scopes) { if (scope instanceof Map && ((Map) scope).containsKey(name)) { result = new Wrapper() { @Override - public Object call(Object[] scopes) throws GuardException { + public Object call(List scopes) throws GuardException { return ((Map) scope).get(name); } }; @@ -157,7 +157,7 @@ public Object call(Object[] scopes) throws GuardException { } else if (missingPropertyAction == MissingPropertyAction.leave) { result = new Wrapper() { @Override - public Object call(Object[] scopes) throws GuardException { + public Object call(List scopes) throws GuardException { return M_START + name + M_END; } }; diff --git a/takari-lifecycle-plugin/src/test/java/io/takari/maven/plugins/jar/JarTest.java b/takari-lifecycle-plugin/src/test/java/io/takari/maven/plugins/jar/JarTest.java index c40dd23c..0429a831 100644 --- a/takari-lifecycle-plugin/src/test/java/io/takari/maven/plugins/jar/JarTest.java +++ b/takari-lifecycle-plugin/src/test/java/io/takari/maven/plugins/jar/JarTest.java @@ -41,7 +41,7 @@ import com.google.common.io.Files; -import io.takari.hash.FingerprintSha1Streaming; +import io.takari.hash.Sha1Fingerprint; import io.takari.incrementalbuild.maven.testing.IncrementalBuildRule; import io.takari.maven.testing.TestResources; @@ -70,7 +70,7 @@ public void jarCreation() throws Exception { mojos.executeMojo(basedir, "jar"); File jar0 = new File(basedir, "target/test-1.0.jar"); assertTrue(jar0.exists()); - String fingerprint0 = new FingerprintSha1Streaming().fingerprint(jar0); + String fingerprint0 = new Sha1Fingerprint().fingerprint(jar0); // // Generate the JAR a second time and ensure that the fingerprint is still the same when // the JAR content is the same. The outer SHA1 of a JAR built at two points in time will @@ -79,7 +79,7 @@ public void jarCreation() throws Exception { mojos.executeMojo(basedir, "jar"); File jar1 = new File(basedir, "target/test-1.0.jar"); Assert.assertTrue(jar1.exists()); - String fingerprint1 = new FingerprintSha1Streaming().fingerprint(jar1); + String fingerprint1 = new Sha1Fingerprint().fingerprint(jar1); assertEquals("We expect the JAR to have the same fingerprint after repeated builds.", fingerprint0, fingerprint1); // Make sure our maven properties file is written correctly