Merge pull request #129 from simon04/appendElapsed

Extract LegacyPlainResultFormatter.Stats#appendElapsed
diff --git a/src/etc/testcases/taskdefs/rmic/src/AntTimestamp.java b/src/etc/testcases/taskdefs/rmic/src/AntTimestamp.java
index 25e8f73..5d25b3e 100644
--- a/src/etc/testcases/taskdefs/rmic/src/AntTimestamp.java
+++ b/src/etc/testcases/taskdefs/rmic/src/AntTimestamp.java
@@ -31,8 +31,8 @@
      * which goes to show why signature is an inadequate way of verifying
      * how well an interface is implemented.
      *
-     * @return
-     * @throws RemoteException
+     * @return the phase of the moon
+     * @throws RemoteException hopefully never
      */
     public long when() throws RemoteException {
         Calendar cal = Calendar.getInstance();
diff --git a/src/main/org/apache/tools/ant/ComponentHelper.java b/src/main/org/apache/tools/ant/ComponentHelper.java
index 5d8c3db..0011c19 100644
--- a/src/main/org/apache/tools/ant/ComponentHelper.java
+++ b/src/main/org/apache/tools/ant/ComponentHelper.java
@@ -907,9 +907,9 @@
         } else {
             //we are defined, so it is an instantiation problem
             final String classname = def.getClassName();
-            antTask = classname.startsWith("org.apache.tools.ant.");
-            boolean optional = classname.startsWith("org.apache.tools.ant.taskdefs.optional");
-            optional |= classname.startsWith("org.apache.tools.ant.types.optional");
+            antTask = classname.startsWith(MagicNames.ANT_CORE_PACKAGE + ".");
+            boolean optional = classname.startsWith(MagicNames.ANT_CORE_PACKAGE + ".types.optional")
+                    || classname.startsWith(MagicNames.ANT_CORE_PACKAGE + ".taskdefs.optional");
 
             //start with instantiating the class.
             Class<?> clazz = null;
diff --git a/src/main/org/apache/tools/ant/DefaultDefinitions.java b/src/main/org/apache/tools/ant/DefaultDefinitions.java
index 5cc9bb4..d558e43 100644
--- a/src/main/org/apache/tools/ant/DefaultDefinitions.java
+++ b/src/main/org/apache/tools/ant/DefaultDefinitions.java
@@ -25,7 +25,6 @@
 public final class DefaultDefinitions {
     private static final String IF_NAMESPACE = "ant:if";
     private static final String UNLESS_NAMESPACE = "ant:unless";
-    private static final String OATA = "org.apache.tools.ant.";
 
     private final ComponentHelper componentHelper;
 
@@ -52,14 +51,14 @@
     private void attributeNamespaceDef(String ns) {
         AntTypeDefinition def = new AntTypeDefinition();
         def.setName(ProjectHelper.nsToComponentName(ns));
-        def.setClassName(OATA + "attribute.AttributeNamespace");
+        def.setClassName(MagicNames.ANT_CORE_PACKAGE + ".attribute.AttributeNamespace");
         def.setClassLoader(getClass().getClassLoader());
         def.setRestrict(true);
         componentHelper.addDataTypeDefinition(def);
     }
 
     private void ifUnlessDef(String name, String base) {
-        String classname =  OATA + "attribute." + base;
+        String classname = MagicNames.ANT_CORE_PACKAGE + ".attribute." + base;
         componentDef(IF_NAMESPACE, name, classname);
         componentDef(UNLESS_NAMESPACE, name, classname + "$Unless");
     }
diff --git a/src/main/org/apache/tools/ant/MagicNames.java b/src/main/org/apache/tools/ant/MagicNames.java
index 29bbaee..5cf2fa8 100644
--- a/src/main/org/apache/tools/ant/MagicNames.java
+++ b/src/main/org/apache/tools/ant/MagicNames.java
@@ -208,10 +208,17 @@
     public static final String REFID_LOCAL_PROPERTIES = "ant.LocalProperties";
 
     /**
+     * Name of Ant core package
+     * Value: {@value}
+     * @since Ant 1.10.9
+     */
+    public static final String ANT_CORE_PACKAGE = "org.apache.tools.ant";
+
+    /**
      * Name of JVM system property which provides the name of the ProjectHelper class to use.
      * Value: {@value}
      */
-    public static final String PROJECT_HELPER_CLASS = "org.apache.tools.ant.ProjectHelper";
+    public static final String PROJECT_HELPER_CLASS = ANT_CORE_PACKAGE + ".ProjectHelper";
 
     /**
      * The service identifier in jars which provide ProjectHelper implementations.
diff --git a/src/main/org/apache/tools/ant/ProjectHelper.java b/src/main/org/apache/tools/ant/ProjectHelper.java
index a84038a..5cc7527 100644
--- a/src/main/org/apache/tools/ant/ProjectHelper.java
+++ b/src/main/org/apache/tools/ant/ProjectHelper.java
@@ -38,17 +38,22 @@
  */
 public class ProjectHelper {
     /** The URI for ant name space */
-    public static final String ANT_CORE_URI = MagicNames.ANTLIB_PREFIX + "org.apache.tools.ant";
+    public static final String ANT_CORE_URI = MagicNames.ANTLIB_PREFIX
+            + MagicNames.ANT_CORE_PACKAGE;
 
     /** The URI for antlib current definitions */
     public static final String ANT_CURRENT_URI      = "ant:current";
 
     /** The URI for ant specific attributes
      * @since Ant 1.9.1
-     * */
+     */
     public static final String ANT_ATTRIBUTE_URI      = "ant:attribute";
 
-    /** The URI for defined types/tasks - the format is antlib:&lt;package&gt; */
+    /**
+     * The URI for defined types/tasks - the format is antlib:&lt;package&gt;
+     * @deprecated use MagicNames.ANTLIB_PREFIX
+     */
+    @Deprecated
     public static final String ANTLIB_URI = MagicNames.ANTLIB_PREFIX;
 
     /** Polymorphic attribute  */
@@ -57,18 +62,24 @@
     /**
      * Name of JVM system property which provides the name of the
      * ProjectHelper class to use.
+     * @deprecated use MagicNames.PROJECT_HELPER_CLASS
      */
+    @Deprecated
     public static final String HELPER_PROPERTY = MagicNames.PROJECT_HELPER_CLASS;
 
     /**
      * The service identifier in jars which provide Project Helper
      * implementations.
+     * @deprecated use MagicNames.PROJECT_HELPER_SERVICE
      */
+    @Deprecated
     public static final String SERVICE_ID = MagicNames.PROJECT_HELPER_SERVICE;
 
     /**
      * name of project helper reference that we add to a project
+     * @deprecated use MagicNames.REFID_PROJECT_HELPER
      */
+    @Deprecated
     public static final String PROJECTHELPER_REFERENCE = MagicNames.REFID_PROJECT_HELPER;
 
     /**
@@ -89,7 +100,7 @@
     public static void configureProject(Project project, File buildFile) throws BuildException {
         FileResource resource = new FileResource(buildFile);
         ProjectHelper helper = ProjectHelperRepository.getInstance().getProjectHelperForBuildFile(resource);
-        project.addReference(PROJECTHELPER_REFERENCE, helper);
+        project.addReference(MagicNames.REFID_PROJECT_HELPER, helper);
         helper.parse(project, buildFile);
     }
 
diff --git a/src/main/org/apache/tools/ant/ProjectHelperRepository.java b/src/main/org/apache/tools/ant/ProjectHelperRepository.java
index e878173..8bee97f 100644
--- a/src/main/org/apache/tools/ant/ProjectHelperRepository.java
+++ b/src/main/org/apache/tools/ant/ProjectHelperRepository.java
@@ -86,7 +86,7 @@
         try {
             ClassLoader classLoader = LoaderUtils.getContextClassLoader();
             if (classLoader != null) {
-                for (URL resource : Collections.list(classLoader.getResources(ProjectHelper.SERVICE_ID))) {
+                for (URL resource : Collections.list(classLoader.getResources(MagicNames.PROJECT_HELPER_SERVICE))) {
                     URLConnection conn = resource.openConnection();
                     conn.setUseCaches(false);
                     registerProjectHelper(getProjectHelperByService(conn.getInputStream()));
@@ -94,13 +94,13 @@
             }
 
             InputStream systemResource =
-                ClassLoader.getSystemResourceAsStream(ProjectHelper.SERVICE_ID);
+                ClassLoader.getSystemResourceAsStream(MagicNames.PROJECT_HELPER_SERVICE);
             if (systemResource != null) {
                 registerProjectHelper(getProjectHelperByService(systemResource));
             }
         } catch (Exception e) {
             System.err.println("Unable to load ProjectHelper from service "
-                               + ProjectHelper.SERVICE_ID + " ("
+                               + MagicNames.PROJECT_HELPER_SERVICE + " ("
                                + e.getClass().getName()
                                + ": " + e.getMessage() + ")");
             if (DEBUG) {
@@ -160,7 +160,7 @@
     }
 
     private Constructor<? extends ProjectHelper> getProjectHelperBySystemProperty() {
-        String helperClass = System.getProperty(ProjectHelper.HELPER_PROPERTY);
+        String helperClass = System.getProperty(MagicNames.PROJECT_HELPER_CLASS);
         try {
             if (helperClass != null) {
                 return getHelperConstructor(helperClass);
@@ -168,7 +168,7 @@
         } catch (SecurityException e) {
             System.err.println("Unable to load ProjectHelper class \""
                                + helperClass + " specified in system property "
-                               + ProjectHelper.HELPER_PROPERTY + " ("
+                               + MagicNames.PROJECT_HELPER_CLASS + " ("
                                + e.getMessage() + ")");
             if (DEBUG) {
                 e.printStackTrace(System.err); //NOSONAR
@@ -191,7 +191,7 @@
             }
         } catch (Exception e) {
             System.out.println("Unable to load ProjectHelper from service "
-                    + ProjectHelper.SERVICE_ID + " (" + e.getMessage() + ")");
+                    + MagicNames.PROJECT_HELPER_SERVICE + " (" + e.getMessage() + ")");
             if (DEBUG) {
                 e.printStackTrace(System.err); //NOSONAR
             }
diff --git a/src/main/org/apache/tools/ant/helper/ProjectHelper2.java b/src/main/org/apache/tools/ant/helper/ProjectHelper2.java
index 099cce0..f5785b1 100644
--- a/src/main/org/apache/tools/ant/helper/ProjectHelper2.java
+++ b/src/main/org/apache/tools/ant/helper/ProjectHelper2.java
@@ -1026,7 +1026,7 @@
             }
             if (extensionPoint != null) {
                 ProjectHelper helper =
-                        context.getProject().getReference(ProjectHelper.PROJECTHELPER_REFERENCE);
+                        context.getProject().getReference(MagicNames.REFID_PROJECT_HELPER);
                 for (String extPointName : Target.parseDepends(extensionPoint, name, "extensionOf")) {
                     if (extensionPointMissing == null) {
                         extensionPointMissing = OnMissingExtensionPoint.FAIL;
diff --git a/src/main/org/apache/tools/ant/input/PropertyFileInputHandler.java b/src/main/org/apache/tools/ant/input/PropertyFileInputHandler.java
index 82db4fd..9054c95 100644
--- a/src/main/org/apache/tools/ant/input/PropertyFileInputHandler.java
+++ b/src/main/org/apache/tools/ant/input/PropertyFileInputHandler.java
@@ -57,13 +57,13 @@
 
         Object o = props.get(request.getPrompt());
         if (o == null) {
-            throw new BuildException("Unable to find input for \'"
-                                     + request.getPrompt() + "\'");
+            throw new BuildException("Unable to find input for '"
+                                     + request.getPrompt() + "'");
         }
         request.setInput(o.toString());
         if (!request.isInputValid()) {
             throw new BuildException("Found invalid input " + o
-                                     + " for \'" + request.getPrompt() + "\'");
+                                     + " for '" + request.getPrompt() + "'");
         }
     }
 
diff --git a/src/main/org/apache/tools/ant/listener/CommonsLoggingListener.java b/src/main/org/apache/tools/ant/listener/CommonsLoggingListener.java
index 87b09d6..96fd274 100644
--- a/src/main/org/apache/tools/ant/listener/CommonsLoggingListener.java
+++ b/src/main/org/apache/tools/ant/listener/CommonsLoggingListener.java
@@ -26,6 +26,7 @@
 import org.apache.tools.ant.BuildEvent;
 import org.apache.tools.ant.BuildListener;
 import org.apache.tools.ant.BuildLogger;
+import org.apache.tools.ant.MagicNames;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.Task;
 import org.apache.tools.ant.UnknownElement;
@@ -61,11 +62,11 @@
     /**
      * name of the category under which target events are logged
      */
-    public static final String TARGET_LOG = "org.apache.tools.ant.Target";
+    public static final String TARGET_LOG = MagicNames.ANT_CORE_PACKAGE + ".Target";
     /**
      * name of the category under which project events are logged
      */
-    public static final String PROJECT_LOG = "org.apache.tools.ant.Project";
+    public static final String PROJECT_LOG = MagicNames.ANT_CORE_PACKAGE + ".Project";
 
     /**
      * Construct the listener and make sure that a LogFactory
diff --git a/src/main/org/apache/tools/ant/listener/Log4jListener.java b/src/main/org/apache/tools/ant/listener/Log4jListener.java
index 492b9c8..3720d85 100644
--- a/src/main/org/apache/tools/ant/listener/Log4jListener.java
+++ b/src/main/org/apache/tools/ant/listener/Log4jListener.java
@@ -20,6 +20,7 @@
 import org.apache.log4j.Logger;
 import org.apache.tools.ant.BuildEvent;
 import org.apache.tools.ant.BuildListener;
+import org.apache.tools.ant.MagicNames;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.Target;
 import org.apache.tools.ant.Task;
@@ -36,8 +37,10 @@
 
     /**
      * log category we log into
+     * @deprecated use MagicNames.ANT_CORE_PACKAGE
      */
-    public static final String LOG_ANT = "org.apache.tools.ant";
+    @Deprecated
+    public static final String LOG_ANT = MagicNames.ANT_CORE_PACKAGE;
 
     /**
      * Construct the listener
@@ -45,7 +48,7 @@
     public Log4jListener() {
         // trigger the log4j initialization (if at all it's not yet initialized)
         @SuppressWarnings("unused")
-        final Logger log = Logger.getLogger(LOG_ANT);
+        final Logger log = Logger.getLogger(MagicNames.ANT_CORE_PACKAGE);
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/taskdefs/Antlib.java b/src/main/org/apache/tools/ant/taskdefs/Antlib.java
index e2e3bd9..b7ac88c 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Antlib.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Antlib.java
@@ -23,8 +23,10 @@
 import java.net.URLConnection;
 import java.util.ArrayList;
 import java.util.List;
+
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.ComponentHelper;
+import org.apache.tools.ant.MagicNames;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.ProjectHelper;
 import org.apache.tools.ant.ProjectHelperRepository;
@@ -77,7 +79,7 @@
             // Should be safe to parse
             ProjectHelper parser = null;
             Object p =
-                project.getReference(ProjectHelper.PROJECTHELPER_REFERENCE);
+                project.getReference(MagicNames.REFID_PROJECT_HELPER);
             if (p instanceof ProjectHelper) {
                 parser = (ProjectHelper) p;
                 if (!parser.canParseAntlibDescriptor(antlibResource)) {
diff --git a/src/main/org/apache/tools/ant/taskdefs/BindTargets.java b/src/main/org/apache/tools/ant/taskdefs/BindTargets.java
index a9c1609..763f484 100644
--- a/src/main/org/apache/tools/ant/taskdefs/BindTargets.java
+++ b/src/main/org/apache/tools/ant/taskdefs/BindTargets.java
@@ -22,6 +22,7 @@
 import java.util.stream.Stream;
 
 import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.MagicNames;
 import org.apache.tools.ant.ProjectHelper;
 import org.apache.tools.ant.ProjectHelper.OnMissingExtensionPoint;
 import org.apache.tools.ant.Task;
@@ -72,8 +73,7 @@
         if (onMissingExtensionPoint == null) {
             onMissingExtensionPoint = OnMissingExtensionPoint.FAIL;
         }
-        final ProjectHelper helper = getProject().getReference(
-                ProjectHelper.PROJECTHELPER_REFERENCE);
+        final ProjectHelper helper = getProject().getReference(MagicNames.REFID_PROJECT_HELPER);
 
         for (String target : targets) {
             helper.getExtensionStack().add(new String[] {extensionPoint,
diff --git a/src/main/org/apache/tools/ant/taskdefs/Chmod.java b/src/main/org/apache/tools/ant/taskdefs/Chmod.java
index 4971b7a..53c232e 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Chmod.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Chmod.java
@@ -217,7 +217,7 @@
     @Override
     public void setExecutable(String e) {
         throw new BuildException(getTaskType()
-            + " doesn\'t support the executable attribute", getLocation());
+            + " doesn't support the executable attribute", getLocation());
     }
 
     /**
@@ -230,7 +230,7 @@
     @Override
     public void setCommand(Commandline cmdl) {
         throw new BuildException(getTaskType()
-            + " doesn\'t support the command attribute", getLocation());
+            + " doesn't support the command attribute", getLocation());
     }
 
     /**
@@ -242,7 +242,7 @@
     @Override
     public void setSkipEmptyFilesets(boolean skip) {
         throw new BuildException(getTaskType()
-            + " doesn\'t support the skipemptyfileset attribute", getLocation());
+            + " doesn't support the skipemptyfileset attribute", getLocation());
     }
 
     /**
@@ -254,7 +254,7 @@
     @Override
     public void setAddsourcefile(boolean b) {
         throw new BuildException(getTaskType()
-            + " doesn\'t support the addsourcefile attribute", getLocation());
+            + " doesn't support the addsourcefile attribute", getLocation());
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/taskdefs/Classloader.java b/src/main/org/apache/tools/ant/taskdefs/Classloader.java
index fbedf36..a1a2f15 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Classloader.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Classloader.java
@@ -215,7 +215,7 @@
                 if (name == null) {
                     // This allows the core loader to load optional tasks
                     // without delegating
-                    acl.addLoaderPackageRoot("org.apache.tools.ant.taskdefs.optional");
+                    acl.addLoaderPackageRoot(MagicNames.ANT_CORE_PACKAGE + ".taskdefs.optional");
                     getProject().setCoreLoader(acl);
                 }
             }
diff --git a/src/main/org/apache/tools/ant/taskdefs/DefBase.java b/src/main/org/apache/tools/ant/taskdefs/DefBase.java
index 0540f84..d694060 100644
--- a/src/main/org/apache/tools/ant/taskdefs/DefBase.java
+++ b/src/main/org/apache/tools/ant/taskdefs/DefBase.java
@@ -20,6 +20,7 @@
 
 import org.apache.tools.ant.AntClassLoader;
 import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.MagicNames;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.types.Path;
 import org.apache.tools.ant.types.Reference;
@@ -145,7 +146,7 @@
             // task we want to define will never be a Task but always
             // be wrapped into a TaskAdapter.
             ((AntClassLoader) createdLoader)
-                .addSystemPackageRoot("org.apache.tools.ant");
+                .addSystemPackageRoot(MagicNames.ANT_CORE_PACKAGE);
         }
         return createdLoader;
     }
diff --git a/src/main/org/apache/tools/ant/taskdefs/Exec.java b/src/main/org/apache/tools/ant/taskdefs/Exec.java
index e926818..8e2b5bb 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Exec.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Exec.java
@@ -64,7 +64,7 @@
             + "the Exec class");
         System.err.println("is considered to be dead code by the Ant "
             + "developers and is unmaintained.");
-        System.err.println("Don\'t use it!");
+        System.err.println("Don't use it!");
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/taskdefs/ExecuteOn.java b/src/main/org/apache/tools/ant/taskdefs/ExecuteOn.java
index 6b7f3b9..7dca1ba 100644
--- a/src/main/org/apache/tools/ant/taskdefs/ExecuteOn.java
+++ b/src/main/org/apache/tools/ant/taskdefs/ExecuteOn.java
@@ -251,7 +251,7 @@
      */
     public Commandline.Marker createSrcfile() {
         if (srcFilePos != null) {
-            throw new BuildException(getTaskType() + " doesn\'t support multiple "
+            throw new BuildException(getTaskType() + " doesn't support multiple "
                                      + "srcfile elements.", getLocation());
         }
         srcFilePos = cmdl.createMarker();
@@ -265,7 +265,7 @@
      */
     public Commandline.Marker createTargetfile() {
         if (targetFilePos != null) {
-            throw new BuildException(getTaskType() + " doesn\'t support multiple "
+            throw new BuildException(getTaskType() + " doesn't support multiple "
                                      + "targetfile elements.", getLocation());
         }
         targetFilePos = cmdl.createMarker();
diff --git a/src/main/org/apache/tools/ant/taskdefs/ImportTask.java b/src/main/org/apache/tools/ant/taskdefs/ImportTask.java
index 6045fde..79685ce 100644
--- a/src/main/org/apache/tools/ant/taskdefs/ImportTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/ImportTask.java
@@ -24,6 +24,7 @@
 import java.util.Vector;
 
 import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.MagicNames;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.ProjectHelper;
 import org.apache.tools.ant.ProjectHelperRepository;
@@ -138,8 +139,7 @@
             throw new BuildException("import only allowed as a top-level task");
         }
 
-        ProjectHelper helper = getProject().
-                    getReference(ProjectHelper.PROJECTHELPER_REFERENCE);
+        ProjectHelper helper = getProject().getReference(MagicNames.REFID_PROJECT_HELPER);
 
         if (helper == null) {
             // this happens if the projecthelper was not registered with the project.
@@ -216,12 +216,12 @@
             // push current stacks into the sub helper
             subHelper.getImportStack().addAll(helper.getImportStack());
             subHelper.getExtensionStack().addAll(helper.getExtensionStack());
-            getProject().addReference(ProjectHelper.PROJECTHELPER_REFERENCE, subHelper);
+            getProject().addReference(MagicNames.REFID_PROJECT_HELPER, subHelper);
 
             subHelper.parse(getProject(), importedResource);
 
             // push back the stack from the sub helper to the main one
-            getProject().addReference(ProjectHelper.PROJECTHELPER_REFERENCE, helper);
+            getProject().addReference(MagicNames.REFID_PROJECT_HELPER, helper);
             helper.getImportStack().clear();
             helper.getImportStack().addAll(subHelper.getImportStack());
             helper.getExtensionStack().clear();
diff --git a/src/main/org/apache/tools/ant/taskdefs/Javadoc.java b/src/main/org/apache/tools/ant/taskdefs/Javadoc.java
index d768088..acc3a65 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Javadoc.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Javadoc.java
@@ -2499,7 +2499,7 @@
                 // Path.list does it for us.
                 sp.createPathElement().setLocation(baseDir);
             } else {
-                log(baseDir + " doesn\'t contain any packages, dropping it.",
+                log(baseDir + " doesn't contain any packages, dropping it.",
                     Project.MSG_VERBOSE);
             }
         }
diff --git a/src/main/org/apache/tools/ant/taskdefs/Jikes.java b/src/main/org/apache/tools/ant/taskdefs/Jikes.java
index f428a4d..8498527 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Jikes.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Jikes.java
@@ -62,7 +62,7 @@
             + "the Jikes class");
         System.err.println("is considered to be dead code by the Ant "
             + "developers and is unmaintained.");
-        System.err.println("Don\'t use it!");
+        System.err.println("Don't use it!");
 
         this.jop = jop;
         this.command = command;
diff --git a/src/main/org/apache/tools/ant/taskdefs/JikesOutputParser.java b/src/main/org/apache/tools/ant/taskdefs/JikesOutputParser.java
index 8c83994..c53f907 100644
--- a/src/main/org/apache/tools/ant/taskdefs/JikesOutputParser.java
+++ b/src/main/org/apache/tools/ant/taskdefs/JikesOutputParser.java
@@ -100,7 +100,7 @@
             + "JikesOutputParser class");
         System.err.println("is considered to be dead code by the Ant "
             + "developers and is unmaintained.");
-        System.err.println("Don\'t use it!");
+        System.err.println("Don't use it!");
 
         this.task = task;
         this.emacsMode = emacsMode;
diff --git a/src/main/org/apache/tools/ant/taskdefs/Patch.java b/src/main/org/apache/tools/ant/taskdefs/Patch.java
index 2709e4b..5aca771 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Patch.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Patch.java
@@ -74,7 +74,7 @@
      */
     public void setPatchfile(File file) {
         if (!file.exists()) {
-            throw new BuildException("patchfile " + file + " doesn\'t exist",
+            throw new BuildException("patchfile " + file + " doesn't exist",
                                      getLocation());
         }
         cmd.createArgument().setValue("-i");
diff --git a/src/main/org/apache/tools/ant/taskdefs/ResourceCount.java b/src/main/org/apache/tools/ant/taskdefs/ResourceCount.java
index a0e022f..d087844 100644
--- a/src/main/org/apache/tools/ant/taskdefs/ResourceCount.java
+++ b/src/main/org/apache/tools/ant/taskdefs/ResourceCount.java
@@ -61,7 +61,7 @@
     public void setRefid(Reference r) {
         Object o = r.getReferencedObject();
         if (!(o instanceof ResourceCollection)) {
-            throw new BuildException("%s doesn\'t denote a ResourceCollection",
+            throw new BuildException("%s doesn't denote a ResourceCollection",
                 r.getRefId());
         }
         add((ResourceCollection) o);
diff --git a/src/main/org/apache/tools/ant/taskdefs/TaskOutputStream.java b/src/main/org/apache/tools/ant/taskdefs/TaskOutputStream.java
index 211f235..1ac8e7e 100644
--- a/src/main/org/apache/tools/ant/taskdefs/TaskOutputStream.java
+++ b/src/main/org/apache/tools/ant/taskdefs/TaskOutputStream.java
@@ -55,7 +55,7 @@
             + "TaskOutputStream class");
         System.err.println("is considered to be dead code by the Ant "
             + "developers and is unmaintained.");
-        System.err.println("Don\'t use it!");
+        System.err.println("Don't use it!");
 
         this.task = task;
         this.msgOutputLevel = msgOutputLevel;
diff --git a/src/main/org/apache/tools/ant/taskdefs/condition/Os.java b/src/main/org/apache/tools/ant/taskdefs/condition/Os.java
index f22dccb..03bb15c 100644
--- a/src/main/org/apache/tools/ant/taskdefs/condition/Os.java
+++ b/src/main/org/apache/tools/ant/taskdefs/condition/Os.java
@@ -316,7 +316,7 @@
                         break;
                     default:
                         throw new BuildException(
-                                "Don\'t know how to detect os family \""
+                                "Don't know how to detect os family \""
                                         + family + "\"");
                 }
             }
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java b/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java
index ce95bd4..8ce2a17 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java
@@ -273,7 +273,7 @@
             log("Found " + f.getAbsolutePath(), Project.MSG_DEBUG);
             createClasspath().setLocation(f);
         } else {
-            log("Couldn\'t find " + resource, Project.MSG_VERBOSE);
+            log("Couldn't find " + resource, Project.MSG_VERBOSE);
         }
     }
 
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/RenameExtensions.java b/src/main/org/apache/tools/ant/taskdefs/optional/RenameExtensions.java
index e921fc0..34a4f38 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/RenameExtensions.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/RenameExtensions.java
@@ -122,7 +122,7 @@
         log("          from=\"*" + fromExtension + "\"", Project.MSG_INFO);
         log("          to=\"*" + toExtension + "\" />", Project.MSG_INFO);
         log("</move>", Project.MSG_INFO);
-        log("using the same patterns on <fileset> as you\'ve used here",
+        log("using the same patterns on <fileset> as you've used here",
             Project.MSG_INFO);
 
         Move move = new Move();
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/jdepend/JDependTask.java b/src/main/org/apache/tools/ant/taskdefs/optional/jdepend/JDependTask.java
index 19479d5..ef9d021 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/jdepend/JDependTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/jdepend/JDependTask.java
@@ -376,7 +376,7 @@
         File f = LoaderUtils.getResourceSource(getClass().getClassLoader(),
                                                resource);
         if (f == null) {
-            log("Couldn\'t find " + resource, Project.MSG_DEBUG);
+            log("Couldn't find " + resource, Project.MSG_DEBUG);
         } else {
             log("Found " + f.getAbsolutePath(), Project.MSG_DEBUG);
             runtimeClasses.createPath().setLocation(f);
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/jsp/compilers/JspCompilerAdapterFactory.java b/src/main/org/apache/tools/ant/taskdefs/optional/jsp/compilers/JspCompilerAdapterFactory.java
index cbdaa8c..dd2b34f 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/jsp/compilers/JspCompilerAdapterFactory.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/jsp/compilers/JspCompilerAdapterFactory.java
@@ -107,9 +107,9 @@
             Class<? extends JspCompilerAdapter> c = classloader.findClass(className).asSubclass(JspCompilerAdapter.class);
             return c.newInstance();
         } catch (ClassNotFoundException cnfe) {
-            throw new BuildException(className + " can\'t be found.", cnfe);
+            throw new BuildException(className + " can't be found.", cnfe);
         } catch (ClassCastException cce) {
-            throw new BuildException(className + " isn\'t the classname of "
+            throw new BuildException(className + " isn't the classname of "
                                      + "a compiler adapter.", cce);
         } catch (Throwable t) {
             // for all other possibilities
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
index 6fd7780..de5c31d 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
@@ -48,6 +48,7 @@
 
 import org.apache.tools.ant.AntClassLoader;
 import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.MagicNames;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.Task;
 import org.apache.tools.ant.taskdefs.Execute;
@@ -1838,7 +1839,7 @@
             antRuntimeClasses.createPath().setLocation(f);
             return true;
         } else {
-            log("Couldn\'t find " + resource, Project.MSG_DEBUG);
+            log("Couldn't find " + resource, Project.MSG_DEBUG);
             return false;
         }
     }
@@ -1972,7 +1973,7 @@
                 // make sure the test annotation are accepted
                 classLoader.addSystemPackageRoot("org.junit");
                 // will cause trouble in JDK 1.1 if omitted
-                classLoader.addSystemPackageRoot("org.apache.tools.ant");
+                classLoader.addSystemPackageRoot(MagicNames.ANT_CORE_PACKAGE);
             }
         }
     }
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java
index 4370bdc..971fa7d 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java
@@ -49,6 +49,7 @@
 import junit.framework.TestSuite;
 
 import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.MagicNames;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.types.Permissions;
 import org.apache.tools.ant.util.FileUtils;
@@ -85,7 +86,7 @@
             "junit.textui.TestRunner",
             "java.lang.reflect.Method.invoke(",
             "sun.reflect.",
-            "org.apache.tools.ant.",
+            MagicNames.ANT_CORE_PACKAGE + ".",
             // JUnit 4 support:
             "org.junit.",
             "junit.framework.JUnit4TestAdapter",
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/unix/AbstractAccessTask.java b/src/main/org/apache/tools/ant/taskdefs/optional/unix/AbstractAccessTask.java
index 8f32adf..cf666dc 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/unix/AbstractAccessTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/unix/AbstractAccessTask.java
@@ -72,7 +72,7 @@
     @Override
     public void setCommand(Commandline cmdl) {
         throw new BuildException(getTaskType()
-                                 + " doesn\'t support the command attribute",
+                                 + " doesn't support the command attribute",
                                  getLocation());
     }
 
@@ -84,7 +84,7 @@
      */
     @Override
     public void setSkipEmptyFilesets(boolean skip) {
-        throw new BuildException(getTaskType() + " doesn\'t support the "
+        throw new BuildException(getTaskType() + " doesn't support the "
                                  + "skipemptyfileset attribute",
                                  getLocation());
     }
@@ -98,7 +98,7 @@
     @Override
     public void setAddsourcefile(boolean b) {
         throw new BuildException(getTaskType()
-            + " doesn\'t support the addsourcefile attribute", getLocation());
+            + " doesn't support the addsourcefile attribute", getLocation());
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/unix/Chgrp.java b/src/main/org/apache/tools/ant/taskdefs/optional/unix/Chgrp.java
index 2a14c6b..61b7b35 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/unix/Chgrp.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/unix/Chgrp.java
@@ -80,7 +80,7 @@
     @Override
     public void setExecutable(String e) {
         throw new BuildException(getTaskType()
-                                 + " doesn\'t support the executable"
+                                 + " doesn't support the executable"
                                  + " attribute", getLocation());
     }
 }
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/unix/Chown.java b/src/main/org/apache/tools/ant/taskdefs/optional/unix/Chown.java
index 482c2d9..41745ec 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/unix/Chown.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/unix/Chown.java
@@ -80,7 +80,7 @@
     @Override
     public void setExecutable(String e) {
         throw new BuildException(getTaskType()
-                                 + " doesn\'t support the executable"
+                                 + " doesn't support the executable"
                                  + " attribute", getLocation());
     }
 }
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/windows/Attrib.java b/src/main/org/apache/tools/ant/taskdefs/optional/windows/Attrib.java
index 50a2fbb..8b89413 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/windows/Attrib.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/windows/Attrib.java
@@ -111,7 +111,7 @@
     @Override
     public void setExecutable(String e) {
         throw new BuildException(getTaskType()
-            + " doesn\'t support the executable attribute", getLocation());
+            + " doesn't support the executable attribute", getLocation());
     }
 
     /**
@@ -122,7 +122,7 @@
      */
     public void setCommand(String e) {
         throw new BuildException(getTaskType()
-            + " doesn\'t support the command attribute", getLocation());
+            + " doesn't support the command attribute", getLocation());
     }
 
     /**
@@ -134,7 +134,7 @@
     @Override
     public void setAddsourcefile(boolean b) {
         throw new BuildException(getTaskType()
-            + " doesn\'t support the addsourcefile attribute", getLocation());
+            + " doesn't support the addsourcefile attribute", getLocation());
     }
 
     /**
@@ -145,7 +145,7 @@
      */
     @Override
     public void setSkipEmptyFilesets(boolean skip) {
-        throw new BuildException(getTaskType() + " doesn\'t support the "
+        throw new BuildException(getTaskType() + " doesn't support the "
                                  + "skipemptyfileset attribute",
                                  getLocation());
     }
@@ -159,7 +159,7 @@
     @Override
     public void setParallel(boolean parallel) {
         throw new BuildException(getTaskType()
-                                 + " doesn\'t support the parallel attribute",
+                                 + " doesn't support the parallel attribute",
                                  getLocation());
     }
 
@@ -172,7 +172,7 @@
     @Override
     public void setMaxParallel(int max) {
         throw new BuildException(getTaskType()
-                                 + " doesn\'t support the maxparallel attribute",
+                                 + " doesn't support the maxparallel attribute",
                                  getLocation());
     }
 
diff --git a/src/main/org/apache/tools/ant/types/Commandline.java b/src/main/org/apache/tools/ant/types/Commandline.java
index 86aa4d6..ade5cd0 100644
--- a/src/main/org/apache/tools/ant/types/Commandline.java
+++ b/src/main/org/apache/tools/ant/types/Commandline.java
@@ -436,13 +436,13 @@
      */
     public static String quoteArgument(String argument) {
         if (argument.contains("\"")) {
-            if (argument.contains("\'")) {
-                throw new BuildException("Can\'t handle single and double"
+            if (argument.contains("'")) {
+                throw new BuildException("Can't handle single and double"
                         + " quotes in same argument");
             }
             return '\'' + argument + '\'';
         }
-        if (argument.contains("\'") || argument.contains(" ")
+        if (argument.contains("'") || argument.contains(" ")
                 // WIN9x uses a bat file for executing commands
                 || (IS_WIN_9X && argument.contains(";"))) {
             return '\"' + argument + '\"';
@@ -490,7 +490,7 @@
         final int inQuote = 1;
         final int inDoubleQuote = 2;
         int state = normal;
-        final StringTokenizer tok = new StringTokenizer(toProcess, "\"\' ", true);
+        final StringTokenizer tok = new StringTokenizer(toProcess, "\"' ", true);
         final ArrayList<String> result = new ArrayList<>();
         final StringBuilder current = new StringBuilder();
         boolean lastTokenHasBeenQuoted = false;
@@ -499,7 +499,7 @@
             String nextTok = tok.nextToken();
             switch (state) {
             case inQuote:
-                if ("\'".equals(nextTok)) {
+                if ("'".equals(nextTok)) {
                     lastTokenHasBeenQuoted = true;
                     state = normal;
                 } else {
@@ -515,7 +515,7 @@
                 }
                 break;
             default:
-                if ("\'".equals(nextTok)) {
+                if ("'".equals(nextTok)) {
                     state = inQuote;
                 } else if ("\"".equals(nextTok)) {
                     state = inDoubleQuote;
@@ -648,7 +648,7 @@
         if (args == null || args.length == 0) {
             return "";
         }
-        StringBuilder buf = new StringBuilder("Executing \'").append(args[0]).append("\'");
+        StringBuilder buf = new StringBuilder("Executing '").append(args[0]).append("'");
         if (args.length > 1) {
             buf.append(" with ");
             buf.append(describeArguments(args, 1));
@@ -686,7 +686,7 @@
         StringBuilder buf = new StringBuilder();
         buf.append(String.format("argument%s:%n", args.length > offset ? "s" : ""));
         for (int i = offset; i < args.length; i++) {
-            buf.append(String.format("\'%s\'%n", args[i]));
+            buf.append(String.format("'%s'%n", args[i]));
         }
         buf.append(DISCLAIMER);
         return buf.toString();
diff --git a/src/main/org/apache/tools/ant/types/DataType.java b/src/main/org/apache/tools/ant/types/DataType.java
index 1e4245b..bac304c 100644
--- a/src/main/org/apache/tools/ant/types/DataType.java
+++ b/src/main/org/apache/tools/ant/types/DataType.java
@@ -278,7 +278,7 @@
                         + " is not a subclass of "
                         + displayName(requiredClass),
                 Project.MSG_VERBOSE);
-        throw new BuildException(ref.getRefId() + " doesn\'t denote a " + dataTypeName);
+        throw new BuildException(ref.getRefId() + " doesn't denote a " + dataTypeName);
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/types/Description.java b/src/main/org/apache/tools/ant/types/Description.java
index b3c2698..2446d41 100644
--- a/src/main/org/apache/tools/ant/types/Description.java
+++ b/src/main/org/apache/tools/ant/types/Description.java
@@ -21,6 +21,7 @@
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
+import org.apache.tools.ant.MagicNames;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.ProjectHelper;
 import org.apache.tools.ant.Target;
@@ -52,7 +53,7 @@
      */
     public void addText(String text) {
 
-        ProjectHelper ph = getProject().getReference(ProjectHelper.PROJECTHELPER_REFERENCE);
+        ProjectHelper ph = getProject().getReference(MagicNames.REFID_PROJECT_HELPER);
         if (!(ph instanceof ProjectHelperImpl)) {
             // New behavior for delayed task creation. Description
             // will be evaluated in Project.getDescription()
diff --git a/src/main/org/apache/tools/ant/types/TarFileSet.java b/src/main/org/apache/tools/ant/types/TarFileSet.java
index 2d08502..a95fca1 100644
--- a/src/main/org/apache/tools/ant/types/TarFileSet.java
+++ b/src/main/org/apache/tools/ant/types/TarFileSet.java
@@ -219,7 +219,7 @@
             configureFileSet(zfs);
             return zfs;
         }
-        String msg = getRefid().getRefId() + " doesn\'t denote a tarfileset or a fileset";
+        String msg = getRefid().getRefId() + " doesn't denote a tarfileset or a fileset";
         throw new BuildException(msg);
     }
 
diff --git a/src/main/org/apache/tools/ant/types/ZipFileSet.java b/src/main/org/apache/tools/ant/types/ZipFileSet.java
index a73a2e9..b49177f 100644
--- a/src/main/org/apache/tools/ant/types/ZipFileSet.java
+++ b/src/main/org/apache/tools/ant/types/ZipFileSet.java
@@ -83,7 +83,7 @@
             configureFileSet(zfs);
             return zfs;
         }
-        String msg = getRefid().getRefId() + " doesn\'t denote a zipfileset or a fileset";
+        String msg = getRefid().getRefId() + " doesn't denote a zipfileset or a fileset";
         throw new BuildException(msg);
     }
 
diff --git a/src/main/org/apache/tools/ant/types/resources/FileResource.java b/src/main/org/apache/tools/ant/types/resources/FileResource.java
index d8d604c..17ed7cc 100644
--- a/src/main/org/apache/tools/ant/types/resources/FileResource.java
+++ b/src/main/org/apache/tools/ant/types/resources/FileResource.java
@@ -255,7 +255,8 @@
     private OutputStream getOutputStream(boolean append) throws IOException {
         File f = getNotNullFile();
         if (f.exists()) {
-            if (f.isFile() && !append) {
+            if (Files.isSymbolicLink(f.toPath()) && f.isFile() && !append) {
+                // https://bz.apache.org/bugzilla/show_bug.cgi?id=624
                 f.delete();
             }
         } else {
diff --git a/src/main/org/apache/tools/ant/types/selectors/modifiedselector/ModifiedSelector.java b/src/main/org/apache/tools/ant/types/selectors/modifiedselector/ModifiedSelector.java
index 93fe23b..34d2f40 100644
--- a/src/main/org/apache/tools/ant/types/selectors/modifiedselector/ModifiedSelector.java
+++ b/src/main/org/apache/tools/ant/types/selectors/modifiedselector/ModifiedSelector.java
@@ -54,16 +54,16 @@
  * <p>The ModifiedSelector is implemented as a <b>CoreSelector</b> and uses default
  * values for all its attributes therefore the simplest example is</p><pre>
  *   &lt;copy todir="dest"&gt;
- *       &lt;filelist dir="src"&gt;
+ *       &lt;fileset dir="src"&gt;
  *           &lt;modified/&gt;
- *       &lt;/filelist&gt;
+ *       &lt;/fileset&gt;
  *   &lt;/copy&gt;
  * </pre>
  *
  * <p>The same example rewritten as CoreSelector with setting the all values
  * (same as defaults are) would be</p><pre>
  *   &lt;copy todir="dest"&gt;
- *       &lt;filelist dir="src"&gt;
+ *       &lt;fileset dir="src"&gt;
  *           &lt;modified update="true"
  *                     cache="propertyfile"
  *                     algorithm="digest"
@@ -71,13 +71,13 @@
  *               &lt;param name="cache.cachefile"     value="cache.properties"/&gt;
  *               &lt;param name="algorithm.algorithm" value="MD5"/&gt;
  *           &lt;/modified&gt;
- *       &lt;/filelist&gt;
+ *       &lt;/fileset&gt;
  *   &lt;/copy&gt;
  * </pre>
  *
  * <p>And the same rewritten as CustomSelector would be</p><pre>
  *   &lt;copy todir="dest"&gt;
- *       &lt;filelist dir="src"&gt;
+ *       &lt;fileset dir="src"&gt;
  *           &lt;custom class="org.apache.tools.ant.type.selectors.ModifiedSelector"&gt;
  *               &lt;param name="update"     value="true"/&gt;
  *               &lt;param name="cache"      value="propertyfile"/&gt;
@@ -86,7 +86,7 @@
  *               &lt;param name="cache.cachefile"     value="cache.properties"/&gt;
  *               &lt;param name="algorithm.algorithm" value="MD5"/&gt;
  *           &lt;/custom&gt;
- *       &lt;/filelist&gt;
+ *       &lt;/fileset&gt;
  *   &lt;/copy&gt;
  * </pre>
  *
diff --git a/src/main/org/apache/tools/ant/util/ResourceUtils.java b/src/main/org/apache/tools/ant/util/ResourceUtils.java
index 0e20388..748fb17 100644
--- a/src/main/org/apache/tools/ant/util/ResourceUtils.java
+++ b/src/main/org/apache/tools/ant/util/ResourceUtils.java
@@ -191,7 +191,7 @@
                     Project.MSG_VERBOSE);
             }
             if (targetnames == null || targetnames.length == 0) {
-                logTo.log(sr + " skipped - don\'t know how to handle it",
+                logTo.log(sr + " skipped - don't know how to handle it",
                       Project.MSG_VERBOSE);
                 continue;
             }
@@ -211,7 +211,7 @@
                 result.add(sr);
                 final Resource t = r.iterator().next();
                 logTo.log(sr.getName() + " added as " + t.getName()
-                    + (t.isExists() ? " is outdated." : " doesn\'t exist."),
+                    + (t.isExists() ? " is outdated." : " doesn't exist."),
                     Project.MSG_VERBOSE);
                 continue;
             }
diff --git a/src/main/org/apache/tools/ant/util/ScriptFixBSFPath.java b/src/main/org/apache/tools/ant/util/ScriptFixBSFPath.java
index 2647136..6e4db9c 100644
--- a/src/main/org/apache/tools/ant/util/ScriptFixBSFPath.java
+++ b/src/main/org/apache/tools/ant/util/ScriptFixBSFPath.java
@@ -23,6 +23,7 @@
 
 import org.apache.tools.ant.AntClassLoader;
 import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.MagicNames;
 
 
 /**
@@ -31,7 +32,7 @@
  */
 public class ScriptFixBSFPath {
     private static final String UTIL_OPTIONAL_PACKAGE
-        = "org.apache.tools.ant.util.optional";
+        = MagicNames.ANT_CORE_PACKAGE + ".util.optional";
 
     private static final String BSF_PACKAGE = "org.apache.bsf";
     private static final String BSF_MANAGER = BSF_PACKAGE + ".BSFManager";
diff --git a/src/main/org/apache/tools/ant/util/ScriptRunnerCreator.java b/src/main/org/apache/tools/ant/util/ScriptRunnerCreator.java
index 51c0f33..a53be42 100644
--- a/src/main/org/apache/tools/ant/util/ScriptRunnerCreator.java
+++ b/src/main/org/apache/tools/ant/util/ScriptRunnerCreator.java
@@ -18,6 +18,7 @@
 package org.apache.tools.ant.util;
 
 import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.MagicNames;
 import org.apache.tools.ant.Project;
 
 /**
@@ -26,8 +27,7 @@
  */
 public class ScriptRunnerCreator {
     private static final String AUTO = "auto";
-    private static final String OATAU = "org.apache.tools.ant.util";
-    private static final String UTIL_OPT = OATAU + ".optional";
+    private static final String UTIL_OPT = MagicNames.ANT_CORE_PACKAGE + ".util.optional";
 
     private static final String BSF = "bsf";
     private static final String BSF_PACK = "org.apache.bsf";
diff --git a/src/main/org/apache/tools/zip/ExtraFieldUtils.java b/src/main/org/apache/tools/zip/ExtraFieldUtils.java
index 3af5c01..f024ab0 100644
--- a/src/main/org/apache/tools/zip/ExtraFieldUtils.java
+++ b/src/main/org/apache/tools/zip/ExtraFieldUtils.java
@@ -63,11 +63,11 @@
             ZipExtraField ze = (ZipExtraField) c.newInstance();
             implementations.put(ze.getHeaderId(), c);
         } catch (ClassCastException cc) {
-            throw new RuntimeException(c + " doesn\'t implement ZipExtraField"); //NOSONAR
+            throw new RuntimeException(c + " doesn't implement ZipExtraField"); //NOSONAR
         } catch (InstantiationException ie) {
             throw new RuntimeException(c + " is not a concrete class"); //NOSONAR
         } catch (IllegalAccessException ie) {
-            throw new RuntimeException(c + "\'s no-arg constructor is not public"); //NOSONAR
+            throw new RuntimeException(c + "'s no-arg constructor is not public"); //NOSONAR
         }
     }
 
diff --git a/src/tests/junit/org/apache/tools/ant/IntrospectionHelperTest.java b/src/tests/junit/org/apache/tools/ant/IntrospectionHelperTest.java
index 5387f84..63746a3 100644
--- a/src/tests/junit/org/apache/tools/ant/IntrospectionHelperTest.java
+++ b/src/tests/junit/org/apache/tools/ant/IntrospectionHelperTest.java
@@ -103,7 +103,7 @@
     public void testSupportsCharacters() {
         assertTrue("IntrospectionHelperTest supports addText", ih.supportsCharacters());
         ih = IntrospectionHelper.getHelper(String.class);
-        assertFalse("String doesn\'t support addText", ih.supportsCharacters());
+        assertFalse("String doesn't support addText", ih.supportsCharacters());
     }
 
     public void addText(String text) {
diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/AntTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/AntTest.java
index 8f0a0f9..577571f 100644
--- a/src/tests/junit/org/apache/tools/ant/taskdefs/AntTest.java
+++ b/src/tests/junit/org/apache/tools/ant/taskdefs/AntTest.java
@@ -235,7 +235,7 @@
                 buildRule.getProject().resolveFile("ant/test3.log"),
                 buildRule.getProject().resolveFile("ant/test4.log"));
 
-        logFiles.forEach(logFile -> assertFalse(logFile.getName() + " doesn\'t exist",
+        logFiles.forEach(logFile -> assertFalse(logFile.getName() + " doesn't exist",
                 logFile.exists()));
 
         buildRule.executeTarget("testLogfilePlacement");
@@ -461,7 +461,7 @@
             }
             if (error == null) {
                 try {
-                    String msg = "Call " + calls + " refid=\'" + keys[calls] + "\'";
+                    String msg = "Call " + calls + " refid='" + keys[calls] + "'";
                     if (value == null) {
                         Object o = event.getProject().getReference(keys[calls]);
                         if (expectSame[calls++]) {
diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/FixCrLfTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/FixCrLfTest.java
index 0688e05..8ca75a4 100644
--- a/src/tests/junit/org/apache/tools/ant/taskdefs/FixCrLfTest.java
+++ b/src/tests/junit/org/apache/tools/ant/taskdefs/FixCrLfTest.java
@@ -232,7 +232,7 @@
     // not used, but public so theoretically must remain for BC?
     @Deprecated
     public void assertEqualContent(File expect, File result) throws AssertionFailedError, IOException {
-        assertTrue("Expected file " + result + " doesn\'t exist", result.exists());
+        assertTrue("Expected file " + result + " doesn't exist", result.exists());
 
         try (InputStream inExpect = new BufferedInputStream(Files.newInputStream(expect.toPath()));
              InputStream inResult = new BufferedInputStream(Files.newInputStream(result.toPath()))) {
diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/JavaTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/JavaTest.java
index 9fa0912..1265461 100644
--- a/src/tests/junit/org/apache/tools/ant/taskdefs/JavaTest.java
+++ b/src/tests/junit/org/apache/tools/ant/taskdefs/JavaTest.java
@@ -31,6 +31,7 @@
 
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.BuildFileRule;
+import org.apache.tools.ant.MagicNames;
 import org.apache.tools.ant.input.DefaultInputHandler;
 import org.apache.tools.ant.taskdefs.condition.JavaVersion;
 import org.apache.tools.ant.util.FileUtils;
@@ -346,7 +347,7 @@
 
         Java java = new Java();
         java.setProject(buildRule.getProject());
-        java.setClassname("org.apache.tools.ant.Main");
+        java.setClassname(MagicNames.ANT_CORE_PACKAGE + ".Main");
         java.setArgs("-version");
         java.setFork(true);
         // note: due to the missing classpath it will fail, but the input stream
diff --git a/src/tests/junit/org/apache/tools/ant/types/CommandlineTest.java b/src/tests/junit/org/apache/tools/ant/types/CommandlineTest.java
index 4124b91..e5821ea 100644
--- a/src/tests/junit/org/apache/tools/ant/types/CommandlineTest.java
+++ b/src/tests/junit/org/apache/tools/ant/types/CommandlineTest.java
@@ -48,7 +48,7 @@
         s = Commandline.translateCommandline(null);
         assertEquals("null", 0, s.length);
 
-        s = Commandline.translateCommandline("1 \'2\' 3");
+        s = Commandline.translateCommandline("1 '2' 3");
         assertEquals("Simple case with single quotes", 3, s.length);
         assertEquals("Single quotes have been stripped", "2", s[1]);
 
@@ -60,15 +60,15 @@
         assertEquals("Case with double quotes and whitespace", 3, s.length);
         assertEquals("Double quotes stripped, space included", "2 3", s[1]);
 
-        s = Commandline.translateCommandline("1 \"2\'3\" 4");
+        s = Commandline.translateCommandline("1 \"2'3\" 4");
         assertEquals("Case with double quotes around single quote", 3, s.length);
-        assertEquals("Double quotes stripped, single quote included", "2\'3", s[1]);
+        assertEquals("Double quotes stripped, single quote included", "2'3", s[1]);
 
-        s = Commandline.translateCommandline("1 \'2 3\' 4");
+        s = Commandline.translateCommandline("1 '2 3' 4");
         assertEquals("Case with single quotes and whitespace", 3, s.length);
         assertEquals("Single quotes stripped, space included", "2 3", s[1]);
 
-        s = Commandline.translateCommandline("1 \'2\"3\' 4");
+        s = Commandline.translateCommandline("1 '2\"3' 4");
         assertEquals("Case with single quotes around double quote", 3, s.length);
         assertEquals("Single quotes stripped, double quote included", "2\"3", s[1]);
 
@@ -93,15 +93,15 @@
         assertEquals("Doublequoted null arg", 1, s.length);
         assertEquals("Doublequoted null arg", "", s[0]);
 
-        s = Commandline.translateCommandline("\'\' a");
+        s = Commandline.translateCommandline("'' a");
         assertEquals("Singlequoted null arg prepend", 2, s.length);
         assertEquals("Singlequoted null arg prepend", "", s[0]);
         assertEquals("Singlequoted null arg prepend", "a", s[1]);
-        s = Commandline.translateCommandline("a \'\'");
+        s = Commandline.translateCommandline("a ''");
         assertEquals("Singlequoted null arg append", 2, s.length);
         assertEquals("Singlequoted null arg append", "a", s[0]);
         assertEquals("Singlequoted null arg append", "", s[1]);
-        s = Commandline.translateCommandline("\'\'");
+        s = Commandline.translateCommandline("''");
         assertEquals("Singlequoted null arg", 1, s.length);
         assertEquals("Singlequoted null arg", "", s[0]);
     }
@@ -112,8 +112,8 @@
     @Test
     public void testTokenizerUnbalancedSingleQuote() {
         thrown.expect(BuildException.class);
-        thrown.expectMessage("unbalanced quotes in a \'b c");
-        Commandline.translateCommandline("a \'b c");
+        thrown.expectMessage("unbalanced quotes in a 'b c");
+        Commandline.translateCommandline("a 'b c");
     }
 
     /**
@@ -132,8 +132,8 @@
         assertEquals("", Commandline.toString(null));
         assertEquals("1 2 3", Commandline.toString(new String[] {"1", "2", "3"}));
         assertEquals("1 \"2 3\"", Commandline.toString(new String[] {"1", "2 3"}));
-        assertEquals("1 \"2\'3\"", Commandline.toString(new String[] {"1", "2\'3"}));
-        assertEquals("1 \'2\"3\'", Commandline.toString(new String[] {"1", "2\"3"}));
+        assertEquals("1 \"2'3\"", Commandline.toString(new String[] {"1", "2'3"}));
+        assertEquals("1 '2\"3'", Commandline.toString(new String[] {"1", "2\"3"}));
     }
 
     @Test
diff --git a/src/tests/junit/org/apache/tools/ant/types/DirSetTest.java b/src/tests/junit/org/apache/tools/ant/types/DirSetTest.java
index 0d73edc..a2cd368 100644
--- a/src/tests/junit/org/apache/tools/ant/types/DirSetTest.java
+++ b/src/tests/junit/org/apache/tools/ant/types/DirSetTest.java
@@ -51,7 +51,7 @@
     @Test
     public void testDirSetFromFileSet() {
         thrown.expect(BuildException.class);
-        thrown.expectMessage("dummy doesn\'t denote a DirSet");
+        thrown.expectMessage("dummy doesn't denote a DirSet");
         fs.setProject(getProject());
         getProject().addReference("dummy", fs);
         ds.setRefid(new Reference(getProject(), "dummy"));
@@ -61,7 +61,7 @@
     @Test
     public void testFileSetFromDirSet() {
         thrown.expect(BuildException.class);
-        thrown.expectMessage("dummy doesn\'t denote a FileSet");
+        thrown.expectMessage("dummy doesn't denote a FileSet");
         getProject().addReference("dummy", ds);
         fs.setRefid(new Reference(getProject(), "dummy"));
         fs.getDir(getProject());
diff --git a/src/tests/junit/org/apache/tools/ant/types/EnumeratedAttributeTest.java b/src/tests/junit/org/apache/tools/ant/types/EnumeratedAttributeTest.java
index f5e89dd..2fb965e 100644
--- a/src/tests/junit/org/apache/tools/ant/types/EnumeratedAttributeTest.java
+++ b/src/tests/junit/org/apache/tools/ant/types/EnumeratedAttributeTest.java
@@ -42,8 +42,8 @@
             assertFalse(value.toUpperCase() + " is in TestNormal",
                     t1.containsValue(value.toUpperCase()));
         }
-        assertFalse("TestNormal doesn\'t have \"d\" attribute", t1.containsValue("d"));
-        assertFalse("TestNull doesn\'t have \"d\" attribute and doesn\'t die",
+        assertFalse("TestNormal doesn't have \"d\" attribute", t1.containsValue("d"));
+        assertFalse("TestNull doesn't have \"d\" attribute and doesn't die",
                 (new TestNull()).containsValue("d"));
     }
 
diff --git a/src/tests/junit/org/apache/tools/ant/types/PathTest.java b/src/tests/junit/org/apache/tools/ant/types/PathTest.java
index 5fae6bb..47ad498 100644
--- a/src/tests/junit/org/apache/tools/ant/types/PathTest.java
+++ b/src/tests/junit/org/apache/tools/ant/types/PathTest.java
@@ -128,7 +128,7 @@
         String[] l = p.list();
         if (isUnixStyle) {
             assertEquals("no drives on Unix", 2, l.length);
-            assertThat("c resolved relative to project\'s basedir",
+            assertThat("c resolved relative to project's basedir",
                    l[0], endsWith("/c"));
             assertEquals("/test", l[1]);
         } else if (isNetWare) {
@@ -146,10 +146,10 @@
         String[] l = p.list();
         if (isUnixStyle) {
             assertEquals("no drives on Unix", 4, l.length);
-            assertThat("c resolved relative to project\'s basedir",
+            assertThat("c resolved relative to project's basedir",
                    l[0], endsWith("/c"));
             assertEquals("/test", l[1]);
-            assertThat("d resolved relative to project\'s basedir",
+            assertThat("d resolved relative to project's basedir",
                    l[2], endsWith("/d"));
             assertEquals("/programs", l[3]);
         } else if (isNetWare) {
@@ -169,7 +169,7 @@
         String[] l = p.list();
         if (isUnixStyle) {
             assertEquals("no drives on Unix", 2, l.length);
-            assertThat("c resolved relative to project\'s basedir",
+            assertThat("c resolved relative to project's basedir",
                    l[0], endsWith("/c"));
             assertEquals("/test", l[1]);
         } else if (isNetWare) {
@@ -187,10 +187,10 @@
         String[] l = p.list();
         if (isUnixStyle) {
             assertEquals("no drives on Unix", 4, l.length);
-            assertThat("c resolved relative to project\'s basedir",
+            assertThat("c resolved relative to project's basedir",
                    l[0], endsWith("/c"));
             assertEquals("/test", l[1]);
-            assertThat("d resolved relative to project\'s basedir",
+            assertThat("d resolved relative to project's basedir",
                    l[2], endsWith("/d"));
             assertEquals("/programs", l[3]);
         } else if (isNetWare) {
@@ -211,7 +211,7 @@
         String[] l = p.list();
         if (isUnixStyle) {
             assertEquals("no drives on Unix", 2, l.length);
-            assertThat("sys resolved relative to project\'s basedir",
+            assertThat("sys resolved relative to project's basedir",
                    l[0], endsWith("/sys"));
             assertEquals("/test", l[1]);
         } else if (isNetWare) {
@@ -219,9 +219,9 @@
             assertEquals("volumes on NetWare", 1, l.length);
         } else {
             assertEquals("no multiple character-length volumes on Windows", 2, l.length);
-            assertThat("sys resolved relative to project\'s basedir",
+            assertThat("sys resolved relative to project's basedir",
                    l[0], endsWith("\\sys"));
-            assertThat("test resolved relative to project\'s basedir",
+            assertThat("test resolved relative to project's basedir",
                    l[1], endsWith("\\test"));
         }
     }
@@ -233,10 +233,10 @@
         String[] l = p.list();
         if (isUnixStyle) {
             assertEquals("no drives on Unix", 4, l.length);
-            assertThat("sys resolved relative to project\'s basedir",
+            assertThat("sys resolved relative to project's basedir",
                    l[0], endsWith("/sys"));
             assertEquals("/test", l[1]);
-            assertThat("dev resolved relative to project\'s basedir",
+            assertThat("dev resolved relative to project's basedir",
                    l[2], endsWith("/dev"));
             assertEquals("/temp", l[3]);
         } else if (isNetWare) {
@@ -245,13 +245,13 @@
             assertEquals("dev:\\temp", l[1].toLowerCase(Locale.US));
         } else {
             assertEquals("no multiple character-length volumes on Windows", 4, l.length);
-            assertThat("sys resolved relative to project\'s basedir",
+            assertThat("sys resolved relative to project's basedir",
                    l[0], endsWith("\\sys"));
-            assertThat("test resolved relative to project\'s basedir",
+            assertThat("test resolved relative to project's basedir",
                    l[1], endsWith("\\test"));
-            assertThat("dev resolved relative to project\'s basedir",
+            assertThat("dev resolved relative to project's basedir",
                    l[2], endsWith("\\dev"));
-            assertThat("temp resolved relative to project\'s basedir",
+            assertThat("temp resolved relative to project's basedir",
                    l[3], endsWith("\\temp"));
         }
     }
@@ -263,7 +263,7 @@
         String[] l = p.list();
         if (isUnixStyle) {
             assertEquals("no drives on Unix", 2, l.length);
-            assertThat("sys resolved relative to project\'s basedir",
+            assertThat("sys resolved relative to project's basedir",
                    l[0], endsWith("/sys"));
             assertEquals("/test", l[1]);
         } else if (isNetWare) {
@@ -271,9 +271,9 @@
             assertEquals("sys:\\test", l[0].toLowerCase(Locale.US));
         } else {
             assertEquals("no multiple character-length volumes on Windows", 2, l.length);
-            assertThat("sys resolved relative to project\'s basedir",
+            assertThat("sys resolved relative to project's basedir",
                    l[0], endsWith("\\sys"));
-            assertThat("test resolved relative to project\'s basedir",
+            assertThat("test resolved relative to project's basedir",
                    l[1], endsWith("\\test"));
         }
     }
@@ -285,10 +285,10 @@
         String[] l = p.list();
         if (isUnixStyle) {
             assertEquals("no drives on Unix", 4, l.length);
-            assertThat("sys resolved relative to project\'s basedir",
+            assertThat("sys resolved relative to project's basedir",
                    l[0], endsWith("/sys"));
             assertEquals("/test", l[1]);
-            assertThat("dev resolved relative to project\'s basedir",
+            assertThat("dev resolved relative to project's basedir",
                    l[2], endsWith("/dev"));
             assertEquals("/temp", l[3]);
         } else if (isNetWare) {
@@ -297,13 +297,13 @@
             assertEquals("dev:\\temp", l[1].toLowerCase(Locale.US));
         } else {
             assertEquals("no multiple character-length volumes on Windows", 4, l.length);
-            assertThat("sys resolved relative to project\'s basedir",
+            assertThat("sys resolved relative to project's basedir",
                    l[0], endsWith("\\sys"));
-            assertThat("test resolved relative to project\'s basedir",
+            assertThat("test resolved relative to project's basedir",
                    l[1], endsWith("\\test"));
-            assertThat("dev resolved relative to project\'s basedir",
+            assertThat("dev resolved relative to project's basedir",
                    l[2], endsWith("\\dev"));
-            assertThat("temp resolved relative to project\'s basedir",
+            assertThat("temp resolved relative to project's basedir",
                    l[3], endsWith("\\temp"));
          }
     }
@@ -317,7 +317,7 @@
         String[] l = p.list();
         if (isUnixStyle) {
             assertEquals("no drives on Unix", 3, l.length);
-            assertThat("sys resolved relative to project\'s basedir",
+            assertThat("sys resolved relative to project's basedir",
                    l[0], endsWith("/SYS"));
             assertEquals("/JAVA/lib/rt.jar", l[1]);
             assertEquals("/JAVA/lib/classes.zip", l[2]);
@@ -327,11 +327,11 @@
             assertEquals("sys:\\java\\lib\\classes.zip", l[1].toLowerCase(Locale.US));
         } else {
             assertEquals("no multiple character-length volumes on Windows", 3, l.length);
-            assertThat("sys resolved relative to project\'s basedir",
+            assertThat("sys resolved relative to project's basedir",
                    l[0], endsWith("\\SYS"));
-            assertThat("java/lib/rt.jar resolved relative to project\'s basedir",
+            assertThat("java/lib/rt.jar resolved relative to project's basedir",
                    l[1], endsWith("\\JAVA\\lib\\rt.jar"));
-            assertThat("java/lib/classes.zip resolved relative to project\'s basedir",
+            assertThat("java/lib/classes.zip resolved relative to project's basedir",
                    l[2], endsWith("\\JAVA\\lib\\classes.zip"));
         }
     }
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 d2ea122..da46520 100644
--- a/src/tests/junit/org/apache/tools/ant/util/FileUtilsTest.java
+++ b/src/tests/junit/org/apache/tools/ant/util/FileUtilsTest.java
@@ -458,10 +458,10 @@
         assertTrue("Non existing files",
                 getFileUtils().contentEquals(new File(ROOT, "foo"),
                         new File(ROOT, "bar")));
-        assertFalse("One exists, the other one doesn\'t",
+        assertFalse("One exists, the other one doesn't",
                 getFileUtils().contentEquals(new File(ROOT, "foo"),
                         new File(ROOT, "build.xml")));
-        assertFalse("Don\'t compare directories",
+        assertFalse("Don't compare directories",
                 getFileUtils().contentEquals(new File(ROOT, "src"),
                         new File(ROOT, "src")));
         assertTrue("File equals itself",
diff --git a/src/tests/junit/org/apache/tools/ant/util/GlobPatternMapperTest.java b/src/tests/junit/org/apache/tools/ant/util/GlobPatternMapperTest.java
index 2c55d69..eb9dc3a 100644
--- a/src/tests/junit/org/apache/tools/ant/util/GlobPatternMapperTest.java
+++ b/src/tests/junit/org/apache/tools/ant/util/GlobPatternMapperTest.java
@@ -42,7 +42,7 @@
     public void testNoPatternAtAll() {
         m.setFrom("foobar");
         m.setTo("baz");
-        assertNull("Shouldn\'t match foobar", m.mapFileName("plonk"));
+        assertNull("Shouldn't match foobar", m.mapFileName("plonk"));
         String[] result = m.mapFileName("foobar");
         assertNotNull("Should match foobar", result);
         assertEquals("only one result for foobar", 1, result.length);
@@ -53,7 +53,7 @@
     public void testPostfixOnly() {
         m.setFrom("*foo");
         m.setTo("*plonk");
-        assertNull("Shouldn\'t match *foo", m.mapFileName("bar.baz"));
+        assertNull("Shouldn't match *foo", m.mapFileName("bar.baz"));
         String[] result = m.mapFileName("bar.foo");
         assertNotNull("Should match *.foo", result);
         assertEquals("only one result for bar.foo", 1, result.length);
@@ -69,7 +69,7 @@
     public void testPrefixOnly() {
         m.setFrom("foo*");
         m.setTo("plonk*");
-        assertNull("Shouldn\'t match foo*", m.mapFileName("bar.baz"));
+        assertNull("Shouldn't match foo*", m.mapFileName("bar.baz"));
         String[] result = m.mapFileName("foo.bar");
         assertNotNull("Should match foo*", result);
         assertEquals("only one result for foo.bar", 1, result.length);
@@ -85,7 +85,7 @@
     public void testPreAndPostfix() {
         m.setFrom("foo*bar");
         m.setTo("plonk*pling");
-        assertNull("Shouldn\'t match foo*bar", m.mapFileName("bar.baz"));
+        assertNull("Shouldn't match foo*bar", m.mapFileName("bar.baz"));
         String[] result = m.mapFileName("foo.bar");
         assertNotNull("Should match foo*bar", result);
         assertEquals("only one result for foo.bar", 1, result.length);
diff --git a/src/tests/junit/org/apache/tools/ant/util/regexp/RegexpMatcherTest.java b/src/tests/junit/org/apache/tools/ant/util/regexp/RegexpMatcherTest.java
index 25be592..c7b4a08 100644
--- a/src/tests/junit/org/apache/tools/ant/util/regexp/RegexpMatcherTest.java
+++ b/src/tests/junit/org/apache/tools/ant/util/regexp/RegexpMatcherTest.java
@@ -53,26 +53,26 @@
         reg.setPattern("aaaa");
         assertTrue("aaaa should match itself", reg.matches("aaaa"));
         assertTrue("aaaa should match xaaaa", reg.matches("xaaaa"));
-        assertFalse("aaaa shouldn\'t match xaaa", reg.matches("xaaa"));
+        assertFalse("aaaa shouldn't match xaaa", reg.matches("xaaa"));
         reg.setPattern("^aaaa");
-        assertFalse("^aaaa shouldn\'t match xaaaa", reg.matches("xaaaa"));
+        assertFalse("^aaaa shouldn't match xaaaa", reg.matches("xaaaa"));
         assertTrue("^aaaa should match aaaax", reg.matches("aaaax"));
         reg.setPattern("aaaa$");
-        assertFalse("aaaa$ shouldn\'t match aaaax", reg.matches("aaaax"));
+        assertFalse("aaaa$ shouldn't match aaaax", reg.matches("aaaax"));
         assertTrue("aaaa$ should match xaaaa", reg.matches("xaaaa"));
         reg.setPattern("[0-9]+");
         assertTrue("[0-9]+ should match 123", reg.matches("123"));
         assertTrue("[0-9]+ should match 1", reg.matches("1"));
-        assertFalse("[0-9]+ shouldn\'t match \'\'", reg.matches(""));
-        assertFalse("[0-9]+ shouldn\'t match a", reg.matches("a"));
+        assertFalse("[0-9]+ shouldn't match ''", reg.matches(""));
+        assertFalse("[0-9]+ shouldn't match a", reg.matches("a"));
         reg.setPattern("[0-9]*");
         assertTrue("[0-9]* should match 123", reg.matches("123"));
         assertTrue("[0-9]* should match 1", reg.matches("1"));
-        assertTrue("[0-9]* should match \'\'", reg.matches(""));
+        assertTrue("[0-9]* should match ''", reg.matches(""));
         assertTrue("[0-9]* should match a", reg.matches("a"));
         reg.setPattern("([0-9]+)=\\1");
         assertTrue("([0-9]+)=\\1 should match 1=1", reg.matches("1=1"));
-        assertFalse("([0-9]+)=\\1 shouldn\'t match 1=2", reg.matches("1=2"));
+        assertFalse("([0-9]+)=\\1 shouldn't match 1=2", reg.matches("1=2"));
     }
 
     @Test