diff --git a/src/main/org/apache/tools/ant/ComponentHelper.java b/src/main/org/apache/tools/ant/ComponentHelper.java index 5d8c3db67..0011c19c8 100644 --- a/src/main/org/apache/tools/ant/ComponentHelper.java +++ b/src/main/org/apache/tools/ant/ComponentHelper.java @@ -907,9 +907,9 @@ public class ComponentHelper { } 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 5cc9bb428..d558e4361 100644 --- a/src/main/org/apache/tools/ant/DefaultDefinitions.java +++ b/src/main/org/apache/tools/ant/DefaultDefinitions.java @@ -25,7 +25,6 @@ package org.apache.tools.ant; 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 @@ public final class DefaultDefinitions { 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 29bbaeef6..5cf2fa8fa 100644 --- a/src/main/org/apache/tools/ant/MagicNames.java +++ b/src/main/org/apache/tools/ant/MagicNames.java @@ -207,11 +207,18 @@ public final class MagicNames { */ 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 a84038a88..5cc7527da 100644 --- a/src/main/org/apache/tools/ant/ProjectHelper.java +++ b/src/main/org/apache/tools/ant/ProjectHelper.java @@ -38,17 +38,22 @@ import org.xml.sax.AttributeList; */ 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:<package> */ + /** + * The URI for defined types/tasks - the format is antlib:<package> + * @deprecated use MagicNames.ANTLIB_PREFIX + */ + @Deprecated public static final String ANTLIB_URI = MagicNames.ANTLIB_PREFIX; /** Polymorphic attribute */ @@ -57,18 +62,24 @@ public class ProjectHelper { /** * 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 class ProjectHelper { 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 e87817336..8bee97f91 100644 --- a/src/main/org/apache/tools/ant/ProjectHelperRepository.java +++ b/src/main/org/apache/tools/ant/ProjectHelperRepository.java @@ -86,7 +86,7 @@ public class ProjectHelperRepository { 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 @@ public class ProjectHelperRepository { } 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 @@ public class ProjectHelperRepository { } private Constructor 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 @@ public class ProjectHelperRepository { } 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 @@ public class ProjectHelperRepository { } } 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 099cce068..f5785b137 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 @@ public class ProjectHelper2 extends ProjectHelper { } 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/listener/CommonsLoggingListener.java b/src/main/org/apache/tools/ant/listener/CommonsLoggingListener.java index 87b09d63f..96fd274fd 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.commons.logging.LogFactory; 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 @@ public class CommonsLoggingListener implements BuildListener, BuildLogger { /** * 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 492b9c886..3720d858a 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 @@ package org.apache.tools.ant.listener; 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 @@ public class Log4jListener implements BuildListener { /** * 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 class Log4jListener implements BuildListener { 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 e2e3bd96f..b7ac88c68 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.URL; 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 @@ public class Antlib extends Task implements TaskContainer { // 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 a9c160952..763f484ad 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.List; 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 @@ public class BindTargets extends Task { 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/Classloader.java b/src/main/org/apache/tools/ant/taskdefs/Classloader.java index fbedf3697..a1a2f15d3 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 @@ public class Classloader extends Task { 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 0540f849b..d69406004 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 @@ package org.apache.tools.ant.taskdefs; 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 @@ public abstract class DefBase extends AntlibDefinition { // 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/ImportTask.java b/src/main/org/apache/tools/ant/taskdefs/ImportTask.java index 6045fdeef..79685cef0 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.net.URL; 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 @@ public class ImportTask extends Task { 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 @@ public class ImportTask extends Task { // 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/optional/junit/JUnitTask.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java index 6fd77809b..d67307f7a 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 java.util.stream.Stream; 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; @@ -1972,7 +1973,7 @@ public class JUnitTask extends Task { // 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 4370bdcd6..971fa7d47 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.TestResult; 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 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR "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/types/Description.java b/src/main/org/apache/tools/ant/types/Description.java index b3c269821..2446d4111 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.List; 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 class Description extends DataType { */ 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/util/ScriptFixBSFPath.java b/src/main/org/apache/tools/ant/util/ScriptFixBSFPath.java index 264713640..6e4db9cb2 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 java.util.Map; import org.apache.tools.ant.AntClassLoader; import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.MagicNames; /** @@ -31,7 +32,7 @@ import org.apache.tools.ant.BuildException; */ 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 51c0f33df..a53be4277 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 @@ import org.apache.tools.ant.Project; */ 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/tests/junit/org/apache/tools/ant/taskdefs/JavaTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/JavaTest.java index 9fa0912f5..12654617d 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 java.io.PipedOutputStream; 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 @@ public class JavaTest { 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