git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@276382 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -274,16 +274,14 @@ public class Project { | |||||
| */ | */ | ||||
| private AntClassLoader createClassLoader() { | private AntClassLoader createClassLoader() { | ||||
| AntClassLoader loader = null; | AntClassLoader loader = null; | ||||
| if (!JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_1)) { | |||||
| try { | |||||
| // 1.2+ - create advanced helper dynamically | |||||
| Class loaderClass | |||||
| try { | |||||
| // 1.2+ - create advanced helper dynamically | |||||
| Class loaderClass | |||||
| = Class.forName(ANTCLASSLOADER_JDK12); | = Class.forName(ANTCLASSLOADER_JDK12); | ||||
| loader = (AntClassLoader) loaderClass.newInstance(); | |||||
| } catch (Exception e) { | |||||
| log("Unable to create Class Loader: " | |||||
| + e.getMessage(), Project.MSG_DEBUG); | |||||
| } | |||||
| loader = (AntClassLoader) loaderClass.newInstance(); | |||||
| } catch (Exception e) { | |||||
| log("Unable to create Class Loader: " | |||||
| + e.getMessage(), Project.MSG_DEBUG); | |||||
| } | } | ||||
| if (loader == null) { | if (loader == null) { | ||||
| @@ -265,10 +265,6 @@ public class GenerateKey extends Task { | |||||
| } | } | ||||
| public void execute() throws BuildException { | public void execute() throws BuildException { | ||||
| if (JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_1)) { | |||||
| throw new BuildException("The genkey task is only available on JDK" | |||||
| + " versions 1.2 or greater"); | |||||
| } | |||||
| if (null == alias) { | if (null == alias) { | ||||
| throw new BuildException("alias attribute must be set"); | throw new BuildException("alias attribute must be set"); | ||||
| @@ -288,9 +288,7 @@ public class Get extends Task { | |||||
| * @param v "true" to enable file time fetching | * @param v "true" to enable file time fetching | ||||
| */ | */ | ||||
| public void setUseTimestamp(boolean v) { | public void setUseTimestamp(boolean v) { | ||||
| if (!JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_1)) { | |||||
| useTimestamp = v; | |||||
| } | |||||
| useTimestamp = v; | |||||
| } | } | ||||
| @@ -271,6 +271,9 @@ public class Javah extends Task { | |||||
| classpath = classpath.concatSystemClasspath("ignore"); | classpath = classpath.concatSystemClasspath("ignore"); | ||||
| } | } | ||||
| /* unused. | |||||
| TODO: If anyone cannot come up with a reason for this, lets delete it | |||||
| String compiler = getProject().getProperty("build.compiler"); | String compiler = getProject().getProperty("build.compiler"); | ||||
| if (compiler == null) { | if (compiler == null) { | ||||
| if (!JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_1) | if (!JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_1) | ||||
| @@ -280,7 +283,7 @@ public class Javah extends Task { | |||||
| compiler = "classic"; | compiler = "classic"; | ||||
| } | } | ||||
| } | } | ||||
| */ | |||||
| doClassicCompile(); | doClassicCompile(); | ||||
| } | } | ||||
| @@ -229,13 +229,6 @@ public class SetProxy extends Task { | |||||
| sysprops.remove("java.net.socks.password"); | sysprops.remove("java.net.socks.password"); | ||||
| } | } | ||||
| } | } | ||||
| //for Java1.1 we need to tell the system that the settings are new | |||||
| if (settingsChanged | |||||
| && JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_1)) { | |||||
| legacyResetProxySettingsCall(enablingProxy); | |||||
| } | |||||
| } | } | ||||
| /** | /** | ||||
| @@ -248,33 +241,6 @@ public class SetProxy extends Task { | |||||
| Project.MSG_VERBOSE); | Project.MSG_VERBOSE); | ||||
| } | } | ||||
| /** | |||||
| * make a call to sun.net.www.http.HttpClient.resetProperties(); | |||||
| * this is only needed for java 1.1; reflection is used to stop the compiler | |||||
| * whining, and in case cleanroom JVMs dont have the class. | |||||
| * @return true if we did something | |||||
| */ | |||||
| protected boolean legacyResetProxySettingsCall(boolean setProxy) { | |||||
| System.getProperties().put("http.proxySet", new Boolean(setProxy).toString()); | |||||
| try { | |||||
| Class c = Class.forName("sun.net.www.http.HttpClient"); | |||||
| Method reset = c.getMethod("resetProperties", null); | |||||
| reset.invoke(null, null); | |||||
| return true; | |||||
| } catch (ClassNotFoundException cnfe) { | |||||
| return false; | |||||
| } catch (NoSuchMethodException e) { | |||||
| return false; | |||||
| } catch (IllegalAccessException e) { | |||||
| return false; | |||||
| } catch (InvocationTargetException e) { | |||||
| return false; | |||||
| } | |||||
| } | |||||
| /** | /** | ||||
| * Does the work. | * Does the work. | ||||
| * | * | ||||
| @@ -147,15 +147,8 @@ public abstract class DefaultRmicAdapter implements RmicAdapter { | |||||
| cmd.createArgument().setFile(attributes.getBase()); | cmd.createArgument().setFile(attributes.getBase()); | ||||
| if (attributes.getExtdirs() != null) { | if (attributes.getExtdirs() != null) { | ||||
| if (JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_1)) { | |||||
| /* | |||||
| * XXX - This doesn't mix very well with build.systemclasspath, | |||||
| */ | |||||
| classpath.addExtdirs(attributes.getExtdirs()); | |||||
| } else { | |||||
| cmd.createArgument().setValue("-extdirs"); | |||||
| cmd.createArgument().setPath(attributes.getExtdirs()); | |||||
| } | |||||
| cmd.createArgument().setValue("-extdirs"); | |||||
| cmd.createArgument().setPath(attributes.getExtdirs()); | |||||
| } | } | ||||
| cmd.createArgument().setValue("-classpath"); | cmd.createArgument().setValue("-classpath"); | ||||
| @@ -18,64 +18,27 @@ | |||||
| package org.apache.tools.ant.util; | package org.apache.tools.ant.util; | ||||
| import org.apache.tools.ant.BuildException; | import org.apache.tools.ant.BuildException; | ||||
| import org.apache.tools.ant.util.optional.WeakishReference12; | |||||
| import java.lang.reflect.Constructor; | import java.lang.reflect.Constructor; | ||||
| /** | /** | ||||
| * this is a weak reference on java1.2 and up, a hard | |||||
| * reference on java1.1 | |||||
| * this is a weak reference on java1.2 and up, i.e. all | |||||
| * platforms Ant1.7 supports | |||||
| * @since ant1.6 | * @since ant1.6 | ||||
| */ | */ | ||||
| public abstract class WeakishReference { | public abstract class WeakishReference { | ||||
| private static Constructor referenceConstructor; | |||||
| private final static String WEAK_REFERENCE_NAME | |||||
| = "org.apache.tools.ant.util.optional.WeakishReference12"; | |||||
| /** | /** | ||||
| * create the appropriate type of reference for the java version | * create the appropriate type of reference for the java version | ||||
| * @param object | * @param object | ||||
| * @return reference to the Object. | * @return reference to the Object. | ||||
| */ | */ | ||||
| public static WeakishReference createReference(Object object) { | public static WeakishReference createReference(Object object) { | ||||
| if (referenceConstructor == null) { | |||||
| createReferenceConstructor(); | |||||
| } | |||||
| try { | |||||
| return (WeakishReference) referenceConstructor | |||||
| .newInstance(new Object[]{object}); | |||||
| } catch (Exception e) { | |||||
| throw new BuildException("while creating a weakish reference", e); | |||||
| } | |||||
| return new WeakishReference12(object); | |||||
| } | } | ||||
| /** | |||||
| * create the appropriate constructor method for the | |||||
| */ | |||||
| private static void createReferenceConstructor() { | |||||
| Class[] ctor = new Class[]{Object.class}; | |||||
| try { | |||||
| referenceConstructor = HardReference.class.getConstructor(ctor); | |||||
| } catch (NoSuchMethodException e) { | |||||
| //deep trouble here | |||||
| throw new BuildException("when creating a Hard Reference constructor", e); | |||||
| } | |||||
| if (!JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_1)) { | |||||
| //create a weak ref constructor. If this fails we have that hard one anyway | |||||
| try { | |||||
| Class clazz = Class.forName(WEAK_REFERENCE_NAME); | |||||
| referenceConstructor = clazz.getConstructor(ctor); | |||||
| } catch (ClassNotFoundException e) { | |||||
| // ignore | |||||
| } catch (NoSuchMethodException e) { | |||||
| // ignore | |||||
| } | |||||
| } | |||||
| } | |||||
| /** | /** | ||||
| * Returns this reference object's referent. If this reference object has | * Returns this reference object's referent. If this reference object has | ||||
| * been cleared, then this method returns <code>null</code>. | * been cleared, then this method returns <code>null</code>. | ||||
| @@ -86,7 +49,8 @@ public abstract class WeakishReference { | |||||
| public abstract Object get(); | public abstract Object get(); | ||||
| /** | /** | ||||
| * A hard reference for Java 1.1 | |||||
| * A hard reference for Java 1.1. | |||||
| * Hopefully nobody is using this. | |||||
| */ | */ | ||||
| public static class HardReference extends WeakishReference { | public static class HardReference extends WeakishReference { | ||||
| private Object object; | private Object object; | ||||
| @@ -37,8 +37,7 @@ public class DirectoryScannerTest extends BuildFileTest { | |||||
| public DirectoryScannerTest(String name) {super(name);} | public DirectoryScannerTest(String name) {super(name);} | ||||
| // keep track of what operating systems are supported here. | // keep track of what operating systems are supported here. | ||||
| private boolean supportsSymlinks = Os.isFamily("unix") | |||||
| && !JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_1); | |||||
| private boolean supportsSymlinks = Os.isFamily("unix"); | |||||
| public void setUp() { | public void setUp() { | ||||
| configureProject("src/etc/testcases/core/directoryscanner.xml"); | configureProject("src/etc/testcases/core/directoryscanner.xml"); | ||||