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