You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by el...@apache.org on 2020/04/12 11:25:14 UTC
[maven-shade-plugin] branch master updated: use try with resources
to close streams and fix warnings (#43)
This is an automated email from the ASF dual-hosted git repository.
elharo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-shade-plugin.git
The following commit(s) were added to refs/heads/master by this push:
new 7a7ba64 use try with resources to close streams and fix warnings (#43)
7a7ba64 is described below
commit 7a7ba64e24d3ad452282bf56e431093d334e6a6f
Author: Elliotte Rusty Harold <el...@users.noreply.github.com>
AuthorDate: Sun Apr 12 07:25:05 2020 -0400
use try with resources to close streams and fix warnings (#43)
---
.../resource/ServicesResourceTransformer.java | 4 +--
.../maven/plugins/shade/DefaultShaderTest.java | 36 ++++++++++---------
.../maven/plugins/shade/mojo/ShadeMojoTest.java | 17 ++++-----
.../resource/ServiceResourceTransformerTest.java | 40 +++++-----------------
.../shade/resource/rule/TransformerTesterRule.java | 1 -
5 files changed, 38 insertions(+), 60 deletions(-)
diff --git a/src/main/java/org/apache/maven/plugins/shade/resource/ServicesResourceTransformer.java b/src/main/java/org/apache/maven/plugins/shade/resource/ServicesResourceTransformer.java
index bbb55fd..7e5d3a6 100644
--- a/src/main/java/org/apache/maven/plugins/shade/resource/ServicesResourceTransformer.java
+++ b/src/main/java/org/apache/maven/plugins/shade/resource/ServicesResourceTransformer.java
@@ -71,8 +71,6 @@ public class ServicesResourceTransformer
serviceEntries.put( resource, out );
}
- final ServiceStream fout = out;
-
final String content = IOUtils.toString( is );
StringReader reader = new StringReader( content );
BufferedReader lineReader = new BufferedReader( reader );
@@ -87,7 +85,7 @@ public class ServicesResourceTransformer
relContent = relocator.applyToSourceContent( relContent );
}
}
- fout.append( relContent + "\n" );
+ out.append( relContent + "\n" );
}
if ( this.relocators == null )
diff --git a/src/test/java/org/apache/maven/plugins/shade/DefaultShaderTest.java b/src/test/java/org/apache/maven/plugins/shade/DefaultShaderTest.java
index e736d6a..efeffe5 100644
--- a/src/test/java/org/apache/maven/plugins/shade/DefaultShaderTest.java
+++ b/src/test/java/org/apache/maven/plugins/shade/DefaultShaderTest.java
@@ -157,10 +157,11 @@ public class DefaultShaderTest
s.shade( shadeRequest );
- URLClassLoader cl = new URLClassLoader( new URL[] { file.toURI().toURL() } );
- Class<?> c = cl.loadClass( "hidden.org.apache.maven.plugins.shade.Lib" );
- Object o = c.newInstance();
- assertEquals( "foo.bar/baz", c.getDeclaredField( "CONSTANT" ).get( o ) );
+ try ( URLClassLoader cl = new URLClassLoader( new URL[] { file.toURI().toURL() } ) ) {
+ Class<?> c = cl.loadClass( "hidden.org.apache.maven.plugins.shade.Lib" );
+ Object o = c.newInstance();
+ assertEquals( "foo.bar/baz", c.getDeclaredField( "CONSTANT" ).get( o ) );
+ }
}
public void testShaderWithCustomShadedPattern()
@@ -211,25 +212,26 @@ public class DefaultShaderTest
s.shade( shadeRequest );
- URLClassLoader cl = new URLClassLoader( new URL[] { file.toURI().toURL() } );
- Class<?> c = cl.loadClass( "_plexus.util.__StringUtils" );
- // first, ensure it works:
- Object o = c.newInstance();
- assertEquals( "", c.getMethod( "clean", String.class ).invoke( o, (String) null ) );
-
- // now, check that its source file was rewritten:
- final String[] source = { null };
- final ClassReader classReader = new ClassReader( cl.getResourceAsStream( "_plexus/util/__StringUtils.class" ) );
- classReader.accept( new ClassVisitor( Opcodes.ASM4 )
- {
+ try ( URLClassLoader cl = new URLClassLoader( new URL[] { file.toURI().toURL() } ) ) {
+ Class<?> c = cl.loadClass( "_plexus.util.__StringUtils" );
+ // first, ensure it works:
+ Object o = c.newInstance();
+ assertEquals( "", c.getMethod( "clean", String.class ).invoke( o, (String) null ) );
+
+ // now, check that its source file was rewritten:
+ final String[] source = { null };
+ final ClassReader classReader = new ClassReader( cl.getResourceAsStream( "_plexus/util/__StringUtils.class" ) );
+ classReader.accept( new ClassVisitor( Opcodes.ASM4 )
+ {
@Override
public void visitSource( String arg0, String arg1 )
{
super.visitSource( arg0, arg1 );
source[0] = arg0;
}
- }, ClassReader.SKIP_CODE );
- assertEquals( "__StringUtils.java", source[0] );
+ }, ClassReader.SKIP_CODE );
+ assertEquals( "__StringUtils.java", source[0] );
+ }
}
private void shaderWithPattern( String shadedPattern, File jar, String[] excludes )
diff --git a/src/test/java/org/apache/maven/plugins/shade/mojo/ShadeMojoTest.java b/src/test/java/org/apache/maven/plugins/shade/mojo/ShadeMojoTest.java
index 208bac5..d5020ac 100644
--- a/src/test/java/org/apache/maven/plugins/shade/mojo/ShadeMojoTest.java
+++ b/src/test/java/org/apache/maven/plugins/shade/mojo/ShadeMojoTest.java
@@ -99,14 +99,15 @@ public class ShadeMojoTest
s.shade( shadeRequest );
- ClassLoader cl = new URLClassLoader( new URL[]{ jarFile.toURI().toURL() } );
- Class<?> c = cl.loadClass( "org.apache.maven.plugins.shade.Lib" );
-
- Field field = c.getDeclaredField( "CLASS_REALM_PACKAGE_IMPORT" );
- assertEquals( "org.codehaus.plexus.util.xml.pull", field.get( null ) );
-
- Method method = c.getDeclaredMethod( "getClassRealmPackageImport" );
- assertEquals( "org.codehaus.plexus.util.xml.pull", method.invoke( null ) );
+ try ( URLClassLoader cl = new URLClassLoader( new URL[]{ jarFile.toURI().toURL() } ) ) {
+ Class<?> c = cl.loadClass( "org.apache.maven.plugins.shade.Lib" );
+
+ Field field = c.getDeclaredField( "CLASS_REALM_PACKAGE_IMPORT" );
+ assertEquals( "org.codehaus.plexus.util.xml.pull", field.get( null ) );
+
+ Method method = c.getDeclaredMethod( "getClassRealmPackageImport" );
+ assertEquals( "org.codehaus.plexus.util.xml.pull", method.invoke( null ) );
+ }
}
/**
diff --git a/src/test/java/org/apache/maven/plugins/shade/resource/ServiceResourceTransformerTest.java b/src/test/java/org/apache/maven/plugins/shade/resource/ServiceResourceTransformerTest.java
index 3bef2f9..b87252c 100644
--- a/src/test/java/org/apache/maven/plugins/shade/resource/ServiceResourceTransformerTest.java
+++ b/src/test/java/org/apache/maven/plugins/shade/resource/ServiceResourceTransformerTest.java
@@ -66,28 +66,21 @@ public class ServiceResourceTransformerTest {
File tempJar = File.createTempFile("shade.", ".jar");
tempJar.deleteOnExit();
FileOutputStream fos = new FileOutputStream( tempJar );
- JarOutputStream jos = new JarOutputStream( fos );
- try {
+ try ( JarOutputStream jos = new JarOutputStream( fos ) ) {
xformer.modifyOutputStream( jos );
jos.close();
- jos = null;
+
JarFile jarFile = new JarFile( tempJar );
JarEntry jarEntry = jarFile.getJarEntry( contentResourceShaded );
assertNotNull( jarEntry );
- InputStream entryStream = jarFile.getInputStream( jarEntry );
- try {
+ try ( InputStream entryStream = jarFile.getInputStream( jarEntry ) ) {
String xformedContent = IOUtils.toString( entryStream, "utf-8" );
assertEquals( "borg.foo.Service" + System.getProperty( "line.separator" )
+ "org.foo.exclude.OtherService" + System.getProperty( "line.separator" ), xformedContent );
} finally {
- IOUtils.closeQuietly( entryStream );
jarFile.close();
}
} finally {
- if (jos != null)
- {
- IOUtils.closeQuietly( jos );
- }
tempJar.delete();
}
}
@@ -110,28 +103,20 @@ public class ServiceResourceTransformerTest {
File tempJar = File.createTempFile("shade.", ".jar");
tempJar.deleteOnExit();
FileOutputStream fos = new FileOutputStream( tempJar );
- JarOutputStream jos = new JarOutputStream( fos );
- try {
+ try ( JarOutputStream jos = new JarOutputStream( fos ) ) {
xformer.modifyOutputStream( jos );
jos.close();
- jos = null;
+
JarFile jarFile = new JarFile( tempJar );
JarEntry jarEntry = jarFile.getJarEntry( contentResource );
assertNotNull( jarEntry );
- InputStream entryStream = jarFile.getInputStream( jarEntry );
- try {
+ try ( InputStream entryStream = jarFile.getInputStream( jarEntry ) ) {
String xformedContent = IOUtils.toString(entryStream, "utf-8");
assertEquals( "org.eclipse1234.osgi.launch.EquinoxFactory" + System.getProperty( "line.separator" ), xformedContent );
-
} finally {
- IOUtils.closeQuietly( entryStream );
jarFile.close();
}
} finally {
- if (jos != null)
- {
- IOUtils.closeQuietly( jos );
- }
tempJar.delete();
}
}
@@ -161,16 +146,14 @@ public class ServiceResourceTransformerTest {
File tempJar = File.createTempFile("shade.", ".jar");
tempJar.deleteOnExit();
FileOutputStream fos = new FileOutputStream( tempJar );
- JarOutputStream jos = new JarOutputStream( fos );
- try {
+ try ( JarOutputStream jos = new JarOutputStream( fos ) ) {
xformer.modifyOutputStream( jos );
jos.close();
- jos = null;
+
JarFile jarFile = new JarFile( tempJar );
JarEntry jarEntry = jarFile.getJarEntry( contentResource );
assertNotNull( jarEntry );
- InputStream entryStream = jarFile.getInputStream( jarEntry );
- try {
+ try ( InputStream entryStream = jarFile.getInputStream( jarEntry ) ) {
String xformedContent = IOUtils.toString(entryStream, "utf-8");
// must be two lines, with our two classes.
String[] classes = xformedContent.split("\r?\n");
@@ -189,14 +172,9 @@ public class ServiceResourceTransformerTest {
}
assertTrue( h1 && h2 );
} finally {
- IOUtils.closeQuietly( entryStream );
jarFile.close();
}
} finally {
- if (jos != null)
- {
- IOUtils.closeQuietly( jos );
- }
tempJar.delete();
}
}
diff --git a/src/test/java/org/apache/maven/plugins/shade/resource/rule/TransformerTesterRule.java b/src/test/java/org/apache/maven/plugins/shade/resource/rule/TransformerTesterRule.java
index f4f7652..1eaf2b1 100644
--- a/src/test/java/org/apache/maven/plugins/shade/resource/rule/TransformerTesterRule.java
+++ b/src/test/java/org/apache/maven/plugins/shade/resource/rule/TransformerTesterRule.java
@@ -21,7 +21,6 @@ package org.apache.maven.plugins.shade.resource.rule;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
-import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;