Browse Source

There may be a better way to achive a bootstrap. Later.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271778 13f79535-47bb-0310-9956-ffa450edef68
master
Conor MacNeill 23 years ago
parent
commit
0b2bea8de1
2 changed files with 276 additions and 87 deletions
  1. +229
    -74
      proposal/mutant/build/ant1compat.xml
  2. +47
    -13
      proposal/mutant/src/java/bootstrap/org/apache/ant/builder/Builder.java

+ 229
- 74
proposal/mutant/build/ant1compat.xml View File

@@ -39,6 +39,7 @@
<include name="**/*.mf"/>
<include name="org/apache/tools/ant/taskdefs/**/*.java"/>
<include name="org/apache/tools/ant/types/**/*.java"/>
<include name="org/apache/tools/ant/filters/**/*.java"/>
<exclude name="org/apache/tools/ant/types/DataType.java"/>
<include name="org/apache/tools/ant/util/**/*.java"/>
<include name="org/apache/tools/zip/**/*.java"/>
@@ -69,6 +70,198 @@
<pathelement location="${distlib.dir}/antlibs/system.jar"/>
</path>

<!--
===================================================================
Set up patternsets to be used by javac and junit to exclude
files that have dependencies that are not available
===================================================================
-->
<!-- depends on JDK version -->
<patternset id="needs.jdk1.2+">
<exclude name="${util.package}/optional/NoExitSecurityManager.java"
unless="jdk1.2+" />
<exclude name="${optional.package}/Javah.java"
unless="jdk1.2+" />
<exclude name="${optional.package}/metamata/*.java"
unless="jdk1.2+" />
<exclude name="${optional.type.package}/depend/*.java"
unless="jdk1.2+" />
<exclude name="${util.package}/depend/*.java"
unless="jdk1.2+" />
<exclude name="${optional.package}/ejb/EjbJar.java"
unless="jdk1.2+" />
<exclude name="${optional.package}/ejb/*DeploymentTool.java"
unless="jdk1.2+" />
<exclude name="${optional.package}/ejb/IPlanet*.java"
unless="jdk1.2+" />
<!-- uses the context classloader -->
<exclude name="${optional.package}/junit/JUnitClassLoaderTest.java"
/>
</patternset>
<patternset id="needs.jdk1.3+">
<exclude name="${ant.package}/taskdefs/TestProcess.java"
unless="jdk1.3+" />
</patternset>
<patternset id="needs.jdk1.4+">
<exclude name="${regexp.package}/Jdk14Regexp*.java"
unless="jdk1.4+" />
</patternset>

<!-- classes that should be present in Sun based JVMs, but not in
Kaffe for example -->
<patternset id="needs.sun.tools">
<exclude name="${optional.package}/Native2Ascii.java"
unless="sun.tools.present" />
<exclude name="${optional.package}/Javah.java"
unless="sun.tools.present" />
</patternset>
<patternset id="needs.sun.uue">
<exclude name="${ant.package}/taskdefs/email/UUMailer.java"
unless="sunuue.present" />
</patternset>
<patternset id="needs.sun.b64">
<exclude name="${ant.package}/taskdefs/Get.java"
unless="base64.present" />
</patternset>

<!-- depends on external libraries -->
<patternset id="needs.trax">
<exclude name="${optional.package}/TraXLiaison*.java"
unless="trax.present" />
<exclude name="${optional.package}/junit/XMLResultAggregator.java"
unless="trax.present" />
<exclude name="${optional.package}/junit/AggregateTransformer.java"
unless="trax.present" />
<exclude name="${optional.package}/sitraka/**"
unless="trax.present"/>
<exclude name="${optional.package}/metamata/MMetrics*"
unless="trax.present"/>
</patternset>
<patternset id="needs.xalan1">
<exclude name="${optional.package}/XalanLiaison*.java"
unless="xalan.present" />
<exclude name="${optional.package}/junit/Xalan1Executor.java"
unless="xalan.present" />
</patternset>
<patternset id="needs.xalan2">
<exclude name="${optional.package}/junit/XMLResultAggregator.java"
unless="xalan2.present" />
<exclude name="${optional.package}/junit/AggregateTransformer.java"
unless="xalan2.present" />
<exclude name="${optional.package}/junit/XalanExecutor.java"
unless="xalan2.present" />
<exclude name="${optional.package}/junit/Xalan2Executor.java"
unless="xalan2.present" />
</patternset>
<patternset id="needs.xslp">
<exclude name="${optional.package}/XslpLiaison*.java"
unless="xslp.present" />
</patternset>
<patternset id="needs.junit">
<exclude name="${optional.package}/junit/*.java" unless="junit.present" />
</patternset>
<patternset id="needs.jakarta.regexp">
<exclude name="${regexp.package}/JakartaRegexp*.java"
unless="jakarta.regexp.present" />
</patternset>
<patternset id="needs.jakarta.oro">
<exclude name="${regexp.package}/JakartaOro*.java"
unless="jakarta.oro.present" />
<exclude name="${optional.package}/perforce/*.java"
unless="jakarta.oro.present" />
<exclude name="${optional.package}/metamata/MAudit*.java"
unless="jakarta.oro.present"/>
</patternset>
<patternset id="needs.jakarta.bcel">
<exclude name="${ant.package}/filters/util/JavaClassHelper.java"
unless="bcel.present" />
<exclude name="${optional.type.package}/depend/*.java"
unless="bcel.present" />
<exclude name="${util.package}/depend/*.java"
unless="bcel.present" />
<exclude name="${optional.package}/ejb/EjbJar.java"
unless="bcel.present" />
<exclude name="${optional.package}/ejb/*DeploymentTool.java"
unless="bcel.present" />
<exclude name="${optional.package}/ejb/IPlanet*.java"
unless="bcel.present" />
</patternset>
<patternset id="needs.jakarta.log4j">
<exclude name="${ant.package}/listener/Log4jListener.java"
unless="log4j.present" />
</patternset>
<patternset id="needs.bsf">
<exclude name="${optional.package}/Script.java"
unless="bsf.present" />
</patternset>
<patternset id="needs.stylebook">
<exclude name="${optional.package}/StyleBook.java"
unless="stylebook.present" />
</patternset>
<patternset id="needs.javamail">
<exclude name="${ant.package}/taskdefs/email/MimeMailer.java"
unless="javamail.complete" />
</patternset>
<patternset id="needs.icontract">
<exclude name="${optional.package}/IContract.java"
unless="icontract.present" />
</patternset>
<patternset id="needs.netrexx">
<exclude name="${optional.package}/NetRexxC.java"
unless="netrexx.present" />
</patternset>
<patternset id="needs.weblogic.ejbc">
<exclude name="${optional.package}/ejb/Ejbc*.java"
unless="ejb.ejbc.present" />
</patternset>
<patternset id="needs.weblogic.ddcreator">
<exclude name="${optional.package}/ejb/DDCreator*.java"
unless="ejb.DDCreator.present" />
</patternset>
<patternset id="needs.weblogic.server">
<exclude name="${optional.package}/ejb/WLRun.java"
unless="ejb.wls.present" />
<exclude name="${optional.package}/ejb/WLStop.java"
unless="ejb.wls.present" />
</patternset>
<patternset id="needs.netcomponents">
<exclude name="${optional.package}/net/FTP.java"
unless="netcomp.present" />
<exclude name="${optional.package}/net/TelnetTask.java"
unless="netcomp.present" />
</patternset>
<patternset id="needs.starteam">
<exclude name="${optional.package}/scm/AntStarTeam*.java"
unless="starteam.present" />
<exclude name="${optional.package}/starteam/*.java"
unless="starteam.present" />
</patternset>
<patternset id="needs.vaj">
<exclude name="${optional.package}/ide/VAJ*.java"
unless="vaj.present" />
</patternset>
<patternset id="needs.antlr">
<exclude name="${optional.package}/ANTLR*.java" unless="antlr.present" />
</patternset>
<patternset id="needs.servletapi">
<exclude name="${optional.package}/ide/VAJ*Servlet.java"
unless="servlet.present" />
</patternset>
<patternset id="needs.jmf">
<exclude name="${optional.package}/sound/*.java" unless="jmf.present" />
</patternset>
<patternset id="needs.jdepend">
<exclude name="${optional.package}/jdepend/*" unless="jdepend.present" />
</patternset>
<patternset id="onlinetests">
<exclude name="**/GetTest.java" if="offline" />
</patternset>

<!--
===================================================================
Check to see what optional dependencies are available
===================================================================
-->
<target name="check_for_optional_packages">
<available property="jdk1.2+" classname="java.lang.ThreadLocal" />
<available property="jdk1.3+" classname="java.lang.StrictMath" />
@@ -178,12 +371,15 @@
</or>
</condition>
<condition property="ejbjar.support">
<condition property="sun.tools.present">
<and>
<isset property="bcel.present" />
<isset property="jdk1.2+" />
<available classname="sun.tools.native2ascii.Main" />
<available classname="com.sun.tools.javah.Main" />
</and>
</condition>

<available property="base64.present" classname="sun.misc.BASE64Encoder" />

</target>

<target name="ant1compat" depends="check_for_optional_packages">
@@ -199,78 +395,37 @@
srcdir="${bin.dir}/ant1src:${java.dir}/antlibs/ant1compat"
debug="${debug}">
<classpath refid="classpath"/>
<exclude name="${regexp.package}/JakartaRegexp*.java"
unless="jakarta.regexp.present" />
<exclude name="${regexp.package}/JakartaOro*.java"
unless="jakarta.oro.present" />
<exclude name="${regexp.package}/Jdk14Regexp*.java"
unless="jdk1.4+" />
<exclude name="${ant.package}/AntSecurityManager.java"
unless="jdk1.2+" />
<exclude name="${ant.package}/util/optional/NoExitSecurityManager.java"
unless="jdk1.2+" />
<exclude name="${ant.package}/listener/Log4jListener.java"
unless="log4j.present" />

<exclude name="${ant.package}/taskdefs/email/UUMailer.java" unless="sunuue.present" />
<exclude name="${ant.package}/taskdefs/email/MimeMailer.java" unless="javamail.complete" />
<patternset refid="needs.jdk1.2+" />
<patternset refid="needs.jdk1.4+" />

<exclude name="${optional.package}/IContract.java" unless="icontract.present" />
<exclude name="${optional.package}/Script.java" unless="bsf.present" />
<exclude name="${optional.package}/StyleBook.java" unless="stylebook.present" />
<exclude name="${optional.package}/NetRexxC.java" unless="netrexx.present" />
<exclude name="${optional.package}/TraXLiaison.java"
unless="trax.present" />
<exclude name="${optional.package}/XslpLiaison.java" unless="xslp.present" />
<exclude name="${optional.package}/XalanLiaison.java" unless="xalan.present" />
<exclude name="${optional.package}/ejb/Ejbc*.java" unless="ejb.ejbc.present" />
<exclude name="${optional.package}/ejb/DDCreator*.java" unless="ejb.DDCreator.present" />
<exclude name="${optional.package}/ejb/WLRun.java" unless="ejb.wls.present" />
<exclude name="${optional.package}/ejb/WLStop.java" unless="ejb.wls.present" />
<exclude name="${optional.package}/ejb/EjbJar.java" unless="ejbjar.support" />
<exclude name="${optional.package}/ejb/*DeploymentTool.java" unless="ejbjar.support" />
<exclude name="${optional.package}/ejb/IPlanet*.java" unless="ejbjar.support" />
<exclude name="${optional.package}/Javah.java" unless="jdk1.2+" />
<exclude name="${optional.package}/junit/*" unless="junit.present" />
<exclude name="${optional.package}/net/FTP.java" unless="netcomp.present" />
<exclude name="${optional.package}/net/TelnetTask.java" unless="netcomp.present" />
<exclude name="${optional.package}/scm/AntStarTeam*.java" unless="starteam.present" />
<exclude name="${optional.package}/starteam/*.java" unless="starteam.present" />
<exclude name="${optional.package}/ANTLR.java" unless="antlr.present" />
<exclude name="${optional.package}/ide/VAJ*.java" unless="vaj.present" />
<exclude name="${optional.package}/ide/VAJ*Servlet.java"
unless="servlet.present" />
<exclude name="${optional.package}/perforce/*.java" unless="jakarta.oro.present" />
<exclude name="${optional.package}/sound/*.java" unless="jmf.present" />
<exclude name="${optional.package}/junit/XMLResultAggregator.java"
unless="trax.present" />
<exclude name="${optional.package}/junit/AggregateTransformer.java"
unless="trax.present" />
<exclude name="${optional.package}/junit/XMLResultAggregator.java"
unless="xalan2.present" />
<exclude name="${optional.package}/junit/AggregateTransformer.java"
unless="xalan2.present" />
<exclude name="${optional.package}/junit/XalanExecutor.java"
unless="xalan2.present" />
<exclude name="${optional.package}/junit/Xalan2Executor.java"
unless="xalan2.present" />
<exclude name="${optional.package}/junit/Xalan1Executor.java"
unless="xalan.present" />
<exclude name="${optional.package}/jdepend/*" unless="jdepend.present" />
<exclude name="${optional.package}/sitraka/**" unless="some.regexp.support"/>
<exclude name="${optional.package}/metamata/MAudit*" unless="jakarta.oro.present"/>
<exclude name="${optional.package}/metamata/MMetrics*"
unless="trax.present"/>
<exclude name="${optional.package}/metamata/**" unless="jdk1.2+" />
<exclude name="${optional.type.package}/depend/*.java"
unless="bcel.present" />
<exclude name="${util.package}/depend/*.java"
unless="bcel.present" />
<exclude name="${optional.type.package}/depend/*.java"
unless="jdk1.2+" />
<exclude name="${util.package}/depend/*.java"
unless="jdk1.2+" />
</javac>
<patternset refid="needs.jakarta.regexp" />
<patternset refid="needs.jakarta.oro" />
<patternset refid="needs.jakarta.log4j" />
<patternset refid="needs.sun.uue" />
<patternset refid="needs.javamail" />
<patternset refid="needs.icontract" />
<patternset refid="needs.bsf" />
<patternset refid="needs.stylebook" />
<patternset refid="needs.netrexx" />
<patternset refid="needs.trax" />
<patternset refid="needs.xslp" />
<patternset refid="needs.xalan1" />
<patternset refid="needs.weblogic.ejbc" />
<patternset refid="needs.weblogic.ddcreator" />
<patternset refid="needs.weblogic.server" />
<patternset refid="needs.junit" />
<patternset refid="needs.netcomponents" />
<patternset refid="needs.starteam" />
<patternset refid="needs.antlr" />
<patternset refid="needs.vaj" />
<patternset refid="needs.servletapi" />
<patternset refid="needs.jmf" />
<patternset refid="needs.xalan2" />
<patternset refid="needs.jdepend" />
<patternset refid="needs.sun.tools" />
<patternset refid="needs.sun.b64" />
<patternset refid="needs.jakarta.bcel" />
</javac>
<copy todir="${bin.dir}/ant1compat">
<fileset dir="${bin.dir}/ant1src" excludes="**/*.java"/>
</copy>


+ 47
- 13
proposal/mutant/src/java/bootstrap/org/apache/ant/builder/Builder.java View File

@@ -76,7 +76,14 @@ public class Builder {
/** the taskdefs root */
private static final File TASKDEFS_ROOT
= new File(PACKAGE_ROOT, "taskdefs");

/** the types root */
private static final File TYPES_ROOT
= new File(PACKAGE_ROOT, "types");
/** the filters root */
private static final File FILTERS_ROOT
= new File(PACKAGE_ROOT, "filters");
/** the root forthe depend task's support classes */
private static final File DEPEND_ROOT
= new File(TASKDEFS_ROOT, "optional/depend");
@@ -99,23 +106,31 @@ public class Builder {
*/
private File[] getAnt1Files() {
List files = new ArrayList();
files.add(new File(PACKAGE_ROOT, "types/EnumeratedAttribute.java"));
files.add(new File(PACKAGE_ROOT, "types/Path.java"));
files.add(new File(PACKAGE_ROOT, "types/FileSet.java"));
files.add(new File(PACKAGE_ROOT, "types/PatternSet.java"));
files.add(new File(PACKAGE_ROOT, "types/Reference.java"));
files.add(new File(PACKAGE_ROOT, "types/FilterSet.java"));
files.add(new File(PACKAGE_ROOT, "types/FilterSetCollection.java"));
files.add(new File(PACKAGE_ROOT, "types/Mapper.java"));
files.add(new File(PACKAGE_ROOT, "types/ZipFileSet.java"));
files.add(new File(PACKAGE_ROOT, "types/ZipScanner.java"));
files.add(new File(TYPES_ROOT, "EnumeratedAttribute.java"));
files.add(new File(TYPES_ROOT, "Path.java"));
files.add(new File(TYPES_ROOT, "FileSet.java"));
files.add(new File(TYPES_ROOT, "PatternSet.java"));
files.add(new File(TYPES_ROOT, "Reference.java"));
files.add(new File(TYPES_ROOT, "FilterSet.java"));
files.add(new File(TYPES_ROOT, "FilterSetCollection.java"));
files.add(new File(TYPES_ROOT, "Mapper.java"));
files.add(new File(TYPES_ROOT, "ZipFileSet.java"));
files.add(new File(TYPES_ROOT, "ZipScanner.java"));
files.add(new File(TYPES_ROOT, "FilterChain.java"));
files.add(new File(TYPES_ROOT, "Parameter.java"));
files.add(new File(TYPES_ROOT, "Parameterizable.java"));
files.add(new File(TYPES_ROOT, "RegularExpression.java"));
files.add(new File(PACKAGE_ROOT, "util/FileNameMapper.java"));
files.add(new File(PACKAGE_ROOT, "util/FlatFileNameMapper.java"));
files.add(new File(PACKAGE_ROOT, "util/SourceFileScanner.java"));
files.add(new File(PACKAGE_ROOT, "util/IdentityMapper.java"));
files.add(new File(PACKAGE_ROOT, "util/MergingMapper.java"));
files.add(new File(PACKAGE_ROOT, "util/GlobPatternMapper.java"));
files.add(new File(PACKAGE_ROOT, "types/Commandline.java"));
files.add(new File(PACKAGE_ROOT, "util/regexp/Regexp.java"));
files.add(new File(PACKAGE_ROOT, "util/regexp/RegexpMatcher.java"));
files.add(new File(PACKAGE_ROOT, "util/regexp/RegexpFactory.java"));
files.add(new File(PACKAGE_ROOT, "util/regexp/RegexpMatcherFactory.java"));
files.add(new File(TYPES_ROOT, "Commandline.java"));
files.add(new File(PACKAGE_ROOT, "BuildException.java"));
files.add(new File(PACKAGE_ROOT, "Location.java"));
files.add(new File(PACKAGE_ROOT, "AntClassLoader.java"));
@@ -129,7 +144,7 @@ public class Builder {
files.add(new File(PACKAGE_ROOT, "util/FileUtils.java"));
files.add(new File(PACKAGE_ROOT, "defaultManifest.mf"));
files.add(new File(TASKDEFS_ROOT, "defaults.properties"));
files.add(new File(PACKAGE_ROOT, "types/defaults.properties"));
files.add(new File(TYPES_ROOT, "defaults.properties"));
files.add(new File(TASKDEFS_ROOT, "Property.java"));
files.add(new File(TASKDEFS_ROOT, "Execute.java"));
files.add(new File(TASKDEFS_ROOT, "ExecuteStreamHandler.java"));
@@ -207,6 +222,25 @@ public class Builder {
files.add(new File(TASKDEFS_ROOT, "condition/FilesMatch.java"));
files.add(new File(TASKDEFS_ROOT, "Taskdef.java"));
files.add(new File(TASKDEFS_ROOT, "Definer.java"));
files.add(new File(FILTERS_ROOT, "util/ChainReaderHelper.java"));
files.add(new File(FILTERS_ROOT, "ClassConstants.java"));
files.add(new File(FILTERS_ROOT, "ExpandProperties.java"));
files.add(new File(FILTERS_ROOT, "HeadFilter.java"));
files.add(new File(FILTERS_ROOT, "LineContains.java"));
files.add(new File(FILTERS_ROOT, "LineContainsRegExp.java"));
files.add(new File(FILTERS_ROOT, "PrefixLines.java"));
files.add(new File(FILTERS_ROOT, "ReplaceTokens.java"));
files.add(new File(FILTERS_ROOT, "StripJavaComments.java"));
files.add(new File(FILTERS_ROOT, "StripLineBreaks.java"));
files.add(new File(FILTERS_ROOT, "StripLineComments.java"));
files.add(new File(FILTERS_ROOT, "TabsToSpaces.java"));
files.add(new File(FILTERS_ROOT, "TailFilter.java"));
files.add(new File(FILTERS_ROOT, "BaseFilterReader.java"));
files.add(new File(FILTERS_ROOT, "ChainableReader.java"));
files.add(new File(TYPES_ROOT, "AntFilterReader.java"));
files.add(new File(FILTERS_ROOT, "BaseParamFilterReader.java"));
files.add(new File(FILTERS_ROOT, ".java"));
return (File[])files.toArray(new File[0]);
}



Loading…
Cancel
Save