File tree Expand file tree Collapse file tree 2 files changed +16
-18
lines changed
main/java/org/apache/maven/plugins/shade/resource
test/java/org/apache/maven/plugins/shade/resource Expand file tree Collapse file tree 2 files changed +16
-18
lines changed Original file line number Diff line number Diff line change @@ -39,7 +39,10 @@ public class GroovyResourceTransformer
3939 implements ResourceTransformer
4040{
4141
42- static final String EXT_MODULE_NAME = "META-INF/services/org.codehaus.groovy.runtime.ExtensionModule" ;
42+ static final String EXT_MODULE_NAME_LEGACY = "META-INF/services/org.codehaus.groovy.runtime.ExtensionModule" ;
43+
44+ // Since Groovy 2.5.x/Java 9 META-INF/services may only be used by Service Providers
45+ static final String EXT_MODULE_NAME = "META-INF/groovy/org.codehaus.groovy.runtime.ExtensionModule" ;
4346
4447 private List <String > extensionClassesList = new ArrayList <>();
4548
@@ -52,21 +55,17 @@ public class GroovyResourceTransformer
5255 @ Override
5356 public boolean canTransformResource ( String resource )
5457 {
55- return EXT_MODULE_NAME .equals ( resource );
58+ return EXT_MODULE_NAME .equals ( resource ) || EXT_MODULE_NAME_LEGACY . equals ( resource ) ;
5659 }
5760
5861 @ Override
5962 public void processResource ( String resource , InputStream is , List <Relocator > relocators )
6063 throws IOException
6164 {
6265 Properties out = new Properties ();
63- try
64- {
65- out .load ( is );
66- }
67- finally
66+ try ( InputStream props = is )
6867 {
69- is . close ( );
68+ out . load ( props );
7069 }
7170 String extensionClasses = out .getProperty ( "extensionClasses" , "" ).trim ();
7271 if ( extensionClasses .length () > 0 )
Original file line number Diff line number Diff line change @@ -73,13 +73,15 @@ private static Properties transform( GroovyResourceTransformer transformer )
7373 {
7474 File tempJar = File .createTempFile ( "shade." , ".jar" );
7575 tempJar .deleteOnExit ();
76- FileOutputStream fos = new FileOutputStream ( tempJar );
77- JarOutputStream jaos = new JarOutputStream ( fos );
78- transformer .modifyOutputStream ( jaos );
79- jaos .close ();
76+
77+ try ( FileOutputStream fos = new FileOutputStream ( tempJar );
78+ JarOutputStream jaos = new JarOutputStream ( fos ) )
79+ {
80+ transformer .modifyOutputStream ( jaos );
81+ }
82+
8083 Properties desc = null ;
81- JarFile jar = new JarFile ( tempJar );
82- try
84+ try ( JarFile jar = new JarFile ( tempJar ) )
8385 {
8486 ZipEntry entry = jar .getEntry ( GroovyResourceTransformer .EXT_MODULE_NAME );
8587 if ( entry != null )
@@ -88,10 +90,6 @@ private static Properties transform( GroovyResourceTransformer transformer )
8890 desc .load ( jar .getInputStream ( entry ) );
8991 }
9092 }
91- finally
92- {
93- jar .close ();
94- }
9593 return desc ;
9694 }
9795
@@ -100,6 +98,7 @@ public void testFilter()
10098 {
10199 GroovyResourceTransformer transformer = new GroovyResourceTransformer ();
102100 assertTrue ( transformer .canTransformResource ( GroovyResourceTransformer .EXT_MODULE_NAME ) );
101+ assertTrue ( transformer .canTransformResource ( GroovyResourceTransformer .EXT_MODULE_NAME_LEGACY ) );
103102 assertFalse ( transformer .canTransformResource ( "somethingElse" ) );
104103 assertFalse ( transformer .canTransformResource ( JarFile .MANIFEST_NAME ) );
105104 }
You can’t perform that action at this time.
0 commit comments