diff --git a/src/main/org/apache/tools/ant/AntTypeDefinition.java b/src/main/org/apache/tools/ant/AntTypeDefinition.java index 387577f92..7da446136 100644 --- a/src/main/org/apache/tools/ant/AntTypeDefinition.java +++ b/src/main/org/apache/tools/ant/AntTypeDefinition.java @@ -373,6 +373,6 @@ public class AntTypeDefinition { } private String extractClassname(Class c) { - return (c == null) ? "" : c.getClass().getName(); + return (c == null) ? "" : c.getName(); } } diff --git a/src/main/org/apache/tools/ant/ArgumentProcessorRegistry.java b/src/main/org/apache/tools/ant/ArgumentProcessorRegistry.java index c2e0bbcca..eb53c4fc5 100644 --- a/src/main/org/apache/tools/ant/ArgumentProcessorRegistry.java +++ b/src/main/org/apache/tools/ant/ArgumentProcessorRegistry.java @@ -126,7 +126,7 @@ public class ArgumentProcessorRegistry { processor = processorClass.getConstructor().newInstance(); } catch (Exception e) { throw new BuildException("The argument processor class" - + processorClass.getClass().getName() + + processorClass.getName() + " could not be instantiated with a default constructor", e); } diff --git a/src/main/org/apache/tools/ant/taskdefs/Delete.java b/src/main/org/apache/tools/ant/taskdefs/Delete.java index 7686d460d..22eefa132 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Delete.java +++ b/src/main/org/apache/tools/ant/taskdefs/Delete.java @@ -18,7 +18,6 @@ package org.apache.tools.ant.taskdefs; -import java.io.IOException; import java.io.File; import java.nio.file.Files; import java.nio.file.Path; diff --git a/src/main/org/apache/tools/ant/taskdefs/Sync.java b/src/main/org/apache/tools/ant/taskdefs/Sync.java index 25fc00e83..e51156306 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Sync.java +++ b/src/main/org/apache/tools/ant/taskdefs/Sync.java @@ -227,10 +227,7 @@ public class Sync extends Task { // set the case sensitivity of the directory scanner based on the // directory we are scanning, if we are able to determine that detail. // Else let the directory scanner default it to whatever it does internally - final Optional caseSensitive = FileUtils.isCaseSensitiveFileSystem(toDir.toPath()); - if (caseSensitive.isPresent()) { - ds.setCaseSensitive(caseSensitive.get()); - } + FileUtils.isCaseSensitiveFileSystem(toDir.toPath()).ifPresent(ds::setCaseSensitive); } ds.addExcludes(excls); diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junitlauncher/LauncherSupport.java b/src/main/org/apache/tools/ant/taskdefs/optional/junitlauncher/LauncherSupport.java index e55856af5..194887a16 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/junitlauncher/LauncherSupport.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/junitlauncher/LauncherSupport.java @@ -183,10 +183,8 @@ public class LauncherSupport { final List requests = new ArrayList<>(); for (final TestDefinition test : tests) { final List testRequests; - if (test instanceof SingleTestClass) { - testRequests = createTestRequests((SingleTestClass) test); - } else if (test instanceof TestClasses) { - testRequests = createTestRequests((TestClasses) test); + if (test instanceof SingleTestClass || test instanceof TestClasses) { + testRequests = createTestRequests(test); } else { throw new BuildException("Unexpected test definition type " + test.getClass().getName()); } diff --git a/src/main/org/apache/tools/ant/util/JavaEnvUtils.java b/src/main/org/apache/tools/ant/util/JavaEnvUtils.java index b8cb9e1ae..5626b1cf9 100644 --- a/src/main/org/apache/tools/ant/util/JavaEnvUtils.java +++ b/src/main/org/apache/tools/ant/util/JavaEnvUtils.java @@ -37,9 +37,6 @@ import org.apache.tools.ant.taskdefs.condition.Os; */ public final class JavaEnvUtils { - private JavaEnvUtils() { - } - /** Are we on a DOS-based system */ private static final boolean IS_DOS = Os.isFamily("dos"); /** Are we on Novell NetWare */ @@ -146,6 +143,8 @@ public final class JavaEnvUtils { /** array of packages in the runtime */ private static Vector jrePackages; + private JavaEnvUtils() { + } static { diff --git a/src/tests/junit/org/apache/tools/ant/PropertyFileCLITest.java b/src/tests/junit/org/apache/tools/ant/PropertyFileCLITest.java index 4f5e78e18..8b86692e6 100644 --- a/src/tests/junit/org/apache/tools/ant/PropertyFileCLITest.java +++ b/src/tests/junit/org/apache/tools/ant/PropertyFileCLITest.java @@ -22,43 +22,38 @@ import java.io.File; import java.io.FileReader; import java.io.FileWriter; import org.apache.tools.ant.util.FileUtils; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.TemporaryFolder; import static org.hamcrest.Matchers.containsString; import static org.junit.Assert.assertThat; public class PropertyFileCLITest { + @Rule + public TemporaryFolder testFolder = new TemporaryFolder(); @Test public void testPropertyResolution() throws Exception { - FileUtils fu = FileUtils.getFileUtils(); - File props = fu.createTempFile("propertyfilecli", ".properties", - null, true, true); - File build = fu.createTempFile("propertyfilecli", ".xml", null, true, - true); - File log = fu.createTempFile("propertyfilecli", ".log", null, true, - true); - FileWriter fw = null; - FileReader fr = null; - try { - fw = new FileWriter(props); + File props = testFolder.newFile("propertyfilecli.properties"); + try (FileWriter fw = new FileWriter(props)) { fw.write("w=world\nmessage=Hello, ${w}\n"); - fw.close(); - fw = new FileWriter(build); + } + + File build = testFolder.newFile("propertyfilecli.xml"); + try (FileWriter fw = new FileWriter(build)) { fw.write("${message}"); - fw.close(); - fw = null; - Main m = new NoExitMain(); - m.startAnt(new String[] { - "-propertyfile", props.getAbsolutePath(), - "-f", build.getAbsolutePath(), - "-l", log.getAbsolutePath() - }, null, null); - String l = FileUtils.safeReadFully(fr = new FileReader(log)); - assertThat(l, containsString("Hello, world")); - } finally { - FileUtils.close(fw); - FileUtils.close(fr); + } + + Main m = new NoExitMain(); + File log = testFolder.newFile("propertyfilecli.log"); + m.startAnt(new String[] { + "-propertyfile", props.getAbsolutePath(), + "-f", build.getAbsolutePath(), + "-l", log.getAbsolutePath() + }, null, null); + try (FileReader fr = new FileReader(log)) { + assertThat(FileUtils.safeReadFully(fr), containsString("Hello, world")); } } diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/PropertyTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/PropertyTest.java index 1762c2222..088c02a8e 100644 --- a/src/tests/junit/org/apache/tools/ant/taskdefs/PropertyTest.java +++ b/src/tests/junit/org/apache/tools/ant/taskdefs/PropertyTest.java @@ -43,9 +43,6 @@ public class PropertyTest { @Rule public ExpectedException thrown = ExpectedException.none(); - /** Utilities used for file operations */ - private static final FileUtils FILE_UTILS = FileUtils.getFileUtils(); - @Before public void setUp() { buildRule.configureProject("src/etc/testcases/taskdefs/property.xml"); @@ -85,7 +82,7 @@ public class PropertyTest { @Test public void test5() { String baseDir = buildRule.getProject().getProperty(MagicNames.PROJECT_BASEDIR); - String uri = FILE_UTILS.toURI(baseDir + "/property3.properties"); + String uri = FileUtils.getFileUtils().toURI(baseDir + "/property3.properties"); buildRule.getProject().setNewProperty("test5.url", uri); buildRule.executeTarget("test5"); diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/SyncTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/SyncTest.java index 372b181f7..7d2f49e2f 100644 --- a/src/tests/junit/org/apache/tools/ant/taskdefs/SyncTest.java +++ b/src/tests/junit/org/apache/tools/ant/taskdefs/SyncTest.java @@ -20,13 +20,10 @@ package org.apache.tools.ant.taskdefs; import org.apache.tools.ant.BuildFileRule; import org.apache.tools.ant.util.FileUtils; -import org.junit.Assume; import org.junit.Before; import org.junit.Rule; import org.junit.Test; -import java.util.Optional; - import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.not; import static org.junit.Assert.assertFalse; diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/TouchTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/TouchTest.java index 8c0acbdcf..0a3732c4b 100644 --- a/src/tests/junit/org/apache/tools/ant/taskdefs/TouchTest.java +++ b/src/tests/junit/org/apache/tools/ant/taskdefs/TouchTest.java @@ -187,8 +187,7 @@ public class TouchTest { * @param time long */ public void assertTimesNearlyMatch(long timestamp, long time) { - long granularity = FILE_UTILS.getFileTimestampGranularity(); - assertTimesNearlyMatch(timestamp, time, granularity); + assertTimesNearlyMatch(timestamp, time, FILE_UTILS.getFileTimestampGranularity()); } /** diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/email/MessageTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/email/MessageTest.java index df75067fd..d956ce364 100644 --- a/src/tests/junit/org/apache/tools/ant/taskdefs/email/MessageTest.java +++ b/src/tests/junit/org/apache/tools/ant/taskdefs/email/MessageTest.java @@ -18,19 +18,19 @@ package org.apache.tools.ant.taskdefs.email; -import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; import org.apache.tools.ant.Project; -import org.apache.tools.ant.util.FileUtils; -import org.junit.After; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.TemporaryFolder; public class MessageTest { - private static final File f = new File(System.getProperty("java.io.tmpdir"), - "message.txt"); + @Rule + public TemporaryFolder testFolder = new TemporaryFolder(); + /** * test for bugzilla 48932 */ @@ -40,23 +40,9 @@ public class MessageTest { Project p = new Project(); ms.setProject(p); ms.addText("hi, this is an email"); - FileOutputStream fis = null; - try { - fis = new FileOutputStream(f); - ms.print(new PrintStream(fis)); - fis.write(120); - } finally { - FileUtils.close(fis); - } - - } - - @After - public void tearDown() { - if (f.exists()) { - FileUtils fu = FileUtils.getFileUtils(); - fu.tryHardToDelete(f); + try (FileOutputStream fos = new FileOutputStream(testFolder.newFile("message.txt"))) { + ms.print(new PrintStream(fos)); + fos.write(120); } } - } diff --git a/src/tests/junit/org/apache/tools/ant/types/PatternSetTest.java b/src/tests/junit/org/apache/tools/ant/types/PatternSetTest.java index 5873f5cda..af5fffa18 100644 --- a/src/tests/junit/org/apache/tools/ant/types/PatternSetTest.java +++ b/src/tests/junit/org/apache/tools/ant/types/PatternSetTest.java @@ -20,18 +20,18 @@ package org.apache.tools.ant.types; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; -import org.apache.tools.ant.util.FileUtils; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; +import org.junit.rules.TemporaryFolder; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; -import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Writer; +import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import static org.junit.Assert.assertArrayEquals; @@ -45,6 +45,9 @@ import static org.junit.Assert.assertEquals; public class PatternSetTest { + @Rule + public TemporaryFolder testFolder = new TemporaryFolder(); + @Rule public ExpectedException thrown = ExpectedException.none(); @@ -222,23 +225,15 @@ public class PatternSetTest { @Test public void testEncodingOfIncludesFile() throws IOException { - File testFile = File.createTempFile("ant-", ".pattern"); - testFile.deleteOnExit(); - OutputStream o = null; - Writer w = null; - try { - o = new FileOutputStream(testFile); - w = new OutputStreamWriter(o, StandardCharsets.UTF_16LE); + File testFile = testFolder.newFile("ant.pattern"); + Charset cs = StandardCharsets.UTF_16LE; + try (Writer w = new OutputStreamWriter(new FileOutputStream(testFile), cs)) { w.write("\u00e4\n"); - } finally { - FileUtils.close(w); - FileUtils.close(o); } - PatternSet p = new PatternSet(); PatternSet.PatternFileNameEntry ne = - (PatternSet.PatternFileNameEntry) p.createIncludesFile(); + (PatternSet.PatternFileNameEntry) p.createIncludesFile(); ne.setName(testFile.getAbsolutePath()); - ne.setEncoding("UTF-16LE"); - assertArrayEquals(new String[] { "\u00e4" }, p.getIncludePatterns(project)); + ne.setEncoding(cs.name()); + assertArrayEquals(new String[] {"\u00e4"}, p.getIncludePatterns(project)); } } diff --git a/src/tests/junit/org/apache/tools/ant/types/ResourceOutputTest.java b/src/tests/junit/org/apache/tools/ant/types/ResourceOutputTest.java index 225e80f36..fdba12e44 100644 --- a/src/tests/junit/org/apache/tools/ant/types/ResourceOutputTest.java +++ b/src/tests/junit/org/apache/tools/ant/types/ResourceOutputTest.java @@ -48,8 +48,6 @@ public class ResourceOutputTest { @Rule public BuildFileRule buildRule = new BuildFileRule(); - private static final FileUtils FILE_UTILS = FileUtils.getFileUtils(); - private Project project; @Before @@ -121,7 +119,7 @@ public class ResourceOutputTest { // TODO assert exception message File f = project.resolveFile("testurloutput"); try { - FILE_UTILS.createNewFile(f); + FileUtils.getFileUtils().createNewFile(f); testoutput(new URLResource(f)); } finally { if (!f.delete()) { diff --git a/src/tests/junit/org/apache/tools/ant/types/selectors/ModifiedSelectorTest.java b/src/tests/junit/org/apache/tools/ant/types/selectors/ModifiedSelectorTest.java index 2837fa0b5..2ce2d55d2 100644 --- a/src/tests/junit/org/apache/tools/ant/types/selectors/ModifiedSelectorTest.java +++ b/src/tests/junit/org/apache/tools/ant/types/selectors/ModifiedSelectorTest.java @@ -20,6 +20,7 @@ package org.apache.tools.ant.types.selectors; import java.io.File; import java.io.FileWriter; +import java.io.IOException; import java.text.RuleBasedCollator; import java.util.Arrays; import java.util.Comparator; @@ -41,12 +42,12 @@ import org.apache.tools.ant.types.selectors.modifiedselector.EqualComparator; import org.apache.tools.ant.types.selectors.modifiedselector.HashvalueAlgorithm; import org.apache.tools.ant.types.selectors.modifiedselector.ModifiedSelector; import org.apache.tools.ant.types.selectors.modifiedselector.PropertiesfileCache; -import org.apache.tools.ant.util.FileUtils; import org.junit.Before; import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; +import org.junit.rules.TemporaryFolder; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.startsWith; @@ -70,8 +71,8 @@ public class ModifiedSelectorTest { @Rule public ExpectedException thrown = ExpectedException.none(); - /** Utilities used for file operations */ - private static final FileUtils FILE_UTILS = FileUtils.getFileUtils(); + @Rule + public TemporaryFolder testFolder = new TemporaryFolder(); // ===================== fixtures ===================== @@ -344,11 +345,10 @@ public class ModifiedSelectorTest { * configure() method of ModifiedSelector. This testcase tests that. */ @Test - public void testCreatePropertiesCacheViaCustomSelector() { - File cachefile = FILE_UTILS.createTempFile("tmp-cache-", ".properties", null, false, false); + public void testCreatePropertiesCacheViaCustomSelector() throws IOException { + File cachefile = testFolder.newFile("tmp-cache.properties"); // Configure the selector - ExtendSelector s = new ExtendSelector(); s.setClassname("org.apache.tools.ant.types.selectors.modifiedselector.ModifiedSelector"); s.addParam(createParam("update", "true")); @@ -359,7 +359,6 @@ public class ModifiedSelectorTest { // evaluate correctness assertTrue("Cache file is not created.", cachefile.exists()); - cachefile.delete(); } @Test diff --git a/src/tests/junit/org/apache/tools/ant/util/FileUtilsTest.java b/src/tests/junit/org/apache/tools/ant/util/FileUtilsTest.java index d9ef5eadd..6bd260d74 100644 --- a/src/tests/junit/org/apache/tools/ant/util/FileUtilsTest.java +++ b/src/tests/junit/org/apache/tools/ant/util/FileUtilsTest.java @@ -21,7 +21,6 @@ package org.apache.tools.ant.util; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; -import java.nio.file.FileSystem; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -705,7 +704,7 @@ public class FileUtilsTest { final boolean existsAsUpperCase = Files.exists(Paths.get(tmpDir.toString(), tmpFile.getFileName().toString().toUpperCase(Locale.US))); // if the temp file that we created is found to not exist in a particular "case", then // the filesystem is case sensitive - final Boolean expectedCaseSensitivity = existsAsLowerCase == false || existsAsUpperCase == false; + final Boolean expectedCaseSensitivity = !existsAsLowerCase || !existsAsUpperCase; // call the method and pass it a directory Optional actualCaseSensitivity = FileUtils.isCaseSensitiveFileSystem(tmpDir);