[ 
https://issues.apache.org/jira/browse/MSHADE-237?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15537382#comment-15537382
 ] 
Hudson commented on MSHADE-237:
-------------------------------

FAILURE: Integrated in Jenkins build maven-plugins #7322 (See 
[https://builds.apache.org/job/maven-plugins/7322/])
[MSHADE-237] ServicesResourceTransformer relocates excluded classes

Exclude pattern specified for relocations were ignored by the 
ServicesResourceTransformer. This could result in fully qualified name of 
implementation classes, present in a file for a given interface, being 
relocated, when the actual class was not. (gboue: 
[http://svn.apache.org/viewvc/?view=rev&rev=1762963])
* (add) 
maven-shade-plugin/src/it/services-resource-transformer-with-reloc-includes-excludes
* (add) 
maven-shade-plugin/src/it/services-resource-transformer-with-reloc-includes-excludes/pom.xml
* (add) 
maven-shade-plugin/src/it/services-resource-transformer-with-reloc-includes-excludes/repo
* (add) 
maven-shade-plugin/src/it/services-resource-transformer-with-reloc-includes-excludes/repo/org
* (add) 
maven-shade-plugin/src/it/services-resource-transformer-with-reloc-includes-excludes/repo/org/apache
* (add) 
maven-shade-plugin/src/it/services-resource-transformer-with-reloc-includes-excludes/repo/org/apache/maven
* (add) 
maven-shade-plugin/src/it/services-resource-transformer-with-reloc-includes-excludes/repo/org/apache/maven/its
* (add) 
maven-shade-plugin/src/it/services-resource-transformer-with-reloc-includes-excludes/repo/org/apache/maven/its/shade
* (add) 
maven-shade-plugin/src/it/services-resource-transformer-with-reloc-includes-excludes/repo/org/apache/maven/its/shade/srt
* (add) 
maven-shade-plugin/src/it/services-resource-transformer-with-reloc-includes-excludes/repo/org/apache/maven/its/shade/srt/mshade-237-one
* (add) 
maven-shade-plugin/src/it/services-resource-transformer-with-reloc-includes-excludes/repo/org/apache/maven/its/shade/srt/mshade-237-one/0.1
* (add) 
maven-shade-plugin/src/it/services-resource-transformer-with-reloc-includes-excludes/repo/org/apache/maven/its/shade/srt/mshade-237-one/0.1/mshade-237-one-0.1.jar
* (add) 
maven-shade-plugin/src/it/services-resource-transformer-with-reloc-includes-excludes/repo/org/apache/maven/its/shade/srt/mshade-237-one/0.1/mshade-237-one-0.1.pom
* (add) 
maven-shade-plugin/src/it/services-resource-transformer-with-reloc-includes-excludes/repo/org/apache/maven/its/shade/srt/mshade-237-two
* (add) 
maven-shade-plugin/src/it/services-resource-transformer-with-reloc-includes-excludes/repo/org/apache/maven/its/shade/srt/mshade-237-two/0.1
* (add) 
maven-shade-plugin/src/it/services-resource-transformer-with-reloc-includes-excludes/repo/org/apache/maven/its/shade/srt/mshade-237-two/0.1/mshade-237-two-0.1.jar
* (add) 
maven-shade-plugin/src/it/services-resource-transformer-with-reloc-includes-excludes/repo/org/apache/maven/its/shade/srt/mshade-237-two/0.1/mshade-237-two-0.1.pom
* (add) 
maven-shade-plugin/src/it/services-resource-transformer-with-reloc-includes-excludes/verify.bsh
* (edit) 
maven-shade-plugin/src/main/java/org/apache/maven/plugins/shade/resource/ServicesResourceTransformer.java
* (edit) 
maven-shade-plugin/src/test/java/org/apache/maven/plugins/shade/resource/ServiceResourceTransformerTest.java


> ServicesResourceTransformer relocates excluded classes 
> -------------------------------------------------------
>
>                 Key: MSHADE-237
>                 URL: https://issues.apache.org/jira/browse/MSHADE-237
>             Project: Maven Shade Plugin
>          Issue Type: Bug
>    Affects Versions: 3.0.0, 2.4.3
>            Reporter: James Phillpotts
>            Assignee: Guillaume Boué
>
> If an exclude pattern is specified on a relocator, the 
> {{ServicesResourceTransformer}} ignores them.
> This is demonstrated by the test, and fixed in the following:
> {noformat}
> Index: 
> src/main/java/org/apache/maven/plugins/shade/resource/ServicesResourceTransformer.java
> ===================================================================
> --- 
> src/main/java/org/apache/maven/plugins/shade/resource/ServicesResourceTransformer.java
>     (revision 1762668)
> +++ 
> src/main/java/org/apache/maven/plugins/shade/resource/ServicesResourceTransformer.java
>     (working copy)
> @@ -86,7 +86,10 @@
>              String relContent = line;
>              for ( Relocator relocator : relocators )
>              {
> -                relContent = relocator.applyToSourceContent( relContent );
> +                if ( relocator.canRelocateClass(relContent) )
> +                {
> +                    relContent = relocator.relocateClass(relContent);
> +                }
>              }
>              fout.append( relContent + "\n" );
>          }
> Index: 
> src/test/java/org/apache/maven/plugins/shade/resource/ServiceResourceTransformerTest.java
> ===================================================================
> --- 
> src/test/java/org/apache/maven/plugins/shade/resource/ServiceResourceTransformerTest.java
>  (revision 1762668)
> +++ 
> src/test/java/org/apache/maven/plugins/shade/resource/ServiceResourceTransformerTest.java
>  (working copy)
> @@ -27,6 +27,7 @@
>  import java.io.File;
>  import java.io.FileOutputStream;
>  import java.io.InputStream;
> +import java.util.Collections;
>  import java.util.List;
>  import java.util.jar.JarEntry;
>  import java.util.jar.JarFile;
> @@ -46,10 +47,11 @@
>  
>      @Test
>      public void relocatedClasses() throws Exception {
> -        SimpleRelocator relocator = new SimpleRelocator("org.foo", 
> "borg.foo", null, null);
> +        SimpleRelocator relocator = new SimpleRelocator("org.foo", 
> "borg.foo", null,
> +                Collections.singletonList("org.foo.exclude.**"));
>          List<Relocator> relocators = Lists.<Relocator>newArrayList( 
> relocator );
>  
> -        String content = "org.foo.Service\n";
> +        String content = "org.foo.Service\norg.foo.exclude.OtherService\n";
>          byte[] contentBytes = content.getBytes( "UTF-8" );
>          InputStream contentStream = new ByteArrayInputStream( contentBytes );
>          String contentResource = 
> "META-INF/services/org.foo.something.another";
> @@ -73,7 +75,8 @@
>              InputStream entryStream = jarFile.getInputStream( jarEntry );
>              try {
>                  String xformedContent = IOUtils.toString(entryStream, 
> "utf-8");
> -                assertEquals("borg.foo.Service" + System.getProperty( 
> "line.separator" ), xformedContent);
> +                assertEquals("borg.foo.Service" + System.getProperty( 
> "line.separator" )
> +                        + "org.foo.exclude.OtherService" + 
> System.getProperty( "line.separator" ), xformedContent);
>              } finally {
>                  IOUtils.closeQuietly( entryStream );
>                  jarFile.close();
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to