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);