You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by gi...@apache.org on 2017/11/29 16:18:23 UTC

[19/21] ant git commit: Normalise tabulation and line breaks

http://git-wip-us.apache.org/repos/asf/ant/blob/4422804d/src/tests/junit/org/apache/tools/ant/taskdefs/optional/EchoPropertiesTest.java
----------------------------------------------------------------------
diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/EchoPropertiesTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/EchoPropertiesTest.java
index 2f351d4..0b301f9 100644
--- a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/EchoPropertiesTest.java
+++ b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/EchoPropertiesTest.java
@@ -1,266 +1,265 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- */
-
-package org.apache.tools.ant.taskdefs.optional;
-
-import static org.apache.tools.ant.AntAssert.assertContains;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-import static org.junit.Assume.assumeTrue;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Properties;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.BuildFileRule;
-import org.apache.tools.ant.util.regexp.RegexpMatcherFactory;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-
-/**
- * Tests the EchoProperties task.
- *
- * @created   17-Jan-2002
- * @since     Ant 1.5
- */
-public class EchoPropertiesTest {
-
-    private final static String TASKDEFS_DIR = "src/etc/testcases/taskdefs/optional/";
-    private static final String GOOD_OUTFILE = "test.properties";
-    private static final String GOOD_OUTFILE_XML = "test.xml";
-    private static final String PREFIX_OUTFILE = "test-prefix.properties";
-    private static final String TEST_VALUE = "isSet";
-
-    @Rule
-    public BuildFileRule buildRule = new BuildFileRule();
-
-
-    @Before
-    public void setUp() {
-        buildRule.configureProject(TASKDEFS_DIR + "echoproperties.xml");
-        buildRule.getProject().setProperty("test.property", TEST_VALUE);
-    }
-
-
-    @After
-    public void tearDown() {
-        buildRule.executeTarget("cleanup");
-    }
-
-
-    @Test
-    public void testEchoToLog() {
-    	buildRule.executeTarget("testEchoToLog");
-    	assertContains("test.property=" + TEST_VALUE, buildRule.getLog());
-    }
-
-    @Test
-    public void testEchoWithEmptyPrefixToLog() {
-    	buildRule.executeTarget("testEchoWithEmptyPrefixToLog");
-    	assertContains("test.property="+TEST_VALUE, buildRule.getLog());
-    }
-
-
-    @Test
-    public void testReadBadFile() {
-    	try {
-    		buildRule.executeTarget("testReadBadFile");
-    		fail("BuildException should have been thrown on bad file");
-    	}
-    	catch(BuildException ex) {
-    		assertContains("srcfile is a directory","srcfile is a directory!", ex.getMessage());
-    	}
-    }
-
-    @Test
-    public void testReadBadFileNoFail() {
-        buildRule.executeTarget("testReadBadFileNoFail");
-        assertContains("srcfile is a directory!", buildRule.getLog());
-    }
-
-
-    @Test
-    public void testEchoToBadFile() {
-    	try {
-    		buildRule.executeTarget("testEchoToBadFile");
-            fail("BuildException should have been thrown on destination file being a directory");
-    	} catch(BuildException ex) {
-    		assertContains("destfile is a directory", "destfile is a directory!", ex.getMessage());
-    	}
-    }
-
-
-    @Test
-    public void testEchoToBadFileNoFail() {
-    	buildRule.executeTarget("testEchoToBadFileNoFail");
-    	assertContains("destfile is a directory!", buildRule.getLog());
-    }
-
-
-    @Test
-    public void testEchoToGoodFile() throws Exception {
-        buildRule.executeTarget("testEchoToGoodFile");
-        assertGoodFile();
-    }
-
-
-    @Test
-    public void testEchoToGoodFileXml() throws Exception {
-        buildRule.executeTarget("testEchoToGoodFileXml");
-
-        // read in the file
-        File f = createRelativeFile(GOOD_OUTFILE_XML);
-        FileReader fr = new FileReader(f);
-        BufferedReader br = new BufferedReader(fr);
-        try {
-            String read = null;
-            while ((read = br.readLine()) != null) {
-                if (read.indexOf("<property name=\"test.property\" value=\""+TEST_VALUE+"\" />") >= 0) {
-                    // found the property we set - it's good.
-                    return;
-                }
-            }
-            fail("did not encounter set property in generated file.");
-        } finally {
-            try {
-                fr.close();
-            } catch(IOException e) {}
-            try {
-                br.close();
-            } catch(IOException e) {}
-        }
-    }
-
-
-    @Test
-    public void testEchoToGoodFileFail() throws Exception {
-        buildRule.executeTarget("testEchoToGoodFileFail");
-        assertGoodFile();
-    }
-
-
-    @Test
-    public void testEchoToGoodFileNoFail() throws Exception {
-        buildRule.executeTarget("testEchoToGoodFileNoFail");
-        assertGoodFile();
-    }
-
-    @Test
-    public void testEchoPrefix() throws Exception {
-        testEchoPrefixVarious("testEchoPrefix");
-    }
-
-    @Test
-    public void testEchoPrefixAsPropertyset() throws Exception {
-        testEchoPrefixVarious("testEchoPrefixAsPropertyset");
-    }
-
-    @Test
-    public void testEchoPrefixAsNegatedPropertyset() throws Exception {
-        testEchoPrefixVarious("testEchoPrefixAsNegatedPropertyset");
-    }
-
-    @Test
-    public void testEchoPrefixAsDoublyNegatedPropertyset() throws Exception {
-        testEchoPrefixVarious("testEchoPrefixAsDoublyNegatedPropertyset");
-    }
-
-    @Test
-    public void testWithPrefixAndRegex() throws Exception {
-    	try {
-    		buildRule.executeTarget("testWithPrefixAndRegex");
-    		fail("BuildException should have been thrown on Prefix and RegEx beng set");
-    	} catch (BuildException ex) {
-    		assertEquals("The target must fail with prefix and regex attributes set", "Please specify either prefix or regex, but not both", ex.getMessage());
-    	}
-    }
-
-    @Test
-    public void testWithEmptyPrefixAndRegex() throws Exception {
-    	buildRule.executeTarget("testEchoWithEmptyPrefixToLog");
-    	assertContains("test.property="+TEST_VALUE, buildRule.getLog());
-    }
-
-    @Test
-    public void testWithRegex() throws Exception {
-        assumeTrue("Test skipped because no regexp matcher is present.", RegexpMatcherFactory.regexpMatcherPresent(buildRule.getProject()));
-        buildRule.executeTarget("testWithRegex");
-        // the following line has been changed from checking ant.home to ant.version so the test will still work when run outside of an ant script
-        assertContains("ant.version=", buildRule.getFullLog());
-    }
-
-    private void testEchoPrefixVarious(String target) throws Exception {
-        buildRule.executeTarget(target);
-        Properties props = loadPropFile(PREFIX_OUTFILE);
-        assertEquals("prefix didn't include 'a.set' property",
-            "true", props.getProperty("a.set"));
-        assertNull("prefix failed to filter out property 'b.set'",
-            props.getProperty("b.set"));
-    }
-
-    protected Properties loadPropFile(String relativeFilename)
-            throws IOException {
-        File f = createRelativeFile(relativeFilename);
-        Properties props=new Properties();
-        InputStream in=null;
-        try  {
-            in=new BufferedInputStream(new FileInputStream(f));
-            props.load(in);
-        } finally {
-            if(in!=null) {
-                try { in.close(); } catch(IOException e) {}
-            }
-        }
-        return props;
-    }
-
-    protected void assertGoodFile() throws Exception {
-        File f = createRelativeFile(GOOD_OUTFILE);
-        assertTrue("Did not create "+f.getAbsolutePath(),
-            f.exists());
-        Properties props=loadPropFile(GOOD_OUTFILE);
-        props.list(System.out);
-        assertEquals("test property not found ",
-                     TEST_VALUE, props.getProperty("test.property"));
-    }
-
-
-    protected String toAbsolute(String filename) {
-        return createRelativeFile(filename).getAbsolutePath();
-    }
-
-
-    protected File createRelativeFile(String filename) {
-        if (filename.equals(".")) {
-            return buildRule.getProject().getBaseDir();
-        }
-        // else
-        return new File(buildRule.getProject().getBaseDir(), filename);
-    }
-}
-
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.tools.ant.taskdefs.optional;
+
+import static org.apache.tools.ant.AntAssert.assertContains;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.junit.Assume.assumeTrue;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.BuildFileRule;
+import org.apache.tools.ant.util.regexp.RegexpMatcherFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+
+/**
+ * Tests the EchoProperties task.
+ *
+ * @created   17-Jan-2002
+ * @since     Ant 1.5
+ */
+public class EchoPropertiesTest {
+
+    private final static String TASKDEFS_DIR = "src/etc/testcases/taskdefs/optional/";
+    private static final String GOOD_OUTFILE = "test.properties";
+    private static final String GOOD_OUTFILE_XML = "test.xml";
+    private static final String PREFIX_OUTFILE = "test-prefix.properties";
+    private static final String TEST_VALUE = "isSet";
+
+    @Rule
+    public BuildFileRule buildRule = new BuildFileRule();
+
+
+    @Before
+    public void setUp() {
+        buildRule.configureProject(TASKDEFS_DIR + "echoproperties.xml");
+        buildRule.getProject().setProperty("test.property", TEST_VALUE);
+    }
+
+
+    @After
+    public void tearDown() {
+        buildRule.executeTarget("cleanup");
+    }
+
+
+    @Test
+    public void testEchoToLog() {
+        buildRule.executeTarget("testEchoToLog");
+        assertContains("test.property=" + TEST_VALUE, buildRule.getLog());
+    }
+
+    @Test
+    public void testEchoWithEmptyPrefixToLog() {
+        buildRule.executeTarget("testEchoWithEmptyPrefixToLog");
+        assertContains("test.property="+TEST_VALUE, buildRule.getLog());
+    }
+
+
+    @Test
+    public void testReadBadFile() {
+        try {
+            buildRule.executeTarget("testReadBadFile");
+            fail("BuildException should have been thrown on bad file");
+        }
+        catch(BuildException ex) {
+            assertContains("srcfile is a directory","srcfile is a directory!", ex.getMessage());
+        }
+    }
+
+    @Test
+    public void testReadBadFileNoFail() {
+        buildRule.executeTarget("testReadBadFileNoFail");
+        assertContains("srcfile is a directory!", buildRule.getLog());
+    }
+
+
+    @Test
+    public void testEchoToBadFile() {
+        try {
+            buildRule.executeTarget("testEchoToBadFile");
+            fail("BuildException should have been thrown on destination file being a directory");
+        } catch(BuildException ex) {
+            assertContains("destfile is a directory", "destfile is a directory!", ex.getMessage());
+        }
+    }
+
+
+    @Test
+    public void testEchoToBadFileNoFail() {
+        buildRule.executeTarget("testEchoToBadFileNoFail");
+        assertContains("destfile is a directory!", buildRule.getLog());
+    }
+
+
+    @Test
+    public void testEchoToGoodFile() throws Exception {
+        buildRule.executeTarget("testEchoToGoodFile");
+        assertGoodFile();
+    }
+
+
+    @Test
+    public void testEchoToGoodFileXml() throws Exception {
+        buildRule.executeTarget("testEchoToGoodFileXml");
+
+        // read in the file
+        File f = createRelativeFile(GOOD_OUTFILE_XML);
+        FileReader fr = new FileReader(f);
+        BufferedReader br = new BufferedReader(fr);
+        try {
+            String read = null;
+            while ((read = br.readLine()) != null) {
+                if (read.indexOf("<property name=\"test.property\" value=\""+TEST_VALUE+"\" />") >= 0) {
+                    // found the property we set - it's good.
+                    return;
+                }
+            }
+            fail("did not encounter set property in generated file.");
+        } finally {
+            try {
+                fr.close();
+            } catch(IOException e) {}
+            try {
+                br.close();
+            } catch(IOException e) {}
+        }
+    }
+
+
+    @Test
+    public void testEchoToGoodFileFail() throws Exception {
+        buildRule.executeTarget("testEchoToGoodFileFail");
+        assertGoodFile();
+    }
+
+
+    @Test
+    public void testEchoToGoodFileNoFail() throws Exception {
+        buildRule.executeTarget("testEchoToGoodFileNoFail");
+        assertGoodFile();
+    }
+
+    @Test
+    public void testEchoPrefix() throws Exception {
+        testEchoPrefixVarious("testEchoPrefix");
+    }
+
+    @Test
+    public void testEchoPrefixAsPropertyset() throws Exception {
+        testEchoPrefixVarious("testEchoPrefixAsPropertyset");
+    }
+
+    @Test
+    public void testEchoPrefixAsNegatedPropertyset() throws Exception {
+        testEchoPrefixVarious("testEchoPrefixAsNegatedPropertyset");
+    }
+
+    @Test
+    public void testEchoPrefixAsDoublyNegatedPropertyset() throws Exception {
+        testEchoPrefixVarious("testEchoPrefixAsDoublyNegatedPropertyset");
+    }
+
+    @Test
+    public void testWithPrefixAndRegex() throws Exception {
+        try {
+            buildRule.executeTarget("testWithPrefixAndRegex");
+            fail("BuildException should have been thrown on Prefix and RegEx beng set");
+        } catch (BuildException ex) {
+            assertEquals("The target must fail with prefix and regex attributes set", "Please specify either prefix or regex, but not both", ex.getMessage());
+        }
+    }
+
+    @Test
+    public void testWithEmptyPrefixAndRegex() throws Exception {
+        buildRule.executeTarget("testEchoWithEmptyPrefixToLog");
+        assertContains("test.property="+TEST_VALUE, buildRule.getLog());
+    }
+
+    @Test
+    public void testWithRegex() throws Exception {
+        assumeTrue("Test skipped because no regexp matcher is present.", RegexpMatcherFactory.regexpMatcherPresent(buildRule.getProject()));
+        buildRule.executeTarget("testWithRegex");
+        // the following line has been changed from checking ant.home to ant.version so the test will still work when run outside of an ant script
+        assertContains("ant.version=", buildRule.getFullLog());
+    }
+
+    private void testEchoPrefixVarious(String target) throws Exception {
+        buildRule.executeTarget(target);
+        Properties props = loadPropFile(PREFIX_OUTFILE);
+        assertEquals("prefix didn't include 'a.set' property",
+            "true", props.getProperty("a.set"));
+        assertNull("prefix failed to filter out property 'b.set'",
+            props.getProperty("b.set"));
+    }
+
+    protected Properties loadPropFile(String relativeFilename)
+            throws IOException {
+        File f = createRelativeFile(relativeFilename);
+        Properties props=new Properties();
+        InputStream in=null;
+        try  {
+            in=new BufferedInputStream(new FileInputStream(f));
+            props.load(in);
+        } finally {
+            if(in!=null) {
+                try { in.close(); } catch(IOException e) {}
+            }
+        }
+        return props;
+    }
+
+    protected void assertGoodFile() throws Exception {
+        File f = createRelativeFile(GOOD_OUTFILE);
+        assertTrue("Did not create "+f.getAbsolutePath(),
+            f.exists());
+        Properties props=loadPropFile(GOOD_OUTFILE);
+        props.list(System.out);
+        assertEquals("test property not found ",
+                     TEST_VALUE, props.getProperty("test.property"));
+    }
+
+
+    protected String toAbsolute(String filename) {
+        return createRelativeFile(filename).getAbsolutePath();
+    }
+
+
+    protected File createRelativeFile(String filename) {
+        if (filename.equals(".")) {
+            return buildRule.getProject().getBaseDir();
+        }
+        // else
+        return new File(buildRule.getProject().getBaseDir(), filename);
+    }
+}

http://git-wip-us.apache.org/repos/asf/ant/blob/4422804d/src/tests/junit/org/apache/tools/ant/taskdefs/optional/JavahTest.java
----------------------------------------------------------------------
diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/JavahTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/JavahTest.java
index 6e318ad..40472de 100644
--- a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/JavahTest.java
+++ b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/JavahTest.java
@@ -1,60 +1,60 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- */
-package org.apache.tools.ant.taskdefs.optional;
-
-import org.apache.tools.ant.BuildFileRule;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-
-import java.io.File;
-
-import static org.junit.Assert.assertTrue;
-
-public class JavahTest {
-
-    private final static String BUILD_XML = 
-        "src/etc/testcases/taskdefs/optional/javah/build.xml";
-
-    @Rule
-    public BuildFileRule buildRule = new BuildFileRule();
-
-    @Before
-    public void setUp() {
-        buildRule.configureProject(BUILD_XML);
-    }
-
-    @After
-    public void tearDown() {
-        buildRule.executeTarget("tearDown");
-    }
-
-    @Test
-    public void testSimpleCompile() {
-        buildRule.executeTarget("simple-compile");
-        assertTrue(new File(buildRule.getProject().getProperty("output"), "org_example_Foo.h")
-                .exists());
-    }
-
-    @Test
-    public void testCompileFileset() {
-        buildRule.executeTarget("test-fileset");
-        assertTrue(new File(buildRule.getProject().getProperty("output"), "org_example_Foo.h").exists());
-    }
-}
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package org.apache.tools.ant.taskdefs.optional;
+
+import org.apache.tools.ant.BuildFileRule;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+
+import java.io.File;
+
+import static org.junit.Assert.assertTrue;
+
+public class JavahTest {
+
+    private final static String BUILD_XML =
+        "src/etc/testcases/taskdefs/optional/javah/build.xml";
+
+    @Rule
+    public BuildFileRule buildRule = new BuildFileRule();
+
+    @Before
+    public void setUp() {
+        buildRule.configureProject(BUILD_XML);
+    }
+
+    @After
+    public void tearDown() {
+        buildRule.executeTarget("tearDown");
+    }
+
+    @Test
+    public void testSimpleCompile() {
+        buildRule.executeTarget("simple-compile");
+        assertTrue(new File(buildRule.getProject().getProperty("output"), "org_example_Foo.h")
+                .exists());
+    }
+
+    @Test
+    public void testCompileFileset() {
+        buildRule.executeTarget("test-fileset");
+        assertTrue(new File(buildRule.getProject().getProperty("output"), "org_example_Foo.h").exists());
+    }
+}

http://git-wip-us.apache.org/repos/asf/ant/blob/4422804d/src/tests/junit/org/apache/tools/ant/taskdefs/optional/JspcTest.java
----------------------------------------------------------------------
diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/JspcTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/JspcTest.java
index 62ba085..cde44d0 100644
--- a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/JspcTest.java
+++ b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/JspcTest.java
@@ -1,200 +1,199 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- */
-package org.apache.tools.ant.taskdefs.optional;
-
-import java.io.File;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.BuildFileRule;
-import org.apache.tools.ant.taskdefs.optional.jsp.Jasper41Mangler;
-import org.apache.tools.ant.taskdefs.optional.jsp.JspMangler;
-import org.apache.tools.ant.taskdefs.optional.jsp.JspNameMangler;
-import org.apache.tools.ant.taskdefs.optional.jsp.compilers.JspCompilerAdapter;
-import org.apache.tools.ant.taskdefs.optional.jsp.compilers.JspCompilerAdapterFactory;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Rule;
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-/**
- * Tests the Jspc task.
- *
- * created 07 March 2002
- * @since Ant 1.5
- */
-public class JspcTest {
-
-    private final static String TASKDEFS_DIR = "src/etc/testcases/taskdefs/optional/";
-
-
-    @Rule
-    public BuildFileRule buildRule = new BuildFileRule();
-    
-    @Before
-    public void setUp() {
-        buildRule.configureProject(TASKDEFS_DIR + "jspc.xml");
-     }
-
-
-
-    @Test
-    public void testSimple() {
-        executeJspCompile("testSimple", "simple_jsp.java");
-    }
-
-
-    @Test
-    public void testUriroot() throws Exception {
-        executeJspCompile("testUriroot", "uriroot_jsp.java");
-    }
-
-
-    @Test
-    public void testXml() throws Exception {
-        executeJspCompile("testXml", "xml_jsp.java");
-    }
-
-
-    /**
-     * try a keyword in a file
-     */
-    @Test
-    public void testKeyword() throws Exception {
-        executeJspCompile("testKeyword", "default_jsp.java");
-    }
-
-
-    /**
-     * what happens to 1nvalid-classname
-     */
-    @Test
-    public void testInvalidClassname() throws Exception {
-        executeJspCompile("testInvalidClassname",
-                "_1nvalid_0002dclassname_jsp.java");
-    }
-
-
-    @Test
-    public void testNoTld() throws Exception {
-        try {
-            buildRule.executeTarget("testNoTld");
-            fail("Not found");
-        } catch (BuildException ex) {
-            assertEquals("Java returned: 9", ex.getMessage());
-        }
-    }
-
-
-    @Test
-    public void testNotAJspFile()  throws Exception {
-        buildRule.executeTarget("testNotAJspFile");
-    }
-
-    /**
-     * webapp test is currently broken, because it picks up
-     * on the missing_tld file, and bails.
-     */
-    @Ignore("picks up on the missing_tld file, and incorrectly bails")
-    @Test
-    public void testWebapp()  throws Exception {
-        buildRule.executeTarget("testWebapp");
-    }
-
-    /**
-     * run a target then verify the named file gets created
-     *
-     * @param target Description of Parameter
-     * @param javafile Description of Parameter
-     */
-    protected void executeJspCompile(String target, String javafile) {
-        buildRule.executeTarget(target);
-        assertJavaFileCreated(javafile);
-    }
-
-
-    /**
-     * verify that a named file was created
-     *
-     * @param filename Description of Parameter
-     */
-    protected void assertJavaFileCreated(String filename) {
-        File file = getOutputFile(filename);
-        assertTrue("file " + filename + " not found", file.exists());
-        assertTrue("file " + filename + " is empty", file.length() > 0);
-    }
-
-    /**
-     * Gets the OutputFile attribute of the JspcTest object
-     *
-     * @param subpath Description of Parameter
-     * @return The OutputFile value
-     */
-    protected File getOutputFile(String subpath) {
-        return new File(buildRule.getProject().getProperty("output"), subpath);
-    }
-
-    /**
-     * verify that we select the appropriate mangler
-     */
-    @Test
-    public void testJasperNameManglerSelection() {
-        JspCompilerAdapter adapter=
-                JspCompilerAdapterFactory.getCompiler("jasper", null,null);
-        JspMangler mangler=adapter.createMangler();
-        assertTrue(mangler instanceof JspNameMangler);
-        adapter= JspCompilerAdapterFactory.getCompiler("jasper41", null, null);
-        mangler = adapter.createMangler();
-        assertTrue(mangler instanceof Jasper41Mangler);
-    }
-
-    @Test
-    public void testJasper41() {
-        JspMangler mangler = new Jasper41Mangler();
-        //java keywords are not special
-        assertMapped(mangler, "for.jsp", "for_jsp");
-        //underscores go in front of invalid start chars
-        assertMapped(mangler, "0.jsp", "_0_jsp");
-        //underscores at the front get an underscore too
-        assertMapped(mangler, "_.jsp", "___jsp");
-        //non java char at start => underscore then the the _hex value
-        assertMapped(mangler, "-.jsp", "__0002d_jsp");
-        //and paths are stripped
-        char s = File.separatorChar;
-        assertMapped(mangler, "" + s + s + "somewhere" + s + "file" + s + "index.jsp", "index_jsp");
-    }
-
-    /**
-     * assert our mapping rules
-     * @param mangler
-     * @param filename
-     * @param classname
-     */
-    protected void assertMapped(JspMangler mangler, String filename, String classname) {
-        String mappedname = mangler.mapJspToJavaName(new File(filename));
-        assertTrue(filename+" should have mapped to "+classname
-                    +" but instead mapped to "+mappedname,
-                    classname.equals(mappedname));
-    }
-
-
-}
-
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package org.apache.tools.ant.taskdefs.optional;
+
+import java.io.File;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.BuildFileRule;
+import org.apache.tools.ant.taskdefs.optional.jsp.Jasper41Mangler;
+import org.apache.tools.ant.taskdefs.optional.jsp.JspMangler;
+import org.apache.tools.ant.taskdefs.optional.jsp.JspNameMangler;
+import org.apache.tools.ant.taskdefs.optional.jsp.compilers.JspCompilerAdapter;
+import org.apache.tools.ant.taskdefs.optional.jsp.compilers.JspCompilerAdapterFactory;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Rule;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+/**
+ * Tests the Jspc task.
+ *
+ * created 07 March 2002
+ * @since Ant 1.5
+ */
+public class JspcTest {
+
+    private final static String TASKDEFS_DIR = "src/etc/testcases/taskdefs/optional/";
+
+
+    @Rule
+    public BuildFileRule buildRule = new BuildFileRule();
+
+    @Before
+    public void setUp() {
+        buildRule.configureProject(TASKDEFS_DIR + "jspc.xml");
+     }
+
+
+
+    @Test
+    public void testSimple() {
+        executeJspCompile("testSimple", "simple_jsp.java");
+    }
+
+
+    @Test
+    public void testUriroot() throws Exception {
+        executeJspCompile("testUriroot", "uriroot_jsp.java");
+    }
+
+
+    @Test
+    public void testXml() throws Exception {
+        executeJspCompile("testXml", "xml_jsp.java");
+    }
+
+
+    /**
+     * try a keyword in a file
+     */
+    @Test
+    public void testKeyword() throws Exception {
+        executeJspCompile("testKeyword", "default_jsp.java");
+    }
+
+
+    /**
+     * what happens to 1nvalid-classname
+     */
+    @Test
+    public void testInvalidClassname() throws Exception {
+        executeJspCompile("testInvalidClassname",
+                "_1nvalid_0002dclassname_jsp.java");
+    }
+
+
+    @Test
+    public void testNoTld() throws Exception {
+        try {
+            buildRule.executeTarget("testNoTld");
+            fail("Not found");
+        } catch (BuildException ex) {
+            assertEquals("Java returned: 9", ex.getMessage());
+        }
+    }
+
+
+    @Test
+    public void testNotAJspFile()  throws Exception {
+        buildRule.executeTarget("testNotAJspFile");
+    }
+
+    /**
+     * webapp test is currently broken, because it picks up
+     * on the missing_tld file, and bails.
+     */
+    @Ignore("picks up on the missing_tld file, and incorrectly bails")
+    @Test
+    public void testWebapp()  throws Exception {
+        buildRule.executeTarget("testWebapp");
+    }
+
+    /**
+     * run a target then verify the named file gets created
+     *
+     * @param target Description of Parameter
+     * @param javafile Description of Parameter
+     */
+    protected void executeJspCompile(String target, String javafile) {
+        buildRule.executeTarget(target);
+        assertJavaFileCreated(javafile);
+    }
+
+
+    /**
+     * verify that a named file was created
+     *
+     * @param filename Description of Parameter
+     */
+    protected void assertJavaFileCreated(String filename) {
+        File file = getOutputFile(filename);
+        assertTrue("file " + filename + " not found", file.exists());
+        assertTrue("file " + filename + " is empty", file.length() > 0);
+    }
+
+    /**
+     * Gets the OutputFile attribute of the JspcTest object
+     *
+     * @param subpath Description of Parameter
+     * @return The OutputFile value
+     */
+    protected File getOutputFile(String subpath) {
+        return new File(buildRule.getProject().getProperty("output"), subpath);
+    }
+
+    /**
+     * verify that we select the appropriate mangler
+     */
+    @Test
+    public void testJasperNameManglerSelection() {
+        JspCompilerAdapter adapter=
+                JspCompilerAdapterFactory.getCompiler("jasper", null,null);
+        JspMangler mangler=adapter.createMangler();
+        assertTrue(mangler instanceof JspNameMangler);
+        adapter= JspCompilerAdapterFactory.getCompiler("jasper41", null, null);
+        mangler = adapter.createMangler();
+        assertTrue(mangler instanceof Jasper41Mangler);
+    }
+
+    @Test
+    public void testJasper41() {
+        JspMangler mangler = new Jasper41Mangler();
+        //java keywords are not special
+        assertMapped(mangler, "for.jsp", "for_jsp");
+        //underscores go in front of invalid start chars
+        assertMapped(mangler, "0.jsp", "_0_jsp");
+        //underscores at the front get an underscore too
+        assertMapped(mangler, "_.jsp", "___jsp");
+        //non java char at start => underscore then the the _hex value
+        assertMapped(mangler, "-.jsp", "__0002d_jsp");
+        //and paths are stripped
+        char s = File.separatorChar;
+        assertMapped(mangler, "" + s + s + "somewhere" + s + "file" + s + "index.jsp", "index_jsp");
+    }
+
+    /**
+     * assert our mapping rules
+     * @param mangler
+     * @param filename
+     * @param classname
+     */
+    protected void assertMapped(JspMangler mangler, String filename, String classname) {
+        String mappedname = mangler.mapJspToJavaName(new File(filename));
+        assertTrue(filename+" should have mapped to "+classname
+                    +" but instead mapped to "+mappedname,
+                    classname.equals(mappedname));
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/ant/blob/4422804d/src/tests/junit/org/apache/tools/ant/taskdefs/optional/Native2AsciiTest.java
----------------------------------------------------------------------
diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/Native2AsciiTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/Native2AsciiTest.java
index 3138e3a..1e8acc9 100644
--- a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/Native2AsciiTest.java
+++ b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/Native2AsciiTest.java
@@ -1,57 +1,57 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- */
-
-package org.apache.tools.ant.taskdefs.optional;
-
-import java.io.File;
-
-import org.apache.tools.ant.BuildFileRule;
-import org.apache.tools.ant.util.FileUtils;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-
-import static org.junit.Assert.assertTrue;
-
-public class Native2AsciiTest {
-
-    private final static String BUILD_XML = 
-        "src/etc/testcases/taskdefs/optional/native2ascii/build.xml";
-
-    @Rule
-    public BuildFileRule buildRule = new BuildFileRule();
-
-    @Before
-    public void setUp() {
-        buildRule.configureProject(BUILD_XML);
-    }
-
-    @After
-    public void tearDown() {
-        buildRule.executeTarget("tearDown");
-    }
-
-    @Test
-    public void testIso8859_1() throws java.io.IOException {
-        buildRule.executeTarget("testIso8859-1");
-        File in = buildRule.getProject().resolveFile("expected/iso8859-1.test");
-        File out = new File(buildRule.getProject().getProperty("output"), "iso8859-1.test");
-        assertTrue(FileUtils.getFileUtils().contentEquals(in, out, true));
-    }
-}
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.tools.ant.taskdefs.optional;
+
+import java.io.File;
+
+import org.apache.tools.ant.BuildFileRule;
+import org.apache.tools.ant.util.FileUtils;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+
+import static org.junit.Assert.assertTrue;
+
+public class Native2AsciiTest {
+
+    private final static String BUILD_XML =
+        "src/etc/testcases/taskdefs/optional/native2ascii/build.xml";
+
+    @Rule
+    public BuildFileRule buildRule = new BuildFileRule();
+
+    @Before
+    public void setUp() {
+        buildRule.configureProject(BUILD_XML);
+    }
+
+    @After
+    public void tearDown() {
+        buildRule.executeTarget("tearDown");
+    }
+
+    @Test
+    public void testIso8859_1() throws java.io.IOException {
+        buildRule.executeTarget("testIso8859-1");
+        File in = buildRule.getProject().resolveFile("expected/iso8859-1.test");
+        File out = new File(buildRule.getProject().getProperty("output"), "iso8859-1.test");
+        assertTrue(FileUtils.getFileUtils().contentEquals(in, out, true));
+    }
+}

http://git-wip-us.apache.org/repos/asf/ant/blob/4422804d/src/tests/junit/org/apache/tools/ant/taskdefs/optional/PropertyFileTest.java
----------------------------------------------------------------------
diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/PropertyFileTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/PropertyFileTest.java
index a403673..d74c798 100644
--- a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/PropertyFileTest.java
+++ b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/PropertyFileTest.java
@@ -1,235 +1,235 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- */
-package org.apache.tools.ant.taskdefs.optional;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.Properties;
-
-import org.apache.tools.ant.BuildFileRule;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Rule;
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-/**
- *  JUnit testcase that exercises the optional PropertyFile task in ant.
- *  (this is really more of a functional test so far.., but it's enough to let
- *   me start refactoring...)
- *
- *created    October 2, 2001
- */
-
-public class PropertyFileTest {
-
-    @Rule
-    public BuildFileRule buildRule = new BuildFileRule();
-
-    @Before
-    public void setUp() throws Exception {
-        buildRule.configureProject(projectFilePath);
-        buildRule.executeTarget("setUp");
-        initTestPropFile();
-        initBuildPropFile();
-        buildRule.configureProject(projectFilePath);
-        buildRule.getProject().setProperty(valueDoesNotGetOverwrittenPropertyFileKey,
-                valueDoesNotGetOverwrittenPropertyFile);
-    }
-
-
-    @Test
-    public void testNonExistingFile() {
-        PropertyFile props = new PropertyFile();
-        props.setProject( buildRule.getProject() );
-        File file = new File("this-file-does-not-exist.properties");
-        props.setFile(file);
-        assertFalse("Properties file exists before test.", file.exists());
-        props.execute();
-        assertTrue("Properties file does not exist after test.", file.exists());
-        file.delete();
-    }
-
-    /**
-     *  A unit test for JUnit- Exercises the propertyfile tasks ability to
-     *  update properties that are already defined-
-     */
-    @Test
-    public void testUpdatesExistingProperties() throws Exception {
-        Properties beforeUpdate = getTestProperties();
-        assertEquals(FNAME, beforeUpdate.getProperty(FNAME_KEY));
-        assertEquals(LNAME, beforeUpdate.getProperty(LNAME_KEY));
-        assertEquals(EMAIL, beforeUpdate.getProperty(EMAIL_KEY));
-        assertEquals(null, beforeUpdate.getProperty(PHONE_KEY));
-        assertEquals(null, beforeUpdate.getProperty(AGE_KEY));
-        assertEquals(null, beforeUpdate.getProperty(DATE_KEY));
-
-        // ask ant to update the properties...
-        buildRule.executeTarget("update-existing-properties");
-
-        Properties afterUpdate = getTestProperties();
-        assertEquals(NEW_FNAME, afterUpdate.getProperty(FNAME_KEY));
-        assertEquals(NEW_LNAME, afterUpdate.getProperty(LNAME_KEY));
-        assertEquals(NEW_EMAIL, afterUpdate.getProperty(EMAIL_KEY));
-        assertEquals(NEW_PHONE, afterUpdate.getProperty(PHONE_KEY));
-        assertEquals(NEW_AGE, afterUpdate.getProperty(AGE_KEY));
-        assertEquals(NEW_DATE, afterUpdate.getProperty(DATE_KEY));
-    }
-
-    @Test
-    public void testDeleteProperties() throws Exception {
-        Properties beforeUpdate = getTestProperties();
-        assertEquals("Property '" + FNAME_KEY + "' should exist before deleting",
-            FNAME, beforeUpdate.getProperty(FNAME_KEY));
-        assertEquals("Property '" + LNAME_KEY + "' should exist before deleting",
-            LNAME, beforeUpdate.getProperty(LNAME_KEY));
-        
-        buildRule.executeTarget("delete-properties");
-        Properties afterUpdate = getTestProperties();
-
-        assertEquals("Property '" + LNAME_KEY + "' should exist after deleting",
-            LNAME, afterUpdate.getProperty(LNAME_KEY));
-        assertNull("Property '" + FNAME_KEY + "' should be deleted",
-            afterUpdate.getProperty(FNAME_KEY));
-    }
-
-    @Test
-    public void testExerciseDefaultAndIncrement() throws Exception {
-        buildRule.executeTarget("exercise");
-        assertEquals("3",buildRule.getProject().getProperty("int.with.default"));
-        assertEquals("1",buildRule.getProject().getProperty("int.without.default"));
-        assertEquals("-->",buildRule.getProject().getProperty("string.with.default"));
-        assertEquals(".",buildRule.getProject().getProperty("string.without.default"));
-        assertEquals("2002/01/21 12:18", buildRule.getProject().getProperty("ethans.birth"));
-        assertEquals("2003/01/21", buildRule.getProject().getProperty("first.birthday"));
-        assertEquals("0124", buildRule.getProject().getProperty("olderThanAWeek"));
-        assertEquals("37", buildRule.getProject().getProperty("existing.prop"));
-        assertEquals("6",buildRule.getProject().getProperty("int.without.value"));
-    }
-
-    @Test
-    public void testValueDoesNotGetOverwritten() {
-        // this test shows that the bug report 21505 is fixed
-        buildRule.executeTarget("bugDemo1");
-        buildRule.executeTarget("bugDemo2");
-        assertEquals("5", buildRule.getProject().getProperty("foo"));
-    }
-
-
-    @Test
-    @Ignore("Previously commented out")
-    public void testDirect() throws Exception {
-        PropertyFile pf = new PropertyFile();
-        pf.setProject(buildRule.getProject());
-        pf.setFile(new File(System.getProperty("root"), testPropsFilePath));
-        PropertyFile.Entry entry = pf.createEntry();
-
-        entry.setKey("date");
-        entry.setValue("123");
-        PropertyFile.Entry.Type type = new PropertyFile.Entry.Type();
-        type.setValue("date");
-        entry.setType(type);
-
-        entry.setPattern("yyyy/MM/dd");
-
-        PropertyFile.Entry.Operation operation = new PropertyFile.Entry.Operation();
-        operation.setValue("+");
-        pf.execute();
-
-        Properties props = getTestProperties();
-        assertEquals("yeehaw", props.getProperty("date"));
-    }
-
-
-    private Properties getTestProperties() throws Exception {
-        Properties testProps = new Properties();
-        FileInputStream propsFile = new FileInputStream(new File(buildRule.getOutputDir(), testPropsFilePath));
-        testProps.load(propsFile);
-        propsFile.close();
-        return testProps;
-    }
-
-
-    private void initTestPropFile() throws IOException {
-        Properties testProps = new Properties();
-        testProps.put(FNAME_KEY, FNAME);
-        testProps.put(LNAME_KEY, LNAME);
-        testProps.put(EMAIL_KEY, EMAIL);
-        testProps.put("existing.prop", "37");
-
-        FileOutputStream fos = new FileOutputStream(new File(buildRule.getOutputDir(), testPropsFilePath));
-        testProps.store(fos, "defaults");
-        fos.close();
-    }
-
-
-    private void initBuildPropFile() throws IOException {
-        Properties buildProps = new Properties();
-        buildProps.put(testPropertyFileKey, testPropertyFile);
-        buildProps.put(FNAME_KEY, NEW_FNAME);
-        buildProps.put(LNAME_KEY, NEW_LNAME);
-        buildProps.put(EMAIL_KEY, NEW_EMAIL);
-        buildProps.put(PHONE_KEY, NEW_PHONE);
-        buildProps.put(AGE_KEY, NEW_AGE);
-        buildProps.put(DATE_KEY, NEW_DATE);
-
-        FileOutputStream fos = new FileOutputStream(new File(buildRule.getOutputDir(), buildPropsFilePath));
-        buildProps.store(fos, null);
-        fos.close();
-    }
-
-    private static final String
-        projectFilePath     = "src/etc/testcases/taskdefs/optional/propertyfile.xml",
-
-        testPropertyFile    = "propertyfile.test.properties",
-        testPropertyFileKey = "test.propertyfile",
-        testPropsFilePath   = testPropertyFile,
-
-        valueDoesNotGetOverwrittenPropertyFile    = "overwrite.test.properties",
-        valueDoesNotGetOverwrittenPropertyFileKey = "overwrite.test.propertyfile",
-        valueDoesNotGetOverwrittenPropsFilePath   = valueDoesNotGetOverwrittenPropertyFile,
-
-        buildPropsFilePath  = "propertyfile.build.properties",
-
-        FNAME     = "Bruce",
-        NEW_FNAME = "Clark",
-        FNAME_KEY = "firstname",
-
-        LNAME     = "Banner",
-        NEW_LNAME = "Kent",
-        LNAME_KEY = "lastname",
-
-        EMAIL     = "incredible@hulk.com",
-        NEW_EMAIL = "kc@superman.com",
-        EMAIL_KEY = "email",
-
-        NEW_PHONE = "(520) 555-1212",
-        PHONE_KEY = "phone",
-
-        NEW_AGE = "30",
-        AGE_KEY = "age",
-
-        NEW_DATE = "2001/01/01 12:45",
-        DATE_KEY = "date";
-}
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package org.apache.tools.ant.taskdefs.optional;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.Properties;
+
+import org.apache.tools.ant.BuildFileRule;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Rule;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+/**
+ *  JUnit testcase that exercises the optional PropertyFile task in ant.
+ *  (this is really more of a functional test so far.., but it's enough to let
+ *   me start refactoring...)
+ *
+ *created    October 2, 2001
+ */
+
+public class PropertyFileTest {
+
+    @Rule
+    public BuildFileRule buildRule = new BuildFileRule();
+
+    @Before
+    public void setUp() throws Exception {
+        buildRule.configureProject(projectFilePath);
+        buildRule.executeTarget("setUp");
+        initTestPropFile();
+        initBuildPropFile();
+        buildRule.configureProject(projectFilePath);
+        buildRule.getProject().setProperty(valueDoesNotGetOverwrittenPropertyFileKey,
+                valueDoesNotGetOverwrittenPropertyFile);
+    }
+
+
+    @Test
+    public void testNonExistingFile() {
+        PropertyFile props = new PropertyFile();
+        props.setProject( buildRule.getProject() );
+        File file = new File("this-file-does-not-exist.properties");
+        props.setFile(file);
+        assertFalse("Properties file exists before test.", file.exists());
+        props.execute();
+        assertTrue("Properties file does not exist after test.", file.exists());
+        file.delete();
+    }
+
+    /**
+     *  A unit test for JUnit- Exercises the propertyfile tasks ability to
+     *  update properties that are already defined-
+     */
+    @Test
+    public void testUpdatesExistingProperties() throws Exception {
+        Properties beforeUpdate = getTestProperties();
+        assertEquals(FNAME, beforeUpdate.getProperty(FNAME_KEY));
+        assertEquals(LNAME, beforeUpdate.getProperty(LNAME_KEY));
+        assertEquals(EMAIL, beforeUpdate.getProperty(EMAIL_KEY));
+        assertEquals(null, beforeUpdate.getProperty(PHONE_KEY));
+        assertEquals(null, beforeUpdate.getProperty(AGE_KEY));
+        assertEquals(null, beforeUpdate.getProperty(DATE_KEY));
+
+        // ask ant to update the properties...
+        buildRule.executeTarget("update-existing-properties");
+
+        Properties afterUpdate = getTestProperties();
+        assertEquals(NEW_FNAME, afterUpdate.getProperty(FNAME_KEY));
+        assertEquals(NEW_LNAME, afterUpdate.getProperty(LNAME_KEY));
+        assertEquals(NEW_EMAIL, afterUpdate.getProperty(EMAIL_KEY));
+        assertEquals(NEW_PHONE, afterUpdate.getProperty(PHONE_KEY));
+        assertEquals(NEW_AGE, afterUpdate.getProperty(AGE_KEY));
+        assertEquals(NEW_DATE, afterUpdate.getProperty(DATE_KEY));
+    }
+
+    @Test
+    public void testDeleteProperties() throws Exception {
+        Properties beforeUpdate = getTestProperties();
+        assertEquals("Property '" + FNAME_KEY + "' should exist before deleting",
+            FNAME, beforeUpdate.getProperty(FNAME_KEY));
+        assertEquals("Property '" + LNAME_KEY + "' should exist before deleting",
+            LNAME, beforeUpdate.getProperty(LNAME_KEY));
+
+        buildRule.executeTarget("delete-properties");
+        Properties afterUpdate = getTestProperties();
+
+        assertEquals("Property '" + LNAME_KEY + "' should exist after deleting",
+            LNAME, afterUpdate.getProperty(LNAME_KEY));
+        assertNull("Property '" + FNAME_KEY + "' should be deleted",
+            afterUpdate.getProperty(FNAME_KEY));
+    }
+
+    @Test
+    public void testExerciseDefaultAndIncrement() throws Exception {
+        buildRule.executeTarget("exercise");
+        assertEquals("3",buildRule.getProject().getProperty("int.with.default"));
+        assertEquals("1",buildRule.getProject().getProperty("int.without.default"));
+        assertEquals("-->",buildRule.getProject().getProperty("string.with.default"));
+        assertEquals(".",buildRule.getProject().getProperty("string.without.default"));
+        assertEquals("2002/01/21 12:18", buildRule.getProject().getProperty("ethans.birth"));
+        assertEquals("2003/01/21", buildRule.getProject().getProperty("first.birthday"));
+        assertEquals("0124", buildRule.getProject().getProperty("olderThanAWeek"));
+        assertEquals("37", buildRule.getProject().getProperty("existing.prop"));
+        assertEquals("6",buildRule.getProject().getProperty("int.without.value"));
+    }
+
+    @Test
+    public void testValueDoesNotGetOverwritten() {
+        // this test shows that the bug report 21505 is fixed
+        buildRule.executeTarget("bugDemo1");
+        buildRule.executeTarget("bugDemo2");
+        assertEquals("5", buildRule.getProject().getProperty("foo"));
+    }
+
+
+    @Test
+    @Ignore("Previously commented out")
+    public void testDirect() throws Exception {
+        PropertyFile pf = new PropertyFile();
+        pf.setProject(buildRule.getProject());
+        pf.setFile(new File(System.getProperty("root"), testPropsFilePath));
+        PropertyFile.Entry entry = pf.createEntry();
+
+        entry.setKey("date");
+        entry.setValue("123");
+        PropertyFile.Entry.Type type = new PropertyFile.Entry.Type();
+        type.setValue("date");
+        entry.setType(type);
+
+        entry.setPattern("yyyy/MM/dd");
+
+        PropertyFile.Entry.Operation operation = new PropertyFile.Entry.Operation();
+        operation.setValue("+");
+        pf.execute();
+
+        Properties props = getTestProperties();
+        assertEquals("yeehaw", props.getProperty("date"));
+    }
+
+
+    private Properties getTestProperties() throws Exception {
+        Properties testProps = new Properties();
+        FileInputStream propsFile = new FileInputStream(new File(buildRule.getOutputDir(), testPropsFilePath));
+        testProps.load(propsFile);
+        propsFile.close();
+        return testProps;
+    }
+
+
+    private void initTestPropFile() throws IOException {
+        Properties testProps = new Properties();
+        testProps.put(FNAME_KEY, FNAME);
+        testProps.put(LNAME_KEY, LNAME);
+        testProps.put(EMAIL_KEY, EMAIL);
+        testProps.put("existing.prop", "37");
+
+        FileOutputStream fos = new FileOutputStream(new File(buildRule.getOutputDir(), testPropsFilePath));
+        testProps.store(fos, "defaults");
+        fos.close();
+    }
+
+
+    private void initBuildPropFile() throws IOException {
+        Properties buildProps = new Properties();
+        buildProps.put(testPropertyFileKey, testPropertyFile);
+        buildProps.put(FNAME_KEY, NEW_FNAME);
+        buildProps.put(LNAME_KEY, NEW_LNAME);
+        buildProps.put(EMAIL_KEY, NEW_EMAIL);
+        buildProps.put(PHONE_KEY, NEW_PHONE);
+        buildProps.put(AGE_KEY, NEW_AGE);
+        buildProps.put(DATE_KEY, NEW_DATE);
+
+        FileOutputStream fos = new FileOutputStream(new File(buildRule.getOutputDir(), buildPropsFilePath));
+        buildProps.store(fos, null);
+        fos.close();
+    }
+
+    private static final String
+        projectFilePath     = "src/etc/testcases/taskdefs/optional/propertyfile.xml",
+
+        testPropertyFile    = "propertyfile.test.properties",
+        testPropertyFileKey = "test.propertyfile",
+        testPropsFilePath   = testPropertyFile,
+
+        valueDoesNotGetOverwrittenPropertyFile    = "overwrite.test.properties",
+        valueDoesNotGetOverwrittenPropertyFileKey = "overwrite.test.propertyfile",
+        valueDoesNotGetOverwrittenPropsFilePath   = valueDoesNotGetOverwrittenPropertyFile,
+
+        buildPropsFilePath  = "propertyfile.build.properties",
+
+        FNAME     = "Bruce",
+        NEW_FNAME = "Clark",
+        FNAME_KEY = "firstname",
+
+        LNAME     = "Banner",
+        NEW_LNAME = "Kent",
+        LNAME_KEY = "lastname",
+
+        EMAIL     = "incredible@hulk.com",
+        NEW_EMAIL = "kc@superman.com",
+        EMAIL_KEY = "email",
+
+        NEW_PHONE = "(520) 555-1212",
+        PHONE_KEY = "phone",
+
+        NEW_AGE = "30",
+        AGE_KEY = "age",
+
+        NEW_DATE = "2001/01/01 12:45",
+        DATE_KEY = "date";
+}

http://git-wip-us.apache.org/repos/asf/ant/blob/4422804d/src/tests/junit/org/apache/tools/ant/taskdefs/optional/PvcsTest.java
----------------------------------------------------------------------
diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/PvcsTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/PvcsTest.java
index 0f7aff7..cd7a431 100644
--- a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/PvcsTest.java
+++ b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/PvcsTest.java
@@ -1,79 +1,79 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- */
-
-package org.apache.tools.ant.taskdefs.optional;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.BuildFileRule;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-
-import static org.junit.Assert.fail;
-
-public class PvcsTest {
-
-    @Rule
-    public BuildFileRule buildRule = new BuildFileRule();
-
-    @Before
-    public void setUp() {
-        buildRule.configureProject("src/etc/testcases/taskdefs/optional/pvcs.xml");
-    }
-
-    @Test
-    public void test1() {
-        try {
-            buildRule.executeTarget("test1");
-            fail("Required argument repository not specified");
-        }  catch (BuildException ex) {
-            //TODO check exception message
-        }
-    }
-
-    @Test
-    public void test2() {
-        buildRule.executeTarget("test2");
-    }
-
-    @Test
-    public void test3() {
-        buildRule.executeTarget("test3");
-    }
-
-    @Test
-    public void test4() {
-        buildRule.executeTarget("test4");
-    }
-
-    @Test
-    public void test5() {
-        buildRule.executeTarget("test5");
-    }
-
-    @Test
-    public void test6() {
-        try {
-            buildRule.executeTarget("test6");
-            fail("Failed executing: /never/heard/of/a/directory/structure/like/this/pcli lvf -z " +
-                    "-aw -pr//ct4serv2/pvcs/monitor /. Exception: /never/heard/of/a/directory/structure/like/this/pcli: not found");
-        } catch(BuildException ex) {
-            //TODO assert exception message
-        }
-    }
-}
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.tools.ant.taskdefs.optional;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.BuildFileRule;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+
+import static org.junit.Assert.fail;
+
+public class PvcsTest {
+
+    @Rule
+    public BuildFileRule buildRule = new BuildFileRule();
+
+    @Before
+    public void setUp() {
+        buildRule.configureProject("src/etc/testcases/taskdefs/optional/pvcs.xml");
+    }
+
+    @Test
+    public void test1() {
+        try {
+            buildRule.executeTarget("test1");
+            fail("Required argument repository not specified");
+        }  catch (BuildException ex) {
+            //TODO check exception message
+        }
+    }
+
+    @Test
+    public void test2() {
+        buildRule.executeTarget("test2");
+    }
+
+    @Test
+    public void test3() {
+        buildRule.executeTarget("test3");
+    }
+
+    @Test
+    public void test4() {
+        buildRule.executeTarget("test4");
+    }
+
+    @Test
+    public void test5() {
+        buildRule.executeTarget("test5");
+    }
+
+    @Test
+    public void test6() {
+        try {
+            buildRule.executeTarget("test6");
+            fail("Failed executing: /never/heard/of/a/directory/structure/like/this/pcli lvf -z " +
+                    "-aw -pr//ct4serv2/pvcs/monitor /. Exception: /never/heard/of/a/directory/structure/like/this/pcli: not found");
+        } catch(BuildException ex) {
+            //TODO assert exception message
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/ant/blob/4422804d/src/tests/junit/org/apache/tools/ant/taskdefs/optional/ReplaceRegExpTest.java
----------------------------------------------------------------------
diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/ReplaceRegExpTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/ReplaceRegExpTest.java
index ad5973c..2c71115 100644
--- a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/ReplaceRegExpTest.java
+++ b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/ReplaceRegExpTest.java
@@ -1,132 +1,132 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- */
-package org.apache.tools.ant.taskdefs.optional;
-
-import org.apache.tools.ant.BuildFileRule;
-import org.apache.tools.ant.FileUtilities;
-import org.apache.tools.ant.util.FileUtils;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-
-import java.util.Properties;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assume.assumeTrue;
-
-/**
- * JUnit Testcase for the optional replaceregexp task.
- *
- */
-public class ReplaceRegExpTest {
-    private static final String PROJECT_PATH = "src/etc/testcases/taskdefs/optional";
-    
-    @Rule
-    public BuildFileRule buildRule = new BuildFileRule();
-
-    @Before
-    public void setUp() {
-        buildRule.configureProject(PROJECT_PATH + "/replaceregexp.xml");
-    }
-
-    @Test
-    public void testReplace() throws IOException {
-        Properties original = new Properties();
-        FileInputStream propsFile = null;
-        try {
-            propsFile = new FileInputStream(new File(buildRule.getProject().getBaseDir() + "/replaceregexp.properties"));
-            original.load(propsFile);
-        } finally {
-            if (propsFile != null) {
-                propsFile.close();
-                propsFile = null;
-            }
-        }
-
-        assertEquals("Def", original.get("OldAbc"));
-
-        buildRule.executeTarget("testReplace");
-
-        Properties after = new Properties();
-        try {
-            propsFile = new FileInputStream(new File(buildRule.getOutputDir(), "test.properties"));
-            after.load(propsFile);
-        } finally {
-            if (propsFile != null) {
-                propsFile.close();
-            }
-        }
-
-        assertNull(after.get("OldAbc"));
-        assertEquals("AbcDef", after.get("NewProp"));
-    }
-
-    // inspired by bug 22541
-    @Test
-    public void testDirectoryDateDoesNotChange() {
-        buildRule.executeTarget("touchDirectory");
-        File myFile = buildRule.getOutputDir();
-        long timeStampBefore = myFile.lastModified();
-        buildRule.executeTarget("testDirectoryDateDoesNotChange");
-        long timeStampAfter = myFile.lastModified();
-        assertEquals("directory date should not change",
-            timeStampBefore, timeStampAfter);
-    }
-
-    @Test
-    public void testDontAddNewline1() throws IOException {
-        buildRule.executeTarget("testDontAddNewline1");
-        assertEquals(FileUtilities.getFileContents(new File(buildRule.getOutputDir(), "test.properties")),
-                FileUtilities.getFileContents(new File(buildRule.getProject().getBaseDir(), "replaceregexp2.result.properties")));
-    }
-
-    @Test
-    public void testDontAddNewline2() throws IOException {
-        buildRule.executeTarget("testDontAddNewline2");
-        assertEquals(FileUtilities.getFileContents(new File(buildRule.getOutputDir(), "test.properties")),
-                FileUtilities.getFileContents(new File(buildRule.getProject().getBaseDir(), "replaceregexp2.result.properties")));
-    }
-
-    @Test
-    public void testNoPreserveLastModified() throws Exception {
-        buildRule.executeTarget("lastModifiedSetup");
-        File testFile = new File(buildRule.getOutputDir(), "test.txt");
-        assumeTrue(testFile.setLastModified(testFile.lastModified()
-                - (FileUtils.getFileUtils().getFileTimestampGranularity() * 3)));
-        long ts1 = testFile.lastModified();
-        buildRule.executeTarget("testNoPreserve");
-        assertTrue(ts1 < testFile.lastModified());
-    }
-
-    @Test
-    public void testPreserveLastModified() throws Exception {
-        buildRule.executeTarget("lastModifiedSetup");
-        File testFile = new File(buildRule.getOutputDir(), "test.txt");
-        assumeTrue(testFile.setLastModified(testFile.lastModified()
-                - (FileUtils.getFileUtils().getFileTimestampGranularity() * 3)));
-        long ts1 = testFile.lastModified();
-        buildRule.executeTarget("testPreserve");
-        assertEquals(ts1 , testFile.lastModified());
-    }
-
-}// ReplaceRegExpTest
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package org.apache.tools.ant.taskdefs.optional;
+
+import org.apache.tools.ant.BuildFileRule;
+import org.apache.tools.ant.FileUtilities;
+import org.apache.tools.ant.util.FileUtils;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+
+import java.util.Properties;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assume.assumeTrue;
+
+/**
+ * JUnit Testcase for the optional replaceregexp task.
+ *
+ */
+public class ReplaceRegExpTest {
+    private static final String PROJECT_PATH = "src/etc/testcases/taskdefs/optional";
+
+    @Rule
+    public BuildFileRule buildRule = new BuildFileRule();
+
+    @Before
+    public void setUp() {
+        buildRule.configureProject(PROJECT_PATH + "/replaceregexp.xml");
+    }
+
+    @Test
+    public void testReplace() throws IOException {
+        Properties original = new Properties();
+        FileInputStream propsFile = null;
+        try {
+            propsFile = new FileInputStream(new File(buildRule.getProject().getBaseDir() + "/replaceregexp.properties"));
+            original.load(propsFile);
+        } finally {
+            if (propsFile != null) {
+                propsFile.close();
+                propsFile = null;
+            }
+        }
+
+        assertEquals("Def", original.get("OldAbc"));
+
+        buildRule.executeTarget("testReplace");
+
+        Properties after = new Properties();
+        try {
+            propsFile = new FileInputStream(new File(buildRule.getOutputDir(), "test.properties"));
+            after.load(propsFile);
+        } finally {
+            if (propsFile != null) {
+                propsFile.close();
+            }
+        }
+
+        assertNull(after.get("OldAbc"));
+        assertEquals("AbcDef", after.get("NewProp"));
+    }
+
+    // inspired by bug 22541
+    @Test
+    public void testDirectoryDateDoesNotChange() {
+        buildRule.executeTarget("touchDirectory");
+        File myFile = buildRule.getOutputDir();
+        long timeStampBefore = myFile.lastModified();
+        buildRule.executeTarget("testDirectoryDateDoesNotChange");
+        long timeStampAfter = myFile.lastModified();
+        assertEquals("directory date should not change",
+            timeStampBefore, timeStampAfter);
+    }
+
+    @Test
+    public void testDontAddNewline1() throws IOException {
+        buildRule.executeTarget("testDontAddNewline1");
+        assertEquals(FileUtilities.getFileContents(new File(buildRule.getOutputDir(), "test.properties")),
+                FileUtilities.getFileContents(new File(buildRule.getProject().getBaseDir(), "replaceregexp2.result.properties")));
+    }
+
+    @Test
+    public void testDontAddNewline2() throws IOException {
+        buildRule.executeTarget("testDontAddNewline2");
+        assertEquals(FileUtilities.getFileContents(new File(buildRule.getOutputDir(), "test.properties")),
+                FileUtilities.getFileContents(new File(buildRule.getProject().getBaseDir(), "replaceregexp2.result.properties")));
+    }
+
+    @Test
+    public void testNoPreserveLastModified() throws Exception {
+        buildRule.executeTarget("lastModifiedSetup");
+        File testFile = new File(buildRule.getOutputDir(), "test.txt");
+        assumeTrue(testFile.setLastModified(testFile.lastModified()
+                - (FileUtils.getFileUtils().getFileTimestampGranularity() * 3)));
+        long ts1 = testFile.lastModified();
+        buildRule.executeTarget("testNoPreserve");
+        assertTrue(ts1 < testFile.lastModified());
+    }
+
+    @Test
+    public void testPreserveLastModified() throws Exception {
+        buildRule.executeTarget("lastModifiedSetup");
+        File testFile = new File(buildRule.getOutputDir(), "test.txt");
+        assumeTrue(testFile.setLastModified(testFile.lastModified()
+                - (FileUtils.getFileUtils().getFileTimestampGranularity() * 3)));
+        long ts1 = testFile.lastModified();
+        buildRule.executeTarget("testPreserve");
+        assertEquals(ts1 , testFile.lastModified());
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/ant/blob/4422804d/src/tests/junit/org/apache/tools/ant/taskdefs/optional/RhinoReferenceTest.java
----------------------------------------------------------------------
diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/RhinoReferenceTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/RhinoReferenceTest.java
index d3ec1a3..41803de 100644
--- a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/RhinoReferenceTest.java
+++ b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/RhinoReferenceTest.java
@@ -1,45 +1,45 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- */
-package org.apache.tools.ant.taskdefs.optional;
-
-import org.apache.tools.ant.BuildFileRule;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-
-/**
- * Tests using an undefined reference.
- *
- * @since Ant 1.6
- */
-public class RhinoReferenceTest {
-
-    @Rule
-    public BuildFileRule buildRule = new BuildFileRule();
-
-    @Before
-    public void setUp() {
-        buildRule.configureProject(
-                "src/etc/testcases/taskdefs/optional/script_reference.xml");
-    }
-
-    @Test
-    public void testScript() {
-        buildRule.executeTarget("script");
-    }
-}
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package org.apache.tools.ant.taskdefs.optional;
+
+import org.apache.tools.ant.BuildFileRule;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+
+/**
+ * Tests using an undefined reference.
+ *
+ * @since Ant 1.6
+ */
+public class RhinoReferenceTest {
+
+    @Rule
+    public BuildFileRule buildRule = new BuildFileRule();
+
+    @Before
+    public void setUp() {
+        buildRule.configureProject(
+                "src/etc/testcases/taskdefs/optional/script_reference.xml");
+    }
+
+    @Test
+    public void testScript() {
+        buildRule.executeTarget("script");
+    }
+}

http://git-wip-us.apache.org/repos/asf/ant/blob/4422804d/src/tests/junit/org/apache/tools/ant/taskdefs/optional/RpmTest.java
----------------------------------------------------------------------
diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/RpmTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/RpmTest.java
index e69ffb4..ac4462d 100644
--- a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/RpmTest.java
+++ b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/RpmTest.java
@@ -1,71 +1,71 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- */
-package org.apache.tools.ant.taskdefs.optional;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.taskdefs.Execute;
-import org.apache.tools.ant.taskdefs.ExecuteStreamHandler;
-import org.apache.tools.ant.types.Commandline;
-
-import org.junit.Test;
-
-import static org.junit.Assert.fail;
-import static org.apache.tools.ant.AntAssert.assertContains;
-
-public class RpmTest {
-
-    @Test
-    public void testShouldThrowExceptionWhenRpmFails() throws Exception {
-        Rpm rpm = new MyRpm();
-        rpm.setProject(new org.apache.tools.ant.Project());
-        rpm.setFailOnError(true);
-        // execute
-        try {
-            rpm.execute();
-            fail("should have thrown a build exception");
-        } catch (BuildException ex) {
-            assertContains("' failed with exit code 2", ex.getMessage());
-        }
-    }
-
-    @Test
-    public void testShouldNotThrowExceptionWhenRpmFails() throws Exception {
-        Rpm rpm = new MyRpm();
-        rpm.execute();
-    }
-
-    // override some of the code so we can test the handling of the
-    // return code only.
-    public static class MyRpm extends Rpm {
-        protected Execute getExecute(Commandline toExecute,
-                                     ExecuteStreamHandler streamhandler) {
-            return new Execute() {
-                    public int execute() {
-                        // 2 is != 0 and even, so it is considered
-                        // failure on any platform currently supported
-                        // by Execute#isFailure.
-                        return 2;
-                    }
-                };
-        }
-
-        public void log(String msg, int msgLevel) {
-        }
-    }
-
-}
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package org.apache.tools.ant.taskdefs.optional;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.taskdefs.Execute;
+import org.apache.tools.ant.taskdefs.ExecuteStreamHandler;
+import org.apache.tools.ant.types.Commandline;
+
+import org.junit.Test;
+
+import static org.junit.Assert.fail;
+import static org.apache.tools.ant.AntAssert.assertContains;
+
+public class RpmTest {
+
+    @Test
+    public void testShouldThrowExceptionWhenRpmFails() throws Exception {
+        Rpm rpm = new MyRpm();
+        rpm.setProject(new org.apache.tools.ant.Project());
+        rpm.setFailOnError(true);
+        // execute
+        try {
+            rpm.execute();
+            fail("should have thrown a build exception");
+        } catch (BuildException ex) {
+            assertContains("' failed with exit code 2", ex.getMessage());
+        }
+    }
+
+    @Test
+    public void testShouldNotThrowExceptionWhenRpmFails() throws Exception {
+        Rpm rpm = new MyRpm();
+        rpm.execute();
+    }
+
+    // override some of the code so we can test the handling of the
+    // return code only.
+    public static class MyRpm extends Rpm {
+        protected Execute getExecute(Commandline toExecute,
+                                     ExecuteStreamHandler streamhandler) {
+            return new Execute() {
+                    public int execute() {
+                        // 2 is != 0 and even, so it is considered
+                        // failure on any platform currently supported
+                        // by Execute#isFailure.
+                        return 2;
+                    }
+                };
+        }
+
+        public void log(String msg, int msgLevel) {
+        }
+    }
+
+}