diff --git a/pom.xml b/pom.xml
index ada9d5a63..e3dfe1375 100644
--- a/pom.xml
+++ b/pom.xml
@@ -156,23 +156,7 @@ under the License.
plexus-interpolation
1.26
-
- org.codehaus.plexus
- plexus-slf4j-logging
- 1.1
-
-
- org.codehaus.plexus
- plexus-container-default
-
-
-
-
- org.codehaus.plexus
- plexus-archiver
- 4.2.7
-
commons-io
commons-io
@@ -186,13 +170,19 @@ under the License.
org.codehaus.plexus
plexus-io
- 3.3.1
+ 3.4.0
+
+
+ org.codehaus.plexus
+ plexus-archiver
+ 4.4.0
org.apache.maven
maven-archiver
- 3.5.2
+ 3.6.0
+
org.codehaus.plexus
plexus-utils
diff --git a/src/it/projects/reproducible/verify.groovy b/src/it/projects/reproducible/verify.groovy
index 14b429c79..798c2fb8b 100644
--- a/src/it/projects/reproducible/verify.groovy
+++ b/src/it/projects/reproducible/verify.groovy
@@ -27,4 +27,4 @@ assert deployDir.exists()
assert new File( deployDir, 'reproducible-1.0-src.zip.sha1' ).text == '5ce34fc133d47cbc9c81195877dbe10b9ec7d864'
assert new File( deployDir, 'reproducible-1.0-src.tar.sha1' ).text == '0b9dc1da069705a93b4954a198c18bd248822bf8'
-assert new File( deployDir, 'reproducible-1.0-src.jar.sha1' ).text == '2e84c54834ad80e58b4564471a02356904c7b1e3'
+assert new File( deployDir, 'reproducible-1.0-src.jar.sha1' ).text == '289cb3ecd418b8099deefb930dc7aa39c06888cb'
diff --git a/src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java b/src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java
index 116b75150..b933b8f0d 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java
@@ -22,7 +22,6 @@
import javax.inject.Inject;
import javax.inject.Named;
-import org.apache.maven.plugin.DebugConfigurationListener;
import org.apache.maven.plugins.assembly.AssemblerConfigurationSource;
import org.apache.maven.plugins.assembly.InvalidAssemblerConfigurationException;
import org.apache.maven.plugins.assembly.archive.archiver.AssemblyProxyArchiver;
@@ -32,7 +31,7 @@
import org.apache.maven.plugins.assembly.filter.ComponentsXmlArchiverFileFilter;
import org.apache.maven.plugins.assembly.filter.ContainerDescriptorHandler;
import org.apache.maven.plugins.assembly.format.AssemblyFormattingException;
-import org.apache.maven.plugins.assembly.internal.PlexusLoggingHelper;
+import org.apache.maven.plugins.assembly.internal.DebugConfigurationListener;
import org.apache.maven.plugins.assembly.interpolation.AssemblyExpressionEvaluator;
import org.apache.maven.plugins.assembly.model.Assembly;
import org.apache.maven.plugins.assembly.model.ContainerDescriptorHandlerConfig;
@@ -332,7 +331,7 @@ else if ( "war".equals( format ) )
configSource.getWorkingDirectory() );
if ( configSource.isDryRun() )
{
- archiver = new DryRunArchiver( archiver, PlexusLoggingHelper.wrap( LOGGER ) );
+ archiver = new DryRunArchiver( archiver, LOGGER );
}
archiver.setUseJvmChmod( configSource.isUpdateOnly() );
@@ -427,8 +426,7 @@ private void configureComponent( final Object component, final Xpp3Dom config,
{
final ComponentConfigurator configurator = container.lookup( ComponentConfigurator.class, "basic" );
- final ConfigurationListener listener = new DebugConfigurationListener(
- PlexusLoggingHelper.wrap( LOGGER ) );
+ final ConfigurationListener listener = new DebugConfigurationListener( LOGGER );
final ExpressionEvaluator expressionEvaluator = new AssemblyExpressionEvaluator( configSource );
diff --git a/src/main/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiver.java b/src/main/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiver.java
index cf0099820..49382db44 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiver.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiver.java
@@ -42,6 +42,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.Charset;
+import java.nio.file.attribute.FileTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
@@ -1099,4 +1100,21 @@ public String getOverrideGroupName()
return delegate.getOverrideGroupName();
}
+ @Override
+ public void setLastModifiedTime( FileTime fileTime )
+ {
+ delegate.setLastModifiedTime( fileTime );
+ }
+
+ @Override
+ public FileTime getLastModifiedTime()
+ {
+ return delegate.getLastModifiedTime();
+ }
+
+ @Override
+ public void configureReproducibleBuild( FileTime fileTime )
+ {
+ delegate.configureReproducibleBuild( fileTime );
+ }
}
diff --git a/src/main/java/org/apache/maven/plugins/assembly/internal/DebugConfigurationListener.java b/src/main/java/org/apache/maven/plugins/assembly/internal/DebugConfigurationListener.java
new file mode 100644
index 000000000..5da66acac
--- /dev/null
+++ b/src/main/java/org/apache/maven/plugins/assembly/internal/DebugConfigurationListener.java
@@ -0,0 +1,90 @@
+package org.apache.maven.plugins.assembly.internal;
+
+/*
+ * 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
+ *
+ * http://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.
+ */
+
+import java.lang.reflect.Array;
+
+import org.codehaus.plexus.component.configurator.ConfigurationListener;
+import org.slf4j.Logger;
+
+/**
+ * Copy of deprecated {@link org.apache.maven.plugin.DebugConfigurationListener} updated to Slf4j.
+ */
+public class DebugConfigurationListener
+ implements ConfigurationListener
+{
+ private final Logger logger;
+
+ public DebugConfigurationListener( Logger logger )
+ {
+ this.logger = logger;
+ }
+
+ @Override
+ public void notifyFieldChangeUsingSetter( String fieldName, Object value, Object target )
+ {
+ if ( logger.isDebugEnabled() )
+ {
+ logger.debug( " (s) " + fieldName + " = " + toString( value ) );
+ }
+ }
+
+ @Override
+ public void notifyFieldChangeUsingReflection( String fieldName, Object value, Object target )
+ {
+ if ( logger.isDebugEnabled() )
+ {
+ logger.debug( " (f) " + fieldName + " = " + toString( value ) );
+ }
+ }
+
+ /**
+ * Creates a human-friendly string representation of the specified object.
+ *
+ * @param obj The object to create a string representation for, may be null
.
+ * @return The string representation, never null
.
+ */
+ private String toString( Object obj )
+ {
+ String str;
+ if ( obj != null && obj.getClass().isArray() )
+ {
+ int n = Array.getLength( obj );
+ StringBuilder buf = new StringBuilder( 256 );
+ buf.append( '[' );
+ for ( int i = 0; i < n; i++ )
+ {
+ if ( i > 0 )
+ {
+ buf.append( ", " );
+ }
+ buf.append( Array.get( obj, i ) );
+ }
+ buf.append( ']' );
+ str = buf.toString();
+ }
+ else
+ {
+ str = String.valueOf( obj );
+ }
+ return str;
+ }
+
+}
diff --git a/src/main/java/org/apache/maven/plugins/assembly/internal/PlexusLoggingHelper.java b/src/main/java/org/apache/maven/plugins/assembly/internal/PlexusLoggingHelper.java
deleted file mode 100644
index 6708a9c79..000000000
--- a/src/main/java/org/apache/maven/plugins/assembly/internal/PlexusLoggingHelper.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.apache.maven.plugins.assembly.internal;
-
-/*
- * 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
- *
- * http://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.
- */
-
-import org.codehaus.plexus.logging.Logger;
-import org.codehaus.plexus.logging.slf4j.Slf4jLogger;
-
-/**
- * Support for plexus logging, as downstream component APIs still expect Plexus logger..
- */
-public final class PlexusLoggingHelper
-{
- private PlexusLoggingHelper()
- {
- // nop
- }
-
- public static Logger wrap( final org.slf4j.Logger logger )
- {
- return new Slf4jLogger( 0, logger ); // set it lowest level, let SLF4J filter
- }
-}