From: Steve F. <sm...@us...> - 2002-02-23 17:00:32
|
Update of /cvsroot/mockobjects/mockobjects-java In directory usw-pr-cvs1:/tmp/cvs-serv10801 Modified Files: Tag: j2ee_versioning build.xml Log Message: More work on build script Index: build.xml =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/build.xml,v retrieving revision 1.17.2.1 retrieving revision 1.17.2.2 diff -u -r1.17.2.1 -r1.17.2.2 --- build.xml 23 Feb 2002 00:53:52 -0000 1.17.2.1 +++ build.xml 23 Feb 2002 17:00:28 -0000 1.17.2.2 @@ -44,7 +44,7 @@ <property file="${user.home}/build.properties" /> <property file="build.properties" /> - <target name="project.properties"> + <target name="project-properties"> <property name="project.fullname" value="Mock Objects"/> <property name="project.version" value="0.02"/> <property name="project.name" value="mockobjects"/> @@ -56,7 +56,7 @@ <property name="deprecation" value="off"/> </target> - <target name="source.locations"> + <target name="source-locations"> <property name="src.dir" value="src"/> <property name="src.core.dir" value="${src.dir}/core"/> <property name="src.j2ee.dir" value="${src.dir}/j2ee"/> @@ -68,7 +68,7 @@ <property name="lib.dir" value="lib"/> </target> - <target name="build.locations"> + <target name="build-locations"> <!-- Destination locations for the build (relative to the basedir as specified in the basedir attribute of the project tag) --> <property name="out.dir" value="out"/> @@ -83,32 +83,36 @@ <property name="out.xdoc.site.dir" value="${out.dir}/xdoc/site"/> </target> - <target name="deliverable.names" - depends="project.properties"> + <target name="deliverable-names" + depends="project-properties"> <property name="dist.dir" value="dist"/> - <property name="jar.name" value="${project.name}"/> + <property name="jar.base.name" value="mocks"/> <property name="sources.zip.name" value="${project.name}-src"/> <!-- The project web site in a zip file (without the Javadoc but with a link pointing to javadoc : <htdocs>/javadoc/index.html --> - <property name="website.zip.name" value="${project.name}-website"/> + <property name="site.name" value="${project.name}-website"/> <property name="javadoc.name" value="${project.name}-javadoc"/> <property name="project.zip.name" value="${project.name}-${project.version}"/> </target> - <target name="useful.file.patterns"> + <target name="useful-file-patterns"> <!-- All conf files (including test files) --> <patternset id="nonjava.src.files"> <include name="**/*.txt"/> <include name="**/*.xml"/> <include name="**/*.properties"/> </patternset> + + <patternset id="java.src.files"> + <include name="**/*.java"/> + </patternset> </target> - <target name="check.availabilities" - depends="source.locations"> + <target name="check-availabilities" + depends="source-locations"> <path id="lib.classpath"> <fileset dir="${lib.dir}"> @@ -120,22 +124,22 @@ <available property="jdk.version" value="1.3" classname="java.lang.StrictMath" /> <available property="jdk.version" value="1.4" classname="java.lang.CharSequence" /> - <available property="j2ee" classpathref="lib.classpath" classname="javax.servlet.Servlet" /> <available property="j2ee.version" value="1.2" classpathref="lib.classpath" classname="javax.servlet.Servlet" /> <available property="j2ee.version" value="1.3" classpathref="lib.classpath" classname="javax.servlet.Filter" /> - <patternset id="all.java.files"> - <include name="core/**/*.java"/> - <include name="j2ee/common/**/*.java" if="j2ee"/> - <include name="j2ee/${j2ee.version}/**/*.java" if="j2ee"/> - </patternset> + <!-- sorry about this. It seems to be the easiest way to set a marker to describe + which j2ee the .jar supports. Later versions of Ant include an 'isset' + condition, which should do the trick --> + <property name="jar.j2ee.name" value="" /> + <available property="jar.j2ee.name" value="_j2ee${j2ee.version}" + classpathref="lib.classpath" classname="javax.servlet.Servlet" /> </target> - <!-- Initialize the build. Must be called by all targets --> - <target name="call.me.first" - depends="project.properties, useful.file.patterns, check.availabilities"> + <target name="call-me-first" + depends="project-properties, useful-file-patterns, check-availabilities"> + <!-- Initialize the build. Must be called by all targets --> <tstamp/> @@ -155,25 +159,68 @@ <filter token="today" value="${TODAY}"/> </target> - <target name="clear.old.class.files" - depends="build.locations"> - <delete dir="${out.classes.dir}" quiet="true" /> - <mkdir dir="${out.classes.dir}"/> + <target name="_flush-dir"> + <!-- requires flush.dir --> + <delete dir="${flush.dir}" quiet="yes" /> + <mkdir dir="${flush.dir}" /> + </target> + + <target name="_copy-from-j2ee" + if="j2ee.version"> + <!-- requires copy.todir, src.patternset.id --> + + <copy todir="${copy.todir}" + filtering="true" + includeEmptyDirs="false" > + <fileset dir="${src.dir}/j2ee/common"> + <patternset refid="${src.patternset.id}" /> + </fileset> + <fileset dir="${src.dir}/j2ee/${j2ee.version}"> + <patternset refid="${src.patternset.id}" /> + </fileset> + </copy> + </target> + + <target name="_copy-from-src" + depends="useful-file-patterns, _copy-from-j2ee" > + <!-- requires copy.todir, src.patternset.id --> + + <copy todir="${copy.todir}" + filtering="true" + includeEmptyDirs="false" > + <fileset dir="${src.dir}/core"> + <patternset refid="${src.patternset.id}"/> + </fileset> + </copy> + </target> + + <target name="clear-class-files" + depends="build-locations"> + <antcall target="_flush-dir"> + <param name="flush.dir" value="${out.classes.dir}" /> + </antcall> + </target> + + <target name="copy-java-files" + depends="source-locations, build-locations, check-availabilities"> + <antcall target="_copy-from-src"> + <param name="copy.todir" value="${out.src.dir}" /> + <param name="src.patternset.id" value="java.src.files" /> + </antcall> </target> <target name="compile" - depends="call.me.first, clear.old.class.files" + depends="call-me-first, copy-java-files" description="Compile all the java files for included libraries" > + <mkdir dir="${out.classes.dir}" /> + <javac destdir="${out.classes.dir}" debug="${debug}" deprecation="${deprecation}" verbose="true" optimize="${optimize}" - srcdir="${src.dir}"> - - <patternset refid="all.java.files" /> - + srcdir="${out.src.dir}"> <classpath> <path refid="lib.classpath"/> <pathelement path="${java.class.path}"/> @@ -181,33 +228,41 @@ </javac> </target> - <target name="copy.nonjava.j2ee.files" - depends="check.availabilities, call.me.first" - if="j2ee"> - <copy todir="${out.classes.dir}"> - <fileset dir="${src.dir}/j2ee/common"> - <patternset refid="nonjava.src.files" /> - </fileset> - <fileset dir="${src.dir}/j2ee/${j2ee.version}"> - <patternset refid="nonjava.src.files" /> - </fileset> - </copy> + <target name="test" + depends="call-me-first, compile" + description="run the junit tests"> + + <junit fork="yes" haltonfailure="yes"> + <classpath> + <path refid="lib.classpath"/> + <pathelement location="${out.classes.dir}"/> + <pathelement path="${java.class.path}"/> + </classpath> + + <formatter type="plain" usefile="false"/> + + <batchtest> + <fileset dir="${out.classes.dir}"> + <include name="**/*Test.class"/> + <include name="**/AllTests.class"/> + </fileset> + </batchtest> + </junit> </target> - <target name="copy.nonjava.files" - depends="check.availabilities, call.me.first, copy.nonjava.j2ee.files" > - <copy todir="${out.classes.dir}" - includeEmptyDirs="false" > - <fileset dir="${src.dir}/core"> - <patternset refid="nonjava.src.files"/> - </fileset> - </copy> + <target name="copy-nonjava-files" + depends="source-locations, build-locations, check-availabilities, call-me-first"> + <antcall target="_copy-from-src"> + <param name="copy.todir" value="${out.classes.dir}" /> + <param name="src.patternset.id" value="nonjava.src.files" /> + </antcall> </target> - <target name="prepare.jar" - depends="compile, copy.nonjava.files"> - <delete dir="${out.conf.dir}" quiet="yes" /> - <mkdir dir="${out.conf.dir}"/> + <target name="prepare-jar" + depends="copy-nonjava-files"> + <antcall target="_flush-dir"> + <param name="flush.dir" value="${out.conf.dir}" /> + </antcall> <!-- Copy the manifest in order to replace the version token filter --> <copy todir="${out.conf.dir}" filtering="on"> @@ -217,37 +272,36 @@ </copy> </target> + <target name="make-jar-name" + depends="deliverable-names, check-availabilities"> + <property name="jar.name" + value="${jar.base.name}${project.version}_jdk${jdk.version}${jar.j2ee.name}" /> + </target> + <target name="jar" - depends="deliverable.names, prepare.jar" + depends="compile, test, prepare-jar, make-jar-name" description="Generate a mockobjects jar"> + <property name="jar.file.name" value="${out.dir}/${jar.name}.jar" /> - <jar jarfile="${out.dir}/${jar.name}.jar" + <echo message="jar file: ${jar.file.name}" /> + + <jar jarfile="${jar.file.name}" manifest="${out.conf.dir}/manifest"> <fileset dir="${out.classes.dir}"/> </jar> </target> - <!-- - ======================================================================== - Generate the javadoc - ======================================================================== - --> - <!-- Preparation target for the javadoc target --> - <target name="prepare-javadoc" > - - <mkdir dir="${out.javadoc.dir}"/> - - <uptodate property="javadoc.notrequired" - targetfile="${out.javadoc.dir}/packages.html"> - - <srcfiles dir="${out.src.dir}" includes="**/*.java"/> - </uptodate> - + <target name="prepare-javadoc" + depends="build-locations, copy-java-files" > + <antcall target="_flush-dir"> + <param name="flush.dir" value="${out.javadoc.dir}" /> + </antcall> </target> - <!-- Generate the javadoc for the current Servlet API --> - <target name="javadoc" depends="prepare-javadoc" - unless="javadoc.notrequired"> + <target name="javadoc" + depends="call-me-first, deliverable-names, prepare-javadoc" + unless="javadoc.notrequired" + description="Generate the javadoc for the current version" > <javadoc sourcepath="${out.src.dir}" @@ -265,47 +319,52 @@ <path refid="lib.classpath"/> <pathelement path="${java.class.path}"/> </classpath> - </javadoc> + </target> + <target name="zip-javadoc-for-website" + depends="javadoc" > <!-- Create a gzip file of the javadoc. This is for putting to the project web site. It needs to be unzipped in the root document - of the web site. This needs to be done for each Servlet API - javadoc. This file is not intended to be redistributed as part + of the web site. This file is not intended to be redistributed as part of the end-user redistributable. It is simply to help create the web site --> - <tar tarfile="${out.dir}/${javadoc.name}.tar" basedir="${out.javadoc.dir}"/> <gzip zipfile="${out.dir}/${javadoc.name}.tar.gz" src="${out.dir}/${javadoc.name}.tar"/> <delete file="${out.dir}/${javadoc.name}.tar"/> - </target> - <!-- - ======================================================================== - Generate the full documentation, i.e. web site + javadoc - ======================================================================== - --> - <target name="prepare-doc" depends="javadoc"> - - <mkdir dir="${out.xdoc.doc.dir}"/> - <mkdir dir="${out.doc.dir}"/> - <mkdir dir="${out.doc.dir}/images"/> + <target name="_prepare-xdoc"> + <!-- requires prepare.xdoc.dir, book.xml.file --> + <mkdir dir="${prepare.xdoc.dir}"/> <!-- Copy doc-book.xml to book.xml for defining the local - documentation web site and replacing token filters (year) --> - <copy file="${xdoc.dir}/doc-book.xml" - tofile="${out.xdoc.doc.dir}/book.xml" filtering="on"/> + documentation web site and replacing token filters (year) --> + <copy file="${xdoc.dir}/${book.xml.file}" + filtering="on" + tofile="${prepare.xdoc.dir}/book.xml"/> <!-- Copy all remaining files from ${xdoc.dir} to ${out.xdoc.doc.dir} --> - <copy todir="${out.xdoc.doc.dir}" filtering="on"> + <copy todir="${prepare.xdoc.dir}" filtering="on"> <fileset dir="${xdoc.dir}"> <exclude name="*-book.xml"/> </fileset> </copy> + </target> + + <target name="prepare-doc" + depends="javadoc"> + + <mkdir dir="${out.doc.dir}"/> + <mkdir dir="${out.doc.dir}/images"/> + + <antcall target="_prepare-xdoc" > + <param name="prepare.xdoc.dir" value="${out.xdoc.doc.dir}" /> + <param name="book.xml.file" value="doc-book.xml" /> + </antcall> <!-- Copy the images --> <copy todir="${out.doc.dir}/images"> @@ -329,12 +388,11 @@ </target> - <!-- Generate the documentation --> - <target name="doc" depends="prepare-doc" - unless="stylebook.doc.notrequired" - description="generate the documentation"> + <target name="doc" + depends="prepare-doc" + unless="stylebook.doc.notrequired" + description="Generate the documentation website"> - <!-- Generate the documentation web site --> <stylebook book="${out.xdoc.doc.dir}/book.xml" skinDirectory="${skin.dir}/jakarta.apache.org" targetDirectory="${out.doc.dir}"> @@ -342,9 +400,7 @@ <classpath> <pathelement path="${java.class.path}"/> </classpath> - </stylebook> - </target> <!-- @@ -352,24 +408,16 @@ Generate the web site ======================================================================== --> - <target name="prepare-site" depends="call.me.first"> + <target name="prepare-site" + depends="build-locations, deliverable-names, call-me-first"> - <mkdir dir="${out.xdoc.site.dir}"/> <mkdir dir="${out.site.dir}"/> <mkdir dir="${out.site.dir}/images"/> - <!-- Copy site-book.xml to book.xml for defining the web site content - and replacing token filters (year) --> - <copy file="${xdoc.dir}/site-book.xml" - tofile="${out.xdoc.site.dir}/book.xml" filtering="on"/> - - <!-- Copy all remaining files from ${xdoc.dir} to - ${out.xdoc.site.dir} --> - <copy todir="${out.xdoc.site.dir}" filtering="on"> - <fileset dir="${xdoc.dir}"> - <exclude name="*-book.xml"/> - </fileset> - </copy> + <antcall target="_prepare-xdoc" > + <param name="prepare.xdoc.dir" value="${out.xdoc.site.dir}" /> + <param name="book.xml.file" value="site-book.xml" /> + </antcall> <!-- Copy the images --> <copy todir="${out.site.dir}/images"> @@ -403,9 +451,10 @@ </target> <!-- Generate the web site --> - <target name="site" depends="prepare-site" - unless="stylebook.site.notrequired" - description="generate the web site"> + <target name="site" + depends="build-locations, deliverable-names, prepare-site, zip-javadoc-for-website" + unless="stylebook.site.notrequired" + description="Generate the web site"> <stylebook book="${out.xdoc.site.dir}/book.xml" skinDirectory="${skin.dir}/jakarta.apache.org" @@ -425,42 +474,9 @@ </target> - <!-- - ======================================================================== - Run the unit tests - ======================================================================== - --> - <target name="test" depends="compile" - description="run the unit tests"> - - <junit fork="yes" haltonfailure="yes"> - - <classpath> - <path refid="lib.classpath"/> - <pathelement location="${out.classes.dir}"/> - <pathelement path="${java.class.path}"/> - </classpath> - - <formatter type="plain" usefile="false"/> - - <batchtest> - <fileset dir="${out.classes.dir}"> - <include name="**/*Test.class"/> - <include name="**/test/AllTests.class"/> - </fileset> - </batchtest> - - </junit> - - </target> - - <!-- - ======================================================================== - Remove all build generated files - ======================================================================== - --> - <target name="clean" depends="call.me.first" - description="clean up all generated files"> + <target name="clean" + depends="call-me-first" + description="clean up all generated files"> <delete> <fileset dir="."> @@ -475,25 +491,22 @@ <!-- Remove the out directory --> <delete dir="${out.dir}"/> - </target> - <!-- - ======================================================================== - Create the distributables - ======================================================================== - --> - <target name="prepare-dist" depends="jar,doc"> + <target name="prepare-dist" + depends="jar,doc"> <mkdir dir="${dist.dir}"/> </target> - <target name="ZipJavaSources" > - <zip zipfile="${out.dir}/${src.name}.zip" + <target name="zip-java-sources" + depends="build-locations, deliverable-names"> + <zip zipfile="${out.dir}/${sources.zip.name}.zip" basedir="${out.src.dir}" /> </target> - <target name="dist" depends="prepare-dist, ZipJavaSources" - description="generate the distributables"> + <target name="dist" + depends="call-me-first, make-jar-name, prepare-dist, zip-java-sources" + description="Generate the distributables"> <zip zipfile="${dist.dir}/${dist.name}.zip"> <zipfileset dir="${out.dir}" prefix="lib"> @@ -512,7 +525,7 @@ Do it all ======================================================================== --> - <target name="all" depends="clean,jar,doc,test,site,dist" + <target name="all" depends="clean, test, jar, doc, site, dist" description="do it all (clean, jar, doc, test, site)"> </target> @@ -526,8 +539,10 @@ ======================================================================== --> - <target name="deploy-site" depends="clean,site" if="username" - description="deploy the web site to SourceForge (see target for details)"> + <target name="deploy-site" + depends="clean, site" + if="username" + description="Deploy the web site to SourceForge (see target for details)"> <property name="deploy.homepage" value="/home/groups/m/mo/mockobjects/htdocs"/> <property name="deploy.host" value="mockobjects.sourceforge.net"/> @@ -537,7 +552,8 @@ <arg value="${username}@${deploy.host}:${deploy.homepage}"/> </exec> - <exec dir="." executable="ssh"> + <exec dir="." + executable="ssh"> <arg line="-l ${username} ${deploy.host} 'cd ${deploy.homepage};gunzip ${site.name}.tar.gz;tar xvf ${site.name}.tar;rm ${site.name}.tar'"/> </exec> @@ -549,7 +565,7 @@ JRefactory jar need to be place in ${ANT_HOME}/lib. ======================================================================== --> - <target name="format" depends="call.me.first" + <target name="format" depends="call-me-first" description="reformats all java code"> <taskdef name="pretty" classname="org.acm.seguin.ant.Pretty"/> |