vmassol 2003/02/03 01:37:13 Modified: petals/ant build.xml build.properties.sample .cvsignore Log: Major refactoring of the build systems and directory layout: * Factorized common build parts into build-common.xml and normalized the builds * Added "release" target to all builds * Moved the sample-servlet and sample-jetty to samples/servlet and samples/jetty * Moved the web site upload to the documentation build * Simplified to the extreme the main Cactus build.xml and removed the build-admin.xml scripts * Removed some Ant tasks that were in anttasks/ as they are now in the Ant Petal * Some other cosmetic changes * Added scripts for Tomcat 3.x (However, I get a strange error while running Tomcat 3.3.1. Not sure why yet (some flushbuffer() jasper error)) * WL 7.x script has been tested and works (for JDK < 1.4) Several issues/todos remain: * The Gump build is probably not working at all (I'll correct it as I receive Gump email notifications of errors) * The Clover report is currently broken (i.e. not generated) * The sample-jetty needs to be put in line with the new build system and use the new Ant Petal * Pb of order in Sample Servlet test cases (one of the test must run before the other but this is not currently possible with the Ant Petal) * WL 6.x script needs to be tested Revision Changes Path 1.5 +75 -203 jakarta-cactus/petals/ant/build.xml Index: build.xml =================================================================== RCS file: /home/cvs/jakarta-cactus/petals/ant/build.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- build.xml 31 Jan 2003 12:15:08 -0000 1.4 +++ build.xml 3 Feb 2003 09:37:13 -0000 1.5 @@ -1,18 +1,20 @@ <?xml version="1.0"?> <!DOCTYPE project [ - <!ENTITY common SYSTEM "file:../../common.xml"> + <!ENTITY common SYSTEM "file:../../build-common.xml"> ]> <!-- ============================================================================= Build file for the Cactus Ant Petal project. + See build.properties.sample for mandatory and optional Ant properties that + need to be set prior to calling this build script. + This script should be started with the following command line : ant <target> - Run "ant -projecthelp" to get a list of available targets. The default - target is "dist" + Run "ant -projecthelp" to get a list of available targets. Note: basedir points to the main Cactus directory in order to have the same base dir for all Cactus subprojects and thus be able to share @@ -21,149 +23,50 @@ --> <project name="Cactus Ant Petal" default="dist" basedir="../.."> - <!-- Give user a chance to override without editing this file - (and without typing -D each time it compiles it) --> - <property file="${basedir}/petals/ant/build.properties" /> - <property file="${basedir}/build.properties" /> - <property file="${user.home}/build.properties" /> + <!-- Base directory for all file related operations --> + <property name="base.dir" value="petals/ant"/> + + <!-- Include properties and targets common to the different subprojects --> + &common; <!-- Global project properties --> <property name="project.name.text" value="Cactus Ant Petal"/> <property name="project.name.file" value="cactus-petal-ant"/> - <property name="project.version" value="1.5dev"/> - - <!-- Prefix to add to all distributable files --> - <property name="project.prefix" value="jakarta-"/> - - <!-- - ======================================================================== - Default values for properties not defined in build.properties or in - a higher level calling Ant script - ======================================================================== - --> - <property name="year" value="2000-2003"/> - <property name="debug" value="on"/> - <property name="optimize" value="off"/> - <property name="deprecation" value="off"/> - - <!-- The location of the Cactus custom Ant tasks jar --> - <property name="cactus.ant.jar" value="anttasks/dist/lib/cactus-ant.jar"/> - - <!-- - ======================================================================== - Base directory for all file related operations - ======================================================================== - --> - <property name="base.dir" location="petals/ant"/> <!-- ======================================================================== - Set the properties related to the source tree. - Note: These properties are defined in a target as some need the - j2ee.api property to be set + Initialize source, target and dist properties ======================================================================== --> - <target name="properties.source"> + <target name="properties"> - <property name="src.dir" location="${base.dir}/src"/> - <property name="src.java.dir" location="${src.dir}/java"/> - <property name="src.script.dir" location="${src.dir}/scripts"/> - <property name="src.conf.dir" location="${src.dir}/confs"/> - <property name="build.dir" location="${base.dir}/."/> - - <!-- The location of the web files generated by the Cactus framework - (i.e. the JSP Redirector) --> - <property name="cactus.framework.web" - value="framework/dist-${j2ee.api}/web"/> - - <!-- The location of the Cactus framework jar --> - <property name="cactus.framework.jar" - value="framework/dist-${j2ee.api}/lib/cactus.jar"/> + <!-- Set the properties related to the source tree --> + <property name="src.dir" value="${base.dir}/src"/> + <property name="src.java.dir" value="${src.dir}/java"/> + <property name="src.script.dir" value="${src.dir}/scripts"/> + <property name="src.conf.dir" value="${src.dir}/confs"/> + <property name="build.dir" value="${base.dir}/."/> - </target> - - <!-- - ======================================================================== - Set the properties related to the target tree - Note: These properties are defined in a target as some need the - j2ee.api property to be set - ======================================================================== - --> - <target name="properties.target"> - - <property name="target.dir" location="${base.dir}/target-${j2ee.api}"/> - <property name="target.classes.dir" location="${target.dir}/classes"/> + <!-- Set the properties related to the target area --> + <property name="target.classes.dir" value="${target.dir}/classes"/> <property name="target.classes.java.dir" - location="${target.classes.dir}/java"/> - <property name="target.doc.dir" location="${target.dir}/doc"/> - <property name="target.doc.api.dir" location="${target.doc.dir}/api"/> + value="${target.classes.dir}/java"/> + <property name="target.doc.dir" value="${target.dir}/doc"/> + <property name="target.doc.api.dir" value="${target.doc.dir}/api"/> - <property name="target.petal.dir" location="${target.dir}/petal"/> + <property name="target.petal.dir" value="${target.dir}/petal"/> <property name="target.petal.lib.dir" - location="${target.petal.dir}/lib"/> + value="${target.petal.dir}/lib"/> <property name="target.petal.lib.client.dir" - location="${target.petal.lib.dir}/client"/> + value="${target.petal.lib.dir}/client"/> <property name="target.petal.lib.server.dir" - location="${target.petal.lib.dir}/server"/> + value="${target.petal.lib.dir}/server"/> <property name="target.petal.lib.common.dir" - location="${target.petal.lib.dir}/common"/> + value="${target.petal.lib.dir}/common"/> <property name="target.petal.script.dir" - location="${target.petal.dir}/scripts"/> + value="${target.petal.dir}/scripts"/> <property name="target.petal.conf.dir" - location="${target.petal.dir}/confs"/> - - </target> - - <!-- - ======================================================================== - Set the properties related to the distribution tree - Note: These properties are defined in a target as some need the - j2ee.api property to be set - ======================================================================== - --> - <target name="properties.distribution"> - - <property name="dist.dir" location="${base.dir}/dist-${j2ee.api}"/> - <property name="dist.bin.dir" location="${dist.dir}/bin"/> - <property name="dist.doc.dir" location="${dist.dir}/doc"/> - <property name="dist.doc.api.dir" location="${dist.doc.dir}/api"/> - - </target> - - <!-- - ======================================================================== - Names of deliverables - ======================================================================== - --> - - <!-- The Ant Petal jar and helper classes --> - <property name="antpetal.jar.name" value="${project.name.file}"/> - - <!-- The global Ant Petal zip --> - <property name="antpetal.zip.name" value="${project.name.file}"/> - - <!-- - ======================================================================== - Include common targets and properties - ======================================================================== - --> - &common; - - <!-- - ======================================================================== - Display configurable properties values - ======================================================================== - --> - <target name="display.properties"> - - <echo>----- ${project.name.text} ${project.version} -----</echo> - <echo></echo> - <echo>java.class.path = ${java.class.path}"</echo> - <echo></echo> - <echo>java.home = ${java.home}</echo> - <echo>user.home = ${user.home}</echo> - <echo>ant.home = ${ant.home}</echo> - <echo></echo> + value="${target.petal.dir}/confs"/> </target> @@ -174,9 +77,10 @@ --> <target name="check.properties"> - <taskdef name="checkProperty" classname="org.apache.cactus.ant.CheckPropertiesTask"> + <taskdef name="checkProperty" + classname="org.apache.cactus.ant.CheckPropertiesTask"> <classpath> - <pathelement location="${cactus.ant.jar}"/> + <pathelement location="${cactus.anttasks.jar}"/> </classpath> </taskdef> @@ -194,51 +98,11 @@ <!-- ======================================================================== - Find out the J2EE API version - ======================================================================== - --> - <target name="check.j2ee.version"> - - <condition property="j2ee.api" value="13"> - <available classname="javax.servlet.Filter"> - <classpath> - <pathelement location="${j2ee.jar}"/> - </classpath> - </available> - </condition> - - <condition property="j2ee.api" value="12"> - <available classname="javax.servlet.Servlet"> - <classpath> - <pathelement location="${j2ee.jar}"/> - </classpath> - </available> - </condition> - - <fail message="Unsupported J2EE version" unless="j2ee.api"/> - - <echo message="j2ee.api = ${j2ee.api}"/> - - </target> - - <!-- - ======================================================================== - Load all dynamic properties - ======================================================================== - --> - <target name="load.properties" - depends="check.j2ee.version,properties.source,properties.target,properties.distribution"/> - - <!-- - ======================================================================== Initialize the build. Must be called by all targets ======================================================================== --> <target name="init" - depends="display.properties,check.properties,load.properties"> - - <tstamp/> - + depends="init.common,properties,check.properties"> </target> <!-- @@ -251,7 +115,8 @@ <mkdir dir="${target.classes.java.dir}"/> <javac srcdir="${src.java.dir}" destdir="${target.classes.java.dir}" - deprecation="${deprecation}" optimize="${optimize}"/> + deprecation="${deprecation}" optimize="${optimize}" + debug="${debug}"/> </target> @@ -262,7 +127,7 @@ --> <target name="jar" depends="compile" description="Generate the petal jar"> - <jar jarfile="${target.dir}/${antpetal.jar.name}.jar"> + <jar jarfile="${target.dir}/${cactus.antpetal.jar.name}.jar"> <manifest> <section name="org/apache/cactus/petal/ant/"> @@ -294,8 +159,7 @@ Generate the documentation (javadoc) ======================================================================== --> - <target name="doc.check" - depends="init"> + <target name="doc.check" depends="init"> <uptodate property="doc.uptodate" targetfile="${target.doc.api.dir}/index.html"> @@ -305,9 +169,7 @@ </target> - <target name="doc" - depends="doc.check" - unless="doc.uptodate" + <target name="doc" depends="doc.check" unless="doc.uptodate" description="Generates the API documentation"> <mkdir dir="${target.doc.api.dir}"/> @@ -347,13 +209,18 @@ <!-- (None at the moment) --> <!-- Gather all client side Cactus jars --> - <copy tofile="${target.petal.lib.client.dir}/${antpetal.jar.name}-${project.version}.jar" - file="${target.dir}/${antpetal.jar.name}.jar"/> - <copy todir="${target.petal.lib.client.dir}" file="${j2ee.jar}"/> + <copy tofile="${target.petal.lib.client.dir}/${cactus.antpetal.jar.name}-${project.version}.jar" + file="${target.dir}/${cactus.antpetal.jar.name}.jar"/> + + <!-- Note: ATM we copy the servlet jar (and not the J2EE one). The + reasons are that ATM we only need the servlet API and that the + J2EE jar is not redistributable --> + <copy todir="${target.petal.lib.client.dir}" file="${servlet.jar}"/> + <copy todir="${target.petal.lib.client.dir}" file="${commons.httpclient.jar}"/> <!-- Gather all shared (client and server) Cactus jars --> - <copy tofile="${target.petal.lib.common.dir}/cactus-${project.version}.jar" + <copy tofile="${target.petal.lib.common.dir}/${cactus.framework.jar.name}-${project.version}.jar" file="${cactus.framework.jar}"/> <copy todir="${target.petal.lib.common.dir}" file="${commons.logging.jar}"/> <copy todir="${target.petal.lib.common.dir}" file="${log4j.jar}"/> @@ -363,10 +230,10 @@ <!-- Copy the scripts for the current J2EE API --> - <filter token="cactus.petal.ant.jar.name" - value="${antpetal.jar.name}-${project.version}.jar"/> + <filter token="cactus.antpetal.jar.name" + value="${cactus.antpetal.jar.name}-${project.version}.jar"/> <filter token="cactus.framework.jar.name" - value="cactus-${project.version}.jar"/> + value="${cactus.framework.jar.name}-${project.version}.jar"/> <basename property="log4j.jar.name" file="${log4j.jar}"/> <filter token="log4j.jar.name" value="${log4j.jar.name}"/> @@ -408,10 +275,11 @@ <mkdir dir="${dist.bin.dir}"/> <mkdir dir="${dist.doc.api.dir}"/> - <zip zipfile="${dist.bin.dir}/${antpetal.zip.name}.zip"> - <fileset dir="${target.petal.dir}"/> - </zip> - + <!-- Copy the petal --> + <copy todir="${dist.bin.dir}/${project.name.file}"> + <fileset dir="${target.petal.dir}"/> + </copy> + <!-- Copy the generated documentation --> <copy todir="${dist.doc.api.dir}"> <fileset dir="${target.doc.api.dir}"/> @@ -421,24 +289,10 @@ <!-- ======================================================================== - Clean generated files (including distributables) - ======================================================================== - --> - <target name="clean" depends="load.properties" - description="Clean all generated files"> - - <delete dir="${target.dir}"/> - <delete dir="${dist.dir}"/> - - </target> - - <!-- - ======================================================================== Perform a code audit using CheckStyle. ======================================================================== --> - <target name="checkstyle" - depends="init, init.checkstyle" + <target name="checkstyle" depends="init,init.checkstyle" if="checkstyle.available" description="Perform a code audit using Checkstyle"> @@ -458,6 +312,24 @@ <property key="checkstyle.header.file" file="./LICENSE.cactus"/> </checkstyle> + </target> + + <!-- + ======================================================================== + Generate the release + ======================================================================== + --> + <target name="release" depends="clean,dist" + description="Generate the release files"> + + <mkdir dir="${release.dir}"/> + + <zip destfile="${release.dir}/${main.release.name}.zip"> + <zipfileset dir="${dist.bin.dir}/${project.name.file}" + prefix="${main.release.name}"> + </zipfileset> + </zip> + </target> </project> 1.4 +63 -58 jakarta-cactus/petals/ant/build.properties.sample Index: build.properties.sample =================================================================== RCS file: /home/cvs/jakarta-cactus/petals/ant/build.properties.sample,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- build.properties.sample 26 Jan 2003 22:18:08 -0000 1.3 +++ build.properties.sample 3 Feb 2003 09:37:13 -0000 1.4 @@ -1,58 +1,63 @@ -# ----------------------------------------------------------------------------- -# build.properties.sample -# -# This is an example "build.properties" file, used to customize building the -# Cactus Ant Petal for your local environment. Make any changes you need, and -# rename this file to "build.properties" in the same directory that contains the -# "build.xml" file. -# -# $Id$ -# ----------------------------------------------------------------------------- - -# WARNING: The relative paths below are relative to the directory where the -# build.xml file is located. - -# ----------------------------------------------------------------------------- -# Mandatory properties -# ----------------------------------------------------------------------------- - -# Location of all jars. Note: This is not a mandatory property. It is only -# used here so that it can be reused when defining the location of all the jars -# below. You do not have to put all the external jars in a single location. -lib.repo = c:/apps/maven/repository - -# The location of the J2EE API jar. Depending on the version (1.2 or 1.3) of -# it, the corresponding Cactus Framework will be built. For example if you use -# J2EE 1.3 jar, then the Cactus jar will contain the Filter Redirector which is -# only available for Servlet 2.3 (part of J2EE 1.3). -j2ee.jar = ${lib.repo}/servletapi/jars/servletapi-2.3.jar - -# The location of the Commons Logging jar -commons.logging.jar = ${lib.repo}/commons-logging/jars/commons-logging-1.0.1.jar - -# The location of the log4j jar -log4j.jar = ${lib.repo}/log4j/jars/log4j-1.2.6.jar - -# The location of the Commons Httpclient jar -commons.httpclient.jar = ${lib.repo}/commons-httpclient/jars/commons-httpclient-2.0alpha2-20030125.jar - -# The location of the Httpunit jar -httpunit.jar = ${lib.repo}/httpunit/jars/httpunit-1.4.5.jar - -# The location of the AspectJ runtime jar -aspectjrt.jar = ${lib.repo}/aspectj/jars/aspectjrt-1.0.6.jar - -# The location of the Junit jar -junit.jar = ${lib.repo}/junit/jars/junit-3.8.1.jar - -# ----------------------------------------------------------------------------- -# Optional properties -# ----------------------------------------------------------------------------- - -# Dependancies for Checkstyle code auditing -# If not specified here, the JARs must be present in ANTHOME/lib -antlr.jar = ${lib.repo}/antlr/jars/antlr-2.7.1.jar -checkstyle.jar = ${lib.repo}/checkstyle/jars/checkstyle-2.4.jar -commons-beanutils.jar = ${lib.repo}/commons-beanutils/jars/commons-beanutils-1.5.jar -commons-collections.jar = ${lib.repo}/commons-collections/jars/commons-collections-2.1.jar -regexp.jar = ${lib.repo}/regexp/jars/regexp-1.2.jar +# ----------------------------------------------------------------------------- +# build.properties.sample +# +# This is an example "build.properties" file, used to customize building the +# Cactus Ant Petal for your local environment. Make any changes you need, and +# rename this file to "build.properties" in the same directory that contains the +# "build.xml" file. +# +# $Id$ +# ----------------------------------------------------------------------------- + +# WARNING: The relative paths below are relative to the directory where the +# build.xml file is located. + +# ----------------------------------------------------------------------------- +# Mandatory properties +# ----------------------------------------------------------------------------- + +# Location of all jars. Note: This is not a mandatory property. It is only +# used here so that it can be reused when defining the location of all the jars +# below. You do not have to put all the external jars in a single location. +lib.repo = c:/apps/maven/repository + +# The location of the J2EE API jar. Depending on the version (1.2 or 1.3) of +# it, the corresponding Cactus Framework will be built. For example if you use +# J2EE 1.3 jar, then the Cactus jar will contain the Filter Redirector which is +# only available for Servlet 2.3 (part of J2EE 1.3). +j2ee.jar = ${lib.repo}/servletapi/jars/servletapi-2.3.jar + +# Note: ATM we copy the servlet jar (and not the J2EE one). The reasons are +# that ATM we only need the servlet API and that the J2EE jar is not +# redistributable. +servlet.jar = ${lib.repo}/servletapi/jars/servletapi-2.3.jar + +# The location of the Commons Logging jar +commons.logging.jar = ${lib.repo}/commons-logging/jars/commons-logging-1.0.1.jar + +# The location of the log4j jar +log4j.jar = ${lib.repo}/log4j/jars/log4j-1.2.6.jar + +# The location of the Commons Httpclient jar +commons.httpclient.jar = ${lib.repo}/commons-httpclient/jars/commons-httpclient-2.0alpha2-20030125.jar + +# The location of the Httpunit jar +httpunit.jar = ${lib.repo}/httpunit/jars/httpunit-1.4.5.jar + +# The location of the AspectJ runtime jar +aspectjrt.jar = ${lib.repo}/aspectj/jars/aspectjrt-1.0.6.jar + +# The location of the Junit jar +junit.jar = ${lib.repo}/junit/jars/junit-3.8.1.jar + +# ----------------------------------------------------------------------------- +# Optional properties +# ----------------------------------------------------------------------------- + +# Dependancies for Checkstyle code auditing +# If not specified here, the JARs must be present in ANTHOME/lib +antlr.jar = ${lib.repo}/antlr/jars/antlr-2.7.1.jar +checkstyle.jar = ${lib.repo}/checkstyle/jars/checkstyle-2.4.jar +commons-beanutils.jar = ${lib.repo}/commons-beanutils/jars/commons-beanutils-1.5.jar +commons-collections.jar = ${lib.repo}/commons-collections/jars/commons-collections-2.1.jar +regexp.jar = ${lib.repo}/regexp/jars/regexp-1.2.jar 1.3 +2 -0 jakarta-cactus/petals/ant/.cvsignore Index: .cvsignore =================================================================== RCS file: /home/cvs/jakarta-cactus/petals/ant/.cvsignore,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- .cvsignore 26 Jan 2003 22:21:35 -0000 1.2 +++ .cvsignore 3 Feb 2003 09:37:13 -0000 1.3 @@ -3,4 +3,6 @@ dist-13 target-12 target-13 +release-12 +release-13 ant.bat
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]