|
This patch corrects further the version of
Project.java of the antlib proposal and adds needed types to the antlib.xml
file, the equivalent of "defaults.properties" in the proposal.
Antoine
|
Index: proposal/sandbox/antlib/src/main/org/apache/tools/ant/Project.java
===================================================================
RCS file:
/home/cvspublic/ant/proposal/sandbox/antlib/src/main/org/apache/tools/ant/Project.java,v
retrieving revision 1.5
diff -u -r1.5 Project.java
--- proposal/sandbox/antlib/src/main/org/apache/tools/ant/Project.java 1 Apr
2003 11:35:06 -0000 1.5
+++ proposal/sandbox/antlib/src/main/org/apache/tools/ant/Project.java 2 Apr
2003 20:14:01 -0000
@@ -70,6 +70,7 @@
import org.apache.tools.ant.types.FilterSetCollection;
import org.apache.tools.ant.util.FileUtils;
import org.apache.tools.ant.util.LazyHashtable;
+import org.apache.tools.ant.util.JavaEnvUtils;
import org.apache.tools.ant.types.Path;
import org.apache.tools.ant.taskdefs.Antlib;
import org.apache.tools.ant.input.InputHandler;
@@ -133,6 +134,13 @@
private static String javaVersion;
/**
+ * The class name of the Ant class loader to use for
+ * JDK 1.2 and above
+ */
+ private static final String ANTCLASSLOADER_JDK12
+ = "org.apache.tools.ant.loader.AntClassLoader2";
+
+ /**
* Description of the Field
*/
public final static String JAVA_1_0 = "1.0";
@@ -462,6 +470,47 @@
}
}
+
+ /**
+ * Factory method to create a class loader for loading classes
+ *
+ * @return an appropriate classloader
+ */
+ private AntClassLoader createClassLoader() {
+ AntClassLoader loader = null;
+ if (!JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_1)) {
+ 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);
+ }
+ }
+
+ if (loader == null) {
+ loader = new AntClassLoader();
+ }
+
+ loader.setProject(this);
+ return loader;
+ }
+
+ /**
+ * Factory method to create a class loader for loading classes from
+ * a given path
+ *
+ * @param path the path from whcih clases are to be loaded.
+ *
+ * @return an appropriate classloader
+ */
+ public AntClassLoader createClassLoader(Path path) {
+ AntClassLoader loader = createClassLoader();
+ loader.setClassPath(path);
+ return loader;
+ }
/**
* Sets the coreLoader attribute of the Project object
Index: proposal/sandbox/antlib/src/main/org/apache/tools/ant/antlib.xml
===================================================================
RCS file:
/home/cvspublic/ant/proposal/sandbox/antlib/src/main/org/apache/tools/ant/antlib.xml,v
retrieving revision 1.1
diff -u -r1.1 antlib.xml
--- proposal/sandbox/antlib/src/main/org/apache/tools/ant/antlib.xml 2 Mar
2002 22:21:19 -0000 1.1
+++ proposal/sandbox/antlib/src/main/org/apache/tools/ant/antlib.xml 2 Apr
2003 20:14:04 -0000
@@ -122,9 +122,17 @@
<data-type name="patternset" class="org.apache.tools.ant.types.PatternSet"/>
<data-type name="mapper" class="org.apache.tools.ant.types.Mapper"/>
<data-type name="filterset" class="org.apache.tools.ant.types.FilterSet"/>
+ <data-type name="filterchain" class="org.apache.tools.ant.types.FilterChain"
/>
+ <data-type name="filterreader"
class="org.apache.tools.ant.types.AntFilterReader" />
<data-type name="description"
class="org.apache.tools.ant.types.Description"/>
<data-type name="substitution"
class="org.apache.tools.ant.types.Substitution"/>
<data-type name="regexp"
class="org.apache.tools.ant.types.RegularExpression"/>
+ <data-type name="selector"
class="org.apache.tools.ant.types.selectors.SelectSelector"/>
+ <data-type name="zipfileset" class="org.apache.tools.ant.types.ZipFileSet"/>
+ <data-type name="xmlcatalog" class="org.apache.tools.ant.types.XMLCatalog" />
+ <data-type name="extensionSet"
class="org.apache.tools.ant.taskdefs.optional.extension.ExtensionSet" />
+ <data-type name="extension"
class="org.apache.tools.ant.taskdefs.optional.extension.ExtensionAdapter" />
+ <data-type name="libfileset"
class="org.apache.tools.ant.taskdefs.optional.extension.LibFileSet" />
<!-- deprecated ant tasks (kept for back compatibility) -->
