Browse Source

Merge pull request #132 from twogee/magic-names-redux

More MagicNames
master
Stefan Bodewig GitHub 4 years ago
parent
commit
c8ea918a7b
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 67 additions and 38 deletions
  1. +3
    -3
      src/main/org/apache/tools/ant/ComponentHelper.java
  2. +2
    -3
      src/main/org/apache/tools/ant/DefaultDefinitions.java
  3. +8
    -1
      src/main/org/apache/tools/ant/MagicNames.java
  4. +15
    -4
      src/main/org/apache/tools/ant/ProjectHelper.java
  5. +6
    -6
      src/main/org/apache/tools/ant/ProjectHelperRepository.java
  6. +1
    -1
      src/main/org/apache/tools/ant/helper/ProjectHelper2.java
  7. +3
    -2
      src/main/org/apache/tools/ant/listener/CommonsLoggingListener.java
  8. +5
    -2
      src/main/org/apache/tools/ant/listener/Log4jListener.java
  9. +3
    -1
      src/main/org/apache/tools/ant/taskdefs/Antlib.java
  10. +2
    -2
      src/main/org/apache/tools/ant/taskdefs/BindTargets.java
  11. +1
    -1
      src/main/org/apache/tools/ant/taskdefs/Classloader.java
  12. +2
    -1
      src/main/org/apache/tools/ant/taskdefs/DefBase.java
  13. +4
    -4
      src/main/org/apache/tools/ant/taskdefs/ImportTask.java
  14. +2
    -1
      src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
  15. +2
    -1
      src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java
  16. +2
    -1
      src/main/org/apache/tools/ant/types/Description.java
  17. +2
    -1
      src/main/org/apache/tools/ant/util/ScriptFixBSFPath.java
  18. +2
    -2
      src/main/org/apache/tools/ant/util/ScriptRunnerCreator.java
  19. +2
    -1
      src/tests/junit/org/apache/tools/ant/taskdefs/JavaTest.java

+ 3
- 3
src/main/org/apache/tools/ant/ComponentHelper.java View File

@@ -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;


+ 2
- 3
src/main/org/apache/tools/ant/DefaultDefinitions.java View File

@@ -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");
}


+ 8
- 1
src/main/org/apache/tools/ant/MagicNames.java View File

@@ -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.


+ 15
- 4
src/main/org/apache/tools/ant/ProjectHelper.java View File

@@ -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:&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 @@ 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);
}



+ 6
- 6
src/main/org/apache/tools/ant/ProjectHelperRepository.java View File

@@ -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
}


+ 1
- 1
src/main/org/apache/tools/ant/helper/ProjectHelper2.java View File

@@ -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;


+ 3
- 2
src/main/org/apache/tools/ant/listener/CommonsLoggingListener.java View File

@@ -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


+ 5
- 2
src/main/org/apache/tools/ant/listener/Log4jListener.java View File

@@ -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);
}

/**


+ 3
- 1
src/main/org/apache/tools/ant/taskdefs/Antlib.java View File

@@ -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)) {


+ 2
- 2
src/main/org/apache/tools/ant/taskdefs/BindTargets.java View File

@@ -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,


+ 1
- 1
src/main/org/apache/tools/ant/taskdefs/Classloader.java View File

@@ -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);
}
}


+ 2
- 1
src/main/org/apache/tools/ant/taskdefs/DefBase.java View File

@@ -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;
}


+ 4
- 4
src/main/org/apache/tools/ant/taskdefs/ImportTask.java View File

@@ -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();


+ 2
- 1
src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java View File

@@ -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);
}
}
}


+ 2
- 1
src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java View File

@@ -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",


+ 2
- 1
src/main/org/apache/tools/ant/types/Description.java View File

@@ -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()


+ 2
- 1
src/main/org/apache/tools/ant/util/ScriptFixBSFPath.java View File

@@ -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";


+ 2
- 2
src/main/org/apache/tools/ant/util/ScriptRunnerCreator.java View File

@@ -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";


+ 2
- 1
src/tests/junit/org/apache/tools/ant/taskdefs/JavaTest.java View File

@@ -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


Loading…
Cancel
Save