blob: fb2044c87871b5a7bf5f237935b948a49ebd4ed2 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
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.
-->
<project
xmlns:rat="antlib:org.apache.rat.anttasks"
xmlns:ivy="antlib:org.apache.ivy.ant"
xmlns="antlib:org.apache.tools.ant"
>
<import file="ivy-java-common.xml" />
<import file="ivy-webapp-common.xml" />
<tstamp />
<property name="project.general.name" value="apache-wookie-${version}" />
<property name="wookie.source.folder.name" value="${project.general.name}-src" />
<property name="wookie.war.folder.name" value="${project.general.name}-war" />
<property name="wookie.standalone.folder.name" value="${project.general.name}-standalone" />
<property name="rat.install.version" value="0.7" />
<property name="rat.home" value="${user.home}/.ant" />
<property name="rat.jar.dir" value="${rat.home}/lib" />
<property name="rat.jar.file" value="${rat.jar.dir}/rat.jar" />
<!-- get the rat jar as we do with ivy -->
<target name="download-rat" unless="offline">
<mkdir dir="${rat.jar.dir}"/>
<!-- download rat from web site so that it can be used even without any special installation -->
<get src="http://repo2.maven.org/maven2/org/apache/rat/apache-rat/${rat.install.version}/apache-rat-${rat.install.version}.jar"
dest="${rat.jar.file}" usetimestamp="true"/>
</target>
<target name="init-rat" depends="download-rat">
<!-- try to load rat here from rat home, in case the user has not already dropped
it into ant's lib dir (note that the latter copy will always take precedence).
We will not fail as long as local lib dir exists (it may be empty) and
rat is in at least one of ant's lib dir or the local lib dir. -->
<path id="rat.lib.path">
<fileset dir="${rat.jar.dir}" includes="*.jar"/>
</path>
<taskdef resource="org/apache/rat/anttasks/antlib.xml"
uri="antlib:org.apache.rat.anttasks" classpathref="rat.lib.path"/>
</target>
<target name="build-release-all"
depends="build-release-src, build-release-standalone, build-release-war, add-extra-files">
<echo>Building all releases</echo>
</target>
<target name="build-release-src" depends="init-rat">
<echo>Building source release</echo>
<mkdir dir="${wookie.release.dir}/${version}/source/${wookie.source.folder.name}" />
<copy todir="${wookie.release.dir}/${version}/source/${wookie.source.folder.name}">
<fileset dir="."/>
</copy>
<copy file="./etc/release/src-build-include.txt" toFile="${wookie.release.dir}/${version}/source/src-build-include.txt">
<filterset>
<filter token="FOLDERNAME" value="${wookie.source.folder.name}/"/>
</filterset>
</copy>
<copy file="./etc/release/src-build-include.txt" toFile="${wookie.release.dir}/${version}/source/src-build-include-rat-test.txt">
<filterset>
<filter token="FOLDERNAME" value=""/>
</filterset>
</copy>
<zip destfile="${wookie.release.dir}/${version}/source/${wookie.source.folder.name}.zip"
basedir="${wookie.release.dir}/${version}/source/"
includesFile="${wookie.release.dir}/${version}/source/src-build-include.txt"
/>
<!-- tar -->
<tar destfile="${wookie.release.dir}/${version}/source/${wookie.source.folder.name}.tar.gz"
compression="gzip">
<zipfileset src="${wookie.release.dir}/${version}/source/${wookie.source.folder.name}.zip" />
</tar>
<!-- run RAT report -->
<rat:report reportFile="${wookie.release.dir}/${version}/source/rat-report.txt">
<fileset dir=".">
<includesFile name="${wookie.release.dir}/${version}/source/src-build-include-rat-test.txt" />
<excludesfile name="./etc/rat-ignore.txt"/>
</fileset>
</rat:report>
<!-- clean up -->
<delete dir="${wookie.release.dir}/${version}/source/${wookie.source.folder.name}"/>
<delete file="${wookie.release.dir}/${version}/source/src-build-include.txt"/>
<delete file="${wookie.release.dir}/${version}/source/src-build-include-rat-test.txt"/>
</target>
<target name="build-release-war" depends="init-rat,clean-build, compile-core, deploy-webapp, post-deploy-webapp">
<echo>Building war release</echo>
<delete dir="${wookie.release.dir}/${version}/binary/war/${wookie.war.folder.name}" />
<mkdir dir="${wookie.release.dir}/${version}/binary/war/${wookie.war.folder.name}/scripts/migration" />
<!-- back the widgetserver.properties file up -->
<copy file="${build.dir}/webapp/wookie/WEB-INF/classes/widgetserver.properties"
tofile="${build.dir}/widgetserver.properties"
overwrite="true"/>
<!-- update widgetserver.properties file so that it points to mysql as db type-->
<copy file="${project.core.src.dir}/widgetserver.properties"
todir="${build.dir}/webapp/wookie/WEB-INF/classes/"
overwrite="true">
<filterset>
<filter token="PERSISTENCE_MANAGER_CLASSNAME" value="org.apache.wookie.beans.jpa.JPAPersistenceManager"/>
<filter token="DATABASE_TYPE" value="mysql"/>
<filter token="REPOSITORY_USER" value=""/>
<filter token="REPOSITORY_PASSWORD" value=""/>
<filter token="REPOSITORY_ROOTPATH" value=""/>
<filter token="REPOSITORY_WORKSPACE" value=""/>
</filterset>
</copy>
<!-- build war file -->
<war
destfile="${wookie.release.dir}/${version}/binary/war/${wookie.war.folder.name}/wookie.war"
webxml="${build.dir}/webapp/wookie/WEB-INF/web.xml">
<lib dir="${build.dir}/webapp/wookie/WEB-INF/lib">
<exclude name="derby-10.4.2.0.jar"/>
</lib>
<classes dir="${build.dir}/webapp/wookie/WEB-INF/classes" />
<fileset dir="${build.dir}/webapp/wookie/">
<exclude name="WEB-INF/classes/" />
<exclude name="WEB-INF/lib/" />
</fileset>
<metainf dir=".">
<include name="UPGRADING"/>
</metainf>
<metainf dir="etc/release/war/">
<include name="LICENSE"/>
<include name="NOTICE"/>
</metainf>
</war>
<!-- put original widgetserver.properties file back -->
<copy file="${build.dir}/widgetserver.properties"
tofile="${build.dir}/webapp/wookie/WEB-INF/classes/widgetserver.properties"
overwrite="true" />
<delete file="${build.dir}/widgetserver.properties" />
<!--
<delete file="${build.dir}/webapp/wookie/LICENSE" />
-->
<!-- copy sql scripts across -->
<copy todir="${wookie.release.dir}/${version}/binary/war/${wookie.war.folder.name}/scripts/">
<fileset dir="${build.dir}/classes/org/apache/wookie/beans/jpa/">
<include name="*.sql" />
</fileset>
</copy>
<!-- copy migration scripts across -->
<copy todir="${wookie.release.dir}/${version}/binary/war/${wookie.war.folder.name}/scripts/migration/">
<fileset dir="scripts/migration/"/>
</copy>
<!-- copy over project readme files-->
<copy file="README" tofile="${wookie.release.dir}/${version}/binary/war/${wookie.war.folder.name}/README" overwrite="yes" />
<copy file="RELEASE_NOTES" tofile="${wookie.release.dir}/${version}/binary/war/${wookie.war.folder.name}/RELEASE_NOTES" overwrite="yes" />
<copy file="NEW_AND_NOTEWORTHY" tofile="${wookie.release.dir}/${version}/binary/war/${wookie.war.folder.name}/NEW_AND_NOTEWORTHY" overwrite="yes" />
<copy file="UPGRADING" tofile="${wookie.release.dir}/${version}/binary/war/${wookie.war.folder.name}/UPGRADING" overwrite="yes" />
<copy file="etc/release/war/NOTICE" tofile="${wookie.release.dir}/${version}/binary/war/${wookie.war.folder.name}/NOTICE" overwrite="yes" />
<copy file="etc/release/war/LICENSE" tofile="${wookie.release.dir}/${version}/binary/war/${wookie.war.folder.name}/LICENSE" overwrite="yes" />
<!-- copy WAR readme-->
<copy file="etc/release/war/WAR_BUILD_NOTES"
tofile="${wookie.release.dir}/${version}/binary/war/${wookie.war.folder.name}/WAR_BUILD_NOTES"
overwrite="yes" />
<!-- update context for mysql -->
<copy file="${etc.dir}/tomcat/conf/jpa-context.xml" tofile="${wookie.release.dir}/${version}/binary/war/${wookie.war.folder.name}/${ant.project.name}.xml" overwrite="true">
<filterset>
<filter token="DATABASE_USER" value="java" />
<filter token="DATABASE_PASSWORD" value="java" />
<filter token="DATABASE_DRIVER" value="com.mysql.jdbc.Driver" />
<filter token="DATABASE_URI" value="jdbc:mysql://localhost:3306/widgetdb" />
</filterset>
</copy>
<!-- zip -->
<zip destfile="${wookie.release.dir}/${version}/binary/war/${wookie.war.folder.name}.zip" basedir="${wookie.release.dir}/${version}/binary/war/" update="true" />
<!-- tar -->
<tar destfile="${wookie.release.dir}/${version}/binary/war/${wookie.war.folder.name}.tar.gz"
compression="gzip">
<zipfileset src="${wookie.release.dir}/${version}/binary/war/${wookie.war.folder.name}.zip" />
</tar>
<!-- run RAT report -->
<rat:report reportFile="${wookie.release.dir}/${version}/binary/war/rat-report.txt">
<fileset dir="${wookie.release.dir}/${version}/binary/war/${wookie.war.folder.name}/">
<excludesfile name="./etc/rat-ignore.txt"/>
</fileset>
</rat:report>
<!-- clean up -->
<delete dir="${wookie.release.dir}/${version}/binary/war/${wookie.war.folder.name}" />
</target>
<target name="build-release-standalone" depends="init-rat, clean-build, compile-core, deploy-webapp, post-deploy-webapp">
<echo>Building standalone release</echo>
<delete dir="${wookie.release.dir}/${version}/binary/standalone/${wookie.standalone.folder.name}" />
<mkdir dir="${wookie.release.dir}/${version}/binary/standalone/${wookie.standalone.folder.name}/build/" />
<mkdir dir="${wookie.release.dir}/${version}/binary/standalone/${wookie.standalone.folder.name}/lib/" />
<mkdir dir="${wookie.release.dir}/${version}/binary/standalone/${wookie.standalone.folder.name}/etc/" />
<copy todir="${wookie.release.dir}/${version}/binary/standalone/${wookie.standalone.folder.name}/build/">
<fileset dir="${build.dir}/">
<exclude name="classes/" />
<exclude name="widgets/" />
<exclude name="**/*.java" />
</fileset>
</copy>
<copy todir="${wookie.release.dir}/${version}/binary/standalone/${wookie.standalone.folder.name}/">
<fileset dir="etc/release/standalone/" />
</copy>
<copy file="./etc/jetty-realm.properties" tofile="${wookie.release.dir}/${version}/binary/standalone/${wookie.standalone.folder.name}/etc/jetty-realm.properties" />
<copy file="README" tofile="${wookie.release.dir}/${version}/binary/standalone/${wookie.standalone.folder.name}/README" overwrite="yes" />
<copy file="RELEASE_NOTES" tofile="${wookie.release.dir}/${version}/binary/standalone/${wookie.standalone.folder.name}/RELEASE_NOTES" overwrite="yes" />
<copy file="NEW_AND_NOTEWORTHY" tofile="${wookie.release.dir}/${version}/binary/standalone/${wookie.standalone.folder.name}/NEW_AND_NOTEWORTHY" overwrite="yes" />
<!--<copy file="UPGRADING" tofile="${wookie.release.dir}/${version}/binary/standalone/${wookie.standalone.folder.name}/UPGRADING" overwrite="yes" />-->
<copy file="etc/release/standalone/LICENSE" tofile="${wookie.release.dir}/${version}/binary/standalone/${wookie.standalone.folder.name}/LICENSE" overwrite="yes" />
<copy file="etc/release/standalone/NOTICE" tofile="${wookie.release.dir}/${version}/binary/standalone/${wookie.standalone.folder.name}/NOTICE" overwrite="yes" />
<ivy:retrieve conf="runtime"
pattern="${wookie.release.dir}/${version}/binary/standalone/${wookie.standalone.folder.name}/lib/[artifact]-[revision].[ext]" />
<!-- duplicate -->
<delete file="${wookie.release.dir}/${version}/binary/standalone/${wookie.standalone.folder.name}/lib/servlet-api-2.5.jar" />
<!-- run RAT report -->
<rat:report reportFile="${wookie.release.dir}/${version}/binary/standalone/rat-report.txt">
<fileset dir="${wookie.release.dir}/${version}/binary/standalone/${wookie.standalone.folder.name}">
<excludesfile name="./etc/rat-ignore.txt"/>
</fileset>
</rat:report>
<zip destfile="${wookie.release.dir}/${version}/binary/standalone/${wookie.standalone.folder.name}.zip"
basedir="${wookie.release.dir}/${version}/binary/standalone/" includes="${wookie.standalone.folder.name}/"
update="true" />
<tar destfile="${wookie.release.dir}/${version}/binary/standalone/${wookie.standalone.folder.name}.tar.gz"
compression="gzip">
<zipfileset src="${wookie.release.dir}/${version}/binary/standalone/${wookie.standalone.folder.name}.zip" />
</tar>
<delete dir="${wookie.release.dir}/${version}/binary/standalone/${wookie.standalone.folder.name}" />
</target>
<target name="add-extra-files" depends="">
<copy file="etc/release/runsignatures.bat" tofile="${wookie.release.dir}/runsignatures.bat" overwrite="yes" />
</target>
</project>