You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2005/06/08 17:52:30 UTC

svn commit: r189597 - /incubator/roller/trunk/build.xml

Author: snoopdave
Date: Wed Jun  8 08:52:28 2005
New Revision: 189597

URL: http://svn.apache.org/viewcvs?rev=189597&view=rev
Log:
initial commit

Added:
    incubator/roller/trunk/build.xml

Added: incubator/roller/trunk/build.xml
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/build.xml?rev=189597&view=auto
==============================================================================
--- incubator/roller/trunk/build.xml (added)
+++ incubator/roller/trunk/build.xml Wed Jun  8 08:52:28 2005
@@ -0,0 +1,922 @@
+<project default="usage" name="roller">
+<!-- ********************************************************************* -->
+<!-- Ant build script for Roller main branch -->
+<!-- Author: David M Johnson -->
+<!-- ********************************************************************* -->
+<target name="usage" description="Print usage for key targets">
+<echo>
+Key Targets:
+             all - Build all: gen code, compile code, stage web directory
+           build - Same as 'all' but no code gen
+         javadoc - Run javadoc against (generated) code
+           clean - Blow away all generated code and all byte code
+         rebuild - Clean and build all
+           usage - Print this help text...
+</echo>
+</target>
+
+<!-- ================================================ -->
+<!-- Meta targets -->
+<!-- ================================================ -->
+<target name="all" depends="generate,stage-web" description="Build all">
+</target>
+<target name="build" depends="stage-web" description="Compile only, no code generation">
+</target>
+<target name="rebuild" depends="clean,all" description="Clean and build all">
+</target>
+<target name="clean" description="Clean out build directory">
+    <delete dir="./build"/>
+</target>
+
+<!-- ================================================ -->
+<!-- Properties and classpaths -->
+<!-- ================================================ -->
+
+<property file="ant.properties"/>
+<property name="build.generated"     value="${ro.build}/generated"/>
+<property name="build.compile_beans" value="${ro.build}/compile_beans"/>
+<property name="build.compile_web"   value="${ro.build}/compile_web"/>
+<property name="build.stage_web"     value="${ro.build}/roller"/>
+<property name="build.tests"         value="${ro.build}/tests"/>
+<property name="build.javadoc"       value="${ro.build}/javadoc"/>
+<property name="build.velocidoc"     value="${ro.build}/velocidoc"/>
+<property name="build.jspc"          value="${ro.build}/jspc"/>
+<property name="build.reports"       value="${ro.build}/reports"/>
+<property name="tools.struts"    value="${ro.tools}/struts-1.1" />
+<property name="tools.hibernate" value="${ro.tools}/hibernate-2.1" />
+<property name="tools.jstl"      value="${ro.tools}/standard-1.0.3" />
+<property name="tools.xdoclet"   value="${ro.tools}/buildtime/xdoclet-1.2" />
+<property name="tools.tomcat"    value="${ro.tools}/buildtime/tomcat-4.1.24" />
+<!--
+If you would like Ant to copy all the jar files that Resin needs
+into the /WEB-INF/lib, uncomment the "resinServer" property below.
+In order to run Roller properly on versions of Resin prior to 2.1.9
+you will need to uncomment the "resinFilters" and "resin.path" elements
+below.  In addition, make sure to uncomment the reference to resin.path
+in the "base.path" definition.
+ -->
+<!--property name="resinServer" value="true" /-->
+<!--
+<property name="resinFilters" value="true" />
+<path id="resin.path">
+    <fileset dir="../../resin-2.1.8/lib" >
+        <include name="resin.jar" />
+    </fileset>
+</path>
+-->
+<!--path refid="resin.path" /-->
+<path id="xml.path">
+    <fileset dir="${ro.tools}/buildtime">
+        <include name="xercesImpl-2.3.0.jar"/>
+        <include name="xmlParserAPIs-2.3.0.jar"/>
+    </fileset>
+    <fileset dir="${tools.hibernate}">
+        <include name="lib/jdom.jar"/>
+        <include name="lib/dom4j-1.4.jar"/>
+    </fileset>
+</path>
+
+<!-- Dependencies common to both presentation and business layers -->
+<path id="base.path">
+    <path refid="xml.path"/>
+    <fileset dir="${ro.tools}/lib">
+        <include name="commons-cache.jar" />
+        <include name="concurrent-1.3.2.jar"/>
+        <include name="log4j-1.2.4.jar"/>
+        <include name="activation.jar"/>
+        <include name="mail.jar"/>
+        <include name="jazzy-core.jar" />
+        <include name="commons-betwixt-1.0-beta-1.jar" />
+        <include name="informa.jar"/>
+        <include name="lucene-1.4-final.jar"/>
+        <include name="commons-codec-1.1.jar" />
+    </fileset>
+    <!-- Include Commons jars from Struts -->
+    <fileset dir="${tools.struts}/lib">
+        <include name="commons-*.jar"/>
+    </fileset>
+</path>
+
+<path id="presentation.path">
+    <path refid="base.path"/>
+    <fileset dir="${tools.struts}/lib">
+        <include name="*.jar"/>
+    </fileset>
+    <fileset dir="${tools.tomcat}">
+        <include name="servlet-api.jar"/>
+    </fileset>
+    <fileset dir="${ro.tools}/lib">
+        <include name="atom4j.jar"/>
+        <include name="oscache.jar"/>
+        <include name="velocity-1.3.1.jar"/>
+        <include name="velocity-dep-1.3.1.jar"/>
+        <include name="velocity-tools-1.1-rc1.jar"/>
+        <include name="xmlrpc-1.1.jar"/>
+    </fileset>
+    <fileset dir="${ro.tools}/standard-1.0.3/lib">
+        <include name="jstl.jar"/>
+        <include name="standard.jar"/>
+    </fileset>
+</path>
+
+<path id="business.path">
+    <path refid="base.path"/>
+    <path location="${build.compile_beans}"/>
+    <fileset dir="${tools.hibernate}">
+        <include name="hibernate2.jar"/>
+    </fileset>
+    <fileset dir="${tools.hibernate}/lib">
+        <include name="*.jar"/>
+    </fileset>
+</path>
+
+<path id="javadoc.path">
+    <path refid="base.path"/>
+    <path refid="presentation.path"/>
+    <path refid="business.path"/>
+</path>
+
+<path id="xdoclet.path">
+    <path refid="presentation.path"/>
+    <path refid="business.path"/>
+    <fileset dir="${ro.tools}/buildtime/" includes="ejb-1.1.jar"/>
+    <fileset dir="${tools.xdoclet}/lib" includes="*.jar"/>
+</path>
+
+<path id="webdoclet.path">
+    <path refid="xdoclet.path"/>
+    <path location="${ro.build}/generated/src.presentation"/>
+    <path location="${ro.build}/compile_beans"/>
+    <path location="${ro.build}/compile_web"/>
+</path>
+
+<path id="junit.path">
+    <path refid="presentation.path"/>
+    <path refid="business.path"/>
+    <path location="${build.tests}" />
+    <fileset dir="${ro.tools}/buildtime/" includes="junit-3.8.1.jar"/>
+    <path location="${ro.tools}/buildtime/strutstest-2.0.0.jar"/>
+    <path location="${ro.tools}/buildtime/mockrunner-0.2.6/lib/mockrunner.jar"/>
+    <!--path location="${ro.tools}/buildtime/httpunit.jar"/-->
+</path>
+
+<!-- ********************************************************************* -->
+<!-- XDoclet code generation -->
+<!-- ********************************************************************* -->
+<target name="generate" depends="gen-forms,gen-hibernate,gen-web" >
+</target>
+
+<!-- ============================================== -->
+<!-- generate Struts forms -->
+<target name="gen-forms">
+
+    <!-- Define the XDoclet xdoclet task -->
+    <taskdef  name="ejbdoclet" classname="xdoclet.modules.ejb.EjbDocletTask"
+        classpathref="xdoclet.path" />
+    <mkdir dir="${build.generated}/src.presentation"/>
+    <mkdir dir="${build.generated}/src.business"/>
+    <mkdir dir="${build.generated}/META-INF"/>
+    <mkdir dir="${ro.build}/junk"/>
+
+    <!-- Use EJBDoclet to generate Struts forms -->
+    <ejbdoclet destdir="${build.generated}/src" excludedtags="@version,@author">
+        <fileset dir="./src" includes="org/roller/pojos/**, org/roller/business/**" />
+
+        <!-- Generate Struts forms -->
+        <strutsform destdir="${build.generated}/src.presentation"
+            prefixWithPackageStructure="no"
+            templateFile="./metadata/xdoclet/struts_form.xdt">
+
+            <!-- into the org.roller.presentation.forms package -->
+            <packageSubstitution packages="pojos"
+                substituteWith="presentation.forms"/>
+            <packageSubstitution packages="presentation"
+                substituteWith="presentation.forms"/>
+        </strutsform>
+
+        <!-- We are not actually generating data objects, but using the
+             dataobject subtask allows the strutsform subtask to add nice
+             Adds nice constructors and setData methods to Struts forms -->
+        <dataobject destdir="${ro.build}/junk" pattern="{0}" />
+
+    </ejbdoclet>
+
+    <copy todir="./personal/testing">
+        <fileset dir="${build.generated}" includes="mapping.xml"/>
+    </copy>
+
+    <!-- Change Struts form names from *DataForm.java to *Form.java  -->
+    <replace dir="${build.generated}/src.presentation/org/roller/presentation/forms"
+        token="DataForm" value="Form"/>
+    <move todir="${build.generated}/src.presentation/org/roller/presentation/forms">
+        <fileset dir="${build.generated}/src.presentation/org/roller/presentation/forms" >
+            <include name="*DataForm.java"/>
+            <include name="*ConfigForm.java" />
+        </fileset>
+        <mapper type="glob" from="*DataForm.java" to="*Form.java"/>
+    </move>
+
+</target>
+
+<!-- ============================================== -->
+<!-- generate Hibernate mappings -->
+<target name="gen-hibernate" >
+
+    <taskdef name="hibernatedoclet"
+        classname="xdoclet.modules.hibernate.HibernateDocletTask"
+        classpathref="xdoclet.path" />
+
+    <!-- generate hibernate files -->
+    <hibernatedoclet
+        destdir="${build.compile_beans}"
+        mergedir="./metadata/xdoclet"
+        excludedtags="@version,@author"
+        addedtags="@xdoclet-generated at ${TODAY}"
+        force="true">
+        <fileset dir="./src"/>
+        <hibernate validatexml="true" version="2.0"/>
+    </hibernatedoclet>
+
+</target>
+
+<!-- ============================================== -->
+<!-- Generate web deployment descriptors -->
+<target name="gen-web" >
+
+    <!-- Define the XDoclet webdoclet task -->
+    <taskdef  name="webdoclet" classname="xdoclet.modules.web.WebDocletTask"
+        classpathref="xdoclet.path" />
+
+    <!-- Use WebDoclet to web.xml, struts-config.xml, and TLDs -->
+    <mkdir dir="${build.stage_web}/WEB-INF"/>
+    <mkdir dir="${build.compile_web}/META-INF/tlds"/>
+
+    <webdoclet force="true"
+        destdir="${build.stage_web}/WEB-INF"
+        mergedir="./metadata/xdoclet"
+        excludedtags="@version,@author">
+
+        <fileset dir="./src">
+            <include name="**/**" />
+            <exclude name="**/LinkTag**" />
+            <exclude name="**/LinkParamTag**" />
+        </fileset>
+        <fileset dir="${build.generated}/src.presentation">
+            <include name="**/**" />
+        </fileset>
+
+        <deploymentdescriptor servletspec="2.3"
+             destdir="${build.stage_web}/WEB-INF"
+             sessiontimeout="30"
+             displayname="Roller Weblogger">
+        </deploymentdescriptor>
+
+        <jsptaglib jspversion="1.2" filename="roller.tld" shortname="roller"
+            uri="http://www.rollerweblogger.org/tags"
+            destdir="${build.compile_web}/META-INF/tlds"/>
+
+        <strutsconfigxml destdir="${build.stage_web}/WEB-INF"
+            validatexml="true" mergedir="./metadata/xdoclet" version="1.1" />
+        <strutsvalidationxml/>
+
+    </webdoclet>
+
+</target>
+
+<!-- ********************************************************************* -->
+<!-- Compile and jar Business Tier classes -->
+<!-- ********************************************************************* -->
+<target name="build-beans">
+    <mkdir dir="${ro.build}/lib"/>
+    <mkdir dir="${build.compile_beans}"/>
+
+    <tstamp>
+        <format property="ro.buildTime" pattern="yyyyMMddhhmmss" />
+    </tstamp>
+
+    <echo file="${build.compile_beans}/version.properties">
+ro.version=${ro.version}
+ro.buildTime=${ro.buildTime}
+ro.buildUser=${user.name}
+    </echo>
+
+    <javac debug="${build.debug}" srcdir="./src" destdir="${build.compile_beans}"
+        excludes="org/roller/presentation/**">
+        <classpath>
+            <path refid="business.path"/>
+        </classpath>
+    </javac>
+    <!-- Copy class resources -->
+    <copy todir="${build.compile_beans}/org/roller/model">
+        <fileset dir="${build.generated}/src.business" includes="*.hbm.xml"/>
+    </copy>
+    <!-- Jar up the beans -->
+    <jar basedir="${build.compile_beans}"
+        jarfile="${ro.build}/lib/rollerbeans.jar"/>
+
+</target>
+
+<!-- For versions of Resin before 2.1.9 we have to turn the
+    HttpServletResponseWrapper into a CauchoResponseWrapper. We have
+    to do away with the original or there will be compile errors. -->
+<target name="prepare.resin" if="resinFilters">
+    <echo>Convert HttpServletResponseWrappers to CauchoResponseWrappers</echo>
+    <replace dir="./src"
+        token="extends HttpServletResponseWrapper"
+        value="extends com.caucho.http.filter.CauchoResponseWrapper" />
+    <replace file="${build.stage_web}/WEB-INF/web.xml"
+        token="&lt;!-- RESIN-CACHE --&gt;" >
+        <replacevalue><![CDATA[
+        <init-param>
+            <param-name>handler</param-name>
+            <param-value>CommonsPageCache</param-value>
+        </init-param>
+        ]]></replacevalue>
+    </replace>
+
+</target>
+
+<!-- Now that the compilation is done, undo the damage from prepare.resin -->
+<target name="undo.resin" if="resinFilters">
+    <echo>Convert CauchoResponseWrappers to HttpServletResponseWrappers</echo>
+    <replace dir="./src"
+        value="extends HttpServletResponseWrapper"
+        token="extends com.caucho.http.filter.CauchoResponseWrapper" />
+
+</target>
+
+<!-- ********************************************************************* -->
+<!-- Compile and jar Presentation Tier classes -->
+<!-- ********************************************************************* -->
+<target name="build-web" depends="build-beans" >
+
+    <mkdir dir="${build.compile_web}"/>
+    <antcall target="prepare.resin" />
+    <javac debug="${build.debug}" destdir="${build.compile_web}"
+        includes="org/roller/presentation/**">
+        <src path="./src" />
+        <src path="${build.generated}/src.presentation"/>
+        <classpath>
+            <path refid="presentation.path"/>
+            <path location="${build.compile_beans}"/>
+        </classpath>
+    </javac>
+    <copy todir="${build.compile_web}">
+        <fileset dir="./src">
+            <include name="**/*.properties"/>
+            <include name="**/*.tpl"/>
+            <include name="**/*.vm"/>
+        </fileset>
+    </copy>
+    <!-- Generate and compile JSP files (just as an error checking measure)
+    <mkdir dir="${build.jspc}"/>
+    <path id="jspc.classpath">
+        <path refid="presentation.path"/>
+        <path location="${build.compile_beans}"/>
+        <path location="${build.compile_web}"/>
+        <path location="${ro.tools}/lib/ant-1.5.1.jar"/>
+        <path location="${ro.tools}/lib/ant-optional-1.5.1.jar"/>
+        <path location="${ro.tools}/lib/jasper-compiler.jar"/>
+        <path location="${ro.tools}/lib/jasper-runtime.jar"/>
+    </path>
+    <jspc srcdir="./web" destdir="${build.jspc}"
+        classpathref="jspc.classpath">
+    </jspc>
+    <javac srcdir="${build.jspc}" destdir="${build.jspc}"
+        classpathref="jspc.classpath">
+    </javac> -->
+
+    <antcall target="undo.resin" />
+
+</target>
+
+<!-- ********************************************************************* -->
+<!-- Stage web resources: allows us to work on JSP's without restarts      -->
+<!-- ********************************************************************* -->
+<target name="copy-web">
+    <!-- Copy web contents to staging, plus README files. -->
+    <copy todir="${build.stage_web}">
+        <fileset dir="./web">
+            <include name="**/*"/>
+            <exclude name="**/codewright*/**"/>
+            <exclude name="**/CVS/**"/>
+            <exclude name="**/*.bak"/>
+            <exclude name="**/*~"/>
+            <exclude name="**/berkley/**"/> <!-- not ready yet -->
+        </fileset>
+        <fileset dir=".">
+            <include name="README.txt"/>
+            <include name="LICENSE.txt"/>
+            <include name="CHANGES.txt"/>
+        </fileset>
+    </copy>
+</target>
+
+<!-- ********************************************************************* -->
+<!-- Stage web application -->
+<!-- ********************************************************************* -->
+<target name="stage-web" depends="build-web">
+
+    <mkdir dir="${build.stage_web}/resources"/>
+    <mkdir dir="${build.stage_web}/WEB-INF/lib"/>
+    <mkdir dir="${build.stage_web}/WEB-INF/tlds"/>
+
+    <!-- Jar up web classes -->
+    <jar jarfile="${build.stage_web}/WEB-INF/lib/rollerweb.jar">
+        <fileset dir="${build.compile_web}" excludes="**/tomcat/**"/>
+    </jar>
+
+    <!-- Copy web contents to staging, plus README files. -->
+    <antcall target="copy-web" />
+
+    <!-- Copy database configs to classpath in staging -->
+    <copy todir="${build.stage_web}/WEB-INF/classes">
+        <fileset dir="./metadata/database/hibernate" includes="hibernate.properties"/>
+        <fileset dir="${ro.tools}/lib" includes="oscache.properties"/>
+    </copy>
+
+    <!-- Copy WEB-INF contents to staging -->
+    <copy todir="${build.stage_web}/WEB-INF">
+        <fileset dir="${build.generated}" includes="mapping.xml"/>
+        <fileset dir="${tools.struts}/lib" includes="validator-rules.xml"/>
+    </copy>
+
+    <!-- Copy other jars -->
+    <copy todir="${build.stage_web}/WEB-INF/lib">
+        <fileset dir="${ro.build}/lib" includes="rollerbeans.jar"/>
+        <fileset dir="${tools.hibernate}">
+            <include name="hibernate2.jar"/>
+        </fileset>
+        <fileset dir="${tools.hibernate}/lib">
+            <include name="*.jar"/>
+        </fileset>
+
+        <fileset dir="${ro.tools}/lib">
+            <include name="commons-betwixt-1.0-beta-1.jar"/>
+            <include name="commons-cache.jar"/>
+            <include name="commons-codec-1.1.jar"/>
+            <include name="display.jar"/>
+            <include name="informa.jar"/>
+            <include name="jazzy-core.jar"/>
+            <include name="JSPWiki.jar" />
+            <include name="log4j-1.2.4.jar"/>
+            <include name="textile4j-1.10.jar" />
+            <include name="velocity-1.3.1.jar"/>
+            <include name="velocity-dep-1.3.1.jar"/>
+            <include name="velocity-tools-1.1-rc1.jar"/>
+            <include name="xmlrpc-1.1.jar"/>
+            <include name="taglibs-string.jar" />
+            <include name="lucene-1.4-final.jar" />
+            <include name="concurrent-1.3.2.jar"/>
+            <include name="oscache.jar"/>
+            <include name="mail.jar" />
+            <include name="activation.jar" />
+            <!-- <include name="radeox.jar" /> -->
+            <!-- <include name="jython.jar" /> -->
+            <include name="atom4j.jar"/>
+            <!-- <include name="jta-spec1_0_1.jar"/> -->
+
+            <!-- Jars that are only used in the Resin version -->
+            <include name="mm.mysql-2.0.14-bin.jar" if="resinServer"/>
+        </fileset>
+        <fileset dir="${ro.tools}/buildtime">
+            <include name="xercesImpl-2.3.0.jar"    if="resinServer"/>
+            <include name="xmlParserAPIs-2.3.0.jar" if="resinServer"/>
+        </fileset>
+        <fileset dir="${ro.tools}/standard-1.0.3/lib">
+            <include name="jstl.jar"/>
+            <include name="standard.jar"/>
+        </fileset>
+        <!-- Copy Struts last so Struts jars win over same jars provided by other tools -->
+        <fileset dir="${tools.struts}/lib">
+            <include name="struts.jar"/>
+            <include name="commons-beanutils.jar"/>
+            <include name="commons-collections.jar"/>
+            <include name="commons-digester.jar"/>
+            <include name="commons-fileupload.jar"/>
+            <include name="commons-lang.jar"/>
+            <include name="commons-logging.jar"/>
+            <include name="commons-validator.jar"/>
+            <include name="jakarta-oro.jar"/>
+        </fileset>
+
+    </copy>
+    <!-- Copy DTDs and TLDs  -->
+    <copy todir="${build.stage_web}/WEB-INF/tlds">
+        <fileset dir="${ro.tools}/lib" includes="*.tld"/>
+    </copy>
+    <!-- Copy applet jars to root of servlet context -->
+    <copy todir="${build.stage_web}">
+        <fileset dir="${ro.tools}/lib">
+            <include name="ekitapplet.jar"/>
+        </fileset>
+    </copy>
+    <!-- copy database related files -->
+    <antcall target="stage-dbscripts" />
+
+    <ant dir="contrib" />
+
+</target>
+
+<!-- ********************************************************************* -->
+<!-- Create different versions of database setup script                    -->
+<!-- With this approach we won't have to expand the script all the time.   -->
+<!-- ********************************************************************* -->
+<target name="stage-dbscripts">
+    <property name="dbscripts" value="${build.stage_web}/WEB-INF/dbscripts"/>
+
+    <!-- Create database creation script directory -->
+    <mkdir dir="${dbscripts}"/>
+    <copy todir="${dbscripts}">
+        <fileset dir="./metadata/database" includes="droptables.sql"/>
+    </copy>
+
+    <copy
+      file="./web/WEB-INF/database.xml"
+      tofile="${build.stage_web}/WEB-INF/database.xml" />
+
+    <!-- MYSQL -->
+    <copy toDir="${dbscripts}/mysql">
+      <fileset dir="./metadata/database">
+        <include name="*.sql" />
+        <exclude name="droptables.sql" />
+      </fileset>
+      <filterset>
+        <filtersfile file="./metadata/database/db_mysql.properties"/>
+      </filterset>
+      <mapper type="glob" from="*-raw.sql" to="*.sql" />
+    </copy>
+
+    <!-- POSTGRESQL -->
+    <copy toDir="${dbscripts}/postgresql">
+      <fileset dir="./metadata/database">
+        <include name="*.sql" />
+        <exclude name="droptables.sql" />
+      </fileset>
+      <filterset>
+        <filtersfile file="./metadata/database/db_postgresql.properties"/>
+      </filterset>
+      <mapper type="glob" from="*-raw.sql" to="*.sql" />
+    </copy>
+
+    <!-- HSQL -->
+    <copy toDir="${dbscripts}/hsql">
+      <fileset dir="./metadata/database">
+        <include name="*.sql" />
+        <exclude name="droptables.sql" />
+      </fileset>
+      <filterset>
+        <filtersfile file="./metadata/database/db_hsql.properties"/>
+      </filterset>
+      <mapper type="glob" from="*-raw.sql" to="*.sql" />
+    </copy>
+
+</target>
+
+<!-- ********************************************************************* -->
+<!-- Build extras -->
+<!-- ********************************************************************* -->
+<target name="contrib" depends="stage-web">
+    <ant dir="contrib" />
+</target>
+
+<!-- ********************************************************************* -->
+<!-- Generate Javadocs -->
+<!-- ********************************************************************* -->
+<target name="javadoc">
+    <mkdir dir="${build.javadoc}"/>
+    <javadoc
+        bottom="Copyright (C) David M Johnson"
+        classpathref="javadoc.path"
+        destdir="${build.javadoc}"
+        doctitle="Javadocs: Roller Weblogger ${ro.version}"
+        private="false"
+        version="false"
+        windowtitle="Javadocs: Roller Weblogger ${ro.version}">
+        <sourcepath>
+            <pathelement path="./src"/>
+            <pathelement path="${ro.build}/generated/src.business"/>
+            <pathelement path="${ro.build}/generated/src.presentation"/>
+        </sourcepath>
+        <packageset dir="src" defaultexcludes="yes">
+          <include name="org/roller/**" />
+          <exclude name="org/roller/business/prevayler/**" />
+        </packageset>
+        <link href="http://java.sun.com/j2se/1.4/docs/api/"/>
+        <link href="http://java.sun.com/products/servlet/2.3/javadoc/"/>
+        <link href="http://jakarta.apache.org/struts/doc-1.0.2/api"/>
+        <link href="http://hibernate.bluemars.net/hib_docs/api/"/>
+    </javadoc>
+
+    <antcall target="velocidoc" />
+</target>
+<target name="velocidoc">
+    <mkdir dir="${build.velocidoc}"/>
+    <java jar="${ro.tools}/lib/velocidoc-app.jar">
+        <arg line="-s ${ro.build}/roller/WEB-INF/classes -d ${build.velocidoc}"/>
+    </java>
+</target>
+
+<!-- ********************************************************************* -->
+<!-- Create Binary Release -->
+<!-- ********************************************************************* -->
+
+<target name="full-release" depends="binary-release">
+</target>
+
+<target name="binary-release" depends="source-release">
+    <!-- Substitute in resource ref for deployment for standard container -->
+    <replace file="${build.stage_web}/WEB-INF/web.xml"
+            token="&lt;!-- TOMCAT_RESOURCE_REF --&gt;">
+        <replacevalue><![CDATA[
+    <resource-ref>
+    <res-ref-name>jdbc/rollerdb</res-ref-name>
+    <res-type>javax.sql.DataSource</res-type>
+    <res-auth>Container</res-auth>
+    </resource-ref>
+        ]]></replacevalue>
+    </replace>
+    <fixcrlf srcdir="${build.stage_web}/WEB-INF" eol="lf" includes="**/*.xml" />
+   <!-- Tar and GZip the webapp -->
+    <tar tarfile="${ro.build}/roller-${ro.version}.tar"
+        basedir="${ro.build}"
+        includes="roller/**"
+        excludes="roller/article/**,**/*.bak,**/*~" />
+    <gzip zipfile="${ro.build}/roller-${ro.version}.tar.gz"
+             src="${ro.build}/roller-${ro.version}.tar" />
+    <delete>
+        <fileset dir="${ro.build}" includes="*.tar"/>
+    </delete>
+
+</target>
+
+<!-- ********************************************************************* -->
+<!-- Create Source Release -->
+<!-- ********************************************************************* -->
+<target name="source-release" depends="contrib">
+    <!-- <antcall target="rebuild"/> -->
+    <!-- Tar and GZip the sources -->
+    <tar tarfile="${ro.build}/roller-src-${ro.version}.tar">
+        <tarfileset dir="./src/../..">
+            <include name="roller/metadata/**" />
+            <include name="roller/personal/eclipse/**" />
+            <include name="roller/personal/sample.build.xml" />
+            <include name="roller/src/**" />
+            <include name="roller/tests/**" />
+            <include name="roller/web/**" />
+            <include name="roller/docs/**" />
+            <exclude name="roller/docs/installguide/old/**"/>
+            <exclude name="roller/docs/userguide/old/**"/>
+            <include name="roller/ant.properties" />
+            <include name="roller/build.bat" />
+            <include name="roller/build.sh" />
+            <include name="roller/build.xml" />
+            <include name="roller/CHANGES.txt" />
+            <include name="roller/LICENSE.txt" />
+            <include name="roller/README.txt" />
+            <exclude name="**/codewright*/**"/>
+            <exclude name="**/CVS/**"/>
+            <exclude name="**/*.bak"/>
+            <exclude name="**/*-hide"/>
+            <exclude name="**/*.diff"/>
+            <exclude name="**/*.patch"/>
+            <exclude name="**/*~"/>
+            <exclude name="**/*.#*"/>
+            <exclude name="**/WS_FTP.LOG"/>
+            <exclude name="**/.nbattrs"/>
+         </tarfileset>
+    </tar>
+    <gzip zipfile="${ro.build}/roller-src-${ro.version}.tar.gz"
+              src="${ro.build}/roller-src-${ro.version}.tar" />
+    <!-- Tar and GZip the tools -->
+    <tar tarfile="${ro.build}/roller-tools-${ro.version}.tar"
+        basedir="./src/../.."
+        includes="roller/tools/**"
+        excludes="**/*.bak,**/*~" />
+    <gzip zipfile="${ro.build}/roller-tools-${ro.version}.tar.gz"
+              src="${ro.build}/roller-tools-${ro.version}.tar" />
+    <delete>
+        <fileset dir="${ro.build}" includes="*.tar"/>
+    </delete>
+
+</target>
+
+<!-- ********************************************************************* -->
+<!-- TEST targets -->
+<!-- ********************************************************************* -->
+<target name="build-test" depends="build">
+
+    <mkdir dir="${build.tests}" />
+    <javac
+        srcdir="${basedir}/tests"
+        destdir="${build.tests}"
+        includeantruntime="false"
+        debug="true"
+        optimize="false"
+        verbose="false"
+        deprecation="false">
+        <classpath>
+            <path location="${ro.build}/compile_beans" />
+            <path location="${ro.build}/compile_web" />
+            <path location="${ro.build}/compile_contrib" />
+            <path refid="junit.path"/>
+        </classpath>
+        <include name="org/roller/business/**" />
+        <include name="org/roller/presentation/**" />
+        <include name="org/roller/util/**" />
+        <exclude name="**/prevayler/**.java" />
+    </javac>
+
+</target>
+
+<target name="tests" depends="build" >
+    <antcall target="test-hibernate"/>
+</target>
+
+<target name="test-servlets" depends="build-test" >
+    <copy file="${basedir}/tests/bookmarks.opml"
+        tofile="${ro.build}/bookmarks2.opml" />
+    <copy file="./personal/testing/hibernate.properties"
+        tofile="${ro.build}/compile_beans/hibernate.properties" />
+    <copy file="${basedir}/web/WEB-INF/classes/log4j.properties"
+        tofile="${ro.build}/compile_beans/log4j.properties" />
+    <copy file="${basedir}/web/WEB-INF/velocity.properties"
+        tofile="${ro.build}/compile_beans/velocity.properties" />
+    <mkdir dir="${build.reports}/servlets/xml"/>
+    <mkdir dir="${build.reports}/servlets/html"/>
+    <junit fork="true">
+        <batchtest toDir="${build.reports}/servlets/xml">
+            <fileset dir="${build.tests}">
+                <include name="org/roller/presentation/**/*Test.class"/>
+            </fileset>
+        </batchtest>
+        <!--arg value="org.roller.presentation.velocity.ExportRssTest"/-->
+        <jvmarg value="-DrollerImpl=hibernate"/>
+        <formatter type="xml"/>
+        <classpath>
+            <path refid="junit.path"/>
+            <path location="${build.stage_web}" />
+            <path location="${build.stage_web}/WEB-INF/classes/" />
+            <path>
+                <fileset dir="${build.stage_web}/WEB-INF/lib">
+                    <include name="*.jar"/>
+                </fileset>
+            </path>
+            <path location="${ro.tools}/lib/mm.mysql-2.0.14-bin.jar"/>
+            <path location="${ro.tools}/lib/servlet-2.3.jar"/>
+        </classpath>
+    </junit>
+    <junitreport>
+      <fileset dir="${build.reports}/servlets/xml">
+        <include name="TEST-*.xml"/>
+      </fileset>
+      <report format="noframes" toDir="${build.reports}/servlets/html"/>
+    </junitreport>
+    <delete file="bookmarks2.opml" />
+</target>
+
+<target name="test-hibernate" depends="build-test" >
+    <copy file="${basedir}/tests/bookmarks.opml"
+        tofile="${ro.build}/compile_beans/bookmarks2.opml" />
+    <copy file="./personal/testing/hibernate.properties"
+        tofile="${ro.build}/compile_beans/hibernate.properties" />
+    <copy file="${basedir}/web/WEB-INF/classes/log4j.properties"
+        tofile="${ro.build}/compile_beans/log4j.properties" />
+    <copy file="${basedir}/web/WEB-INF/velocity.properties"
+        tofile="${ro.build}/compile_beans/velocity.properties" />
+    <mkdir dir="${build.reports}/hibernate/xml"/>
+    <mkdir dir="${build.reports}/hibernate/html"/>
+    <junit fork="true">
+        <classpath>
+            <path refid="xml.path"/>
+            <path refid="junit.path"/>
+            <path refid="business.path"/>
+            <path location="${ro.build}/compile_web" />
+            <path location="${ro.build}/compile_beans" />
+            <path location="${ro.tools}/lib/mm.mysql-2.0.14-bin.jar"/>
+        </classpath>
+        <formatter type="xml"/>
+        <batchtest toDir="${build.reports}/hibernate/xml">
+            <fileset dir="${build.tests}">
+                <include name="org/roller/business/*Test.class"/>
+            </fileset>
+        </batchtest>
+    </junit>
+    <junitreport>
+      <fileset dir="${build.reports}/hibernate/xml">
+        <include name="TEST-*.xml"/>
+      </fileset>
+      <report format="noframes" toDir="${build.reports}/hibernate/html"/>
+    </junitreport>
+    <!-- I would recommend running this. But since it has a warning...
+    <antcall target="consistency-check">
+          <param name="delete" value="1"/>
+    </antcall>
+    -->
+    <echo>Suggested: Run "ant consistency-check".</echo>
+</target>
+
+<!-- You can specify testClass using -DtestClass=foo -->
+<property name="testClass" value="org.roller.presentation.velocity.plugins.smileys.SmileysTest"/>
+<target name="test-one" depends="build-test">
+    <copy file="${basedir}/tests/bookmarks.opml"
+        tofile="${ro.build}/compile_beans/bookmarks2.opml" />
+    <copy file="./personal/testing/hibernate.properties"
+        tofile="${ro.build}/compile_beans/hibernate.properties" />
+    <copy file="${basedir}/web/WEB-INF/classes/log4j.properties"
+        tofile="${ro.build}/compile_beans/log4j.properties" />
+    <copy file="${basedir}/web/WEB-INF/velocity.properties"
+        tofile="${ro.build}/compile_beans/velocity.properties" />
+
+    <java classname="junit.textui.TestRunner" fork="yes" failonerror="false">
+        <arg value="${testClass}"/>
+        <classpath>
+            <path refid="junit.path"/>
+            <path location="${build.stage_web}" />
+            <path location="${build.stage_web}/WEB-INF/classes/" />
+            <path>
+                <fileset dir="${build.stage_web}/WEB-INF/lib">
+                    <include name="*.jar"/>
+                </fileset>
+            </path>
+            <path location="${ro.tools}/lib/mm.mysql-2.0.14-bin.jar"/>
+            <path location="${ro.tools}/lib/servlet-2.3.jar"/>
+        </classpath>
+    </java>
+</target>
+
+<!-- ********************************************************************* -->
+<!-- EXAMPLE targets -->
+<!-- ********************************************************************* -->
+<target name="deploy-tomcat" depends="stage-web" >
+    <ant dir="./personal" target="deploy-tomcat" />
+</target>
+<target name="deploy-resin" depends="stage-web" >
+    <ant dir="./personal" target="deploy-resin" />
+</target>
+<target name="deploy-isp" depends="stage-web" >
+    <ant dir="./personal" target="deploy-isp" />
+</target>
+<target name="clean-isp">
+    <ant dir="./personal" target="clean-isp" />
+</target>
+
+<!-- ********************************************************************* -->
+<!-- EXPERIMENTAL targets -->
+<!-- ********************************************************************* -->
+<!-- EXPERIMENTAL: Run ConsistencyCheck. -->
+<target name="consistency-check">
+<echo>Use -Ddelete=1 to delete all orphans.
+Use -Dverbose=1 to get verbose output.
+'delete' and 'verbose' are exclusive, 'delete' wins.
+</echo>
+    <condition property="command" value="-v">
+        <isset property="verbose" />
+    </condition>
+    <condition property="command" value="-d">
+        <isset property="delete" />
+    </condition>
+    <java classname="org.roller.business.utils.ConsistencyCheck" fork="yes">
+        <arg value="${command}"/>
+        <jvmarg value="-Dusername=roller"/>
+        <jvmarg value="-Dpassword=tiger"/>
+        <classpath>
+            <path refid="base.path"/>
+            <path location="${ro.build}/lib/rollerbeans.jar"/>
+            <path location="${ro.tools}/lib/mm.mysql-2.0.14-bin.jar"/>
+        </classpath>
+    </java>
+</target>
+
+<!-- =================================================================== -->
+<!-- Compiles JSPs (verifies that they will compile when deployed        -->
+<!-- =================================================================== -->
+<target name="compile-jsps" depends="stage-web">
+   <path id="jasper.path">
+     <path location="${build.stage_web}/WEB-INF/classes" />
+     <fileset dir="${build.stage_web}/WEB-INF/lib">
+       <include name="**/*.jar"/>
+     </fileset>
+     <fileset dir="${ro.tools}/tomcat-4.1.24">
+       <include name="*.jar"/>
+     </fileset>
+     <fileset dir="${ro.tools}/lib">
+       <include name="servlet-*.jar"/>
+       <include name="ant-*.jar"/>
+     </fileset>
+   </path>
+     <mkdir dir="${ro.build}/jspc"/>
+  <jspc srcdir="${build.stage_web}" destdir="${ro.build}/jspc"
+        package="test" verbose="9">
+      <include name="**/*.jsp" />
+        <classpath refid="jasper.path"/>
+  </jspc>
+     <mkdir dir="${ro.build}/jspc.classes"/>
+    <javac source="1.4" debug="true" srcdir="${ro.build}/jspc"
+        destdir="${ro.build}/jspc.classes" fork="true">
+        <classpath refid="jasper.path"/>
+  </javac>
+
+</target>
+
+</project>