Skip to content

Commit

Permalink
Merge pull request #111 from twogee/magic-names
Browse files Browse the repository at this point in the history
build.sysclasspath is a magic name
  • Loading branch information
bodewig authored Mar 8, 2020
2 parents 2f0e194 + 814e95b commit c37f13d
Show file tree
Hide file tree
Showing 11 changed files with 24 additions and 23 deletions.
2 changes: 1 addition & 1 deletion src/main/org/apache/tools/ant/AntClassLoader.java
Original file line number Diff line number Diff line change
Expand Up @@ -448,7 +448,7 @@ public void setThreadContextLoader() {
if (LoaderUtils.isContextLoaderAvailable()) {
savedContextLoader = LoaderUtils.getContextClassLoader();
ClassLoader loader = this;
if (project != null && "only".equals(project.getProperty("build.sysclasspath"))) {
if (project != null && "only".equals(project.getProperty(MagicNames.BUILD_SYSCLASSPATH))) {
loader = this.getClass().getClassLoader();
}
LoaderUtils.setContextClassLoader(loader);
Expand Down
2 changes: 1 addition & 1 deletion src/main/org/apache/tools/ant/ComponentHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -824,7 +824,7 @@ private synchronized void checkNamespace(String componentName) {
if (uri.isEmpty()) {
uri = ProjectHelper.ANT_CORE_URI;
}
if (!uri.startsWith(ProjectHelper.ANTLIB_URI)) {
if (!uri.startsWith(MagicNames.ANTLIB_PREFIX)) {
return; // namespace that does not contain antlib
}
if (checkedNamespaces.contains(uri)) {
Expand Down
2 changes: 1 addition & 1 deletion src/main/org/apache/tools/ant/MagicNames.java
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ private MagicNames() {
* Value: {@value}
*/
public static final String PROJECT_HELPER_SERVICE =
"META-INF/services/org.apache.tools.ant.ProjectHelper";
"META-INF/services/" + PROJECT_HELPER_CLASS;

/**
* Name of ProjectHelper reference that we add to a project.
Expand Down
4 changes: 2 additions & 2 deletions src/main/org/apache/tools/ant/ProjectHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
*/
public class ProjectHelper {
/** The URI for ant name space */
public static final String ANT_CORE_URI = "antlib:org.apache.tools.ant";
public static final String ANT_CORE_URI = MagicNames.ANTLIB_PREFIX + "org.apache.tools.ant";

/** The URI for antlib current definitions */
public static final String ANT_CURRENT_URI = "ant:current";
Expand All @@ -49,7 +49,7 @@ public class ProjectHelper {
public static final String ANT_ATTRIBUTE_URI = "ant:attribute";

/** The URI for defined types/tasks - the format is antlib:<package> */
public static final String ANTLIB_URI = "antlib:";
public static final String ANTLIB_URI = MagicNames.ANTLIB_PREFIX;

/** Polymorphic attribute */
public static final String ANT_TYPE = "ant-type";
Expand Down
6 changes: 3 additions & 3 deletions src/main/org/apache/tools/ant/taskdefs/Classloader.java
Original file line number Diff line number Diff line change
Expand Up @@ -158,10 +158,10 @@ public Path createClasspath() {
public void execute() {
try {
// Gump friendly - don't mess with the core loader if only classpath
if ("only".equals(getProject().getProperty("build.sysclasspath"))
if ("only".equals(getProject().getProperty(MagicNames.BUILD_SYSCLASSPATH))
&& (name == null || SYSTEM_LOADER_REF.equals(name))) {
log("Changing the system loader is disabled by build.sysclasspath=only",
Project.MSG_WARN);
log("Changing the system loader is disabled by "
+ MagicNames.BUILD_SYSCLASSPATH + "=only", Project.MSG_WARN);
return;
}

Expand Down
6 changes: 3 additions & 3 deletions src/main/org/apache/tools/ant/taskdefs/Definer.java
Original file line number Diff line number Diff line change
Expand Up @@ -463,12 +463,12 @@ public void setAntlib(String antlib) {
if (definerSet) {
tooManyDefinitions();
}
if (!antlib.startsWith("antlib:")) {
if (!antlib.startsWith(MagicNames.ANTLIB_PREFIX)) {
throw new BuildException(
"Invalid antlib attribute - it must start with antlib:");
"Invalid antlib attribute - it must start with " + MagicNames.ANTLIB_PREFIX);
}
setURI(antlib);
this.resource = antlib.substring("antlib:".length()).replace('.', '/')
this.resource = antlib.substring(MagicNames.ANTLIB_PREFIX.length()).replace('.', '/')
+ "/antlib.xml";
definerSet = true;
}
Expand Down
6 changes: 3 additions & 3 deletions src/main/org/apache/tools/ant/taskdefs/Javac.java
Original file line number Diff line number Diff line change
Expand Up @@ -1350,9 +1350,9 @@ protected void checkParameters() throws BuildException {
+ destDir
+ "\" does not exist or is not a directory", getLocation());
}
if (includeAntRuntime == null && getProject().getProperty("build.sysclasspath") == null) {
log(getLocation()
+ "warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds",
if (includeAntRuntime == null && getProject().getProperty(MagicNames.BUILD_SYSCLASSPATH) == null) {
log(getLocation() + "warning: 'includeantruntime' was not set, defaulting to "
+ MagicNames.BUILD_SYSCLASSPATH + "=last; set to false for repeatable builds",
Project.MSG_WARN);
}
}
Expand Down
12 changes: 6 additions & 6 deletions src/tests/junit/org/apache/tools/ant/AntClassLoaderTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ public void testJarWithManifestInDirWithSpace() {
String extjarstring = buildRule.getProject().getProperty("ext.jar");
Path myPath = new Path(buildRule.getProject());
myPath.setLocation(new File(mainjarstring));
buildRule.getProject().setUserProperty("build.sysclasspath", "ignore");
buildRule.getProject().setUserProperty(MagicNames.BUILD_SYSCLASSPATH, "ignore");
loader = buildRule.getProject().createClassLoader(myPath);
String path = loader.getClasspath();
assertEquals(mainjarstring + File.pathSeparator + extjarstring, path);
Expand All @@ -87,7 +87,7 @@ public void testJarWithManifestInNonAsciiDir() {
String extjarstring = buildRule.getProject().getProperty("ext.jar.nonascii");
Path myPath = new Path(buildRule.getProject());
myPath.setLocation(new File(mainjarstring));
buildRule.getProject().setUserProperty("build.sysclasspath", "ignore");
buildRule.getProject().setUserProperty(MagicNames.BUILD_SYSCLASSPATH, "ignore");
loader = buildRule.getProject().createClassLoader(myPath);
String path = loader.getClasspath();
assertEquals(mainjarstring + File.pathSeparator + extjarstring, path);
Expand Down Expand Up @@ -135,7 +135,7 @@ public void testGetPackage() throws Exception {
buildRule.executeTarget("prepareGetPackageTest");
Path myPath = new Path(buildRule.getProject());
myPath.setLocation(new File(buildRule.getProject().getProperty("test.jar")));
buildRule.getProject().setUserProperty("build.sysclasspath", "ignore");
buildRule.getProject().setUserProperty(MagicNames.BUILD_SYSCLASSPATH, "ignore");
loader = buildRule.getProject().createClassLoader(myPath);
assertNotNull("should find class", loader.findClass("org.example.Foo"));
assertNotNull("should find package",
Expand All @@ -148,7 +148,7 @@ public void testCodeSource() throws Exception {
Path myPath = new Path(buildRule.getProject());
File testJar = new File(buildRule.getProject().getProperty("test.jar"));
myPath.setLocation(testJar);
buildRule.getProject().setUserProperty("build.sysclasspath", "ignore");
buildRule.getProject().setUserProperty(MagicNames.BUILD_SYSCLASSPATH, "ignore");
loader = buildRule.getProject().createClassLoader(myPath);
Class<?> foo = loader.findClass("org.example.Foo");
URL codeSourceLocation =
Expand All @@ -164,7 +164,7 @@ public void testSignedJar() throws Exception {

Path myPath = new Path(buildRule.getProject());
myPath.setLocation(jar);
buildRule.getProject().setUserProperty("build.sysclasspath", "ignore");
buildRule.getProject().setUserProperty(MagicNames.BUILD_SYSCLASSPATH, "ignore");
loader = buildRule.getProject().createClassLoader(myPath);
Class<?> foo = loader.findClass("org.example.Foo");

Expand All @@ -188,7 +188,7 @@ public void testInvalidZipException() {

Path myPath = new Path(buildRule.getProject());
myPath.setLocation(jar);
buildRule.getProject().setUserProperty("build.sysclasspath", "ignore");
buildRule.getProject().setUserProperty(MagicNames.BUILD_SYSCLASSPATH, "ignore");
loader = buildRule.getProject().createClassLoader(myPath);
PrintStream sysErr = System.err;
try {
Expand Down
2 changes: 1 addition & 1 deletion src/tests/junit/org/apache/tools/ant/ExecutorTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ private Project getProject(String e, boolean f) {

private Project getProject(String e, boolean f, boolean k) {
Project p = buildRule.getProject();
p.setNewProperty("ant.executor.class", e);
p.setNewProperty(MagicNames.ANT_EXECUTOR_CLASSNAME, e);
p.setKeepGoingMode(k);
if (f) {
p.setNewProperty("failfoo", "foo");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.BuildFileRule;
import org.apache.tools.ant.MagicNames;
import org.apache.tools.ant.util.regexp.RegexpMatcherFactory;
import org.junit.After;
import org.junit.Before;
Expand Down Expand Up @@ -182,7 +183,7 @@ public void testWithRegex() {
buildRule.executeTarget("testWithRegex");
// the following line has been changed from checking ant.home to ant.version
// so the test will still work when run outside of an Ant script
assertThat(buildRule.getFullLog(), containsString("ant.version="));
assertThat(buildRule.getFullLog(), containsString(MagicNames.ANT_VERSION + "="));
}

private void testEchoPrefixVarious(String target) throws Exception {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public void setUp() {
if (System.getProperty(MagicTestNames.TEST_ROOT_DIRECTORY) != null) {
project.setBasedir(System.getProperty(MagicTestNames.TEST_ROOT_DIRECTORY));
}
project.setProperty("build.sysclasspath", "ignore");
project.setProperty(MagicNames.BUILD_SYSCLASSPATH, "ignore");
cloneVm = System.getProperty("ant.build.clonevm");
if (cloneVm != null) {
System.setProperty("ant.build.clonevm", "false");
Expand Down

0 comments on commit c37f13d

Please sign in to comment.