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() { | |||
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); | |||
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) { | |||
@@ -265,10 +265,6 @@ public class GenerateKey extends Task { | |||
} | |||
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) { | |||
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 | |||
*/ | |||
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"); | |||
} | |||
/* unused. | |||
TODO: If anyone cannot come up with a reason for this, lets delete it | |||
String compiler = getProject().getProperty("build.compiler"); | |||
if (compiler == null) { | |||
if (!JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_1) | |||
@@ -280,7 +283,7 @@ public class Javah extends Task { | |||
compiler = "classic"; | |||
} | |||
} | |||
*/ | |||
doClassicCompile(); | |||
} | |||
@@ -229,13 +229,6 @@ public class SetProxy extends Task { | |||
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); | |||
} | |||
/** | |||
* 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. | |||
* | |||
@@ -147,15 +147,8 @@ public abstract class DefaultRmicAdapter implements RmicAdapter { | |||
cmd.createArgument().setFile(attributes.getBase()); | |||
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"); | |||
@@ -18,64 +18,27 @@ | |||
package org.apache.tools.ant.util; | |||
import org.apache.tools.ant.BuildException; | |||
import org.apache.tools.ant.util.optional.WeakishReference12; | |||
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 | |||
*/ | |||
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 | |||
* @param object | |||
* @return reference to the 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 | |||
* been cleared, then this method returns <code>null</code>. | |||
@@ -86,7 +49,8 @@ public abstract class WeakishReference { | |||
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 { | |||
private Object object; | |||
@@ -37,8 +37,7 @@ public class DirectoryScannerTest extends BuildFileTest { | |||
public DirectoryScannerTest(String name) {super(name);} | |||
// 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() { | |||
configureProject("src/etc/testcases/core/directoryscanner.xml"); | |||