Browse Source

try-with-resource for AntClassLoader

master
Stefan Bodewig 9 years ago
parent
commit
d1736c7bb7
8 changed files with 20 additions and 67 deletions
  1. +4
    -9
      src/main/org/apache/tools/ant/taskdefs/WhichResource.java
  2. +2
    -7
      src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java
  3. +1
    -7
      src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java
  4. +1
    -8
      src/main/org/apache/tools/ant/taskdefs/optional/ejb/JonasDeploymentTool.java
  5. +5
    -10
      src/main/org/apache/tools/ant/taskdefs/optional/javacc/JavaCC.java
  6. +2
    -9
      src/main/org/apache/tools/ant/taskdefs/optional/jsp/JspC.java
  7. +1
    -7
      src/main/org/apache/tools/ant/taskdefs/optional/jsp/compilers/JasperC.java
  8. +4
    -10
      src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java

+ 4
- 9
src/main/org/apache/tools/ant/taskdefs/WhichResource.java View File

@@ -135,11 +135,10 @@ public class WhichResource extends Task {
getProject().log("using system classpath: " + classpath,
Project.MSG_DEBUG);
}
AntClassLoader loader = null;
try {
loader = AntClassLoader.newAntClassLoader(getProject().getCoreLoader(),
getProject(),
classpath, false);
try (AntClassLoader loader =
AntClassLoader.newAntClassLoader(getProject().getCoreLoader(),
getProject(),
classpath, false)) {
String loc = null;
if (classname != null) {
//convert a class name into a resource
@@ -162,10 +161,6 @@ public class WhichResource extends Task {
loc = url.toExternalForm();
getProject().setNewProperty(property, loc);
}
} finally {
if (loader != null) {
loader.cleanup();
}
}
}



+ 2
- 7
src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java View File

@@ -422,17 +422,12 @@ public class ANTLR extends Task {
* @since Ant 1.6
*/
protected boolean is272() {
AntClassLoader l = null;
try {
l = getProject().createClassLoader(commandline.getClasspath());
try (AntClassLoader l =
getProject().createClassLoader(commandline.getClasspath())) {
l.loadClass("antlr.Version");
return true;
} catch (ClassNotFoundException e) {
return false;
} finally {
if (l != null) {
l.cleanup();
}
}
}
}

+ 1
- 7
src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java View File

@@ -379,9 +379,7 @@ public class Depend extends MatchingTask {
if (checkPath != null) {
// now determine which jars each class depends upon
classpathDependencies = new Hashtable();
AntClassLoader loader = null;
try {
loader = getProject().createClassLoader(checkPath);
try (AntClassLoader loader = getProject().createClassLoader(checkPath)) {

Hashtable classpathFileCache = new Hashtable();
Object nullFileMarker = new Object();
@@ -443,10 +441,6 @@ public class Depend extends MatchingTask {
}
}
}
} finally {
if (loader != null) {
loader.cleanup();
}
}
} else {
log("No classpath to check", Project.MSG_DEBUG);


+ 1
- 8
src/main/org/apache/tools/ant/taskdefs/optional/ejb/JonasDeploymentTool.java View File

@@ -681,10 +681,7 @@ public class JonasDeploymentTool extends GenericDeploymentTool {
log("Looking for GenIC class in classpath: "
+ classpath.toString(), Project.MSG_VERBOSE);

AntClassLoader cl = null;

try {
cl = classpath.getProject().createClassLoader(classpath);
try (AntClassLoader cl = classpath.getProject().createClassLoader(classpath)) {

try {
cl.loadClass(JonasDeploymentTool.GENIC_CLASS);
@@ -723,10 +720,6 @@ public class JonasDeploymentTool extends GenericDeploymentTool {
+ "' not found in classpath.",
Project.MSG_VERBOSE);
}
} finally {
if (cl != null) {
cl.cleanup();
}
}
return null;
}


+ 5
- 10
src/main/org/apache/tools/ant/taskdefs/optional/javacc/JavaCC.java View File

@@ -425,12 +425,11 @@ public class JavaCC extends Task {
String packagePrefix = null;
String mainClass = null;

AntClassLoader l = null;
try {
l = AntClassLoader.newAntClassLoader(null, null,
path
.concatSystemClasspath("ignore"),
true);
try (AntClassLoader l =
AntClassLoader.newAntClassLoader(null, null,
path
.concatSystemClasspath("ignore"),
true)) {
String javaccClass = COM_PACKAGE + COM_JAVACC_CLASS;
InputStream is = l.getResourceAsStream(javaccClass.replace('.', '/')
+ ".class");
@@ -498,10 +497,6 @@ public class JavaCC extends Task {
throw new BuildException("unknown task type " + type);
}
return packagePrefix + mainClass;
} finally {
if (l != null) {
l.cleanup();
}
}
}



+ 2
- 9
src/main/org/apache/tools/ant/taskdefs/optional/jsp/JspC.java View File

@@ -439,13 +439,10 @@ public class JspC extends MatchingTask {

File dest = getActualDestDir();

AntClassLoader al = null;
try {
try (AntClassLoader al = getProject().createClassLoader(compilerClasspath)) {
//bind to a compiler
JspCompilerAdapter compiler =
JspCompilerAdapterFactory
.getCompiler(compilerName, this,
al = getProject().createClassLoader(compilerClasspath));
JspCompilerAdapterFactory.getCompiler(compilerName, this, al);

//if we are a webapp, hand off to the compiler, which had
//better handle it
@@ -514,10 +511,6 @@ public class JspC extends MatchingTask {
log("all files are up to date", Project.MSG_VERBOSE);
}
}
} finally {
if (al != null) {
al.cleanup();
}
}
}



+ 1
- 7
src/main/org/apache/tools/ant/taskdefs/optional/jsp/compilers/JasperC.java View File

@@ -166,17 +166,11 @@ public class JasperC extends DefaultJspCompilerAdapter {
* @since Ant 1.6.2
*/
private boolean isTomcat5x() {
AntClassLoader l = null;
try {
l = getProject().createClassLoader(getClasspath());
try (AntClassLoader l = getProject().createClassLoader(getClasspath())) {
l.loadClass("org.apache.jasper.tagplugins.jstl.If");
return true;
} catch (ClassNotFoundException e) {
return false;
} finally {
if (l != null) {
l.cleanup();
}
}
}
}

+ 4
- 10
src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java View File

@@ -1360,12 +1360,10 @@ public class JUnitTask extends Task {
if (!cmd.haveClasspath()) {
return;
}
AntClassLoader loader = null;
try {
loader =
AntClassLoader.newAntClassLoader(null, getProject(),
cmd.createClasspath(getProject()),
true);
try (AntClassLoader loader =
AntClassLoader.newAntClassLoader(null, getProject(),
cmd.createClasspath(getProject()),
true)) {
final String projectResourceName =
LoaderUtils.classNameToResource(Project.class.getName());
URL previous = null;
@@ -1386,10 +1384,6 @@ public class JUnitTask extends Task {
} catch (final Exception ex) {
// Ignore exception
}
} finally {
if (loader != null) {
loader.cleanup();
}
}
}



Loading…
Cancel
Save