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