| <?xml version="1.0" encoding="UTF-8" standalone="yes"?> |
| <!-- |
| Copyright 1999-2004 The Apache Software Foundation |
| |
| Licensed 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. |
| --> |
| <project name="Cocoon build system" default="cocoon:init"> |
| |
| <target name="cocoon:core-setProperties" depends="cocoon:before-setProperties"> |
| <!-- get the properties of properties configuration files --> |
| <property name="cocoon.server" value="localhost"/> |
| <property file="${cocoon.server}.build.properties"/> |
| |
| <property file="project.properties"/> |
| |
| <!-- conditions depending on property values --> |
| <property name="cocoon.container.use" value="false"/> |
| <property name="cocoon.classesToJAR" value="false"/> |
| <condition property="cocoon.cond.container.use"> |
| <istrue value="${cocoon.container.use}"/> |
| </condition> |
| <condition property="cocoon.cond.webapp.in.context"> |
| <equals arg1="${cocoon.webapp.path}" arg2=""/> |
| </condition> |
| <condition property="cocoon.cond.classesToJAR"> |
| <and> |
| <istrue value="${cocoon.cond.webapp.in.context}"/> |
| <istrue value="${cocoon.classesToJAR}"/> |
| </and> |
| </condition> |
| |
| <!-- repository directory structure --> |
| <property name="cocoon.rep.cocoon.dir" value="${cocoon.rep}/cocoon/${cocoon.version}"/> |
| <property name="cocoon.rep.cocoon.webapp.dir" value="${cocoon.rep.cocoon.dir}/webapp"/> |
| <property name="cocoon.rep.cocoon.lib.dir" value="${cocoon.rep.cocoon.dir}/webapp/WEB-INF/lib"/> |
| <property name="cocoon.rep.cocoon.classes.dir" value="${cocoon.rep.cocoon.dir}/webapp/WEB-INF/classes"/> |
| <property name="cocoon.rep.cocoon.db.dir" value="${cocoon.rep.cocoon.webapp.dir}/WEB-INF/db"/> |
| <property name="cocoon.rep.container.dir" value="${cocoon.rep}/container/${cocoon.container.version}"/> |
| |
| <!-- container properties --> |
| <property file="${cocoon.rep.container.dir}/server.properties"/> |
| |
| <!-- target directory structure --> |
| <property name="cocoon.build.dir" value="build"/> |
| <property name="cocoon.build.java" value="${cocoon.build.dir}/java"/> |
| <property name="cocoon.build.sourcepathref" value="cocoon:core-compile-sourcepath"/> |
| <property name="cocoon.build.java.classes" value="${cocoon.build.java}/classes"/> |
| <property name="cocoon.build.junit" value="${cocoon.build.dir}/test/junit"/> |
| <property name="cocoon.build.junit.classes" value="${cocoon.build.junit}/classes"/> |
| <property name="cocoon.build.junit.output" value="${cocoon.build.junit}/output"/> |
| <property name="cocoon.build.htmlunit" value="${cocoon.build.dir}/test/htmlunit"/> |
| <property name="cocoon.build.htmlunit.classes" value="${cocoon.build.htmlunit}/classes"/> |
| <property name="cocoon.build.htmlunit.output" value="${cocoon.build.htmlunit}/output"/> |
| <property name="cocoon.build.webapp.war.dir" value="${cocoon.build.dir}/${cocoon.server}_webapp"/> |
| <property name="cocoon.build.webapp.dir" value="${cocoon.build.dir}/${cocoon.server}_webapp/ROOT"/> |
| <property name="cocoon.build.container.dir" value="${cocoon.build.dir}/${cocoon.server}_container"/> |
| |
| <!-- WAR --> |
| <property name="cocoon.build.war.name" value="ROOT.war"/> |
| |
| <!-- local directories --> |
| <property name="cocoon.local.webapp.dir" value="webapp"/> |
| <property name="cocoon.local.src.dir" value="java"/> |
| <property name="cocoon.local.junit.dir" value="test/junit"/> |
| <property name="cocoon.local.lib.dir" value="lib"/> |
| <property name="cocoon.local.conf.dir" value="conf"/> |
| |
| <!-- default values for compiler settings --> |
| <property name="cocoon.compiler" value="modern"/> |
| <property name="cocoon.compiler.debug" value="on"/> |
| <property name="cocoon.compiler.optimize" value="on"/> |
| <property name="cocoon.compiler.deprecation" value="off"/> |
| <property name="cocoon.compiler.nowarn" value="on"/> |
| <property name="cocoon.compiler.source.vm" value="1.3"/> |
| <property name="cocoon.compiler.target.vm" value="1.3"/> |
| |
| <!-- sourcepath --> |
| <path id="cocoon:core-compile-sourcepath"/> |
| |
| <!-- classpaths --> |
| <path id="cocoon:classpath"> |
| <fileset dir="${cocoon.rep.cocoon.lib.dir}"> |
| <include name="*.jar" /> |
| </fileset> |
| <fileset dir="${cocoon.local.lib.dir}"> |
| <include name="*.jar" /> |
| </fileset> |
| <dirset dir="${cocoon.rep.cocoon.classes.dir}" /> |
| </path> |
| </target> |
| |
| <target name="cocoon:init" depends="cocoon:setProperties, cocoon:setFilters"> |
| <!-- global filters --> |
| <filter token="cocoon.filter.webapp.path" value="${cocoon.webapp.path}"/> |
| </target> |
| |
| <target name="cocoon:core-webapp" depends="cocoon:before-webapp"> |
| <mkdir dir="${cocoon.build.webapp.dir}"/> |
| |
| <!-- copy Cocoon --> |
| <copy todir="${cocoon.build.webapp.dir}"> |
| <fileset dir="${cocoon.rep.cocoon.webapp.dir}"> |
| <include name="WEB-INF/**"/> |
| </fileset> |
| </copy> |
| |
| <!-- copy local resources if the application runs *within* the servlet context --> |
| <antcall target="cocoon:copyWebapp"/> |
| |
| <copy todir="${cocoon.build.webapp.dir}" filtering="on"> |
| <fileset dir="${cocoon.local.webapp.dir}"> |
| <include name="sitemap.xmap"/> |
| </fileset> |
| </copy> |
| |
| <!-- customize Cocoon --> |
| <copy todir="${cocoon.build.webapp.dir}/WEB-INF/xconf" filtering="on" overwrite="true"> |
| <fileset dir="${cocoon.local.conf.dir}"> |
| <include name="*xconf"/> |
| <include name="*logkit"/> |
| </fileset> |
| </copy> |
| |
| <!-- add own Java classes --> |
| <antcall target="cocoon:compile"/> |
| <antcall target="cocoon:classesToJAR"/> |
| |
| <!-- copy local libraries --> |
| <copy todir="${cocoon.build.webapp.dir}/WEB-INF/lib" filtering="off"> |
| <fileset dir="${cocoon.local.lib.dir}"/> |
| </copy> |
| </target> |
| |
| <target name="cocoon:copyWebapp" if="cocoon.cond.webapp.in.context"> |
| <echo message=".... copyWebapp"/> |
| <copy todir="${cocoon.build.webapp.dir}" filtering="off"> |
| <fileset dir="${cocoon.local.webapp.dir}"> |
| <exclude name="sitemap.xmap"/> |
| </fileset> |
| </copy> |
| </target> |
| |
| <target name="cocoon:classesToJAR" if="cocoon.cond.classesToJAR"> |
| <zip destfile="${cocoon.build.webapp.dir}/WEB-INF/lib/_project.jar"> |
| <fileset dir="${cocoon.build.webapp.dir}/WEB-INF/classes"/> |
| </zip> |
| <delete dir="${cocoon.build.webapp.dir}/WEB-INF/classes"/> |
| </target> |
| |
| <target name="cocoon:core-war" depends="cocoon:before-war"> |
| <zip destfile="${cocoon.build.webapp.war.dir}/${cocoon.build.war.name}"> |
| <fileset dir="${cocoon.build.webapp.dir}"/> |
| </zip> |
| </target> |
| |
| <target name="cocoon:core-container" depends="cocoon:before-container"> |
| <ant antfile="${cocoon.rep.container.dir}/container-build.xml" |
| target="cocoon:create" inheritall="true"/> |
| </target> |
| |
| <target name="cocoon:core-run" depends="cocoon:before-run"> |
| <ant antfile="${cocoon.rep.container.dir}/container-build.xml" |
| target="cocoon:run" inheritall="true"/> |
| </target> |
| |
| <target name="cocoon:core-stop" depends="cocoon:init, cocoon:before-stop"> |
| <ant antfile="${cocoon.rep.container.dir}/container-build.xml" |
| target="cocoon:stop" inheritall="true"/> |
| </target> |
| |
| <target name="cocoon:core-compile" depends="cocoon:before-compile"> |
| <mkdir dir="${cocoon.build.java}"/> |
| <mkdir dir="${cocoon.build.java.classes}"/> |
| <mkdir dir="${cocoon.build.webapp.dir}/WEB-INF/classes"/> |
| <copy todir="${cocoon.build.java.classes}" filtering="on"> |
| <fileset dir="${cocoon.local.src.dir}"> |
| <exclude name="**/*.java"/> |
| <exclude name="**/.svn"/> |
| </fileset> |
| </copy> |
| <javac classpathref="cocoon:classpath" |
| compiler="${cocoon.compiler}" |
| nowarn="${cocoon.compiler.nowarn}" |
| source="${cocoon.compiler.source.vm}" |
| target="${cocoon.compiler.target.vm}" |
| deprecation="${cocoon.compiler.deprecation}" |
| optimize="${cocoon.compiler.optimize}" |
| debug="${cocoon.compiler.debug}" |
| srcdir="${cocoon.local.src.dir}" |
| destdir="${cocoon.build.java.classes}" |
| sourcepathref="${cocoon.build.sourcepathref}" |
| /> |
| <copy todir="${cocoon.build.webapp.dir}/WEB-INF/classes" filtering="off"> |
| <fileset dir="${cocoon.build.java.classes}"> |
| <exclude name="**/*.java"/> |
| <exclude name="**/.svn"/> |
| </fileset> |
| </copy> |
| </target> |
| |
| <target name="cocoon:core-clean" depends="cocoon:before-clean"> |
| <delete includeEmptyDirs="true"> |
| <fileset dir="${cocoon.build.dir}"> |
| <include name="*_container/**"/> |
| <include name="*_webapp/**"/> |
| </fileset> |
| </delete> |
| </target> |
| |
| <target name="cocoon:core-clean-all" depends="cocoon:before-clean-all"> |
| <delete dir="${cocoon.build.dir}"/> |
| </target> |
| |
| <!-- interception targets --> |
| <target name="cocoon:before-setProperties"/> |
| <target name="cocoon:after-setProperties" depends="cocoon:core-setProperties"/> |
| <target name="cocoon:before-webapp" depends="cocoon:init"/> |
| <target name="cocoon:after-webapp" depends="cocoon:core-webapp"/> |
| <target name="cocoon:before-war" depends="cocoon:webapp"/> |
| <target name="cocoon:after-war" depends="cocoon:core-war"/> |
| <target name="cocoon:before-container" depends="cocoon:init"/> |
| <target name="cocoon:after-container" depends="cocoon:core-container"/> |
| <target name="cocoon:before-run" depends="cocoon:init"/> |
| <target name="cocoon:after-run" depends="cocoon:core-run"/> |
| <target name="cocoon:before-stop" depends="cocoon:init"/> |
| <target name="cocoon:after-stop" depends="cocoon:core-stop"/> |
| <target name="cocoon:before-compile" depends="cocoon:init" if="cocoon.cond.webapp.in.context"/> |
| <target name="cocoon:after-compile" depends="cocoon:core-compile" if="cocoon.cond.webapp.in.context"/> |
| <target name="cocoon:before-clean" depends="cocoon:init"/> |
| <target name="cocoon:after-clean" depends="cocoon:core-clean"/> |
| <target name="cocoon:before-clean-all" depends="cocoon:init"/> |
| <target name="cocoon:after-clean-all" depends="cocoon:core-clean-all"/> |
| |
| <!-- public available targets |
| DO NOT OVERRIDE THEM but use the before/after/core targets for this purpose |
| --> |
| <target name="cocoon:container" depends="cocoon:after-container" description="screate a container (uses the property 'container.version')"/> |
| <target name="cocoon:webapp" depends="cocoon:after-webapp" description="create the web application"/> |
| <target name="cocoon:war" depends="cocoon:after-war" description="create a web archive (WAR)"/> |
| <target name="cocoon:run" depends="cocoon:after-run" description="run the container (currently it only works on windows boxes)"/> |
| <target name="cocoon:stop" depends="cocoon:after-stop" description="run the container (currently it only works on windows boxes)"/> |
| <target name="cocoon:compile" depends="cocoon:after-compile" description="Compile Java classes" if="cocoon.cond.webapp.in.context"/> |
| <target name="cocoon:clean" depends="cocoon:after-clean" description="clean webapps and container"/> |
| <target name="cocoon:clean-all" depends="cocoon:after-clean-all" description="clean *everything* in the build dir"/> |
| |
| <!-- short versions for public cocoon:* targets - as these are very common names they might be |
| overriden in a custom project build file --> |
| <target name="container" depends="cocoon:container" if="cond.container.use" description="short version for cocoon:container"/> |
| <target name="webapp" depends="cocoon:webapp" description="short version for cocoon:webapp"/> |
| <target name="war" depends="cocoon:war" description="short version for cocoon:war"/> |
| <target name="run" depends="cocoon:run" description="short version for cocoon:run"/> |
| <target name="stop" depends="cocoon:stop" description="short version for cocoon:stop"/> |
| <target name="compile" depends="cocoon:compile" description="short version for cocoon:compile" if="cocoon.cond.webapp.in.context"/> |
| <target name="clean" depends="cocoon:clean" description="short version for cocoon:clean"/> |
| <target name="clean-all" depends="cocoon:clean-all" description="short version for cocoon:clean-all"/> |
| |
| <!-- internally available targets --> |
| <target name="cocoon:setProperties" depends="cocoon:after-setProperties"/> |
| |
| <!-- empty targets to be overriden --> |
| <target name="cocoon:setFilters"/> |
| <target name="cocoon:complete-ant"/> |
| |
| </project> |