blob: 39715ae8f99bbf8a4d0651b45e189a3c5981099c [file] [log] [blame]
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
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.
-->
<!-- $Id$ -->
<project name="webapp">
<description>
Webapp targets
</description>
<target name="prepare-webapp" depends="blocks, package">
<mkdir dir="${build.webapp}"/>
<!-- Important to use here encoding="iso-8859-1" to avoid
mutilating LATIN-1 characters in the copy operation.
If these were read assuming UTF-8 encoding, umlauts
are invalid byte sequences and get replaced by '?'.
On the other hand, reading UTF-8 files using LATIN-1
encoding is not a problem in this context since every
UTF-8 byte sequence maps to one or more LATIN-1 characters.
We only need to assume that the tokens to be replaced
by the filtering option are written in ASCII only.
-->
<copy filtering="on" todir="${build.webapp}" encoding="iso-8859-1">
<fileset dir="${webapp}">
<exclude name="**/*.ico"/>
<exclude name="**/*.gif"/>
<exclude name="**/*.jpg"/>
<exclude name="**/*.png"/>
<exclude name="samples/**"/>
<exclude name="test-suite/**"/>
</fileset>
</copy>
<copy filtering="off" todir="${build.webapp}">
<fileset dir="${webapp}">
<exclude name="samples/**"/>
<exclude name="test-suite/**"/>
<include name="**/*.ico"/>
<include name="**/*.gif"/>
<include name="**/*.jpg"/>
<include name="**/*.png"/>
</fileset>
</copy>
<!-- generate sitemap entries
<sitemap-components sitemap="${build.webapp}/sitemap.xmap" source="${java}"/>
-->
<copy file="${build}/${name}.jar"
tofile="${build.webapp.lib}/${name}-${version}.jar"/>
<copy todir="${build.webapp.lib}">
<fileset dir="${lib}/endorsed">
<include name="*.jar"/>
</fileset>
<fileset dir="${lib.core}">
<include name="*.jar"/>
<exclude name="servlet*.jar"/>
</fileset>
<!-- Currently, we have no JVM dependent libraries
<fileset dir="${lib.core}/jvm${target.vm}">
<include name="*.jar"/>
</fileset>
-->
<fileset dir="${lib.local}">
<include name="*.jar"/>
</fileset>
</copy>
<copy todir="${build.webapp.lib}">
<fileset dir="${build.blocks}">
<include name="*-block.jar"/>
</fileset>
<mapper type="glob" from="*-block.jar" to="cocoon-*-block.jar"/>
</copy>
<if>
<isfalse value="${internal.exclude.webapp.test-suite}"/>
<then>
<copy file="${build}/${name}-testcase.jar" todir="${build.webapp.lib}"/>
</then>
</if>
<if>
<istrue value="${include.sources-jars}"/>
<then>
<copy file="${build}/${name}.src.jar"
tofile="${build.webapp.lib}/${name}-${version}.src.jar"/>
<copy todir="${build.webapp.lib}">
<fileset dir="${build.blocks}">
<include name="*-block.src.jar"/>
</fileset>
<mapper type="glob" from="*-block.src.jar" to="cocoon-*-block.src.jar"/>
</copy>
</then>
</if>
<ant antfile="${build.temp}/blocks-build.xml"
inheritAll="true"
inheritRefs="false"
target="lib"/>
<ant antfile="${build.temp}/blocks-build.xml"
inheritAll="true"
inheritRefs="false"
target="patch"/>
</target>
<target name="prepare-webapp-samples" depends="prepare-webapp, samples, block-samples" unless="internal.exclude.webapp.samples"/>
<target name="prepare-webapp-test-suite" depends="prepare-webapp" unless="internal.exclude.webapp.test-suite">
<!-- copy test suite files -->
<copy todir="${build.webapp.test-suite}">
<fileset dir="${webapp.test-suite}"/>
</copy>
</target>
<target name="prepare-webapp-deprecated" depends="prepare-webapp" unless="internal.exclude.deprecated">
<copy file="${build}/${name}-deprecated.jar" tofile="${build.webapp.lib}/${name}-${version}-deprecated.jar"/>
<xpatch file="${build.webapp}/WEB-INF/cocoon.xconf"
srcdir="${deprecated.conf}"
includes="**/*.xconf"
addComments="true"/>
</target>
<target name="webapp" depends="prepare-webapp,prepare-webapp-samples,prepare-webapp-test-suite,prepare-webapp-deprecated,validate-jars,validate-config,custom-conf,hsqldb-port" description="Builds web application folder">
</target>
<target name="war" depends="webapp" description="Builds web application archive">
<!-- A task to create manifest for webapp. -->
<taskdef name="manifest" classname="ManifestToolTask" classpath="${tools.tasks.dest}"/>
<!-- Create WAR manifest -->
<manifest directory="${build.webapp.lib}" manifest="${build.webapp}/WEB-INF/Manifest.mf"/>
<!-- Package WAR file -->
<jar jarfile="${build.war}" manifest="${build.webapp}/WEB-INF/Manifest.mf" index="true">
<fileset dir="${build.webapp}"/>
</jar>
</target>
<target name="custom-conf" depends="init-tasks" description="Uses Cocoon's xpatch task to customize runtime configuration">
<xpatch file="${build.webapp}/sitemap.xmap" srcdir="">
<include name="${customconf}/*.xmap" />
<include name="${customconf}/*.xpipe" />
</xpatch>
<xpatch file="${build.webapp}/WEB-INF/cocoon.xconf" srcdir="" addComments="true">
<include name="${customconf}/*.xconf" />
</xpatch>
<xpatch file="${build.webapp}/WEB-INF/logkit.xconf" srcdir="">
<include name="${customconf}/*.xlog" />
</xpatch>
<xpatch file="${build.webapp}/WEB-INF/web.xml" srcdir="">
<include name="${customconf}/*.xweb" />
</xpatch>
</target>
<!-- Change the hsqldb server port if specified in the local properties -->
<target name="hsqldb-port" if="build.webapp.hsqldb-server-port">
<replace file="${build.webapp}/WEB-INF/cocoon.xconf"
token="jdbc:hsqldb:hsql://localhost:9002"
value="jdbc:hsqldb:hsql://localhost:${build.webapp.hsqldb-server-port}"/>
<replace file="${build.webapp}/WEB-INF/cocoon.xconf"
token='parameter name="port" value="9002"'
value='parameter name="port" value="${build.webapp.hsqldb-server-port}"'/>
</target>
</project>