| <?xml version="1.0"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. The ASF licenses this file to You |
| under the Apache License, Version 2.0 (the "License"); you may not |
| use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. For additional information regarding |
| copyright in this work, please see the NOTICE file in the top level |
| directory of this distribution.- |
| --> |
| <!DOCTYPE project [ |
| <!ENTITY properties SYSTEM "properties.xmlf"> |
| <!ENTITY custom-ant SYSTEM "custom/custom-ant.xmlf"> |
| <!ENTITY custom-jars SYSTEM "custom/custom-jars.xmlf"> |
| <!ENTITY custom-gen-business SYSTEM "custom/custom-gen-business.xmlf"> |
| <!ENTITY custom-build-business SYSTEM "custom/custom-build-business.xmlf"> |
| <!ENTITY custom-build-web SYSTEM "custom/custom-build-web.xmlf"> |
| <!ENTITY custom-gen-web SYSTEM "custom/custom-gen-web.xmlf"> |
| <!ENTITY custom-src-web SYSTEM "custom/custom-src-web.xmlf"> |
| <!ENTITY custom-web SYSTEM "custom/custom-web.xmlf"> |
| <!ENTITY custom-src-tests SYSTEM "custom/custom-src-tests.xmlf"> |
| <!ENTITY custom-dbscripts SYSTEM "custom/custom-dbscripts.xmlf"> |
| <!ENTITY custom-pre-dbtest SYSTEM "custom/custom-pre-dbtest.xmlf"> |
| <!ENTITY custom-post-dbtest SYSTEM "custom/custom-post-dbtest.xmlf"> |
| ]> |
| <!-- ********************************************************************* --> |
| <!-- Ant build script for Roller main branch --> |
| <!-- Author: David M Johnson --> |
| <!-- ********************************************************************* --> |
| <project name="roller" default="usage"> |
| |
| <!-- Because we don't want to allow release builds to be done with Java 1.5 (yet) --> |
| <available classname="java.lang.ProcessBuilder" property="java15.present" /> |
| |
| <!-- Bring in properties.xml --> |
| &properties; |
| |
| <!-- Bring in custom properties and targets --> |
| &custom-ant; |
| |
| <target name="usage" description="Print usage for key targets"> |
| <echo> |
| Key Targets: |
| all - Build all: gen wrappers/forms, compile, gen web, gen O/R mappings, stage webapp |
| build - Same as 'all' but NO code gen |
| stage-webapp - Build almost all: compile, gen web, gen O/R mappings, stage webapp |
| apache-release - Build binary and source release files |
| clean - Blow away all generated code and all byte code |
| rebuild - Clean and build all |
| |
| tests - Build and run all JUnit tests |
| build-tests - Build all JUnit tests |
| test-business - Start DB, run business layer tests, stop DB |
| test-presentation - Run presentation layer tests |
| test-utils - Run utility tests |
| |
| start-db - Start test DB |
| init-db - Initialize a running test DB |
| stop-db - Stop test DB |
| |
| docs - Build all docs |
| javadoc - Build javadocs |
| velocidocs - Build velocidocs |
| |
| usage - Print this help text... |
| </echo> |
| </target> |
| |
| <!-- ================================================ --> |
| <!-- Meta targets --> |
| <!-- ================================================ --> |
| <target name="all" depends="generate,stage-webapp" description="Build all"> |
| </target> |
| |
| <target name="build" depends="copy-webapp" description="Compile code and copy files, no code generation"> |
| </target> |
| |
| <target name="rebuild" depends="clean,all" description="Clean and build all"> |
| </target> |
| |
| <target name="clean" description="Clean out build and dist directory"> |
| <delete dir="${ro.build}" /> |
| <delete dir="${ro.dist}" /> |
| </target> |
| |
| <!-- ********************************************************************* --> |
| <!-- XDoclet code generation --> |
| <!-- ********************************************************************* --> |
| |
| <target name="generate" depends="gen-wrappers,gen-forms" > |
| </target> |
| |
| <!-- ============================================== --> |
| <!-- generate code/files for the business layer --> |
| <target name="gen-business" description="Generate business layer resources"> |
| |
| <taskdef name="hibernatedoclet" |
| classname="xdoclet.modules.hibernate.HibernateDocletTask" |
| classpathref="xdoclet.path" /> |
| |
| <!-- generate hibernate files --> |
| <hibernatedoclet |
| destdir="${build.compile.business}" |
| mergedir="./metadata/xdoclet" |
| excludedtags="@version,@author" |
| addedtags="@xdoclet-generated at ${TODAY}" |
| force="true"> |
| |
| <fileset dir="${ro.src}" includes="org/apache/roller/pojos/WeblogTemplate.java" /> |
| <fileset dir="${ro.src}" includes="org/apache/roller/pojos/*Data.java" /> |
| <fileset dir="${ro.src}" includes="org/apache/roller/pojos/*Assoc.java" /> |
| |
| <fileset dir="${ro.src}" includes="org/apache/roller/planet/pojos/*Assoc.java" /> |
| <fileset dir="${ro.src}" includes="org/apache/roller/planet/pojos/*Data.java" /> |
| |
| <hibernate validatexml="true" version="3.0"/> |
| |
| </hibernatedoclet> |
| |
| <!-- copy database related files --> |
| <antcall target="stage-dbscripts" /> |
| |
| <!-- allow for custom generation work --> |
| &custom-gen-business; |
| |
| </target> |
| |
| |
| <!-- ============================================== --> |
| <!-- Generate pojo wrappers --> |
| <target name="gen-wrappers" description="XDoclet generate pojo wrappers"> |
| |
| <!-- Define the XDoclet task --> |
| <taskdef name="xdoclet" classname="xdoclet.DocletTask" |
| classpathref="xdoclet.path" /> |
| |
| <xdoclet destdir="${build.generated.business}"> |
| |
| <packageSubstitution packages="pojos" substituteWith="pojos.wrapper"/> |
| |
| <fileset dir="${ro.src}"> |
| <!-- |
| it may be easier to glob using *Data.java at some point, but |
| for now that will generate a lot of unneeded classes. |
| |
| maybe we can extend the process to only wrap classes that have |
| methods tagged with @roller.wrapPojoMethod ?? |
| --> |
| <include name="org/apache/roller/pojos/BookmarkData.java"/> |
| <include name="org/apache/roller/pojos/CommentData.java"/> |
| <include name="org/apache/roller/pojos/EntryAttributeData.java"/> |
| <include name="org/apache/roller/pojos/FolderData.java"/> |
| <include name="org/apache/roller/pojos/RefererData.java"/> |
| <include name="org/apache/roller/pojos/Template.java"/> |
| <include name="org/apache/roller/pojos/UserData.java"/> |
| <include name="org/apache/roller/pojos/WeblogEntryData.java"/> |
| <include name="org/apache/roller/pojos/WeblogEntryTagData.java"/> |
| <include name="org/apache/roller/pojos/WeblogCategoryData.java"/> |
| <include name="org/apache/roller/pojos/SiteTagAggregateData.java"/> |
| <include name="org/apache/roller/pojos/WebsiteData.java"/> |
| <include name="org/apache/roller/planet/pojos/PlanetEntryData.java"/> |
| <include name="org/apache/roller/planet/pojos/PlanetSubscriptionData.java"/> |
| </fileset> |
| |
| <template |
| destinationFile="{0}Wrapper.java" |
| templateFile="metadata/xdoclet/pojo_wrapper.xdt" |
| subTaskName="Pojo Wrappers" /> |
| </xdoclet> |
| |
| </target> |
| |
| |
| <!-- ============================================== --> |
| <!-- generate Struts forms --> |
| <target name="gen-forms" description="XDoclet generate form beans"> |
| |
| <!-- Define the XDoclet xdoclet task --> |
| <taskdef name="ejbdoclet" classname="xdoclet.modules.ejb.EjbDocletTask" |
| classpathref="xdoclet.path" /> |
| |
| <mkdir dir="${build.generated.web}"/> |
| |
| <!-- Use EJBDoclet to generate Struts forms --> |
| <ejbdoclet destdir="${build.generated}/unused" excludedtags="@version,@author"> |
| <fileset dir="${ro.src}" includes="org/apache/roller/pojos/WeblogTemplate.java" /> |
| <fileset dir="${ro.src}" includes="org/apache/roller/pojos/*Data.java" /> |
| <fileset dir="${ro.src}" includes="org/apache/roller/planet/pojos/*Data.java" /> |
| |
| &custom-gen-web; |
| |
| <!-- Generate Struts forms --> |
| <strutsform destdir="${build.generated.web}" |
| prefixWithPackageStructure="no" |
| templateFile="./metadata/xdoclet/struts_form.xdt"> |
| |
| <!-- into the org.apache.roller.ui.authoring.struts.forms package --> |
| <packageSubstitution packages="pojos" |
| substituteWith="ui.authoring.struts.forms"/> |
| </strutsform> |
| |
| <!-- We are not actually generating data objects, but using the |
| dataobject subtask allows the strutsform subtask to add nice |
| constructors and setData methods to Struts forms --> |
| <dataobject destdir="${ro.build}/unused" pattern="{0}" /> |
| |
| </ejbdoclet> |
| |
| <!-- Change Struts form names from *DataForm.java to *Form.java --> |
| <replace dir="${build.generated.web}/org/apache/roller/ui/authoring/struts/forms" |
| token="DataForm" value="Form"/> |
| <move todir="${build.generated.web}/org/apache/roller/ui/authoring/struts/forms"> |
| <fileset dir="${build.generated.web}/org/apache/roller/ui/authoring/struts/forms" > |
| <include name="*DataForm.java"/> |
| <include name="*ConfigForm.java" /> |
| </fileset> |
| <mapper type="glob" from="*DataForm.java" to="*Form.java"/> |
| </move> |
| |
| <replace dir="${build.generated.web}/org/apache/roller/planet/ui/authoring/struts/forms" |
| token="DataForm" value="Form"/> |
| <move todir="${build.generated.web}/org/apache/roller/planet/ui/authoring/struts/forms"> |
| <fileset dir="${build.generated.web}/org/apache/roller/planet/ui/authoring/struts/forms" > |
| <include name="*DataForm.java"/> |
| <include name="*ConfigForm.java" /> |
| </fileset> |
| <mapper type="glob" from="*DataForm.java" to="*Form.java"/> |
| </move> |
| |
| </target> |
| |
| |
| <!-- ============================================== --> |
| <!-- Generate web deployment descriptors --> |
| <target name="gen-web" description="XDoclet generate web depoyment descriptors"> |
| |
| <!-- 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.webapp}/WEB-INF"/> |
| <mkdir dir="${build.compile.web}/META-INF/tlds"/> |
| |
| <webdoclet force="true" |
| destdir="${build.webapp}/WEB-INF" |
| mergedir="./metadata/xdoclet" |
| excludedtags="@version,@author"> |
| |
| <fileset dir="${ro.src}"> |
| <!-- Speed up XDoclet by limiting number of files it has to process --> |
| <include name="**/*Action.java" /> |
| <include name="**/*Filter.java" /> |
| <include name="**/*Form.java" /> |
| <include name="**/*FormEx.java" /> |
| <include name="**/*Servlet.java" /> |
| <include name="**/*Tag.java" /> |
| <include name="org/apache/roller/ui/**/actions/*.java" /> |
| <include name="org/apache/roller/ui/core/RollerContext.java" /> |
| <include name="org/apache/roller/ui/core/RollerSession.java" /> |
| <exclude name="**/LinkTag**" /> |
| <exclude name="**/LinkParamTag**" /> |
| </fileset> |
| <fileset dir="${build.generated.web}"> |
| <include name="**/*Form.java" /> |
| </fileset> |
| |
| &custom-gen-web; |
| |
| <!-- web.xml config --> |
| <deploymentdescriptor servletspec="2.4" |
| destdir="${build.webapp}/WEB-INF" |
| sessiontimeout="30" |
| displayname="Roller Weblogger" /> |
| |
| <!-- jsp taglib descriptor config --> |
| <jsptaglib jspversion="1.2" filename="roller.tld" shortname="roller" |
| uri="http://www.rollerweblogger.org/tags" |
| destdir="${build.webapp}/WEB-INF/classes/META-INF/tlds" /> |
| |
| <!-- struts struts-config.xml --> |
| <strutsconfigxml destdir="${build.webapp}/WEB-INF" |
| validatexml="true" mergedir="./metadata/xdoclet" version="1.1" /> |
| |
| <!-- struts validation.xml --> |
| <strutsvalidationxml/> |
| |
| </webdoclet> |
| |
| </target> |
| |
| |
| <!-- ********************************************************************* --> |
| <!-- Compile and jar Business Tier classes --> |
| <!-- ********************************************************************* --> |
| |
| <target name="build-business"> |
| |
| <mkdir dir="${build.generated.business}"/> |
| <mkdir dir="${build.compile.business}"/> |
| <mkdir dir="${build.lib}"/> |
| |
| <tstamp> |
| <format property="ro.buildTime" pattern="yyyyMMddhhmmss" /> |
| </tstamp> |
| |
| <echo file="${build.compile.business}/version.properties"> |
| ro.version=${ro.version} |
| ro.buildTime=${ro.buildTime} |
| ro.buildUser=${user.name} |
| </echo> |
| |
| <!-- compile roller business classes --> |
| <javac destdir="${build.compile.business}" |
| excludes="org/apache/roller/ui/**, org/apache/roller/webservices/**" |
| debug="${build.debug}" |
| source="${build.sourcelevel}" |
| deprecation="${build.deprecation}"> |
| |
| <src path="${ro.src}" /> |
| <src path="${build.generated.business}"/> |
| |
| <classpath> |
| <path refid="business.path"/> |
| &custom-jars; |
| </classpath> |
| </javac> |
| |
| <!-- Copy resources --> |
| <copy todir="${build.compile.business}"> |
| <fileset dir="${ro.src}" |
| excludes="**/*.java, **/*.html, **/*.png, org/apache/roller/ui/**, org/apache/roller/webservices/**" /> |
| <fileset dir="${build.generated.business}" excludes="**/*.java" /> |
| </copy> |
| |
| <!-- allow for custom build work --> |
| &custom-build-business; |
| |
| <!-- Jar up the business layer --> |
| <jar basedir="${build.compile.business}" |
| jarfile="${build.lib}/roller-business.jar"/> |
| |
| </target> |
| |
| |
| <!-- ********************************************************************* --> |
| <!-- Compile and jar Presentation Tier classes --> |
| <!-- ********************************************************************* --> |
| |
| <target name="build-web" depends="build-business" > |
| |
| <mkdir dir="${build.compile.web}" /> |
| |
| <javac debug="${build.debug}" |
| source="${build.sourcelevel}" |
| destdir="${build.compile.web}" |
| includes="org/apache/roller/ui/**, org/apache/roller/webservices/**, org/apache/roller/util/rome/**" > |
| |
| <src path="${ro.src}" /> |
| <src path="${build.generated.web}"/> |
| &custom-src-web; |
| <classpath> |
| <path refid="presentation.path"/> |
| <path location="${build.compile.business}"/> |
| &custom-jars; |
| </classpath> |
| </javac> |
| |
| <!-- Copy in resources --> |
| <copy todir="${build.compile.web}"> |
| <fileset dir="${ro.src}"> |
| <include name="**/*.properties"/> |
| <include name="**/*.tpl"/> |
| <include name="**/*.vm"/> |
| </fileset> |
| </copy> |
| |
| &custom-build-web; |
| |
| <!-- Jar up web classes --> |
| <jar jarfile="${build.lib}/roller-web.jar"> |
| <fileset dir="${build.compile.web}" excludes="**/tomcat/**"/> |
| </jar> |
| |
| </target> |
| |
| |
| <!-- ********************************************************************* --> |
| <!-- Stage web application --> |
| <!-- ********************************************************************* --> |
| |
| <target name="stage-webapp" depends="gen-business, build-business, gen-web, build-web, copy-webapp" description="Stage webapp, including jars"> |
| </target> |
| |
| <target name="copy-webapp" depends="build-web" description="Stage webapp without code generation"> |
| |
| <mkdir dir="${build.webapp}/WEB-INF/lib"/> |
| <mkdir dir="${build.webapp}/WEB-INF/tlds"/> |
| |
| <!-- Copy database configs to classpath in staging --> |
| <copy todir="${build.webapp}/WEB-INF/classes"> |
| <fileset dir="${basedir}/metadata/database/hibernate" includes="hibernate.cfg.xml"/> |
| </copy> |
| |
| <!-- Copy WEB-INF contents to staging --> |
| <copy todir="${build.webapp}/WEB-INF"> |
| <fileset dir="${tools.struts}/lib" includes="validator-rules.xml"/> |
| </copy> |
| |
| <!-- Copy other jars --> |
| <copy todir="${build.webapp}/WEB-INF/lib"> |
| <fileset dir="${build.lib}" /> |
| <fileset dir="./contrib/lib" /> |
| <fileset refid="base.jars" /> |
| <fileset refid="presentation.jars" /> |
| <fileset refid="hibernate.jar" /> |
| <fileset refid="hibernate.jars" /> |
| <fileset refid="commons.jars" /> |
| <fileset refid="struts.jars" /> |
| <fileset refid="spring.jars" /> |
| <fileset refid="jstl.jars" /> |
| |
| <!-- include custom jars --> |
| &custom-jars; |
| </copy> |
| |
| <!-- Copy DTDs and TLDs --> |
| <copy todir="${build.webapp}/WEB-INF/tlds"> |
| <fileset dir="${ro.tools}/lib" includes="*.tld"/> |
| </copy> |
| |
| <!-- Copy web contents to staging, plus README files. --> |
| <copy todir="${build.webapp}"> |
| <fileset dir="./web"> |
| <include name="**/*"/> |
| <exclude name="**/codewright*/**"/> |
| <exclude name="**/*.bak"/> |
| <exclude name="**/*~"/> |
| </fileset> |
| </copy> |
| |
| <!-- Copy docs to staging --> |
| <copy todir="${build.webapp}/roller-ui/docs"> |
| <fileset dir="${basedir}/docs"> |
| <include name="examples/**" /> |
| <include name="userguide/**" /> |
| <exclude name="installguide/**" /> |
| <exclude name="**/old/**" /> |
| </fileset> |
| </copy> |
| |
| <!-- apply custom web task --> |
| &custom-web; |
| |
| </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.webapp}/WEB-INF/dbscripts"/> |
| |
| <!-- Create database creation script directory --> |
| <mkdir dir="${dbscripts}"/> |
| <copy todir="${dbscripts}"> |
| <fileset dir="./metadata/database" includes="droptables.sql"/> |
| </copy> |
| |
| <taskdef name="texen" classname="org.apache.velocity.texen.ant.TexenTask" |
| classpath="${basedir}/tools/lib/velocity-dep-1.4.jar" /> |
| <texen |
| controlTemplate="control.vm" |
| contextProperties="${basedir}/metadata/database/mysql.properties" |
| templatePath="${basedir}/metadata/database/" |
| outputDirectory="${build.webapp}/WEB-INF/dbscripts/mysql/" |
| outputFile="README.txt" /> |
| <texen |
| controlTemplate="control.vm" |
| contextProperties="${basedir}/metadata/database/postgresql.properties" |
| templatePath="${basedir}/metadata/database/" |
| outputDirectory="${build.webapp}/WEB-INF/dbscripts/postgresql/" |
| outputFile="README.txt" /> |
| <texen |
| controlTemplate="control.vm" |
| contextProperties="${basedir}/metadata/database/hsqldb.properties" |
| templatePath="${basedir}/metadata/database/" |
| outputDirectory="${build.webapp}/WEB-INF/dbscripts/hsqldb/" |
| outputFile="README.txt" /> |
| <texen |
| controlTemplate="control.vm" |
| contextProperties="${basedir}/metadata/database/derby.properties" |
| templatePath="${basedir}/metadata/database/" |
| outputDirectory="${build.webapp}/WEB-INF/dbscripts/derby/" |
| outputFile="README.txt" /> |
| <texen |
| controlTemplate="control.vm" |
| contextProperties="${basedir}/metadata/database/db2.properties" |
| templatePath="${basedir}/metadata/database/" |
| outputDirectory="${build.webapp}/WEB-INF/dbscripts/db2/" |
| outputFile="README.txt" /> |
| <texen |
| controlTemplate="control.vm" |
| contextProperties="${basedir}/metadata/database/oracle.properties" |
| templatePath="${basedir}/metadata/database/" |
| outputDirectory="${build.webapp}/WEB-INF/dbscripts/oracle/" |
| outputFile="README.txt" /> |
| <texen |
| controlTemplate="control.vm" |
| contextProperties="${basedir}/metadata/database/mssql.properties" |
| templatePath="${basedir}/metadata/database/" |
| outputDirectory="${build.webapp}/WEB-INF/dbscripts/mssql/" |
| outputFile="README.txt" /> |
| </target> |
| |
| |
| <!-- ********************************************************************* --> |
| <!-- Generate Javadocs and Velocidocs --> |
| <!-- ********************************************************************* --> |
| |
| <target name="docs" depends="javadoc,velocidoc" > |
| <copy todir="${build.javadoc}"> |
| <fileset dir="${build.velocidoc}/docs"> |
| <include name="*.css"/> |
| </fileset> |
| </copy> |
| </target> |
| |
| <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/apache/roller/**" /> |
| <exclude name="org/apache/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> |
| <copy todir="${build.javadoc}"> |
| <fileset dir="${basedir}/src"> |
| <include name="**/roller*.png"/> |
| </fileset> |
| </copy> |
| </target> |
| |
| <target name="velocidoc"> |
| <mkdir dir="${build.velocidoc}/temp"/> |
| <copy todir="${build.velocidoc}/temp"> |
| <fileset dir="./web/WEB-INF/velocity/"> |
| <include name="weblog.vm" /> |
| <include name="feeds.vm" /> |
| </fileset> |
| </copy> |
| <mkdir dir="${build.velocidoc}/docs"/> |
| <java fork="true" jar="${ro.tools}/buildtime/velocidoc-app.jar"> |
| <arg line="-s ${build.velocidoc}/temp \ |
| -d ${build.velocidoc}/docs \ |
| -t ${ro.tools}/buildtime/velocidoc-templates/ \ |
| -c ${ro.tools}/buildtime/velocidoc-templates/control.vm "/> |
| </java> |
| </target> |
| |
| |
| <!-- ********************************************************************* --> |
| <!-- Create Binary Releases --> |
| <!-- ********************************************************************* --> |
| |
| |
| <target name="apache-release" depends="apache-binary,apache-sources"> |
| </target> |
| |
| |
| <!-- ********************************************************************* --> |
| <!-- Create Binary Release --> |
| <!-- ********************************************************************* --> |
| |
| <target name="stage-binary" depends="version-check" > |
| |
| <!-- copy in release documents --> |
| <copy todir="${build.dist.binary}"> |
| <fileset dir="${basedir}"> |
| <include name="docs/**" /> |
| <include name="CHANGES.txt" /> |
| <include name="LICENSE.txt" /> |
| <include name="NOTICE.txt" /> |
| <include name="README.txt" /> |
| |
| <exclude name="**/codewright*/**"/> |
| <exclude name="docs/installguide/old/**"/> |
| <exclude name="docs/userguide/old/**"/> |
| <exclude name="docs/testing/**"/> |
| <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"/> |
| </fileset> |
| </copy> |
| |
| <!-- and of course we'll want the webapp too --> |
| <copy todir="${build.dist.binary}/webapp/roller"> |
| <fileset dir="${build.webapp}" /> |
| </copy> |
| |
| </target> |
| |
| |
| <target name="dist-binary" depends="stage-binary"> |
| |
| <mkdir dir="${ro.dist}" /> |
| |
| <!-- Tar and GZip the binary release --> |
| <tar destfile="${ro.dist}/roller-${ro.version}.tar.gz" |
| longfile="gnu" |
| compression="gzip"> |
| |
| <tarfileset dir="${build.dist.binary}" prefix="${ro.name}-${ro.version}" /> |
| </tar> |
| |
| </target> |
| |
| |
| <target name="apache-binary" depends="stage-binary"> |
| |
| <mkdir dir="${ro.dist}" /> |
| |
| <!-- Tar and GZip the apache sources release --> |
| <tar destfile="${ro.dist}/${ro.name}-${ro.version}.tar.gz" |
| longfile="gnu" |
| compression="gzip"> |
| |
| <!-- don't include unshippables in apache release --> |
| <tarfileset dir="${build.dist.binary}" |
| prefix="${ro.name}-${ro.version}"> |
| <exclude name="webapp/roller/WEB-INF/lib/mail.jar" /> |
| <exclude name="webapp/roller/WEB-INF/lib/activation.jar" /> |
| <exclude name="webapp/roller/WEB-INF/lib/hibernate3.jar" /> |
| <exclude name="webapp/roller/WEB-INF/lib/asm.jar" /> |
| <exclude name="webapp/roller/WEB-INF/lib/asm-attrs.jar" /> |
| <exclude name="webapp/roller/WEB-INF/lib/cglib-2.1.3.jar" /> |
| <exclude name="webapp/roller/WEB-INF/lib/dom4j-1.6.1.jar" /> |
| <exclude name="webapp/roller/WEB-INF/lib/ehcache-1.1.jar" /> |
| <exclude name="webapp/roller/WEB-INF/lib/jdbc2_0-stdext.jar" /> |
| <exclude name="webapp/roller/WEB-INF/lib/jta.jar" /> |
| </tarfileset> |
| </tar> |
| |
| <zip destfile="${ro.dist}/${ro.name}-${ro.version}.zip"> |
| <!-- don't include unshippables in apache release --> |
| <zipfileset dir="${build.dist.binary}" |
| prefix="${ro.name}-${ro.version}"> |
| <exclude name="webapp/roller/WEB-INF/lib/mail.jar" /> |
| <exclude name="webapp/roller/WEB-INF/lib/activation.jar" /> |
| <exclude name="webapp/roller/WEB-INF/lib/hibernate3.jar" /> |
| <exclude name="webapp/roller/WEB-INF/lib/asm.jar" /> |
| <exclude name="webapp/roller/WEB-INF/lib/asm-attrs.jar" /> |
| <exclude name="webapp/roller/WEB-INF/lib/cglib-2.1.3.jar" /> |
| <exclude name="webapp/roller/WEB-INF/lib/dom4j-1.6.1.jar" /> |
| <exclude name="webapp/roller/WEB-INF/lib/ehcache-1.1.jar" /> |
| <exclude name="webapp/roller/WEB-INF/lib/jdbc2_0-stdext.jar" /> |
| <exclude name="webapp/roller/WEB-INF/lib/jta.jar" /> |
| </zipfileset> |
| </zip> |
| |
| <!-- Tar and GZip the apache binary unshippables --> |
| <tar destfile="${ro.dist}/required-jars-roller-${ro.version}.tar.gz" |
| longfile="gnu" |
| compression="gzip"> |
| |
| <!-- only include unshippables --> |
| <tarfileset dir="${build.dist.binary}" |
| prefix="${ro.name}-${ro.version}"> |
| <exclude name="webapp/roller/WEB-INF/lib/mail.jar" /> |
| <exclude name="webapp/roller/WEB-INF/lib/activation.jar" /> |
| <include name="webapp/roller/WEB-INF/lib/hibernate3.jar" /> |
| <include name="webapp/roller/WEB-INF/lib/asm.jar" /> |
| <include name="webapp/roller/WEB-INF/lib/asm-attrs.jar" /> |
| <include name="webapp/roller/WEB-INF/lib/cglib-2.1.3.jar" /> |
| <include name="webapp/roller/WEB-INF/lib/dom4j-1.6.1.jar" /> |
| <include name="webapp/roller/WEB-INF/lib/ehcache-1.1.jar" /> |
| <include name="webapp/roller/WEB-INF/lib/jdbc2_0-stdext.jar" /> |
| <include name="webapp/roller/WEB-INF/lib/jta.jar" /> |
| </tarfileset> |
| </tar> |
| |
| <zip destfile="${ro.dist}/required-jars-roller-${ro.version}.zip" > |
| <zipfileset dir="${build.dist.binary}" |
| prefix="${ro.name}-${ro.version}"> |
| <exclude name="webapp/roller/WEB-INF/lib/mail.jar" /> |
| <exclude name="webapp/roller/WEB-INF/lib/activation.jar" /> |
| <include name="webapp/roller/WEB-INF/lib/hibernate3.jar" /> |
| <include name="webapp/roller/WEB-INF/lib/asm.jar" /> |
| <include name="webapp/roller/WEB-INF/lib/asm-attrs.jar" /> |
| <include name="webapp/roller/WEB-INF/lib/cglib-2.1.3.jar" /> |
| <include name="webapp/roller/WEB-INF/lib/dom4j-1.6.1.jar" /> |
| <include name="webapp/roller/WEB-INF/lib/ehcache-1.1.jar" /> |
| <include name="webapp/roller/WEB-INF/lib/jdbc2_0-stdext.jar" /> |
| <include name="webapp/roller/WEB-INF/lib/jta.jar" /> |
| </zipfileset> |
| </zip> |
| |
| </target> |
| |
| |
| <!-- ********************************************************************* --> |
| <!-- Create Source Release --> |
| <!-- ********************************************************************* --> |
| |
| <target name="stage-sources" depends="version-check"> |
| |
| <copy todir="${build.dist.sources}"> |
| <fileset dir="${basedir}"> |
| <include name="src/**" /> |
| <include name="tests/**" /> |
| <include name="testdata/**" /> |
| <include name="metadata/**" /> |
| <include name="personal/**" /> |
| <include name="custom/**" /> |
| <include name="contrib/**" /> |
| <include name="web/**" /> |
| <include name="docs/**" /> |
| <include name="tools/**" /> |
| <include name="ant.properties" /> |
| <include name="build.bat" /> |
| <include name="build.sh" /> |
| <include name="build.xml" /> |
| <include name="properties.xmlf" /> |
| <include name="CHANGES.txt" /> |
| <include name="LICENSE.txt" /> |
| <include name="NOTICE.txt" /> |
| <include name="README.txt" /> |
| |
| <exclude name="**/codewright*/**"/> |
| <exclude name="docs/installguide/old/**"/> |
| <exclude name="docs/userguide/old/**"/> |
| <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"/> |
| </fileset> |
| </copy> |
| |
| </target> |
| |
| |
| <target name="dist-sources" depends="stage-sources"> |
| |
| <mkdir dir="${ro.dist}" /> |
| |
| <!-- Tar and GZip the sources release --> |
| <tar destfile="${ro.dist}/roller-src-${ro.version}.tar.gz" |
| longfile="gnu" |
| compression="gzip"> |
| |
| <tarfileset dir="${build.dist.sources}" prefix="${ro.name}-src-${ro.version}" /> |
| </tar> |
| |
| </target> |
| |
| |
| <target name="apache-sources" depends="stage-sources"> |
| |
| <mkdir dir="${ro.dist}" /> |
| |
| <!-- Tar and GZip the apache binary release --> |
| <tar destfile="${ro.dist}/${ro.name}-src-${ro.version}.tar.gz" |
| longfile="gnu" |
| compression="gzip"> |
| |
| <!-- don't include unshippables in apache release --> |
| <tarfileset dir="${build.dist.sources}" |
| prefix="${ro.name}-src-${ro.version}"> |
| <exclude name="**/hibernate-3.1/**" /> |
| <exclude name="**/activation.jar" /> |
| <exclude name="**/mail.jar" /> |
| <exclude name="**/ejb-1.1.jar" /> |
| </tarfileset> |
| </tar> |
| |
| <zip destfile="${ro.dist}/${ro.name}-src-${ro.version}.zip"> |
| |
| <!-- don't include unshippables in apache release --> |
| <zipfileset dir="${build.dist.sources}" |
| prefix="${ro.name}-src-${ro.version}"> |
| <exclude name="**/hibernate-3.1/**" /> |
| <exclude name="**/activation.jar" /> |
| <exclude name="**/mail.jar" /> |
| <exclude name="**/ejb-1.1.jar" /> |
| </zipfileset> |
| </zip> |
| |
| <!-- Tar and GZip the apache sources unshippables --> |
| <tar destfile="${ro.dist}/required-jars-roller-src-${ro.version}.tar.gz" |
| longfile="gnu" |
| compression="gzip"> |
| |
| <!-- only include unshippables --> |
| <tarfileset dir="${build.dist.sources}" |
| prefix="${ro.name}-src-${ro.version}"> |
| <include name="**/hibernate-3.1/**" /> |
| <include name="**/activation.jar" /> |
| <include name="**/mail.jar" /> |
| <include name="**/ejb-1.1.jar" /> |
| </tarfileset> |
| </tar> |
| |
| <zip destfile="${ro.dist}/required-jars-roller-src-${ro.version}.zip"> |
| |
| <!-- only include unshippables --> |
| <zipfileset dir="${build.dist.sources}" |
| prefix="${ro.name}-src-${ro.version}"> |
| <include name="**/hibernate-3.1/**" /> |
| <include name="**/activation.jar" /> |
| <include name="**/mail.jar" /> |
| <include name="**/ejb-1.1.jar" /> |
| </zipfileset> |
| </zip> |
| |
| </target> |
| |
| |
| <target name="version-check" if="java15.present" > |
| <fail message="ERROR: DON'T BUILD RELEASES WITH JAVA 1.5 (yet)" /> |
| </target> |
| |
| |
| <!-- ********************************************************************* --> |
| <!-- TEST targets --> |
| <!-- ********************************************************************* --> |
| |
| <target name="tests" depends="build-tests,test-business,test-presentation,test-utils" description="All unit tests" > |
| </target> |
| |
| |
| <target name="clean-tests" description="Removes test build and result artifacts and reports"> |
| <delete dir="${build.tests}"/> |
| <delete dir="${ro.build}/build/reports"/> |
| </target> |
| |
| |
| <target name="build-tests" depends="build-web" description="Build unit tests"> |
| |
| <mkdir dir="${build.tests}" /> |
| <mkdir dir="${build.tests}/logs" /> |
| <mkdir dir="${build.compile.tests}" /> |
| |
| <!-- compile all test classes --> |
| <javac destdir="${build.compile.tests}" |
| includeantruntime="false" |
| debug="${build.debug}" |
| source="${build.sourcelevel}" |
| deprecation="${build.deprecation}"> |
| <src path="${ro.tests}" /> |
| |
| &custom-src-tests; |
| |
| <classpath> |
| <path refid="tests.path"/> |
| <pathelement location="${ro.tools}/buildtime/ant-1.6.2/ant.jar"/> |
| &custom-jars; |
| </classpath> |
| </javac> |
| |
| <!-- Copy test resources --> |
| <copy todir="${build.compile.tests}"> |
| <fileset dir="${ro.tests}" |
| excludes="**/*.java, **/*.html, **/*.png" /> |
| </copy> |
| |
| <!-- register Ant tasks that were just built --> |
| <taskdef name="startdb" classname="org.apache.roller.ant.StartHsqldbTask" |
| classpath="${ro.tools}/buildtime/hsqldb.jar;${build.compile.tests}" /> |
| <taskdef name="stopdb" classname="org.apache.roller.ant.StopHsqldbTask" |
| classpath="${ro.tools}/buildtime/hsqldb.jar;${build.compile.tests}" /> |
| |
| <!-- |
| Copy web config files to ${build.tests} to make them available for testing. |
| This includes the WEB-INF directory, minus jsps |
| --> |
| <mkdir dir="${build.tests}/WEB-INF" /> |
| <copy todir="${build.tests}/WEB-INF"> |
| <fileset dir="${basedir}/web/WEB-INF"> |
| <exclude name="jsps/**" /> |
| </fileset> |
| </copy> |
| |
| <copy todir="${build.tests}/WEB-INF/classes"> |
| <fileset dir="${basedir}/metadata/database/hibernate/" |
| includes="hibernate.cfg.xml" /> |
| </copy> |
| |
| <!-- |
| Copy custom testing files which will overwrite some config files |
| --> |
| <copy todir="${build.tests}"> |
| <fileset dir="${basedir}/testdata" /> |
| </copy> |
| |
| <!-- allow for custom build work --> |
| |
| </target> |
| |
| <!-- ===================================== --> |
| <!-- test business --> |
| |
| <target name="test-business" depends="build-tests" description="Back-end tests"> |
| |
| <mkdir dir="${build.reports}/business/xml"/> |
| <mkdir dir="${build.reports}/business/html"/> |
| |
| <antcall target="start-db" /> |
| <antcall target="init-db" /> |
| |
| &custom-pre-dbtest; |
| |
| <junit fork="true" dir="${build.tests}" printsummary="on" showOutput="false"> |
| <classpath> |
| <path refid="tests.run.path"/> |
| </classpath> |
| |
| <!-- needed to satisfy ref in log4j.properties --> |
| <jvmarg value="-Dcatalina.base=${build.tests}"/> |
| <jvmarg value="-Dro.build=${ro.build}"/> |
| <jvmarg value="-Droller.custom.config=${build.tests}/roller-custom.properties"/> |
| <formatter type="xml"/> |
| <batchtest toDir="${build.reports}/business/xml"> |
| <fileset dir="${build.compile.tests}"> |
| <include name="org/apache/roller/business/BookmarkTest.class"/> |
| <include name="org/apache/roller/business/UserTest.class"/> |
| <include name="org/apache/roller/business/WeblogTest.class"/> |
| <include name="org/apache/roller/business/PermissionTest.class"/> |
| <include name="org/apache/roller/business/WeblogPageTest.class"/> |
| <include name="org/apache/roller/business/PingsTest.class"/> |
| <include name="org/apache/roller/business/PropertiesTest.class"/> |
| <include name="org/apache/roller/business/WeblogEntryTest.class"/> |
| <include name="org/apache/roller/business/WeblogCategoryTest.class"/> |
| <include name="org/apache/roller/business/CommentTest.class"/> |
| <include name="org/apache/roller/business/FileManagerTest.class"/> |
| <include name="org/apache/roller/business/IndexManagerTest.class"/> |
| <include name="org/apache/roller/business/PlanetManagerTest.class"/> |
| <include name="org/apache/roller/business/RefererTest.class"/> |
| <include name="org/apache/roller/business/HitCountTest.class"/> |
| <include name="org/apache/roller/business/TaskLockTest.class"/> |
| </fileset> |
| </batchtest> |
| </junit> |
| <junitreport todir="${build.reports}/business/xml"> |
| <fileset dir="${build.reports}/business/xml"> |
| <include name="TEST-*.xml"/> |
| </fileset> |
| <report format="noframes" toDir="${build.reports}/business/html"/> |
| </junitreport> |
| |
| &custom-post-dbtest; |
| |
| <antcall target="stop-db" /> |
| |
| <echo>Suggested: Run "ant consistency-check".</echo> |
| </target> |
| |
| <!-- ===================================== --> |
| <!-- test presentation --> |
| |
| <target name="test-presentation" depends="build-tests"> |
| <mkdir dir="${build.reports}/presentation/xml"/> |
| <mkdir dir="${build.reports}/presentation/html"/> |
| |
| <antcall target="start-db" /> |
| <antcall target="init-db" /> |
| |
| <junit fork="true" dir="${build.tests}" printsummary="on" showOutput="false"> |
| <classpath> |
| <path refid="tests.run.path"/> |
| </classpath> |
| |
| <!-- needed to satisfy ref in log4j.properties --> |
| <jvmarg value="-Dcatalina.base=${build.tests}"/> |
| <jvmarg value="-Dro.build=${ro.build}"/> |
| <jvmarg value="-Droller.custom.config=${build.tests}/roller-custom.properties"/> |
| <formatter type="xml"/> |
| <batchtest toDir="${build.reports}/presentation/xml"> |
| <fileset dir="${build.compile.tests}"> |
| <include name="org/apache/roller/ui/UIPluginManagerTest.class"/> |
| <include name="org/apache/roller/ui/authoring/struts/actions/BookmarksActionTest.class"/> |
| <include name="org/apache/roller/ui/authoring/struts/actions/WeblogEntryActionTest.class"/> |
| <include name="org/apache/roller/webservices/xmlrpc/RollerXmlRpcServerTest.class"/> |
| <include name="org/apache/roller/ui/rendering/velocity/plugins/smileys/SmileysTest.class"/> |
| </fileset> |
| </batchtest> |
| </junit> |
| |
| <junitreport todir="${build.reports}/presentation/xml"> |
| <fileset dir="${build.reports}/presentation/xml"> |
| <include name="TEST-*.xml"/> |
| </fileset> |
| <report format="noframes" toDir="${build.reports}/presentation/html"/> |
| </junitreport> |
| |
| <antcall target="stop-db" /> |
| |
| </target> |
| |
| <!-- ===================================== --> |
| <!-- test utils --> |
| |
| <target name="test-utils" depends="build-tests" > |
| <mkdir dir="${build.reports}/utils/xml"/> |
| <mkdir dir="${build.reports}/utils/html"/> |
| |
| <junit fork="true" dir="${build.tests}" showOutput="true"> |
| <batchtest toDir="${build.reports}/utils/xml"> |
| <fileset dir="${build.tests}/WEB-INF/classes"> |
| <include name="org/apache/roller/util/*Test.class"/> |
| </fileset> |
| </batchtest> |
| <!-- needed to satisfy ref in log4j.properties --> |
| <jvmarg value="-Dcatalina.base=."/> |
| <formatter type="xml"/> |
| <classpath> |
| <path refid="tests.run.path"/> |
| </classpath> |
| </junit> |
| |
| <junitreport todir="${build.reports}/utils/xml"> |
| <fileset dir="${build.reports}/utils/xml"> |
| <include name="TEST-*.xml"/> |
| </fileset> |
| <report format="noframes" toDir="${build.reports}/utils/html"/> |
| </junitreport> |
| |
| </target> |
| |
| <target name="test-aapp" depends="test-aapp-sdk, test-aapp-handler"/> |
| |
| <target name="test-aapp-sdk"> |
| <mkdir dir="${build.reports}/webservices/adminapi/sdk/xml"/> |
| <mkdir dir="${build.reports}/webservices/adminapi/sdk/html"/> |
| |
| <junit fork="true" dir="${build.tests}" printsummary="on" showOutput="true"> |
| <syspropertyset> |
| <propertyref builtin="commandline"/> |
| </syspropertyset> |
| <classpath> |
| <path refid="tests.run.path"/> |
| </classpath> |
| <formatter type="xml"/> |
| <batchtest toDir="${build.reports}/webservices/adminapi/sdk/xml"> |
| <fileset dir="${build.tests}/WEB-INF/classes"> |
| <include name="org/apache/roller/webservices/adminapi/sdk/*EntryTest.class"/> |
| </fileset> |
| </batchtest> |
| </junit> |
| <junitreport todir="${build.reports}/webservices/adminapi/sdk/xml"> |
| <fileset dir="${build.reports}/webservices/adminapi/sdk/xml"> |
| <include name="TEST-*.xml"/> |
| </fileset> |
| <report format="noframes" toDir="${build.reports}/webservices/adminapi/sdk/html"/> |
| </junitreport> |
| </target> |
| |
| <target name="test-aapp-handler"> |
| <mkdir dir="${build.reports}/webservices/adminapi/xml"/> |
| <mkdir dir="${build.reports}/webservices/adminapi/html"/> |
| |
| <junit fork="true" dir="${build.tests}" printsummary="on"> |
| <syspropertyset> |
| <propertyref builtin="commandline"/> |
| </syspropertyset> |
| <classpath> |
| <path refid="tests.run.path"/> |
| </classpath> |
| <formatter type="xml"/> |
| <batchtest toDir="${build.reports}/webservices/adminapi/xml"> |
| <fileset dir="${build.tests}/WEB-INF/classes"> |
| <include name="org/apache/roller/webservices/adminapi/*HandlerTest.class"/> |
| </fileset> |
| </batchtest> |
| </junit> |
| <junitreport todir="${build.reports}/webservices/adminapi/xml"> |
| <fileset dir="${build.reports}/webservices/adminapi/xml"> |
| <include name="TEST-*.xml"/> |
| </fileset> |
| <report format="noframes" toDir="${build.reports}/webservices/adminapi/html"/> |
| </junitreport> |
| </target> |
| |
| <!-- You can specify testClass using -DtestClass=foo --> |
| <property name="testClass" value="org.apache.roller.presentation.velocity.plugins.smileys.SmileysTest"/> |
| <target name="test-one" depends="build-tests"> |
| <java classname="junit.textui.TestRunner" fork="yes" failonerror="false"> |
| <arg value="${testClass}"/> |
| <classpath> |
| <path refid="tests.run.path"/> |
| </classpath> |
| </java> |
| </target> |
| |
| <!-- ********************************************************************* --> |
| <!-- EXAMPLE targets --> |
| <!-- ********************************************************************* --> |
| |
| <target name="deploy-tomcat" depends="stage-webapp" > |
| <ant dir="./personal" target="deploy-tomcat" /> |
| </target> |
| <target name="deploy-resin" depends="stage-webapp" > |
| <ant dir="./personal" target="deploy-resin" /> |
| </target> |
| <target name="deploy-isp" depends="stage-webapp" > |
| <ant dir="./personal" target="deploy-isp" /> |
| </target> |
| <target name="clean-isp"> |
| <ant dir="./personal" target="clean-isp" /> |
| </target> |
| <target name="official-release" depends="tests,apache-release" > |
| <ant dir="./personal" target="official-release" /> |
| </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="-purge"> |
| <isset property="delete" /> |
| </condition> |
| <java classname="org.apache.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> |
| |
| <target name="compile-jsps" depends="stage-webapp"> |
| <mkdir dir="${ro.build}/jspc"/> |
| <taskdef classname="org.apache.jasper.JspC" name="jasper2" > |
| <classpath refid="jasper.path"/> |
| </taskdef> |
| <jasper2 validateXml="false" |
| uriroot="${build.webapp}" |
| webXmlFragment="${build.webapp}/WEB-INF/generated_web.xml" |
| outputDir="${ro.build}/jspc" /> |
| <mkdir dir="${ro.build}/jspc.classes"/> |
| <javac source="${build.sourcelevel}" debug="true" srcdir="${ro.build}/jspc" excludes="**/header_jsp.*" |
| destdir="${ro.build}/jspc.classes" fork="true"> |
| <classpath refid="jsp.compile.path"/> |
| </javac> |
| </target> |
| |
| <!-- ********************************************************************* --> |
| <!-- HSQLDB start, init and stop targets --> |
| <!-- ********************************************************************* --> |
| |
| <target name="init-db" description= |
| "Initializes built-in database by running drop table and create table"> |
| &custom-post-dbtest; |
| <sql driver="org.hsqldb.jdbcDriver" |
| url="jdbc:hsqldb:hsql://localhost:3219" |
| userid="sa" password="" |
| src="${build.webapp}/WEB-INF/dbscripts/droptables.sql" onerror="continue" |
| classpath="${ro.tools}/buildtime/hsqldb.jar" /> |
| <sql driver="org.hsqldb.jdbcDriver" |
| url="jdbc:hsqldb:hsql://localhost:3219" |
| userid="sa" password="" |
| src="${build.webapp}/WEB-INF/dbscripts/hsqldb/createdb.sql" |
| classpath="${ro.tools}/buildtime/hsqldb.jar" /> |
| &custom-pre-dbtest; |
| </target> |
| |
| <target name="start-db" description="Starts built-in database"> |
| <startdb database="${build.tests}/testdb" port="3219" /> |
| <!-- |
| Not sure we need that custom 'startdb' task if this plain old Ant works: |
| <java classname="org.hsqldb.Server" |
| fork="yes" spawn="true" classpath="./tools/buildtime/hsqldb.jar"> |
| <arg value="-database"/> |
| <arg value="${build.tests}/testdb"/> |
| <arg value="-port"/> |
| <arg value="3219"/> |
| </java> |
| --> |
| </target> |
| |
| <target name="stop-db" description="Drop tables and stops the built-in database"> |
| <stopdb port="3219"/> |
| <!-- |
| This below code does the same thing as 'stopdb' but the 'sql' task throws |
| an exception when HSQLDB disconnects and that causes a build failure, so |
| for now I'm keeping the custom 'startdb' and 'stopdb' Ant tasks. |
| <sql driver="org.hsqldb.jdbcDriver" onerror="continue" |
| url="jdbc:hsqldb:hsql://localhost:3219" |
| userid="sa" password="" |
| classpath="${ro.tools}/buildtime/hsqldb.jar" > |
| SHUTDOWN |
| </sql> |
| --> |
| </target> |
| |
| <!-- ********************************************************************* --> |
| <!-- Experimental Admin API SDK --> |
| <!-- ********************************************************************* --> |
| |
| <!-- build standalone aapp-sdk.jar, for external consumption --> |
| <target name="aapp-sdk" depends="build"> |
| <mkdir dir="${build.lib}"/> |
| <jar destfile="${build.lib}/roller-aapp-sdk.jar"> |
| <manifest> |
| <attribute name="Manifest-Version" value="${ro.version}"/> |
| </manifest> |
| <fileset dir="${build.compile.web}"> |
| <include name="org/apache/roller/webservices/adminapi/sdk/*"/> |
| </fileset> |
| </jar> |
| </target> |
| |
| </project> |