Browse Source

Final move of myrmidon stuff

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@272549 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Donald 23 years ago
parent
commit
7960f35355
4 changed files with 1 additions and 1010 deletions
  1. +1
    -0
      proposal/myrmidon/README.txt
  2. +0
    -99
      proposal/myrmidon/ant1compat.xml
  3. +0
    -114
      proposal/myrmidon/antlib.xml
  4. +0
    -797
      proposal/myrmidon/build.xml

+ 1
- 0
proposal/myrmidon/README.txt View File

@@ -0,0 +1 @@
Myrmidon has moved to a new top level cvs jakarta-ant-myrmidon

+ 0
- 99
proposal/myrmidon/ant1compat.xml View File

@@ -1,99 +0,0 @@
<project name="ant1-compatibility" default="main">

<property name="ant1compat.source" value="src/ant1compat"/>

<property name="manifest.dir" value="src/manifest"/>
<property name="java.dir" value="src/java"/>

<property name="build.dir" value="build"/>
<property name="build.lib" value="${build.dir}/lib"/>
<property name="build.classes" value="${build.dir}/classes"/>

<property name="build.custom-tasks" value="build/tasks"/>

<path id="project.class.path">
<pathelement location="build/classes"/>
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
</path>

<taskdef name="antlib-jar"
classname="org.apache.myrmidon.build.AntlibJarTask">
<classpath location="${build.custom-tasks}"/>
</taskdef>

<target name="main" depends="antlib"/>

<target name="clean">
<delete dir="${build.dir}"/>
</target>

<!-- Builds the Ant1 compatibility layer -->
<target name="antlib"
description="Builds the Ant1 compatibility layer.">

<property name="ant1compat.dir" value="src/ant1compat"/>
<property name="ant1.jar" value="${ant1compat.dir}/jar/ant.jar"/>
<property name="ant1optional.jar" value="${ant1compat.dir}/jar/optional.jar"/>

<property name="ant1.package" value="org/apache/tools"/>

<property name="build.ant1classes" value="${build.dir}/ant1classes"/>

<mkdir dir="${build.ant1classes}"/>
<mkdir dir="${build.classes}"/>
<mkdir dir="${build.lib}"/>

<unjar src="${ant1.jar}" dest="${build.ant1classes}" overwrite="no"/>
<unjar src="${ant1optional.jar}" dest="${build.ant1classes}" overwrite="no"/>

<javac destdir="${build.classes}"
debug="on"
includeAntRuntime="false">
<classpath>
<path refid="project.class.path"/>
<pathelement location="${build.ant1classes}"/>
</classpath>
<src location="${ant1compat.dir}"/>
<include name="${ant1.package}/**"/>
</javac>

<patternset id="ant1.omit">
<exclude name="${ant1.package}/ant/Main.class"/>
<exclude name="${ant1.package}/ant/Task.class"/>
<exclude name="${ant1.package}/ant/BuildException.class"/>
<exclude name="${ant1.package}/ant/taskdefs/Ant.class"/>
<exclude name="${ant1.package}/ant/taskdefs/CallTarget.class"/>
<exclude name="${ant1.package}/ant/types/Path.class"/>
</patternset>

<property name="antlib.file" value="${build.lib}/ant1compat.atl"/>

<!-- Create the ant1compat antlib -->
<antlib-jar jarfile="${antlib.file}"
descriptor="${ant1compat.dir}/ant-descriptor.xml"
rolesDescriptor="${manifest.dir}/empty-roles.xml"
manifest="${ant1compat.dir}/ant1compat.mf">
<fileset dir="${build.ant1classes}">
<include name="${ant1.package}/**"/>
<patternset refid="ant1.omit"/>
</fileset>
<fileset dir="${build.classes}">
<include name="${ant1.package}/**"/>
</fileset>
</antlib-jar>
</target>

<!-- Runs the supplied build file through the XSL converter -->
<target name="ant1convert"
description="Converts an Ant1 build file into a Myrmidon build file.">
<property name="ant1file" value="build.xml"/>

<style
style="${java.dir}/org/apache/myrmidon/components/builder/ant1convert.xsl"
in="${ant1file}"
out="${ant1file}.ant"/>
</target>

</project>

+ 0
- 114
proposal/myrmidon/antlib.xml View File

@@ -1,114 +0,0 @@
<?xml version="1.0"?>

<!--
==============================================================================

Ant build file

Authors:
Peter Donald <peter@apache.org>

Legal:
Copyright (c) 2000 The Apache Software Foundation. All Rights Reserved.

==============================================================================
-->

<project default="main" basedir=".">

<property name="build.dir" value="build"/>
<property name="build.lib" value="${build.dir}/lib"/>
<property name="build.custom-tasks" value="${build.dir}/tasks"/>
<property name="build.classes" value="${build.dir}/classes"/>

<property name="src.base" value="src"/>
<property name="java.dir" value="${src.base}/java"/>
<property name="lib.dir" value="lib"/>

<!-- directory where you place generated code -->
<property name="gen.dir" value="${build.dir}/gen"/>

<property name="antlib.name" value="NONAME"/>
<property name="antlib.descriptor" value="${antlib.name}-ant-descriptor.xml"/>
<property name="antlib.role.descriptor" value="${antlib.name}-ant-roles.xml"/>

<path id="project.class.path">
<pathelement path="${java.class.path}" />
<pathelement location="../../lib/optional/junit.jar" />
<pathelement location="../xdocs/lib/xdoclet.jar" />
<pathelement location="../xdocs/lib/log4j-core.jar" />
<fileset dir="${lib.dir}" includes="**/*.jar"/>
<fileset dir="tools/lib" includes="**/*.jar"/>
<pathelement path="${build.classes}" />
<pathelement path="${build.custom-tasks}" />
</path>

<taskdef name="antlib-jar"
classname="org.apache.myrmidon.build.AntlibJarTask">
<classpath location="${build.custom-tasks}"/>
</taskdef>

<taskdef name="antlib-descriptor"
classname="org.apache.myrmidon.build.AntlibDescriptorTask">
<classpath refid="project.class.path"/>
</taskdef>

<!-- Main target -->
<target name="main" depends="antlib-jar" />

<!-- Define the pattern which specifies file to include/exclude
in this antlib. -->
<target name="antlib-definition">
<patternset id="antlib.include">
<include name="org/apache/antlib/${antlib.name}/**"/>
</patternset>
</target>

<!-- runs xdoclet if need be -->
<target name="antlib-docs"
depends="antlib-definition"
description="Generate documentation for antlib">
<antlib-descriptor libName="${antlib.name}"
destdir="${gen.dir}"
classpathref="project.class.path">
<fileset dir="${java.dir}">
<patternset refid="antlib.include"/>
</fileset>
<antdoc docsDestDir="${gen.dir}/docs"/>
</antlib-descriptor>
</target>

<!-- runs xdoclet if need be -->
<target name="antlib-descriptors"
depends="antlib-definition"
unless="antlib-descriptors.omit">
<antlib-descriptor libName="${antlib.name}"
destdir="${gen.dir}"
classpathref="project.class.path">
<fileset dir="${java.dir}">
<patternset refid="antlib.include"/>
</fileset>
<!-- antdoc docsDestDir="${gen.dir}/docs"/-->
</antlib-descriptor>

<!-- Manifest -->
<copy todir="${gen.dir}">
<fileset dir="src/manifest" includes="${antlib.name}-manifest.mf" />
</copy>
<copy file="src/manifest/empty-manifest.mf" tofile="${gen.dir}/${antlib.name}-manifest.mf"/>

</target>

<!-- Generate an "atl" jar file for this antlib. -->
<target name="antlib-jar" depends="antlib-descriptors">
<antlib-jar jarfile="${build.lib}/${antlib.name}.atl"
manifest="${gen.dir}/${antlib.name}-manifest.mf"
descriptor="${gen.dir}/${antlib.descriptor}"
rolesDescriptor="${gen.dir}/${antlib.role.descriptor}">
<fileset dir="${build.classes}">
<patternset refid="antlib.include"/>
</fileset>
</antlib-jar>
</target>

</project>

+ 0
- 797
proposal/myrmidon/build.xml View File

@@ -1,797 +0,0 @@
<?xml version="1.0"?>

<!--
==============================================================================

Ant build file

Authors:
Peter Donald <peter@apache.org>

Legal:
Copyright (c) 2000 The Apache Software Foundation. All Rights Reserved.

==============================================================================
-->

<project name="myrmidon" default="main" basedir=".">

<!--
Give user a chance to override without editing this file
(and without typing -D each time he compiles it)
-->
<property file="ant.properties"/>
<property file="${user.home}/.ant.properties"/>

<property name="name" value="myrmidon"/>
<property name="Name" value="Myrmidon"/>
<property name="version" value="0.01"/>
<property name="year" value="2000-2001"/>

<!--
these are here only for those who use jikes compiler. For other
developers this part makes no difference.
-->
<property name="build.compiler" value="jikes"/>
<property name="build.compiler.emacs" value="on"/>
<property name="build.compiler.pedantic" value="true"/>
<property name="build.compiler.depend" value="true"/>
<property name="build.compiler.fulldepend" value="true"/>

<property name="debug" value="on"/>
<property name="optimize" value="off"/>
<property name="deprecation" value="on"/>

<property name="build.dir" value="build"/>
<property name="build.lib" value="${build.dir}/lib"/>
<property name="build.bin" value="${build.dir}/bin"/>
<property name="build.ext" value="${build.dir}/ext"/>
<property name="build.src" value="${build.dir}/src"/>
<property name="build.classes" value="${build.dir}/classes"/>
<property name="build.custom-tasks" value="${build.dir}/tasks"/>

<property name="src.base" value="src"/>
<property name="manifest.dir" value="${src.base}/manifest"/>
<property name="java.dir" value="${src.base}/java"/>
<property name="script.dir" value="${src.base}/script"/>
<property name="lib.dir" value="lib"/>

<property name="dist.name" value="${Name}-${version}"/>
<property name="dist.dir" value="dist"/>
<property name="dist.bin" value="${dist.dir}/bin"/>
<property name="dist.lib" value="${dist.dir}/lib"/>
<property name="dist.ext" value="${dist.dir}/ext"/>

<property name="gen.dir" value="${build.dir}/gen"/>

<property name="test.dir" value="${build.dir}/test"/>
<property name="test.working.dir" value="${test.dir}/test"/>
<property name="test.classes" value="${test.dir}/classes"/>
<property name="test.fork" value="true"/>

<property name="constants.file" value="org/apache/myrmidon/Constants.java"/>

<path id="tools.class.path">
<fileset dir="tools/lib" includes="**/*.jar"/>
<fileset dir="../xdocs/lib" includes="*.jar" />
</path>
<path id="project.class.path">
<pathelement location="../../lib/optional/junit.jar" />
<fileset dir="${lib.dir}" includes="**/*.jar"/>
<pathelement location="${build.classes}"/>
<!-- Need this to get tools.jar in the classpath -->
<pathelement path="${java.class.path}"/>
<path refid="tools.class.path"/>
</path>

<!-- Main target -->
<target name="main" depends="dist-lite" description="Builds the distribution"/>

<!-- lets see what is available -->
<target name="check_for_optional_packages">
<available property="jdk1.2+" classname="java.lang.ThreadLocal" />
<available property="jdk1.3+" classname="java.lang.StrictMath" />
<available property="jdk1.4+" classname="java.lang.CharSequence" />
<available property="bsf.present"
classname="com.ibm.bsf.BSFManager"
classpathref="project.class.path" />
<available property="netrexx.present"
classname="netrexx.lang.Rexx"
classpathref="project.class.path" />
<available property="trax.present"
classname="javax.xml.transform.Transformer"
classpathref="project.class.path" />
<available property="xslp.present"
classname="com.kvisco.xsl.XSLProcessor"
classpathref="project.class.path" />
<available property="xalan.present"
classname="org.apache.xalan.xslt.XSLTProcessorFactory"
classpathref="project.class.path" />
<available property="xalan2.present"
classname="org.apache.xalan.transformer.TransformerImpl"
classpathref="project.class.path" />
<available property="ejb.ejbc.present"
classname="weblogic.ejbc"
classpathref="project.class.path" />
<available property="ejb.DDCreator.present"
classname="weblogic.ejb.utils.DDCreator"
classpathref="project.class.path" />
<available property="ejb.wls.present"
classname="weblogic.Server"
classpathref="project.class.path" />
<available property="junit.present"
classname="junit.framework.TestCase"
classpathref="project.class.path" />
<available property="netcomp.present"
classname="com.oroinc.net.ftp.FTPClient"
classpathref="project.class.path" />
<available property="jcifs.present"
classname="jcifs.smb.SmbFile"
classpathref="project.class.path" />
<available property="starteam.present"
classname="com.starbase.util.Platform"
classpathref="project.class.path" />
<available property="antlr.present"
classname="antlr.Tool"
classpathref="project.class.path"/>
<available property="vaj.present"
classname="com.ibm.ivj.util.base.Workspace"
classpathref="project.class.path"/>
<available property="stylebook.present"
classname="org.apache.stylebook.Engine"
classpathref="project.class.path"/>
<available property="jakarta.regexp.present"
classname="org.apache.regexp.RE"
classpathref="project.class.path"/>
<available property="jakarta.oro.present"
classname="org.apache.oro.text.regex.Perl5Matcher"
classpathref="project.class.path" />
<available property="jmf.present"
classname="javax.sound.sampled.Clip"
classpathref="project.class.path"/>
<available property="icontract.present"
classname="com.reliablesystems.iContract.IContracted"
classpathref="project.class.path"/>
<available property="jdepend.present"
classname="jdepend.framework.JDepend"
classpathref="project.class.path"/>
<available property="log4j.present"
classname="org.apache.log4j.Category"
classpathref="project.class.path"/>
<!-- this is just a way to check for a TraX implementation -->
<available property="trax.impl.present"
resource="META-INF/services/javax.xml.transform.TransformerFactory"
classpathref="project.class.path"/>
<available property="xalan.envcheck"
classname="org.apache.xalan.xslt.EnvironmentCheck"
classpathref="project.class.path" />

<available property="servlet.present"
classname="javax.servlet.Servlet"
classpathref="project.class.path"/>

<available property="adaptx.present"
classname="org.exolab.adaptx.xslt.XSLTProcessor"
classpathref="project.class.path" />
<available property="xerces.present"
classname="org.apache.xerces.parsers.SAXParser"
classpathref="project.class.path" />
<available property="bcel.present"
classname="org.apache.bcel.Constants"
classpathref="project.class.path" />

<condition property="javamail.complete">
<and>
<available classname="javax.activation.DataHandler"
classpathref="project.class.path"/>
<available classname="javax.mail.Transport"
classpathref="project.class.path"/>
</and>
</condition>

<!-- Check for Ant version 1.5 -->
<property resource="org/apache/tools/ant/version.txt"
classpath="${java.class.path}"/>

<condition property="ant1.5">
<or>
<equals arg1="${VERSION}" arg2="1.5alpha"/>
<equals arg1="${VERSION}" arg2="1.5"/>
</or>
</condition>
</target>

<!-- Compiles and installs the custom build tasks -->
<target name="custom-tasks">
<property name="custom-package-dir" value="${build.custom-tasks}/org/apache/myrmidon/build"/>
<mkdir dir="${build.custom-tasks}"/>
<javac srcdir="src/make" destdir="${build.custom-tasks}">
<classpath refid="tools.class.path"/>
</javac>

<copy file="${manifest.dir}/ant-descriptor.j" todir="${custom-package-dir}"/>
<copy file="${manifest.dir}/ant-roles.j" todir="${custom-package-dir}"/>
<!-- <copy file="${manifest.dir}/type.j" todir="${custom-package-dir}"/> -->

<taskdef name="antlib-jar" classname="org.apache.myrmidon.build.AntlibJarTask">
<classpath location="${build.custom-tasks}"/>
</taskdef>

<taskdef name="antlib-descriptor"
classname="org.apache.myrmidon.build.AntlibDescriptorTask">
<classpath>
<pathelement location="${build.custom-tasks}"/>
<path refid="tools.class.path"/>
</classpath>
</taskdef>
</target>

<!-- Compiles the source code -->
<target name="compile" depends="check_for_optional_packages, setup-patterns">

<tstamp/>
<mkdir dir="${build.src}"/>
<copy file="${java.dir}/${constants.file}" tofile="${build.src}/${constants.file}"/>
<replace file="${build.src}/${constants.file}" token="@@VERSION@@" value="${version}" />
<replace file="${build.src}/${constants.file}" token="@@DATE@@" value="${TODAY}" />

<mkdir dir="${build.classes}"/>
<javac
destdir="${build.classes}"
debug="${debug}"
deprecation="${deprecation}"
includeAntRuntime="false"
includeJavaRuntime="false">

<classpath refid="project.class.path"/>
<src location="src/todo"/>
<src path="${java.dir}" />
<!--
<exclude name="${constants.file}"/>
<src path="${build.src}" />
-->

<patternset refid="myrmidon-framework.include"/>
<patternset refid="ant1.todo.include"/>
<patternset refid="selftest.include"/>
<patternset refid="selftest-extension1.include"/>
<include name="org/apache/antlib/**"/>
</javac>

<copy todir="${build.classes}">
<fileset dir="${java.dir}">
<exclude name="**/*.java"/>
</fileset>
</copy>

</target>

<target name="setup-patterns" depends="check_for_optional_packages">

<patternset id="myrmidon-framework.include">
<include name="org/apache/myrmidon/interfaces/**" />
<include name="org/apache/myrmidon/framework/**" />
</patternset>

<property name="ant.package" value="org/apache/tools/todo"/>
<property name="taskdefs.package" value="${ant.package}/taskdefs"/>
<property name="antlib.package" value="org/apache/antlib"/>
<property name="optional.type.package" value="${ant.package}/types/optional"/>
<property name="util.package" value="${ant.package}/util"/>
<property name="regexp.package" value="${util.package}/regexp"/>

<patternset id="ant1.todo.include">
<include name="org/apache/tools/todo/**" />
<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}/listener/Log4jListener.java"
unless="log4j.present" />

<exclude name="${taskdefs.package}/IContract.java"
unless="icontract.present" />
<exclude name="${taskdefs.package}/Script.java"
unless="bsf.present" />
<exclude name="${taskdefs.package}/stylebook/StyleBook.java"
unless="stylebook.present" />
<exclude name="${taskdefs.package}/NetRexxC.java"
unless="netrexx.present" />
<exclude name="${antlib.package}/xml/TraXLiaison.java"
unless="trax.present" />
<exclude name="${antlib.package}/xml/XalanLiaison.java"
unless="xalan.present" />
<exclude name="${taskdefs.package}/Javah.java"
unless="jdk1.2+" />
<exclude name="${taskdefs.package}/junit/*"
unless="junit.present" />
<exclude name="${taskdefs.package}/net/**.java"
unless="netcomp.present" />
<exclude name="${taskdefs.package}/net/MimeMail.java"
unless="javamail.complete" />
<exclude name="${taskdefs.package}/scm/AntStarTeam*.java"
unless="starteam.present" />
<exclude name="${taskdefs.package}/ANTLR.java"
unless="antlr.present" />
<exclude name="${taskdefs.package}/perforce/*.java"
unless="jakarta.oro.present" />
<exclude name="${taskdefs.package}/junit/XMLResultAggregator.java"
unless="trax.present" />
<exclude name="${taskdefs.package}/junit/AggregateTransformer.java"
unless="trax.present" />
<exclude name="${taskdefs.package}/junit/XMLResultAggregator.java"
unless="xalan2.present" />
<exclude name="${taskdefs.package}/junit/AggregateTransformer.java"
unless="xalan2.present" />
<exclude name="${taskdefs.package}/junit/XalanExecutor.java"
unless="xalan2.present" />
<exclude name="${taskdefs.package}/junit/Xalan2Executor.java"
unless="xalan2.present" />
<exclude name="${taskdefs.package}/junit/Xalan1Executor.java"
unless="xalan.present" />
<exclude name="${taskdefs.package}/jdepend/*"
unless="jdepend.present" />
<exclude name="${taskdefs.package}/sitraka/**"
unless="some.regexp.support"/>
<exclude name="${taskdefs.package}/metamata/MAudit*"
unless="jakarta.oro.present"/>
<exclude name="${taskdefs.package}/metamata/MMetrics*"
unless="trax.present"/>
<exclude name="${taskdefs.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+" />
</patternset>

<patternset id="selftest.include">
<include name="org/apache/antlib/selftest/**" />
<exclude name="org/apache/antlib/selftest/extension1/**" />
</patternset>

<patternset id="selftest-extension1.include">
<include name="org/apache/antlib/selftest/extension1/**" />
</patternset>
</target>

<!-- The generation of the descriptor is kept separated from the packaging
of the jars, since jarring is fast and XDoclet is really slow.-->
<target name="antlib-descriptors"
depends="setup-patterns, custom-tasks"
unless="antlib-descriptors.omit"
description="Generates Antlib descriptors using XDoclet.">

<antlib-descriptor libName="builtin"
destdir="${gen.dir}"
classpathref="project.class.path">
<fileset dir="${java.dir}">
<patternset refid="myrmidon-framework.include"/>
</fileset>
</antlib-descriptor>

<antlib-descriptor libName="selftest"
destdir="${gen.dir}"
classpathref="project.class.path">
<fileset dir="${java.dir}">
<patternset refid="selftest.include"/>
</fileset>
</antlib-descriptor>
</target>

<target name="test-xdocs" depends="antlib-descriptors" description="Generate documentation for antlibs">
<!-- start to test xdocs generation -->
<ant antfile="antlib.xml" target="antlib-docs">
<property name="antlib.name" value="core"/>
</ant>
</target>

<!-- Package the jar files -->
<target name="jars" depends="custom-tasks, compile, antlib-descriptors">

<mkdir dir="${build.bin}"/>
<mkdir dir="${build.bin}/lib"/>
<mkdir dir="${build.lib}"/>
<mkdir dir="${build.ext}"/>

<antlib-jar jarfile="${build.lib}/myrmidon-framework.jar"
basedir="${build.classes}"
manifest="${manifest.dir}/myrmidon-api.mf"
rolesDescriptor="${gen.dir}/builtin-ant-roles.xml"
descriptor="${gen.dir}/builtin-ant-descriptor.xml"
servicesDescriptor="${manifest.dir}/core-services.xml" >
<patternset refid="myrmidon-framework.include"/>
</antlib-jar>

<antlib-jar jarfile="${build.lib}/ant1_todo.jar"
basedir="${build.classes}"
descriptor="${manifest.dir}/ant1-ant-descriptor.xml" >
<patternset refid="ant1.todo.include"/>
</antlib-jar>

<antlib-jar jarfile="${build.ext}/selftest.atl"
basedir="${build.classes}"
manifest="${manifest.dir}/selftest.mf"
descriptor="${gen.dir}/selftest-ant-descriptor.xml"
rolesDescriptor="${gen.dir}/selftest-ant-roles.xml">
<patternset refid="selftest.include"/>
</antlib-jar>

<jar jarfile="${build.ext}/selftest-extension1.jar"
basedir="${build.classes}"
manifest="${manifest.dir}/selftest-extension1.mf">
<patternset refid="selftest-extension1.include" />
</jar>

<!-- Simple cases handled by antlib.xml -->
<ant antfile="antlib.xml">
<property name="antlib.name" value="core"/>
</ant>

<ant antfile="antlib.xml">
<property name="antlib.name" value="extensions"/>
</ant>

<ant antfile="antlib.xml">
<property name="antlib.name" value="file"/>
</ant>

<ant antfile="antlib.xml">
<property name="antlib.name" value="archive"/>
</ant>

<ant antfile="antlib.xml">
<property name="antlib.name" value="cvslib"/>
</ant>

<ant antfile="antlib.xml">
<property name="antlib.name" value="nativelib"/>
</ant>

<ant antfile="antlib.xml">
<property name="antlib.name" value="security"/>
</ant>

<ant antfile="antlib.xml">
<property name="antlib.name" value="runtime"/>
</ant>

<ant antfile="antlib.xml">
<property name="antlib.name" value="sound"/>
</ant>

<ant antfile="antlib.xml">
<property name="antlib.name" value="vfile"/>
</ant>

<ant antfile="antlib.xml">
<property name="antlib.name" value="java"/>
</ant>

<ant antfile="antlib.xml">
<property name="antlib.name" value="build"/>
</ant>

<!-- Create the Ant1 compatibility layer -->
<ant antfile="ant1compat.xml"/>
</target>

<!-- Compiles and runs the unit tests -->
<target name="run-tests" depends="dist-lite" if="junit.present">

<property name="test.classloader.pkg" value="org/apache/myrmidon/components/classloader/test/libs"/>

<!-- Compile the unit tests -->
<mkdir dir="${test.classes}"/>
<javac srcdir="src/test"
destdir="${test.classes}"
debug="${debug}"
deprecation="${deprecation}">

<classpath>
<pathelement location="${build.classes}"/>
<path refid="project.class.path"/>
<path refid="tools.class.path"/>
</classpath>

<exclude name="${test.classloader.pkg}/**"/>
</javac>

<!-- Prepare test files -->
<delete dir="${test.working.dir}"/>

<!-- Prepare a dummy installation -->
<copy todir="${test.working.dir}/dist">
<fileset dir="${dist.dir}"/>
</copy>

<!-- Copy the resources from source tree into working test dir -->
<copy todir="${test.working.dir}">
<fileset dir="src/test">
<exclude name="**/*.java"/>
</fileset>
</copy>

<!-- Prepare deployer tests -->
<property name="test.deployer.dir"
value="${test.working.dir}/org/apache/myrmidon/components/deployer/test"/>
<mkdir dir="${test.deployer.dir}"/>
<jar jarfile="${test.deployer.dir}/test.atl">
<zipfileset dir="${test.deployer.dir}" prefix="META-INF" includes="*.xml"/>
</jar>

<!-- Prepare type factory tests -->
<property name="test.type.dir"
value="${test.working.dir}/org/apache/myrmidon/interfaces/type/test"/>
<mkdir dir="${test.type.dir}"/>
<jar jarfile="${test.type.dir}/types.jar">
<fileset dir="${test.classes}" includes="org/apache/myrmidon/interfaces/type/test/MyType1.class"/>
</jar>

<!-- Prepare the class loader manager tests -->
<property name="test.classloader.dir" value="${test.working.dir}/${test.classloader.pkg}/.."/>
<property name="test.classloader.classes" value="${test.dir}/classloader"/>
<mkdir dir="${test.classloader.dir}"/>
<mkdir dir="${test.classloader.dir}/ext"/>
<mkdir dir="${test.classloader.classes}"/>
<javac srcdir="src/test"
destdir="${test.classloader.classes}"
debug="${debug}"
deprecation="${deprecation}">
<include name="${test.classloader.pkg}/**"/>
</javac>
<copy todir="${test.classloader.classes}">
<fileset dir="src/test">
<include name="${test.classloader.pkg}/**"/>
<exclude name="**/*.java"/>
</fileset>
</copy>
<jar jarfile="${test.classloader.dir}/common.jar">
<fileset dir="${test.classloader.classes}">
<include name="**/shared/**"/>
</fileset>
</jar>
<jar jarfile="${test.classloader.dir}/no-dependencies.jar">
<fileset dir="${test.classloader.classes}">
<include name="**/shared/**"/>
<include name="**/unshared/**"/>
</fileset>
</jar>
<jar jarfile="${test.classloader.dir}/one-dependency.jar"
manifest="src/test/${test.classloader.pkg}/one-dependency.mf">
<fileset dir="${test.classloader.classes}">
<include name="**/shared/**"/>
<include name="**/unshared/**"/>
</fileset>
</jar>
<copy file="${test.classloader.dir}/one-dependency.jar"
tofile="${test.classloader.dir}/one-dependency-2.jar"/>
<jar jarfile="${test.classloader.dir}/ext/simple-extension.jar"
manifest="src/test/${test.classloader.pkg}/simple-extension.mf" >
<fileset dir="${test.classloader.classes}">
<include name="**/shared/**"/>
<include name="**/extn/**"/>
</fileset>
</jar>
<jar jarfile="${test.classloader.dir}/ext/cycle-extension-1.jar"
manifest="src/test/${test.classloader.pkg}/cycle-extension-1.mf" />
<jar jarfile="${test.classloader.dir}/ext/cycle-extension-2.jar"
manifest="src/test/${test.classloader.pkg}/cycle-extension-2.mf" />

<!-- Prepare the project tests -->
<antlib-descriptor libName="unittests"
destdir="${gen.dir}">
<classpath refid="project.class.path"/>
<classpath refid="tools.class.path"/>
<fileset dir="src/test">
<include name="org/apache/antlib/**"/>
<include name="org/apache/myrmidon/framework/**"/>
</fileset>
</antlib-descriptor>
<copy file="${gen.dir}/unittests-ant-descriptor.xml"
tofile="${test.classes}/META-INF/ant-descriptor.xml"/>

<!-- Run all the tests -->
<junit printsummary="on"
fork="${test.fork}" failureProperty="test.failed">
<formatter type="brief" usefile="false"/>
<classpath>
<fileset dir="${test.working.dir}/dist/bin/lib" includes="**/*.jar"/>
<fileset dir="${test.working.dir}/dist/lib" includes="**/*.jar, **/*.atl"/>
</classpath>
<classpath refid="tools.class.path"/>
<classpath location="${test.classes}"/>

<!-- Pass config to the tests -->
<sysproperty key="test.basedir" value="${test.working.dir}"/>
<sysproperty key="test.smb.uri" value="smb://${vfs.user}:${vfs.password}@${vfs.host}/${vfs.user}/vfs"/>
<sysproperty key="test.ftp.uri" value="ftp://${vfs.user}:${vfs.password}@${vfs.host}/vfs"/>

<batchtest>
<fileset dir="${test.classes}">
<include name="**/*TestCase.class" unless="single.test"/>
<exclude name="**/Abstract*TestCase.class"/>
<include name="**/${single.test}TestCase.class" if="single.test"/>
<exclude name="**/BzipTestCase.class" unless="test.bzip"/>
<exclude name="**/SmbFileSystemTestCase.class" unless="test.smb"/>
<exclude name="**/FtpFileSystemTestCase.class" unless="test.ftp"/>

<!-- Need Ant1.5+ to run Ant1Compat tests, because of classpath
problems in Ant1.4 JUnit Task (prepends ant.jar to classpath) -->
<exclude name="**/Ant1CompatTestCase.class" unless="ant1.5"/>

<!-- This test fails, as it has no test methods -->
<exclude name="**/SimpleConvertersTestCase.class" unless="single.test"/>
</fileset>
</batchtest>
</junit>
</target>

<target name="test" if="test.failed" depends="run-tests" description="Runs the unit tests">
<fail> - One or more tests failed.</fail>
</target>

<target name="checkstyle" description="Checkstyle">

<property name="checkstyle.dir" value="${java.dir}"/>

<!-- this invocation of checkstyle requires that checkstyle be downloaded and setup -->
<!-- thats why you are required to define do.checkstyle property to generate the report -->
<taskdef name="checkstyle"
classname="com.puppycrawl.tools.checkstyle.CheckStyleTask">
<classpath refid="tools.class.path"/>
</taskdef>
<checkstyle
lcurlyType="nl"
lcurlyMethod="nl"
lcurlyOther="nl"
rcurly="ignore"
allowProtected="false"
allowPackage="false"
allowNoAuthor="false"
maxLineLen="100"
maxMethodLen="100"
maxConstructorLen="100"
memberPattern="^m_[a-z][a-zA-Z0-9]*$"
staticPattern="^c_[a-z][a-zA-Z0-9]*$"
constPattern="(^c_[a-z][a-zA-Z0-9]*$)|([A-Z_]*$)"
ignoreImportLen="true"
allowTabs="false"
javadocScope="protected"
ignoreWhitespace="true"
cacheFile="checkstyle.cache"
failOnViolation="false"
ignoreCastWhitespace="true">
<fileset dir="${checkstyle.dir}">
<include name="**/*.java"/>
</fileset>
<formatter type="plain"/>
<formatter type="xml" toFile="build/checkstyle-results.xml"/>
</checkstyle>
</target>

<target name="checkstyle-report"
depends="checkstyle"
if="do.checkstyle"
description="Generate Checkstyle Report">

<mkdir dir="${build.reports}/checkstyle"/>
<style style="../../src/etc/checkstyle-frames.xsl" in="build/checkstyle-results.xml"
out="${build.reports}/checkstyle/delete-me.html"/>

</target>

<target name="jdepend" description="Generate Dependency Analysis Report">

<path id="java.src">
<pathelement location="src/test"/>
<pathelement location="src/java"/>
</path>

<!-- this invocation of jdepend requires the CVS version of ant for the xml format -->
<jdepend outputfile="${build.dir}/jdepend-results.xml" format="xml" fork="yes">
<classpath refid="tools.class.path"/>
<sourcespath>
<path refid="java.src" />
</sourcespath>
</jdepend>

<property name="build.reports" value="${build.dir}/reports"/>
<mkdir dir="${build.reports}/jdepend"/>
<style in="${build.dir}/jdepend-results.xml"
processor="trax"
out="${build.reports}/jdepend/delete-me.txt"
style="${ant.home}/etc/jdepend-frames.xsl"/>
</target>

<target name="javadoc" description="Generates the API docs.">
<property name="build.apidocs" value="${build.dir}/apidocs"/>
<mkdir dir="${build.apidocs}"/>

<javadoc destdir="${build.apidocs}" packagenames="org.apache.*">
<sourcepath>
<pathelement location="${java.dir}"/>
</sourcepath>
<classpath refid="project.class.path"/>
</javadoc>
</target>

<!-- Creates the distribution -->
<target name="dist-lite"
depends="jars"
description="Generates a minimal working distribution.">

<mkdir dir="${dist.bin}"/>
<mkdir dir="${dist.lib}"/>
<mkdir dir="${dist.ext}"/>

<copy todir="${dist.bin}">
<fileset dir="${build.bin}"/>
<fileset dir="${lib.dir}/bin"/>
</copy>

<copy todir="${dist.lib}">
<fileset dir="${build.lib}"/>
<fileset dir="${lib.dir}" includes="*.jar, *.zip"/>
<fileset dir="../../lib/optional" includes="junit.jar" />
</copy>

<copy todir="${dist.ext}">
<fileset dir="${build.ext}"/>
<fileset dir="${lib.dir}/ext"/>
</copy>

<copy todir="${dist.bin}">
<fileset dir="${script.dir}"/>
</copy>

<chmod dir="${dist.dir}" perm="go-rwx" />
<chmod file="${dist.bin}/ant" perm="u+x"/>
<fixcrlf srcdir="${dist.bin}" eol="crlf" includes="**/*.bat" />
<fixcrlf srcdir="${dist.bin}" eol="lf" includes="**/*.sh" />
<fixcrlf srcdir="${dist.bin}" eol="lf" includes="ant" />
</target>

<target name="dist-extralite"
description="A faster version of dist-lite (no XDoclet).">
<property name="antlib-descriptors.omit" value="true"/>
<antcall target="dist-lite"/>
</target>

<!-- Creates the distribution -->
<target name="dist" depends="dist-lite, test" description="Builds the distribution"/>

<!-- Cleans up build and distribution directories -->
<target name="clean" description="Deletes all built files">
<delete dir="${build.dir}"/>
<delete dir="${dist.dir}" failonerror="false"/>
</target>

<!-- Cleans up the compiled classes -->
<target name="clean-classes">
<delete dir="${build.classes}"/>
<delete dir="${test.classes}"/>
<delete dir="${build.custom-tasks}"/>
</target>

<!-- Rebuilds the distribution -->
<target name="rebuild" description="Rebuilds the distribution">
<antcall target="clean"/>
<antcall target="main"/>
</target>

<!-- Recompiles the classes, and builds the distribution -->
<target name="recompile" description="Recompiles and builds the the distribution">
<antcall target="clean-classes"/>
<antcall target="main"/>
</target>

</project>

Loading…
Cancel
Save