You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ma...@apache.org on 2007/10/03 23:07:52 UTC
svn commit: r581724 - in /maven/sandbox/trunk/plugins/maven-shade-plugin/src:
main/java/org/apache/maven/plugins/shade/
main/java/org/apache/maven/plugins/shade/mojo/
main/java/org/apache/maven/plugins/shade/relocation/
test/java/org/apache/maven/plugi...
Author: mauro
Date: Wed Oct 3 14:07:51 2007
New Revision: 581724
URL: http://svn.apache.org/viewvc?rev=581724&view=rev
Log:
MSHADE-2: Enhanced package relocation to have a configurable shaded pattern.
Modified:
maven/sandbox/trunk/plugins/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/DefaultShader.java
maven/sandbox/trunk/plugins/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/mojo/PackageRelocation.java
maven/sandbox/trunk/plugins/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java
maven/sandbox/trunk/plugins/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/relocation/SimpleRelocator.java
maven/sandbox/trunk/plugins/maven-shade-plugin/src/test/java/org/apache/maven/plugins/shade/ShadeMojoTest.java
maven/sandbox/trunk/plugins/maven-shade-plugin/src/test/projects/shaded-project/pom.xml
Modified: maven/sandbox/trunk/plugins/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/DefaultShader.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/DefaultShader.java?rev=581724&r1=581723&r2=581724&view=diff
==============================================================================
--- maven/sandbox/trunk/plugins/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/DefaultShader.java (original)
+++ maven/sandbox/trunk/plugins/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/DefaultShader.java Wed Oct 3 14:07:51 2007
@@ -59,7 +59,7 @@
{
Set resources = new HashSet();
- MyRemapper remapper = new MyRemapper( relocators );
+ RelocatorRemapper remapper = new RelocatorRemapper( relocators );
JarOutputStream jos = new JarOutputStream( new FileOutputStream( uberJar ) );
@@ -165,12 +165,12 @@
IOUtil.close( jos );
}
- class MyRemapper
+ class RelocatorRemapper
extends Remapper
{
List relocators;
- public MyRemapper( List relocators )
+ public RelocatorRemapper( List relocators )
{
this.relocators = relocators;
}
Modified: maven/sandbox/trunk/plugins/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/mojo/PackageRelocation.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/mojo/PackageRelocation.java?rev=581724&r1=581723&r2=581724&view=diff
==============================================================================
--- maven/sandbox/trunk/plugins/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/mojo/PackageRelocation.java (original)
+++ maven/sandbox/trunk/plugins/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/mojo/PackageRelocation.java Wed Oct 3 14:07:51 2007
@@ -20,16 +20,26 @@
import java.util.List;
-/** @author Jason van Zyl */
+/**
+ * @author Jason van Zyl
+ * @author Mauro Talevi
+ */
public class PackageRelocation
{
private String pattern;
+ private String shadedPattern;
+
private List excludes;
public String getPattern()
{
return pattern;
+ }
+
+ public String getShadedPattern()
+ {
+ return shadedPattern;
}
public List getExcludes()
Modified: maven/sandbox/trunk/plugins/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java?rev=581724&r1=581723&r2=581724&view=diff
==============================================================================
--- maven/sandbox/trunk/plugins/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java (original)
+++ maven/sandbox/trunk/plugins/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java Wed Oct 3 14:07:51 2007
@@ -267,14 +267,8 @@
{
PackageRelocation r = relocations[i];
- if ( r.getExcludes() != null )
- {
- relocators.add( new SimpleRelocator( r.getPattern(), r.getExcludes() ) );
- }
- else
- {
- relocators.add( new SimpleRelocator( r.getPattern(), null ) );
- }
+ relocators.add( new SimpleRelocator( r.getPattern(), r.getShadedPattern(), r.getExcludes() ) );
+
}
return relocators;
}
Modified: maven/sandbox/trunk/plugins/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/relocation/SimpleRelocator.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/relocation/SimpleRelocator.java?rev=581724&r1=581723&r2=581724&view=diff
==============================================================================
--- maven/sandbox/trunk/plugins/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/relocation/SimpleRelocator.java (original)
+++ maven/sandbox/trunk/plugins/maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/relocation/SimpleRelocator.java Wed Oct 3 14:07:51 2007
@@ -23,32 +23,44 @@
import java.util.Iterator;
import java.util.List;
-/** @author Jason van Zyl */
+/**
+ * @author Jason van Zyl
+ * @author Mauro Talevi
+ */
public class SimpleRelocator
implements Relocator
{
private String pattern;
+
+ private String shadedPattern;
private List excludes;
- public SimpleRelocator( String pattern,
- List excludes )
+ public SimpleRelocator(String pattern, String shadedPattern, List excludes)
{
- this.pattern = pattern.replace( '.', '/' );
+ this.pattern = pattern.replace('.', '/');
- if ( excludes != null )
+ if ( shadedPattern != null )
+ {
+ this.shadedPattern = shadedPattern.replace('.', '/');
+ } else
+ {
+ this.shadedPattern = "hidden/" + pattern;
+ }
+
+ if (excludes != null)
{
this.excludes = new ArrayList();
- for ( Iterator i = excludes.iterator(); i.hasNext(); )
+ for (Iterator i = excludes.iterator(); i.hasNext();)
{
String e = (String) i.next();
- this.excludes.add( e.replace( '.', '/' ) );
+ this.excludes.add(e.replace('.', '/'));
}
}
}
-
+
public boolean canRelocate( String clazz )
{
if ( excludes != null )
@@ -74,6 +86,7 @@
public String relocate( String clazz )
{
- return "hidden/" + clazz;
+ return clazz.replaceFirst(pattern, shadedPattern);
}
+
}
Modified: maven/sandbox/trunk/plugins/maven-shade-plugin/src/test/java/org/apache/maven/plugins/shade/ShadeMojoTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-shade-plugin/src/test/java/org/apache/maven/plugins/shade/ShadeMojoTest.java?rev=581724&r1=581723&r2=581724&view=diff
==============================================================================
--- maven/sandbox/trunk/plugins/maven-shade-plugin/src/test/java/org/apache/maven/plugins/shade/ShadeMojoTest.java (original)
+++ maven/sandbox/trunk/plugins/maven-shade-plugin/src/test/java/org/apache/maven/plugins/shade/ShadeMojoTest.java Wed Oct 3 14:07:51 2007
@@ -32,11 +32,26 @@
import org.codehaus.plexus.PlexusTestCase;
-/** @author Jason van Zyl */
+/**
+ * @author Jason van Zyl
+ * @author Mauro Talevi
+ */
public class ShadeMojoTest
extends PlexusTestCase
{
- public void testShader()
+ public void testShaderWithDefaultShadedPattern()
+ throws Exception
+ {
+ shaderWithPattern(null, new File( "target/foo-default.jar" ));
+ }
+
+ public void testShaderWithCustomShadedPattern()
+ throws Exception
+ {
+ shaderWithPattern("org/shaded/plexus/util", new File( "target/foo-custom.jar" ));
+ }
+
+ public void shaderWithPattern(String shadedPattern, File jar)
throws Exception
{
Shader s = (Shader) lookup( Shader.ROLE );
@@ -47,11 +62,9 @@
set.add( new File( getBasedir(), "src/test/jars/plexus-utils-1.4.1.jar" ) );
- File jar = new File( "target/foo.jar" );
-
List relocators = new ArrayList();
- relocators.add( new SimpleRelocator( "org/codehaus/plexus/util", Arrays.asList(
+ relocators.add( new SimpleRelocator( "org/codehaus/plexus/util", shadedPattern, Arrays.asList(
new String[]{"org/codehaus/plexus/util/xml/Xpp3Dom", "org/codehaus/plexus/util/xml/pull.*"} ) ) );
List resourceTransformers = new ArrayList();
@@ -60,4 +73,5 @@
s.shade( set, jar, relocators, resourceTransformers );
}
+
}
Modified: maven/sandbox/trunk/plugins/maven-shade-plugin/src/test/projects/shaded-project/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-shade-plugin/src/test/projects/shaded-project/pom.xml?rev=581724&r1=581723&r2=581724&view=diff
==============================================================================
--- maven/sandbox/trunk/plugins/maven-shade-plugin/src/test/projects/shaded-project/pom.xml (original)
+++ maven/sandbox/trunk/plugins/maven-shade-plugin/src/test/projects/shaded-project/pom.xml Wed Oct 3 14:07:51 2007
@@ -56,7 +56,8 @@
</artifactSet>
<relocations>
<relocation>
- <pattern>org.codehaus.plexus.util</pattern>
+ <pattern>org.codehaus.plexus.util</pattern>
+ <shadedPattern>org.shaded.plexus.util</shadedPattern>
<excludes>
<exclude>org.codehaus.plexus.util.xml.Xpp3Dom</exclude>
<exclude>org.codehaus.plexus.util.xml.pull.*</exclude>