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

svn commit: r1678816 - in /maven/plugins/branches/m-shade-p-3.0: pom.xml src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java src/test/java/org/apache/maven/plugins/shade/mojo/ShadeMojoTest.java

Author: rfscholte
Date: Mon May 11 20:11:21 2015
New Revision: 1678816

URL: http://svn.apache.org/r1678816
Log:
3.0 version without maven-compat

Modified:
    maven/plugins/branches/m-shade-p-3.0/pom.xml
    maven/plugins/branches/m-shade-p-3.0/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java
    maven/plugins/branches/m-shade-p-3.0/src/test/java/org/apache/maven/plugins/shade/mojo/ShadeMojoTest.java

Modified: maven/plugins/branches/m-shade-p-3.0/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/branches/m-shade-p-3.0/pom.xml?rev=1678816&r1=1678815&r2=1678816&view=diff
==============================================================================
--- maven/plugins/branches/m-shade-p-3.0/pom.xml (original)
+++ maven/plugins/branches/m-shade-p-3.0/pom.xml Mon May 11 20:11:21 2015
@@ -30,7 +30,7 @@ under the License.
   </parent>
 
   <artifactId>maven-shade-plugin</artifactId>
-  <version>2.4-SNAPSHOT</version>
+  <version>3.0-SNAPSHOT</version>
   <packaging>maven-plugin</packaging>
 
   <name>Apache Maven Shade Plugin</name>
@@ -93,11 +93,6 @@ under the License.
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
-      <artifactId>maven-compat</artifactId>
-      <version>${mavenVersion}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
       <artifactId>maven-artifact</artifactId>
       <version>${mavenVersion}</version>
     </dependency>
@@ -106,6 +101,12 @@ under the License.
       <artifactId>maven-plugin-annotations</artifactId>
       <scope>provided</scope>
      </dependency>
+     
+	<dependency>
+      <groupId>org.apache.maven.shared</groupId>
+      <artifactId>maven-artifact-transfer</artifactId>
+      <version>0.0.1-SNAPSHOT</version>
+    </dependency>
 
     <!-- Plexus -->
      <dependency>
@@ -133,7 +134,7 @@ under the License.
     <dependency>
       <groupId>org.apache.maven.shared</groupId>
       <artifactId>maven-dependency-tree</artifactId>
-      <version>2.2</version>
+      <version>3.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>commons-io</groupId>
@@ -163,7 +164,12 @@ under the License.
       <version>4.10</version>
       <scope>test</scope>
     </dependency>
-
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-core</artifactId>
+      <version>1.9.5</version>
+      <scope>test</scope>
+    </dependency>
     <dependency>
       <groupId>xmlunit</groupId>
       <artifactId>xmlunit</artifactId>

Modified: maven/plugins/branches/m-shade-p-3.0/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/m-shade-p-3.0/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java?rev=1678816&r1=1678815&r2=1678816&view=diff
==============================================================================
--- maven/plugins/branches/m-shade-p-3.0/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java (original)
+++ maven/plugins/branches/m-shade-p-3.0/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java Mon May 11 20:11:21 2015
@@ -38,9 +38,6 @@ import org.apache.maven.artifact.Artifac
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
 import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
-import org.apache.maven.artifact.resolver.ArtifactResolutionException;
-import org.apache.maven.artifact.resolver.ArtifactResolver;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.Exclusion;
@@ -68,6 +65,8 @@ import org.apache.maven.project.ProjectB
 import org.apache.maven.project.ProjectBuildingException;
 import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.project.ProjectBuildingResult;
+import org.apache.maven.shared.artifact.resolve.ArtifactResolver;
+import org.apache.maven.shared.artifact.resolve.ArtifactResolverException;
 import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
 import org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException;
 import org.apache.maven.shared.dependency.graph.DependencyNode;
@@ -695,15 +694,20 @@ public class ShadeMojo
 
         try
         {
-            artifactResolver.resolve( resolvedArtifact, remoteArtifactRepositories, localRepository );
+            artifactResolver.resolveArtifact( session.getProjectBuildingRequest(), resolvedArtifact,
+                                              remoteArtifactRepositories );
         }
-        catch ( ArtifactNotFoundException e )
+//        catch ( ArtifactNotFoundException e )
+//        {
+//            // ignore, the jar has not been found
+//        }
+//        catch ( ArtifactResolutionException e )
+//        {
+//            getLog().warn( "Could not get sources for " + artifact );
+//        }
+        catch ( ArtifactResolverException e )
         {
-            // ignore, the jar has not been found
-        }
-        catch ( ArtifactResolutionException e )
-        {
-            getLog().warn( "Could not get sources for " + artifact );
+            // either artifact does not exist or its sources are not available
         }
 
         if ( resolvedArtifact.isResolved() )
@@ -1025,8 +1029,10 @@ public class ShadeMojo
                 projectBuildingRequest.setRemoteRepositories( remoteArtifactRepositories );
 
                 ProjectBuildingResult result = projectBuilder.build( f, projectBuildingRequest );
+                
+                projectBuildingRequest.setProject( result.getProject() );
 
-                modified = updateExcludesInDeps( result.getProject(), dependencies, transitiveDeps );
+                modified = updateExcludesInDeps( projectBuildingRequest, dependencies, transitiveDeps );
             }
 
             project.setFile( dependencyReducedPomLocation );
@@ -1049,7 +1055,7 @@ public class ShadeMojo
         return groupId + ":" + artifactId + ":" + type + ":" + ( ( classifier != null ) ? classifier : "" );
     }
 
-    public boolean updateExcludesInDeps( MavenProject project, List<Dependency> dependencies,
+    private boolean updateExcludesInDeps( ProjectBuildingRequest project, List<Dependency> dependencies,
                                          List<Dependency> transitiveDeps )
         throws DependencyGraphBuilderException
     {

Modified: maven/plugins/branches/m-shade-p-3.0/src/test/java/org/apache/maven/plugins/shade/mojo/ShadeMojoTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/m-shade-p-3.0/src/test/java/org/apache/maven/plugins/shade/mojo/ShadeMojoTest.java?rev=1678816&r1=1678815&r2=1678816&view=diff
==============================================================================
--- maven/plugins/branches/m-shade-p-3.0/src/test/java/org/apache/maven/plugins/shade/mojo/ShadeMojoTest.java (original)
+++ maven/plugins/branches/m-shade-p-3.0/src/test/java/org/apache/maven/plugins/shade/mojo/ShadeMojoTest.java Mon May 11 20:11:21 2015
@@ -19,16 +19,28 @@ package org.apache.maven.plugins.shade.m
  * under the License.
  */
 
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.isA;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.mock;
+
+import java.io.File;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
+
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.DefaultArtifact;
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.handler.ArtifactHandler;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
-import org.apache.maven.artifact.resolver.ArtifactResolutionException;
-import org.apache.maven.artifact.resolver.ArtifactResolver;
-import org.apache.maven.artifact.resolver.DefaultArtifactResolver;
 import org.apache.maven.artifact.versioning.VersionRange;
+import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugins.shade.ShadeRequest;
 import org.apache.maven.plugins.shade.Shader;
 import org.apache.maven.plugins.shade.filter.Filter;
@@ -37,18 +49,14 @@ import org.apache.maven.plugins.shade.re
 import org.apache.maven.plugins.shade.resource.ComponentsXmlResourceTransformer;
 import org.apache.maven.plugins.shade.resource.ResourceTransformer;
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.artifact.resolve.ArtifactResolver;
 import org.codehaus.plexus.PlexusTestCase;
-
-import java.io.File;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
 
 /**
  * @author Jason van Zyl
@@ -57,6 +65,21 @@ import java.util.Set;
 public class ShadeMojoTest
     extends PlexusTestCase
 {
+    @Mock
+    private MavenSession session;
+    
+    @InjectMocks
+    private ShadeMojo mojo = new ShadeMojo();
+
+    @Override
+    protected void setUp()
+        throws Exception
+    {
+        super.setUp();
+        MockitoAnnotations.initMocks( this );
+    }
+
+    
     public void testShaderWithDefaultShadedPattern()
         throws Exception
     {
@@ -114,8 +137,6 @@ public class ShadeMojoTest
     public void testShadeWithFilter()
         throws Exception
     {
-        ShadeMojo mojo = new ShadeMojo();
-
         // set createSourcesJar = true
         Field createSourcesJar = ShadeMojo.class.getDeclaredField( "createSourcesJar" );
         createSourcesJar.setAccessible( true );
@@ -128,22 +149,25 @@ public class ShadeMojoTest
         artifactFactoryField.set( mojo, artifactFactory );
 
         // configure artifactResolver (mocked) for mojo
-        ArtifactResolver mockArtifactResolver = new DefaultArtifactResolver()
+        ArtifactResolver mockArtifactResolver = mock( ArtifactResolver.class );
+        doAnswer( new Answer<Void>()
         {
-
-            public void resolve( Artifact artifact, List<ArtifactRepository> remoteRepos, ArtifactRepository repo )
-                throws ArtifactResolutionException, ArtifactNotFoundException
+            public Void answer( InvocationOnMock invocation )
             {
+                Artifact artifact = (Artifact) invocation.getArguments()[1];
+
                 // artifact is resolved
                 artifact.setResolved( true );
 
                 // set file
-                artifact.setFile( new File(
-                    artifact.getArtifactId() + "-" + artifact.getVersion() + ( artifact.getClassifier() != null ? "-"
-                        + artifact.getClassifier() : "" ) + ".jar" ) );
-            }
+                artifact.setFile( new File( artifact.getArtifactId() + "-" + artifact.getVersion()
+                    + ( artifact.getClassifier() != null ? "-" + artifact.getClassifier() : "" ) + ".jar" ) );
 
-        };
+                return null;
+            }
+        } ).when( mockArtifactResolver ).resolveArtifact( any( ProjectBuildingRequest.class ), isA( Artifact.class ),
+                                                        any( List.class ) );
+        
         Field artifactResolverField = ShadeMojo.class.getDeclaredField( "artifactResolver" );
         artifactResolverField.setAccessible( true );
         artifactResolverField.set( mojo, mockArtifactResolver );
@@ -154,7 +178,7 @@ public class ShadeMojoTest
         Artifact artifact = new DefaultArtifact( "org.apache.myfaces.core", "myfaces-impl",
                                                  VersionRange.createFromVersion( "2.0.1-SNAPSHOT" ), "compile", "jar",
                                                  null, artifactHandler );
-        mockArtifactResolver.resolve( artifact, null, null ); // setFile and setResolved
+        mockArtifactResolver.resolveArtifact( null, artifact, null ); // setFile and setResolved
         project.setArtifact( artifact );
         Field projectField = ShadeMojo.class.getDeclaredField( "project" );
         projectField.setAccessible( true );
@@ -172,7 +196,7 @@ public class ShadeMojoTest
         filtersField.set( mojo, new ArchiveFilter[]{ archiveFilter } );
 
         // invoke getFilters()
-        Method getFilters = ShadeMojo.class.getDeclaredMethod( "getFilters", new Class[0] );
+        Method getFilters = ShadeMojo.class.getDeclaredMethod( "getFilters" );
         getFilters.setAccessible( true );
         List<Filter> filters = (List<Filter>) getFilters.invoke( mojo);