| @@ -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; | |||
| @@ -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"); | |||
| } | |||
| @@ -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. | |||
| @@ -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); | |||
| } | |||
| @@ -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<? 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 @@ 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 | |||
| } | |||
| @@ -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; | |||
| @@ -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 | |||
| @@ -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); | |||
| } | |||
| /** | |||
| @@ -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)) { | |||
| @@ -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, | |||
| @@ -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); | |||
| } | |||
| } | |||
| @@ -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; | |||
| } | |||
| @@ -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(); | |||
| @@ -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); | |||
| } | |||
| } | |||
| } | |||
| @@ -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", | |||
| @@ -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() | |||
| @@ -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"; | |||
| @@ -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"; | |||
| @@ -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 | |||