leif 2003/07/31 22:38:10
Modified: . depchecker.xml
Log:
Fix line feeds, no other changes.
Revision Changes Path
1.57 +667 -667 avalon-excalibur/depchecker.xml
Index: depchecker.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/depchecker.xml,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -r1.56 -r1.57
--- depchecker.xml 7 Jul 2003 16:52:43 -0000 1.56
+++ depchecker.xml 1 Aug 2003 05:38:10 -0000 1.57
@@ -1,667 +1,667 @@
-<?xml version="1.0"?>
-
-<!--
-============================================================
- Dependency updater
- Version $Revision$
- Jeff Turner <[EMAIL PROTECTED]>
-
-This Ant script provides "functions" to check if
-dependencies are present, and take appropriate action if
-they are not. "Appropriate action" may be:
-
-- Print an error message
-- Build the project, if local
-- Retrieve the jar dependency via HTTP GET
-
-To use it, type 'ant -f depchecker.xml'
-============================================================-->
-
-<!--
--->
-
-<project name="dependencies" default="main" basedir=".">
- <!-- The target to call if ${proj.target} isn't specified -->
- <property name="default.target" value="dist-jar"/>
- <property name="nl" value="${line.separator}"/>
-
- <target name="main" depends="usage"/>
- <target name="usage">
- <echo><![CDATA[
- =======================================================
- This is Excalibur's dependency updater script.
- Which has been called incorrectly :)
-
- To use it, you can call one of the predefined dependency scripts
- from your Ant script. For example:
-
- <ant antfile="${depchecker.prefix}/depchecker.xml" target="checkJUnit"/>
-
-
- Alternatively, you can call the checkRequiredFile or
- checkRequiredClass targets directly from your Ant script.
-
- Example 1:
-
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="xalan.jar"/>
- <property name="path" value="${xalan.jar}"/>
- </ant>
-
- That will check if the file pointed to by $${xalan.jar} is present,
- and fail with a warning message if it isn't.
-
- Example 2:
-
- <ant antfile="depchecker.xml" target="checkRequiredFile">
- <property name="proj.jar.name" value="excalibur-concurrent.jar"/>
- <property name="path" value="$${excalibur-concurrent.jar}"/>
- <property name="proj.home" value="../concurrent"/>
- <property name="proj.target" value="dist.lite"/>
- </ant>
-
- That will check if $${excalibur-concurrent.jar} points to a jar, and
- if it doesn't, build the $${proj.home} project in order to generate
- the jar
-
- Example 3:
-
- <ant antfile="depchecker.xml" target="checkRequiredFile">
- <property name="proj.jar.name" value="commons-io.jar"/>
- <property name="path" value="$${lib.repo}/commons-io.jar"/>
- <property name="url"
value="http://jakarta.apache.org/turbine/jars/commons-io.jar"/>
- </ant>
-
- That will check if $${lib.repo}/commons-io.jar exists, and if not,
- download it from $${url}
-
- Example 4:
-
- <property name="cp" refid="project.class.path"/>
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredClass">
- <property name="proj.jar.name" value="junit.jar"/>
- <property name="class" value="junit.framework.Test"/>
- <property name="classpath" value="${cp}"/>
- </ant>
-
- That will check if $${class} is in the classpath $${cp}.
-
- The properties are as follows:
-
- For checkRequiredFile:
- name:
- Name of the jar. Eg 'avalon-collections.jar'
- path:
- Path to named jar. Eg $${avalon-collections.jar}
-
- proj.home (optional):
- Path to local project which builds the jar. Only set if the jar
- could be local, eg another component.
- proj.target (optional) [dist.lite]:
- Ant script target to run in local project to build the jar
-
- url (optional):
- URL to retrieve jar if not present on the local filesystem
-
- For checkRequiredClass:
- name:
- Name of jar in which the class usually resides
- class:
- Name of class to check for
- classpath:
- String classpath (; or : separated) to search for $${class} in
-
-
- Algorithm is as follows:
-
- IF the directory ${proj.home} exists THEN:
- // The dependency is local; if the jar doesn't exist, we can build
it
- IF file ${path} does not exist THEN:
- call ${proj.home}/build.xml's 'dist.lite' target to build that
- project's jar, which will then build it's own dependencies if
necessary
- ELSE we're fine
- ELSE
- // The dependency is remote; we can't build it,
- IF file ${path} does not exist THEN:
- IF ${url} is present THEN:
- do a HTTP GET to retrieve the jar to ${path}
- ELSE
- print an error saying "Can't find file ${path}"
- ELSE we're fine
-
- =======================================================
- ]]></echo>
- </target>
-
- <!-- ====================================================== -->
- <!-- Dependency checking library -->
- <!-- ====================================================== -->
-
- <!-- Print a warning if a deprecated property is being used. -->
- <target name="checkDeprecatedProp">
- <available type="file" file="${path}" property="prop.present"/>
- <antcall target="deprecatedProp.warn"/>
- </target>
- <target name="deprecatedProp.warn" if="prop.present">
- <echo>
- .---------------------------------------------------------------.
- | DEPRECATED PROPERTY WARNING |
- | |
- |---------------------------------------------------------------|
- | While processing subproject: |
- | ${basedir}
- | The following deprecated property was found: |
- | ${proj.jar.name}
- | Please replace it with:
- | ${newname}
- |
- | The property may be defined in your project's ant.properties |
- | file, Excalibur's root ant.properties, or the ant.properties |
- | or build.properties in your home directory, ${user.home}
- | Please consult the subproject build.xml for a full list of |
- | possible locations. |
- '---------------------------------------------------------------'
- </echo>
-
- </target>
-
- <target name="checkCommon" description="Checks applying to all components">
- <antcall target="checkDeprecatedProp">
- <param name="proj.jar.name" value="avalon-logkit.jar"/>
- <param name="path" value="${avalon-logkit.jar}"/>
- <param name="newname" value="logkit.jar"/>
- </antcall>
- </target>
-
- <target name="checkJUnit">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredClass">
- <property name="proj.jar.name" value="junit.jar"/>
- <property name="class" value="junit.framework.Test"/>
- <property name="classpath" value="${cp}"/>
- <property name="remedy" value="Download JUnit from http://www.junit.org
and copy junit.jar ${nl}
- | to ${ant.home}/lib"/>
-
- </ant>
- </target>
- <target name="checkJUnitPerf">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredClass">
- <property name="proj.jar.name" value="junitperf.jar"/>
- <property name="class" value="com.clarkware.junitperf.Timer"/>
- <property name="classpath" value="${cp}"/>
- <property name="remedy" value="1) Download and unpack JUnitPerf from
${nl}
- | http://www.clarkware.com/software/JUnitPerf.html ${nl}
- | 2) Copy the project's ant.properties.sample to ant.properties ${nl}
- | 3) In ant.properties, redefine the junitperf.jar property ${nl}
- | to point to the path of junitperf.jar in your ${nl}
- | downloaded distribution."/>
-
- </ant>
- </target>
- <target name="checkCheckstyle">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredClass">
- <property name="proj.jar.name" value="checkstyle-all-2.1.jar"/>
- <property name="class"
value="com.puppycrawl.tools.checkstyle.CheckStyleTask"/>
-
- <property name="classpath" value="${cp}"/>
- <property name="remedy" value="1) Download and unpack Checkstyle from
${nl}
- | http://checkstyle.sourceforge.net/ ${nl}
- | 2) Copy the project's ant.properties.sample to ant.properties ${nl}
- | 3) In ant.properties, redefine the checkstyle-all-2.1.jar property
${nl}
- | to point to the path of checkstyle-all-2.1.jar in your ${nl}
- | downloaded distribution."/>
-
- </ant>
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredClass">
- <property name="proj.jar.name" value="checkstyle-all-2.1.jar or
jakarta-regexp-1.2.jar"/>
- <property name="class" value="org.apache.regexp.RE"/>
-
- <property name="classpath" value="${cp}"/>
- <property name="remedy" value="1) Download and unpack Checkstyle from
${nl}
- | http://checkstyle.sourceforge.net/ ${nl}
- | 2) Copy the project's ant.properties.sample to ant.properties ${nl}
- | 3) In ant.properties, redefine the checkstyle-all-2.1.jar property
${nl}
- | to point to the path of checkstyle-all-2.1.jar in your ${nl}
- | downloaded distribution."/>
-
- </ant>
- </target>
- <target name="checkFramework">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="avalon-framework.jar"/>
- <property name="path" value="${avalon-framework.jar}"/>
- <property name="remedy" value="1) Download and unpack Avalon Framework
from ${nl}
- | http://jakarta.apache.org/builds/avalon/release/framework ${nl}
- | 2) Copy the project's ant.properties.sample to ant.properties ${nl}
- | 3) In ant.properties, redefine the avalon-framework.jar property
${nl}
- | to point to the path of avalon-framework.jar in your ${nl}
- | downloaded Avalon."/>
-
- </ant>
- </target>
- <target name="checkBSF">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredClass">
- <property name="proj.jar.name" value="bsf.jar"/>
- <property name="class" value="com.ibm.bsf.util.BSFEngineImpl"/>
- <property name="classpath" value="${cp}"/>
- <property name="remedy" value="Download the BSF from ${nl}
- | http://oss.software.ibm.com/developerworks/projects/bsf ${nl}
- | and copy bsf.jar to ${ant.home}/lib"/>
- </ant>
- </target>
-
- <!-- All -->
- <target name="checkCore">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="excalibur-core.jar"/>
- <property name="path" value="${excalibur-core.jar}"/>
- <property name="proj.home" value="${basedir}/../all"/>
- <property name="proj.target" value="all"/>
- </ant>
- </target>
- <target name="checkScratchpad">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="excalibur-scratchpad.jar"/>
- <property name="path" value="${excalibur-scratchpad.jar}"/>
- </ant>
- </target>
-
- <!-- Fortress Tools -->
- <target name="checkFortressTools">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name"
value="excalibur-fortress-tools-1.0.jar"/>
- <property name="path" value="${excalibur-fortress-tools.jar}"/>
- <property name="proj.home" value="${basedir}/../lib"/>
- </ant>
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredClass">
- <property name="proj.jar.name" value="qdox.jar"/>
- <property name="class"
value="com.thoughtworks.qdox.ant.AbstractQdoxTask"/>
- <property name="classpath" value="${cp}"/>
- <property name="remedy" value="1) Download and unpack qdox from ${nl}
- | http://qdox.codehaus.org/ ${nl}
- | 2) Copy the project's ant.properties.sample to ant.properties ${nl}
- | 3) In ant.properties, redefine the qdox.jar property ${nl}
- | to point to the path of qdox.jar in your ${nl}
- | downloaded distribution."/>
- </ant>
-
- </target>
-
- <!-- Altrmi -->
- <target name="checkAltrmiCommon">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="altrmi-common.jar"/>
- <property name="path" value="${altrmi-common.jar}"/>
- <property name="proj.home" value="${basedir}/../lib"/>
- </ant>
- </target>
- <target name="checkAltrmiClient" depends="checkAltrmiCommon">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="altrmi-client-impl.jar"/>
- <property name="path" value="${altrmi-client-impl.jar}"/>
- <property name="proj.home" value="${basedir}/../lib"/>
- </ant>
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="altrmi-client-interfaces.jar"/>
- <property name="path" value="${altrmi-client-interfaces.jar}"/>
- <property name="proj.home" value="${basedir}/../lib"/>
- </ant>
- </target>
- <target name="checkAltrmiServer" depends="checkAltrmiCommon">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="altrmi-server-impl.jar"/>
- <property name="path" value="${altrmi-server-impl.jar}"/>
- <property name="proj.home" value="${basedir}/../lib"/>
- </ant>
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="altrmi-server-interfaces.jar"/>
- <property name="path" value="${altrmi-server-interfaces.jar}"/>
- <property name="proj.home" value="${basedir}/../lib"/>
- </ant>
- </target>
- <target name="checkAltrmiGenerator" depends="checkAltrmiCommon">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="altrmi-generator.jar"/>
- <property name="path" value="${altrmi-generator.jar}"/>
- <property name="proj.home" value="${basedir}/../lib"/>
- </ant>
- </target>
- <target name="checkAltrmi" depends="checkAltrmiClient, checkAltrmiServer,
checkAltrmiGenerator">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="altrmi-generator.jar"/>
- <property name="path" value="${altrmi-generator.jar}"/>
- <property name="proj.home" value="${basedir}/../lib"/>
- </ant>
- </target>
-
- <target name="checkCommonsCollections">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="commons-collections-2.1.jar"/>
- <property name="path" value="${commons-collections.jar}"/>
- <property name="proj.home" value="${basedir}/../lib"/>
- </ant>
- </target>
-
- <target name="checkEvent">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="excalibur-event.jar"/>
- <property name="path" value="${excalibur-event.jar}"/>
- <property name="proj.home" value="${basedir}/../event"/>
- </ant>
- </target>
- <target name="checkThread">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="excalibur-thread.jar"/>
- <property name="path" value="${excalibur-thread.jar}"/>
- <property name="proj.home" value="${basedir}/../thread"/>
- </ant>
- </target>
- <target name="checkInfo">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="excalibur-info.jar"/>
- <property name="path" value="${excalibur-info.jar}"/>
- <property name="proj.home" value="${basedir}/../info"/>
- </ant>
- </target>
- <target name="checkI18n">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="excalibur-i18n.jar"/>
- <property name="path" value="${excalibur-i18n.jar}"/>
- <property name="proj.home" value="${basedir}/../i18n"/>
- </ant>
- </target>
-
- <target name="checkCli" depends="checkCompatibility"/>
-
- <target name="checkCompatibility">
- <ant antfile="${depchecker.prefix}/depchecker.xml" target="checkRequiredFile">
- <property name="proj.jar.name" value="excalibur-compatibility-1.0.jar"/>
- <property name="path" value="${excalibur-compatibility.jar}"/>
- <property name="proj.home" value="${basedir}/../compatibility"/>
- </ant>
- </target>
- <target name="checkInstrument">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="excalibur-instrument-1.0.jar"/>
- <property name="path" value="${excalibur-instrument.jar}"/>
- <property name="proj.home" value="${basedir}/../instrument"/>
- </ant>
- </target>
- <target name="checkInstrumentManagerInterfaces">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name"
value="excalibur-instrument-manager-interfaces-0.3.jar"/>
- <property name="path"
value="${excalibur-instrument-manager-interfaces.jar}"/>
- <property name="proj.home" value="${basedir}/../instrument-manager"/>
- </ant>
- </target>
- <target name="checkInstrumentManager"
depends="checkInstrumentManagerInterfaces">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name"
value="excalibur-instrument-manager-0.3.jar"/>
- <property name="path" value="${excalibur-instrument-manager.jar}"/>
- <property name="proj.home" value="${basedir}/../instrument-manager"/>
- </ant>
- </target>
- <target name="checkCollections" depends="checkCompatibility"/>
- <target name="checkComponent">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="excalibur-component.jar"/>
- <property name="path" value="${excalibur-component.jar}"/>
- <property name="proj.home" value="${basedir}/../component"/>
- </ant>
- </target>
- <target name="checkConcurrent" depends="checkCompatibility"/>
- <target name="checkConfiguration">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="excalibur-configuration.jar"/>
- <property name="path" value="${excalibur-configuration.jar}"/>
- <property name="proj.home" value="${basedir}/../configuration"/>
- </ant>
- </target>
- <target name="checkContainer" depends="checkLifecycle"/>
- <target name="checkLifecycle">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="excalibur-lifecycle.jar"/>
- <property name="path" value="${excalibur-lifecycle.jar}"/>
- <property name="proj.home" value="${basedir}/../lifecycle"/>
- </ant>
- </target>
- <target name="checkMeta">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="excalibur-meta.jar"/>
- <property name="path" value="${excalibur-meta.jar}"/>
- <property name="proj.home" value="${basedir}/../meta"/>
- </ant>
- </target>
- <target name="checkPool">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="excalibur-pool.jar"/>
- <property name="path" value="${excalibur-pool.jar}"/>
- <property name="proj.home" value="${basedir}/../pool"/>
- </ant>
- </target>
- <target name="checkIO" depends="checkCompatibility"/>
- <target name="checkStore">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="excalibur-store.jar"/>
- <property name="path" value="${excalibur-store.jar}"/>
- <property name="proj.home" value="${basedir}/../store"/>
- </ant>
- </target>
- <target name="checkLogkit">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="logkit.jar"/>
- <property name="path" value="${logkit.jar}"/>
- </ant>
- </target>
- <target name="checkLogger">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="excalibur-logger.jar"/>
- <property name="path" value="${excalibur-logger.jar}"/>
- <property name="proj.home" value="${basedir}/../logger"/>
- </ant>
- </target>
- <target name="checkDatasource">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="excalibur-datasource.jar"/>
- <property name="path" value="${excalibur-datasource.jar}"/>
- <property name="proj.home" value="${basedir}/../datasource"/>
- </ant>
- </target>
- <target name="checkExtension">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="name.jar.name" value="excalibur-extension.jar"/>
- <property name="path" value="${excalibur-extension.jar}"/>
- <property name="proj.home" value="${basedir}/../extension"/>
- </ant>
- </target>
- <target name="checkMonitor">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="excalibur-monitor.jar"/>
- <property name="path" value="${excalibur-monitor.jar}"/>
- <property name="proj.home" value="${basedir}/../monitor"/>
- </ant>
- </target>
- <target name="checkI18N">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="excalibur-i18n.jar"/>
- <property name="path" value="${excalibur-i18n.jar}"/>
- <property name="proj.home" value="${basedir}/../i18n"/>
- </ant>
- </target>
- <target name="checkSourceResolve">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="excalibur-sourceresolve.jar"/>
- <property name="path" value="${excalibur-sourceresolve.jar}"/>
- <property name="proj.home" value="${basedir}/../sourceresolve"/>
- </ant>
- </target>
- <target name="checkTestcase">
- <ant antfile="${depchecker.prefix}/depchecker.xml" target="checkComponent">
- </ant>
- </target>
- <target name="checkThreadcontext">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="excalibur-threadcontext.jar"/>
- <property name="path" value="${excalibur-threadcontext.jar}"/>
- <property name="proj.home" value="${basedir}/../threadcontext"/>
- </ant>
- </target>
-
- <target name="checkXMLUtil">
- <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
- <property name="proj.jar.name" value="excalibur-xmlutil.jar"/>
- <property name="path" value="${excalibur-xmlutil.jar}"/>
- <property name="proj.home" value="${basedir}/../xmlutil"/>
- </ant>
- </target>
-
- <!-- ====================================================== -->
- <!-- Call to ensure a class is present in the classpath -->
- <!-- ====================================================== -->
- <target name="checkRequiredClass">
- <available classname="${class}" classpath="${classpath}"
property="requirement.satisfied"/>
- <antcall target="checkRequiredClass.fail"/>
- </target>
-
-
- <!-- ====================================================== -->
- <!-- Call to ensure a file (usu. jar) is present. If not, -->
- <!-- either build it (if local), or print an error (remote) -->
- <!-- ====================================================== -->
- <target name="checkRequiredFile" depends="checkIfLocal, checkRequiredFileLocal,
checkRequiredFileRemote, listRequiredFile, copyRequiredFile"/>
-
- <target name="checkIfLocal" if="proj.home">
- <available type="dir" file="${proj.home}" property="local"/>
- </target>
-
- <!--
- Check for a local requirement (another component). If not found,
- update_dependency will build it
- -->
- <target name="checkRequiredFileLocal" if="local">
- <available type="file" file="${path}" property="requirement.satisfied"/>
- <antcall target="update_dependency"/>
- <available type="file" file="${path}" property="build.succeeded"/>
- <antcall target="build.fail"/>
- </target>
-
- <!--
- Check for a remote requirement. If not found, checkRequiredFile.fail will
- print an error. Alternatively, we could do a HTTP get to retrieve the file
- -->
- <target name="checkRequiredFileRemote" unless="local">
- <available type="file" file="${path}" property="requirement.satisfied"/>
- <antcall target="get_dependency"/>
- <available type="file" file="${path}" property="get.succeeded"/>
- <antcall target="checkRequiredFile.fail"/>
- </target>
-
- <!-- Record the required jar file's path in a file, ${jarlist} -->
- <target name="listRequiredFile" if="jarlist">
- <echo file="${jarlist}" append="true">${path}${nl}</echo>
- </target>
-
- <!-- Copy the required file to a directory, ${jardir} -->
- <target name="copyRequiredFile" if="jardir">
- <mkdir dir="${jardir}"/>
- <copy file="${path}" todir="${jardir}"/>
- </target>
-
- <!-- =================================================================== -->
- <!-- Script called to recursively call another depencency.xml file in -->
- <!-- another project, and then run the 'dist.lite' target. -->
- <!-- =================================================================== -->
- <target name="update_dependency" description="Update files for one dependency"
unless="requirement.satisfied">
- <echo>
- Couldn't find ${path} ${nl}
- Updating files from dependency ${proj.home}
- </echo>
- <!-- Set target if it wasn't previously set -->
- <property name="proj.target" value="${default.target}"/>
- <ant dir="${proj.home}" target="${proj.target}" inheritAll="false">
- <property name="skip.tests" value="true"/>
- <property name="skip.javadocs" value="true"/>
- </ant>
- </target>
-
- <target name="get_dependency" description="Retrieve a jar via HTTP" if="url"
unless="requirement.satisfied">
- <get
- src="${url}"
- dest="${path}"
- verbose="true"
- usetimestamp="true"/>
- <echo>Retrieved ${path}</echo>
- </target>
-
- <target name="checkRequiredFile.fail" unless="get.succeeded">
- <property name="message" value="Can't find file: ${path}"/>
- <echo>
- .---------------------------------------------------------------.
- | FILE NOT FOUND |
- | |
- | ${message}
- |----------------------------------------------------------------|
- | Error when building module: |
- | ${basedir}
- | |
- | You must define the following property in order |
- | to build: |
- | |
- | ${proj.jar.name} (currently "${path}")
- | |
- | Usually this is done by copying ant.properties.sample to |
- | ant.properties and defining the property there. This may also |
- | be done in ${user.home}/.ant.properties. |
- '----------------------------------------------------------------'
- </echo>
- <fail message="Failed requirement: file not found"/>
- </target>
-
- <target name="checkRequiredClass.fail" unless="requirement.satisfied">
- <property name="message" value="Can't find class: ${class}"/>
- <property name="remedy" value=""/>
- <echo>
- .----------------------------------------------------------------.
- | CLASS NOT FOUND |
- | |
- | ${message}
- |----------------------------------------------------------------|
- | Error when building module: |
- | ${basedir}
- | |
- | A jar containing class: |
- | ${class}
- | must be in your classpath or Ant lib directory |
- | |
- | Typically it is in a jar called: |
- | ${proj.jar.name}
- | Suggested Remedy: |
- | ${remedy}
- '----------------------------------------------------------------'
- </echo>
- <fail message="Failed requirement: class not found"/>
- </target>
-
- <target name="build.fail" unless="build.succeeded">
- <echo>
- .-----------------------------------------------------------------.
- | BUILD FAILURE |
- |-----------------------------------------------------------------+
- | Error when building module: |
- | ${basedir}
- | |
- | |
- | The dependency-checking system tried to build the project: |
- | ${proj.home}
- | which should have provided the property: |
- | ${proj.jar.name} = ${path}
- | However, after the build, no such file exists. |
- | |
- | Typically this is because the required project changed the name |
- | of the jar it produces. If so, please correct this in |
- | default.properties, ant.properties.sample or ant.properties |
- '-----------------------------------------------------------------'
- </echo>
- <fail message="Failed Requirement"/>
- </target>
-
-</project>
+<?xml version="1.0"?>
+
+<!--
+============================================================
+ Dependency updater
+ Version $Revision$
+ Jeff Turner <[EMAIL PROTECTED]>
+
+This Ant script provides "functions" to check if
+dependencies are present, and take appropriate action if
+they are not. "Appropriate action" may be:
+
+- Print an error message
+- Build the project, if local
+- Retrieve the jar dependency via HTTP GET
+
+To use it, type 'ant -f depchecker.xml'
+============================================================-->
+
+<!--
+-->
+
+<project name="dependencies" default="main" basedir=".">
+ <!-- The target to call if ${proj.target} isn't specified -->
+ <property name="default.target" value="dist-jar"/>
+ <property name="nl" value="${line.separator}"/>
+
+ <target name="main" depends="usage"/>
+ <target name="usage">
+ <echo><![CDATA[
+ =======================================================
+ This is Excalibur's dependency updater script.
+ Which has been called incorrectly :)
+
+ To use it, you can call one of the predefined dependency scripts
+ from your Ant script. For example:
+
+ <ant antfile="${depchecker.prefix}/depchecker.xml" target="checkJUnit"/>
+
+
+ Alternatively, you can call the checkRequiredFile or
+ checkRequiredClass targets directly from your Ant script.
+
+ Example 1:
+
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="xalan.jar"/>
+ <property name="path" value="${xalan.jar}"/>
+ </ant>
+
+ That will check if the file pointed to by $${xalan.jar} is present,
+ and fail with a warning message if it isn't.
+
+ Example 2:
+
+ <ant antfile="depchecker.xml" target="checkRequiredFile">
+ <property name="proj.jar.name" value="excalibur-concurrent.jar"/>
+ <property name="path" value="$${excalibur-concurrent.jar}"/>
+ <property name="proj.home" value="../concurrent"/>
+ <property name="proj.target" value="dist.lite"/>
+ </ant>
+
+ That will check if $${excalibur-concurrent.jar} points to a jar, and
+ if it doesn't, build the $${proj.home} project in order to generate
+ the jar
+
+ Example 3:
+
+ <ant antfile="depchecker.xml" target="checkRequiredFile">
+ <property name="proj.jar.name" value="commons-io.jar"/>
+ <property name="path" value="$${lib.repo}/commons-io.jar"/>
+ <property name="url"
value="http://jakarta.apache.org/turbine/jars/commons-io.jar"/>
+ </ant>
+
+ That will check if $${lib.repo}/commons-io.jar exists, and if not,
+ download it from $${url}
+
+ Example 4:
+
+ <property name="cp" refid="project.class.path"/>
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredClass">
+ <property name="proj.jar.name" value="junit.jar"/>
+ <property name="class" value="junit.framework.Test"/>
+ <property name="classpath" value="${cp}"/>
+ </ant>
+
+ That will check if $${class} is in the classpath $${cp}.
+
+ The properties are as follows:
+
+ For checkRequiredFile:
+ name:
+ Name of the jar. Eg 'avalon-collections.jar'
+ path:
+ Path to named jar. Eg $${avalon-collections.jar}
+
+ proj.home (optional):
+ Path to local project which builds the jar. Only set if the jar
+ could be local, eg another component.
+ proj.target (optional) [dist.lite]:
+ Ant script target to run in local project to build the jar
+
+ url (optional):
+ URL to retrieve jar if not present on the local filesystem
+
+ For checkRequiredClass:
+ name:
+ Name of jar in which the class usually resides
+ class:
+ Name of class to check for
+ classpath:
+ String classpath (; or : separated) to search for $${class} in
+
+
+ Algorithm is as follows:
+
+ IF the directory ${proj.home} exists THEN:
+ // The dependency is local; if the jar doesn't exist, we can build
it
+ IF file ${path} does not exist THEN:
+ call ${proj.home}/build.xml's 'dist.lite' target to build that
+ project's jar, which will then build it's own dependencies if
necessary
+ ELSE we're fine
+ ELSE
+ // The dependency is remote; we can't build it,
+ IF file ${path} does not exist THEN:
+ IF ${url} is present THEN:
+ do a HTTP GET to retrieve the jar to ${path}
+ ELSE
+ print an error saying "Can't find file ${path}"
+ ELSE we're fine
+
+ =======================================================
+ ]]></echo>
+ </target>
+
+ <!-- ====================================================== -->
+ <!-- Dependency checking library -->
+ <!-- ====================================================== -->
+
+ <!-- Print a warning if a deprecated property is being used. -->
+ <target name="checkDeprecatedProp">
+ <available type="file" file="${path}" property="prop.present"/>
+ <antcall target="deprecatedProp.warn"/>
+ </target>
+ <target name="deprecatedProp.warn" if="prop.present">
+ <echo>
+ .---------------------------------------------------------------.
+ | DEPRECATED PROPERTY WARNING |
+ | |
+ |---------------------------------------------------------------|
+ | While processing subproject: |
+ | ${basedir}
+ | The following deprecated property was found: |
+ | ${proj.jar.name}
+ | Please replace it with:
+ | ${newname}
+ |
+ | The property may be defined in your project's ant.properties |
+ | file, Excalibur's root ant.properties, or the ant.properties |
+ | or build.properties in your home directory, ${user.home}
+ | Please consult the subproject build.xml for a full list of |
+ | possible locations. |
+ '---------------------------------------------------------------'
+ </echo>
+
+ </target>
+
+ <target name="checkCommon" description="Checks applying to all components">
+ <antcall target="checkDeprecatedProp">
+ <param name="proj.jar.name" value="avalon-logkit.jar"/>
+ <param name="path" value="${avalon-logkit.jar}"/>
+ <param name="newname" value="logkit.jar"/>
+ </antcall>
+ </target>
+
+ <target name="checkJUnit">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredClass">
+ <property name="proj.jar.name" value="junit.jar"/>
+ <property name="class" value="junit.framework.Test"/>
+ <property name="classpath" value="${cp}"/>
+ <property name="remedy" value="Download JUnit from http://www.junit.org
and copy junit.jar ${nl}
+ | to ${ant.home}/lib"/>
+
+ </ant>
+ </target>
+ <target name="checkJUnitPerf">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredClass">
+ <property name="proj.jar.name" value="junitperf.jar"/>
+ <property name="class" value="com.clarkware.junitperf.Timer"/>
+ <property name="classpath" value="${cp}"/>
+ <property name="remedy" value="1) Download and unpack JUnitPerf from
${nl}
+ | http://www.clarkware.com/software/JUnitPerf.html ${nl}
+ | 2) Copy the project's ant.properties.sample to ant.properties ${nl}
+ | 3) In ant.properties, redefine the junitperf.jar property ${nl}
+ | to point to the path of junitperf.jar in your ${nl}
+ | downloaded distribution."/>
+
+ </ant>
+ </target>
+ <target name="checkCheckstyle">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredClass">
+ <property name="proj.jar.name" value="checkstyle-all-2.1.jar"/>
+ <property name="class"
value="com.puppycrawl.tools.checkstyle.CheckStyleTask"/>
+
+ <property name="classpath" value="${cp}"/>
+ <property name="remedy" value="1) Download and unpack Checkstyle from
${nl}
+ | http://checkstyle.sourceforge.net/ ${nl}
+ | 2) Copy the project's ant.properties.sample to ant.properties ${nl}
+ | 3) In ant.properties, redefine the checkstyle-all-2.1.jar property
${nl}
+ | to point to the path of checkstyle-all-2.1.jar in your ${nl}
+ | downloaded distribution."/>
+
+ </ant>
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredClass">
+ <property name="proj.jar.name" value="checkstyle-all-2.1.jar or
jakarta-regexp-1.2.jar"/>
+ <property name="class" value="org.apache.regexp.RE"/>
+
+ <property name="classpath" value="${cp}"/>
+ <property name="remedy" value="1) Download and unpack Checkstyle from
${nl}
+ | http://checkstyle.sourceforge.net/ ${nl}
+ | 2) Copy the project's ant.properties.sample to ant.properties ${nl}
+ | 3) In ant.properties, redefine the checkstyle-all-2.1.jar property
${nl}
+ | to point to the path of checkstyle-all-2.1.jar in your ${nl}
+ | downloaded distribution."/>
+
+ </ant>
+ </target>
+ <target name="checkFramework">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="avalon-framework.jar"/>
+ <property name="path" value="${avalon-framework.jar}"/>
+ <property name="remedy" value="1) Download and unpack Avalon Framework
from ${nl}
+ | http://jakarta.apache.org/builds/avalon/release/framework ${nl}
+ | 2) Copy the project's ant.properties.sample to ant.properties ${nl}
+ | 3) In ant.properties, redefine the avalon-framework.jar property
${nl}
+ | to point to the path of avalon-framework.jar in your ${nl}
+ | downloaded Avalon."/>
+
+ </ant>
+ </target>
+ <target name="checkBSF">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredClass">
+ <property name="proj.jar.name" value="bsf.jar"/>
+ <property name="class" value="com.ibm.bsf.util.BSFEngineImpl"/>
+ <property name="classpath" value="${cp}"/>
+ <property name="remedy" value="Download the BSF from ${nl}
+ | http://oss.software.ibm.com/developerworks/projects/bsf ${nl}
+ | and copy bsf.jar to ${ant.home}/lib"/>
+ </ant>
+ </target>
+
+ <!-- All -->
+ <target name="checkCore">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="excalibur-core.jar"/>
+ <property name="path" value="${excalibur-core.jar}"/>
+ <property name="proj.home" value="${basedir}/../all"/>
+ <property name="proj.target" value="all"/>
+ </ant>
+ </target>
+ <target name="checkScratchpad">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="excalibur-scratchpad.jar"/>
+ <property name="path" value="${excalibur-scratchpad.jar}"/>
+ </ant>
+ </target>
+
+ <!-- Fortress Tools -->
+ <target name="checkFortressTools">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name"
value="excalibur-fortress-tools-1.0.jar"/>
+ <property name="path" value="${excalibur-fortress-tools.jar}"/>
+ <property name="proj.home" value="${basedir}/../lib"/>
+ </ant>
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredClass">
+ <property name="proj.jar.name" value="qdox.jar"/>
+ <property name="class"
value="com.thoughtworks.qdox.ant.AbstractQdoxTask"/>
+ <property name="classpath" value="${cp}"/>
+ <property name="remedy" value="1) Download and unpack qdox from ${nl}
+ | http://qdox.codehaus.org/ ${nl}
+ | 2) Copy the project's ant.properties.sample to ant.properties ${nl}
+ | 3) In ant.properties, redefine the qdox.jar property ${nl}
+ | to point to the path of qdox.jar in your ${nl}
+ | downloaded distribution."/>
+ </ant>
+
+ </target>
+
+ <!-- Altrmi -->
+ <target name="checkAltrmiCommon">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="altrmi-common.jar"/>
+ <property name="path" value="${altrmi-common.jar}"/>
+ <property name="proj.home" value="${basedir}/../lib"/>
+ </ant>
+ </target>
+ <target name="checkAltrmiClient" depends="checkAltrmiCommon">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="altrmi-client-impl.jar"/>
+ <property name="path" value="${altrmi-client-impl.jar}"/>
+ <property name="proj.home" value="${basedir}/../lib"/>
+ </ant>
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="altrmi-client-interfaces.jar"/>
+ <property name="path" value="${altrmi-client-interfaces.jar}"/>
+ <property name="proj.home" value="${basedir}/../lib"/>
+ </ant>
+ </target>
+ <target name="checkAltrmiServer" depends="checkAltrmiCommon">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="altrmi-server-impl.jar"/>
+ <property name="path" value="${altrmi-server-impl.jar}"/>
+ <property name="proj.home" value="${basedir}/../lib"/>
+ </ant>
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="altrmi-server-interfaces.jar"/>
+ <property name="path" value="${altrmi-server-interfaces.jar}"/>
+ <property name="proj.home" value="${basedir}/../lib"/>
+ </ant>
+ </target>
+ <target name="checkAltrmiGenerator" depends="checkAltrmiCommon">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="altrmi-generator.jar"/>
+ <property name="path" value="${altrmi-generator.jar}"/>
+ <property name="proj.home" value="${basedir}/../lib"/>
+ </ant>
+ </target>
+ <target name="checkAltrmi" depends="checkAltrmiClient, checkAltrmiServer,
checkAltrmiGenerator">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="altrmi-generator.jar"/>
+ <property name="path" value="${altrmi-generator.jar}"/>
+ <property name="proj.home" value="${basedir}/../lib"/>
+ </ant>
+ </target>
+
+ <target name="checkCommonsCollections">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="commons-collections-2.1.jar"/>
+ <property name="path" value="${commons-collections.jar}"/>
+ <property name="proj.home" value="${basedir}/../lib"/>
+ </ant>
+ </target>
+
+ <target name="checkEvent">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="excalibur-event.jar"/>
+ <property name="path" value="${excalibur-event.jar}"/>
+ <property name="proj.home" value="${basedir}/../event"/>
+ </ant>
+ </target>
+ <target name="checkThread">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="excalibur-thread.jar"/>
+ <property name="path" value="${excalibur-thread.jar}"/>
+ <property name="proj.home" value="${basedir}/../thread"/>
+ </ant>
+ </target>
+ <target name="checkInfo">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="excalibur-info.jar"/>
+ <property name="path" value="${excalibur-info.jar}"/>
+ <property name="proj.home" value="${basedir}/../info"/>
+ </ant>
+ </target>
+ <target name="checkI18n">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="excalibur-i18n.jar"/>
+ <property name="path" value="${excalibur-i18n.jar}"/>
+ <property name="proj.home" value="${basedir}/../i18n"/>
+ </ant>
+ </target>
+
+ <target name="checkCli" depends="checkCompatibility"/>
+
+ <target name="checkCompatibility">
+ <ant antfile="${depchecker.prefix}/depchecker.xml" target="checkRequiredFile">
+ <property name="proj.jar.name" value="excalibur-compatibility-1.0.jar"/>
+ <property name="path" value="${excalibur-compatibility.jar}"/>
+ <property name="proj.home" value="${basedir}/../compatibility"/>
+ </ant>
+ </target>
+ <target name="checkInstrument">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="excalibur-instrument-1.0.jar"/>
+ <property name="path" value="${excalibur-instrument.jar}"/>
+ <property name="proj.home" value="${basedir}/../instrument"/>
+ </ant>
+ </target>
+ <target name="checkInstrumentManagerInterfaces">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name"
value="excalibur-instrument-manager-interfaces-0.3.jar"/>
+ <property name="path"
value="${excalibur-instrument-manager-interfaces.jar}"/>
+ <property name="proj.home" value="${basedir}/../instrument-manager"/>
+ </ant>
+ </target>
+ <target name="checkInstrumentManager"
depends="checkInstrumentManagerInterfaces">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name"
value="excalibur-instrument-manager-0.3.jar"/>
+ <property name="path" value="${excalibur-instrument-manager.jar}"/>
+ <property name="proj.home" value="${basedir}/../instrument-manager"/>
+ </ant>
+ </target>
+ <target name="checkCollections" depends="checkCompatibility"/>
+ <target name="checkComponent">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="excalibur-component.jar"/>
+ <property name="path" value="${excalibur-component.jar}"/>
+ <property name="proj.home" value="${basedir}/../component"/>
+ </ant>
+ </target>
+ <target name="checkConcurrent" depends="checkCompatibility"/>
+ <target name="checkConfiguration">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="excalibur-configuration.jar"/>
+ <property name="path" value="${excalibur-configuration.jar}"/>
+ <property name="proj.home" value="${basedir}/../configuration"/>
+ </ant>
+ </target>
+ <target name="checkContainer" depends="checkLifecycle"/>
+ <target name="checkLifecycle">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="excalibur-lifecycle.jar"/>
+ <property name="path" value="${excalibur-lifecycle.jar}"/>
+ <property name="proj.home" value="${basedir}/../lifecycle"/>
+ </ant>
+ </target>
+ <target name="checkMeta">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="excalibur-meta.jar"/>
+ <property name="path" value="${excalibur-meta.jar}"/>
+ <property name="proj.home" value="${basedir}/../meta"/>
+ </ant>
+ </target>
+ <target name="checkPool">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="excalibur-pool.jar"/>
+ <property name="path" value="${excalibur-pool.jar}"/>
+ <property name="proj.home" value="${basedir}/../pool"/>
+ </ant>
+ </target>
+ <target name="checkIO" depends="checkCompatibility"/>
+ <target name="checkStore">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="excalibur-store.jar"/>
+ <property name="path" value="${excalibur-store.jar}"/>
+ <property name="proj.home" value="${basedir}/../store"/>
+ </ant>
+ </target>
+ <target name="checkLogkit">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="logkit.jar"/>
+ <property name="path" value="${logkit.jar}"/>
+ </ant>
+ </target>
+ <target name="checkLogger">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="excalibur-logger.jar"/>
+ <property name="path" value="${excalibur-logger.jar}"/>
+ <property name="proj.home" value="${basedir}/../logger"/>
+ </ant>
+ </target>
+ <target name="checkDatasource">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="excalibur-datasource.jar"/>
+ <property name="path" value="${excalibur-datasource.jar}"/>
+ <property name="proj.home" value="${basedir}/../datasource"/>
+ </ant>
+ </target>
+ <target name="checkExtension">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="name.jar.name" value="excalibur-extension.jar"/>
+ <property name="path" value="${excalibur-extension.jar}"/>
+ <property name="proj.home" value="${basedir}/../extension"/>
+ </ant>
+ </target>
+ <target name="checkMonitor">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="excalibur-monitor.jar"/>
+ <property name="path" value="${excalibur-monitor.jar}"/>
+ <property name="proj.home" value="${basedir}/../monitor"/>
+ </ant>
+ </target>
+ <target name="checkI18N">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="excalibur-i18n.jar"/>
+ <property name="path" value="${excalibur-i18n.jar}"/>
+ <property name="proj.home" value="${basedir}/../i18n"/>
+ </ant>
+ </target>
+ <target name="checkSourceResolve">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="excalibur-sourceresolve.jar"/>
+ <property name="path" value="${excalibur-sourceresolve.jar}"/>
+ <property name="proj.home" value="${basedir}/../sourceresolve"/>
+ </ant>
+ </target>
+ <target name="checkTestcase">
+ <ant antfile="${depchecker.prefix}/depchecker.xml" target="checkComponent">
+ </ant>
+ </target>
+ <target name="checkThreadcontext">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="excalibur-threadcontext.jar"/>
+ <property name="path" value="${excalibur-threadcontext.jar}"/>
+ <property name="proj.home" value="${basedir}/../threadcontext"/>
+ </ant>
+ </target>
+
+ <target name="checkXMLUtil">
+ <ant antfile="${depchecker.prefix}/depchecker.xml"
target="checkRequiredFile">
+ <property name="proj.jar.name" value="excalibur-xmlutil.jar"/>
+ <property name="path" value="${excalibur-xmlutil.jar}"/>
+ <property name="proj.home" value="${basedir}/../xmlutil"/>
+ </ant>
+ </target>
+
+ <!-- ====================================================== -->
+ <!-- Call to ensure a class is present in the classpath -->
+ <!-- ====================================================== -->
+ <target name="checkRequiredClass">
+ <available classname="${class}" classpath="${classpath}"
property="requirement.satisfied"/>
+ <antcall target="checkRequiredClass.fail"/>
+ </target>
+
+
+ <!-- ====================================================== -->
+ <!-- Call to ensure a file (usu. jar) is present. If not, -->
+ <!-- either build it (if local), or print an error (remote) -->
+ <!-- ====================================================== -->
+ <target name="checkRequiredFile" depends="checkIfLocal, checkRequiredFileLocal,
checkRequiredFileRemote, listRequiredFile, copyRequiredFile"/>
+
+ <target name="checkIfLocal" if="proj.home">
+ <available type="dir" file="${proj.home}" property="local"/>
+ </target>
+
+ <!--
+ Check for a local requirement (another component). If not found,
+ update_dependency will build it
+ -->
+ <target name="checkRequiredFileLocal" if="local">
+ <available type="file" file="${path}" property="requirement.satisfied"/>
+ <antcall target="update_dependency"/>
+ <available type="file" file="${path}" property="build.succeeded"/>
+ <antcall target="build.fail"/>
+ </target>
+
+ <!--
+ Check for a remote requirement. If not found, checkRequiredFile.fail will
+ print an error. Alternatively, we could do a HTTP get to retrieve the file
+ -->
+ <target name="checkRequiredFileRemote" unless="local">
+ <available type="file" file="${path}" property="requirement.satisfied"/>
+ <antcall target="get_dependency"/>
+ <available type="file" file="${path}" property="get.succeeded"/>
+ <antcall target="checkRequiredFile.fail"/>
+ </target>
+
+ <!-- Record the required jar file's path in a file, ${jarlist} -->
+ <target name="listRequiredFile" if="jarlist">
+ <echo file="${jarlist}" append="true">${path}${nl}</echo>
+ </target>
+
+ <!-- Copy the required file to a directory, ${jardir} -->
+ <target name="copyRequiredFile" if="jardir">
+ <mkdir dir="${jardir}"/>
+ <copy file="${path}" todir="${jardir}"/>
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- Script called to recursively call another depencency.xml file in -->
+ <!-- another project, and then run the 'dist.lite' target. -->
+ <!-- =================================================================== -->
+ <target name="update_dependency" description="Update files for one dependency"
unless="requirement.satisfied">
+ <echo>
+ Couldn't find ${path} ${nl}
+ Updating files from dependency ${proj.home}
+ </echo>
+ <!-- Set target if it wasn't previously set -->
+ <property name="proj.target" value="${default.target}"/>
+ <ant dir="${proj.home}" target="${proj.target}" inheritAll="false">
+ <property name="skip.tests" value="true"/>
+ <property name="skip.javadocs" value="true"/>
+ </ant>
+ </target>
+
+ <target name="get_dependency" description="Retrieve a jar via HTTP" if="url"
unless="requirement.satisfied">
+ <get
+ src="${url}"
+ dest="${path}"
+ verbose="true"
+ usetimestamp="true"/>
+ <echo>Retrieved ${path}</echo>
+ </target>
+
+ <target name="checkRequiredFile.fail" unless="get.succeeded">
+ <property name="message" value="Can't find file: ${path}"/>
+ <echo>
+ .---------------------------------------------------------------.
+ | FILE NOT FOUND |
+ | |
+ | ${message}
+ |----------------------------------------------------------------|
+ | Error when building module: |
+ | ${basedir}
+ | |
+ | You must define the following property in order |
+ | to build: |
+ | |
+ | ${proj.jar.name} (currently "${path}")
+ | |
+ | Usually this is done by copying ant.properties.sample to |
+ | ant.properties and defining the property there. This may also |
+ | be done in ${user.home}/.ant.properties. |
+ '----------------------------------------------------------------'
+ </echo>
+ <fail message="Failed requirement: file not found"/>
+ </target>
+
+ <target name="checkRequiredClass.fail" unless="requirement.satisfied">
+ <property name="message" value="Can't find class: ${class}"/>
+ <property name="remedy" value=""/>
+ <echo>
+ .----------------------------------------------------------------.
+ | CLASS NOT FOUND |
+ | |
+ | ${message}
+ |----------------------------------------------------------------|
+ | Error when building module: |
+ | ${basedir}
+ | |
+ | A jar containing class: |
+ | ${class}
+ | must be in your classpath or Ant lib directory |
+ | |
+ | Typically it is in a jar called: |
+ | ${proj.jar.name}
+ | Suggested Remedy: |
+ | ${remedy}
+ '----------------------------------------------------------------'
+ </echo>
+ <fail message="Failed requirement: class not found"/>
+ </target>
+
+ <target name="build.fail" unless="build.succeeded">
+ <echo>
+ .-----------------------------------------------------------------.
+ | BUILD FAILURE |
+ |-----------------------------------------------------------------+
+ | Error when building module: |
+ | ${basedir}
+ | |
+ | |
+ | The dependency-checking system tried to build the project: |
+ | ${proj.home}
+ | which should have provided the property: |
+ | ${proj.jar.name} = ${path}
+ | However, after the build, no such file exists. |
+ | |
+ | Typically this is because the required project changed the name |
+ | of the jar it produces. If so, please correct this in |
+ | default.properties, ant.properties.sample or ant.properties |
+ '-----------------------------------------------------------------'
+ </echo>
+ <fail message="Failed Requirement"/>
+ </target>
+
+</project>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]