You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sj...@apache.org on 2022/11/22 18:10:41 UTC

[maven-dependency-plugin] 02/03: Fix tests for new plexus-archiver

This is an automated email from the ASF dual-hosted git repository.

sjaranowski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-dependency-plugin.git

commit a3c64deeb954664615acc3a75dcf959b3ba1337d
Author: Slawomir Jaranowski <s....@gmail.com>
AuthorDate: Tue Nov 22 16:21:42 2022 +0100

    Fix tests for new plexus-archiver
---
 .../TestIncludeExcludeUnpackMojo.java              |  2 +-
 .../testUtils/DependencyArtifactStubFactory.java   | 43 +++++++++++++++++++++-
 2 files changed, 42 insertions(+), 3 deletions(-)

diff --git a/src/test/java/org/apache/maven/plugins/dependency/fromConfiguration/TestIncludeExcludeUnpackMojo.java b/src/test/java/org/apache/maven/plugins/dependency/fromConfiguration/TestIncludeExcludeUnpackMojo.java
index afc0dfcb..9134d062 100644
--- a/src/test/java/org/apache/maven/plugins/dependency/fromConfiguration/TestIncludeExcludeUnpackMojo.java
+++ b/src/test/java/org/apache/maven/plugins/dependency/fromConfiguration/TestIncludeExcludeUnpackMojo.java
@@ -68,7 +68,7 @@ public class TestIncludeExcludeUnpackMojo
         assertNotNull( mojo );
         assertNotNull( mojo.getProject() );
 
-        mojo.setArchiverManager( (ArchiverManager) lookup( ArchiverManager.ROLE ) );
+        mojo.setArchiverManager( lookup( ArchiverManager.class ) );
 
         mojo.setMarkersDirectory( new File( this.testDir, "markers" ) );
         mojo.setArtifactItems( list );
diff --git a/src/test/java/org/apache/maven/plugins/dependency/testUtils/DependencyArtifactStubFactory.java b/src/test/java/org/apache/maven/plugins/dependency/testUtils/DependencyArtifactStubFactory.java
index 807c6f93..2d7527f8 100644
--- a/src/test/java/org/apache/maven/plugins/dependency/testUtils/DependencyArtifactStubFactory.java
+++ b/src/test/java/org/apache/maven/plugins/dependency/testUtils/DependencyArtifactStubFactory.java
@@ -1,6 +1,6 @@
 package org.apache.maven.plugins.dependency.testUtils;
 
-/* 
+/*
  * 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
@@ -28,13 +28,19 @@ import java.util.List;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.artifact.versioning.VersionRange;
-import org.apache.maven.plugins.dependency.fromConfiguration.ArtifactItem;
 import org.apache.maven.plugin.testing.ArtifactStubFactory;
+import org.apache.maven.plugins.dependency.fromConfiguration.ArtifactItem;
+import org.codehaus.plexus.archiver.Archiver;
+import org.codehaus.plexus.archiver.ArchiverException;
+import org.codehaus.plexus.archiver.manager.ArchiverManager;
+import org.codehaus.plexus.archiver.manager.NoSuchArchiverException;
+import org.codehaus.plexus.archiver.war.WarArchiver;
 
 public class DependencyArtifactStubFactory
     extends ArtifactStubFactory
 {
     private boolean flattenedPath = true;
+    private ArchiverManager archiverManager;
 
     public DependencyArtifactStubFactory( File theWorkingDir, boolean theCreateFiles, boolean flattenedPath )
     {
@@ -95,4 +101,37 @@ public class DependencyArtifactStubFactory
 
         return artifact;
     }
+
+
+    @Override
+    public void setUnpackableFile( ArchiverManager archiverManager )
+    {
+        // it is needed in createUnpackableFile method
+        this.archiverManager = archiverManager;
+        super.setUnpackableFile( archiverManager );
+    }
+
+    /**
+     * We need override original method which try to set wrong class of logger on Archiver.
+     * <p>
+     * Newer version of Archiver use SLF4J instead of Plexus logger.
+     */
+    @Override
+    public void createUnpackableFile( Artifact artifact, File destFile )
+        throws NoSuchArchiverException, ArchiverException, IOException
+    {
+        Archiver archiver = archiverManager.getArchiver( destFile );
+
+        archiver.setDestFile( destFile );
+        archiver.addFile( getSrcFile(), getUnpackableFileName( artifact ) );
+
+        if ( archiver instanceof WarArchiver )
+        {
+            WarArchiver war = (WarArchiver) archiver;
+            // the use of this is counter-intuitive:
+            // http://jira.codehaus.org/browse/PLX-286
+            war.setIgnoreWebxml( false );
+        }
+        archiver.createArchive();
+    }
 }