blob: e37e1c69b8f61f15edde209ecce60496f0c71b90 [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 name="pivot" default="environment-info"
xmlns:artifact="antlib:org.apache.maven.artifact.ant"
>
<!-- Classpath-related properties -->
<property environment="env"/>
<path id="classpath.env">
<pathelement location="${env.CLASSPATH}"/>
</path>
<path id="classpath.javalib">
<fileset dir="${java.home}/lib" includes="**/*.jar" excludes="**/jfxrt.jar"/>
</path>
<property name="classpath_env" refid="classpath.env"/>
<property name="classpath_javalib" refid="classpath.javalib"/>
<path id="classpath.general">
<pathelement path="${classpath_env}/"/>
<pathelement path="${classpath_javalib}"/>
</path>
<!-- Properties that affect the directories that are created as part of the build -->
<property name="folder.src" value="src"/>
<property name="folder.bin" value="ant-bin"/>
<property name="folder.dist" value="dist"/>
<property name="folder.doc" value="doc"/>
<property name="folder.install" value="install"/>
<property name="folder.lib" value="lib"/>
<property name="folder.deploy" value="deploy"/>
<!-- Keystore properties -->
<property name="keystore.location" value="etc/pivot.keystore"/>
<property name="keystore.alias" value="pivot"/>
<property name="keystore.passwd" value="apache"/>
<!-- Dynamic properties -->
<property file="build.properties"/>
<property name="release" value="apache-${ant.project.name}-${version}"/>
<!-- Compiler properties and Test properties have been moved in build.properties -->
<!-- Jar file names -->
<property name="jar.charts" value="${ant.project.name}-charts-${version}.jar" />
<property name="jar.core" value="${ant.project.name}-core-${version}.jar" />
<property name="jar.demos" value="${ant.project.name}-demos-${version}.jar" />
<property name="jar.demos-server" value="${ant.project.name}-demos-server-${version}.jar" />
<property name="jar.tutorials" value="${ant.project.name}-tutorials-${version}.jar" />
<property name="jar.tutorials-server" value="${ant.project.name}-tutorials-server-${version}.jar" />
<property name="jar.web" value="${ant.project.name}-web-${version}.jar" />
<property name="jar.web-server" value="${ant.project.name}-web-server-${version}.jar" />
<property name="jar.wtk" value="${ant.project.name}-wtk-${version}.jar" />
<property name="jar.wtk-terra" value="${ant.project.name}-wtk-terra-${version}.jar" />
<property name="jar.tests" value="${ant.project.name}-tests-${version}.jar" />
<!-- Maven Sources Jar file names -->
<property name="jar.charts.sources" value="${ant.project.name}-charts-${version}-sources.jar" />
<property name="jar.core.sources" value="${ant.project.name}-core-${version}-sources.jar" />
<property name="jar.web.sources" value="${ant.project.name}-web-${version}-sources.jar" />
<property name="jar.web-server.sources" value="${ant.project.name}-web-server-${version}-sources.jar" />
<property name="jar.wtk.sources" value="${ant.project.name}-wtk-${version}-sources.jar" />
<property name="jar.wtk-terra.sources" value="${ant.project.name}-wtk-terra-${version}-sources.jar" />
<!-- Maven Javadoc Jar file names -->
<property name="jar.charts.javadoc" value="${ant.project.name}-charts-${version}-javadoc.jar" />
<property name="jar.core.javadoc" value="${ant.project.name}-core-${version}-javadoc.jar" />
<property name="jar.web.javadoc" value="${ant.project.name}-web-${version}-javadoc.jar" />
<property name="jar.web-server.javadoc" value="${ant.project.name}-web-server-${version}-javadoc.jar" />
<property name="jar.wtk.javadoc" value="${ant.project.name}-wtk-${version}-javadoc.jar" />
<property name="jar.wtk-terra.javadoc" value="${ant.project.name}-wtk-terra-${version}-javadoc.jar" />
<!-- Base package, required by Maven Javadoc -->
<property name="src.package.base" value="org.apache.pivot" />
<!-- Ant version check -->
<fail>
<condition>
<not>
<antversion atleast="1.8.0"/>
</not>
</condition>
<![CDATA[
Error:
Building Pivot requires Apache Ant 1.8 or greater. Please see the BUILD
file for more information.
]]>
</fail>
<!-- Compile macro -->
<macrodef name="compile">
<attribute name="project"/>
<element name="project-lib" implicit="true" optional="true"/>
<sequential>
<!-- JDK version check -->
<fail>
<condition>
<not>
<or>
<equals arg1="${ant.java.version}" arg2="1.7"/>
<equals arg1="${ant.java.version}" arg2="1.8"/>
</or>
</not>
</condition>
<![CDATA[
Error:
Building Pivot requires JDK 1.7 or greater. Please see the
BUILD file for more information.
]]>
</fail>
<!-- JUnit check -->
<fail>
<condition>
<not>
<available classname="org.junit.Test">
<classpath refid="classpath.general" />
</available>
</not>
</condition>
<![CDATA[
Error:
JUnit 4 was not found on your classpath. Please see the BUILD
file for more information.
]]>
</fail>
<mkdir dir="@{project}/${folder.bin}"/>
<javac destDir="@{project}/${folder.bin}"
includejavaruntime="no"
includeantruntime="no"
deprecation="${compiler.deprecation}"
debug="${compiler.debug}"
source="${compiler.source}"
target="${compiler.target}"
encoding="${compiler.encoding}"
failonerror="true"
>
<src>
<dirset dir="@{project}">
<include name="src"/>
<include name="test"/>
</dirset>
</src>
<compilerarg line="${compiler.arg}"/>
<classpath>
<path refid="classpath.general"/>
<dirset dir="${basedir}" includes="**/${folder.bin}"/>
<fileset dir="@{project}" includes="lib/**/*.jar"/>
<project-lib/>
</classpath>
</javac>
</sequential>
</macrodef>
<!-- Test macro -->
<macrodef name="test">
<attribute name="project"/>
<sequential>
<echo message="@{project}: Executing test cases..."/>
<condition property="test.formatter">
<istrue value="${test.verbose}"/>
</condition>
<junit fork="true">
<classpath>
<path refid="classpath.general"/>
<dirset dir="${basedir}" includes="**/${folder.bin}"/>
<dirset dir="@{project}" includes="test"/>
<fileset dir="@{project}" includes="lib/**/*.jar"/>
</classpath>
<formatter type="brief" usefile="false" if="test.formatter"/>
<batchtest>
<fileset dir="@{project}/test" includes="**/*Test.java"/>
</batchtest>
</junit>
</sequential>
</macrodef>
<!-- Package macro -->
<macrodef name="package">
<attribute name="project"/>
<attribute name="jarFile"/>
<attribute name="title"/>
<sequential>
<mkdir dir="${folder.lib}"/>
<jar destfile="${folder.lib}/@{jarFile}" index="${compiler.indexJars}">
<metainf dir="${basedir}">
<include name="LICENSE"/>
<include name="NOTICE"/>
<include name="README"/>
</metainf>
<manifest>
<attribute name="Sealed" value="true"/>
<attribute name="Implementation-Vendor-Id" value="org.apache"/>
<attribute name="Implementation-Vendor" value="The Apache Software Foundation"/>
<attribute name="Implementation-Title" value="Apache Pivot @{title}"/>
<attribute name="Implementation-Version" value="${version}"/>
<attribute name="Permissions" value="${permissions}"/>
<attribute name="Codebase" value="*"/>
<attribute name="Caller-Allowable-Codebase" value="*"/>
<attribute name="Application-Library-Allowable-Codebase" value="*"/>
</manifest>
<fileset dir="@{project}/${folder.bin}">
<exclude name="**/test/**"/>
<exclude name="**/*.bxml"/>
<exclude name="**/*.json"/>
<exclude name="**/*.png"/>
</fileset>
<fileset dir="@{project}/src">
<exclude name="**/*.java"/>
<exclude name="**/*.bak"/>
<exclude name="**/package.html"/>
</fileset>
</jar>
</sequential>
</macrodef>
<!-- Package-maven-source-or-javadoc-jar macro -->
<macrodef name="package-maven-source-or-javadoc-jar">
<attribute name="project"/>
<attribute name="jarFile"/>
<attribute name="title"/>
<attribute name="jarFileset"/>
<sequential>
<mkdir dir="${folder.lib}"/>
<jar destfile="${folder.lib}/@{jarFile}" index="${compiler.indexJars}">
<metainf dir="${basedir}">
<include name="LICENSE"/>
<include name="NOTICE"/>
<include name="README"/>
</metainf>
<manifest>
<attribute name="Sealed" value="true"/>
<attribute name="Implementation-Vendor-Id" value="org.apache"/>
<attribute name="Implementation-Vendor" value="The Apache Software Foundation"/>
<attribute name="Implementation-Title" value="Apache Pivot @{title}"/>
<attribute name="Implementation-Version" value="${version}"/>
<attribute name="Permissions" value="${permissions}"/>
<attribute name="Codebase" value="*"/>
<attribute name="Caller-Allowable-Codebase" value="*"/>
<attribute name="Application-Library-Allowable-Codebase" value="*"/>
</manifest>
<fileset dir="@{jarFileset}">
<include name="LICENSE"/>
<include name="NOTICE"/>
<include name="README"/>
<include name="RELEASE-NOTES"/>
<include name="**/*.java"/>
<include name="**/*.html"/>
<include name="**/*.jsp"/>
<include name="**/*.txt"/>
<include name="**/*.properties"/>
<include name="**/*.xml"/>
<include name="**/*.bxml"/>
<include name="**/*.json"/>
<include name="**/*.jpg"/>
<include name="**/*.png"/>
<include name="**/*.svg"/>
<exclude name="**/*.class"/>
</fileset>
</jar>
</sequential>
</macrodef>
<!-- Package-sources macro -->
<macrodef name="package-sources">
<attribute name="project"/>
<attribute name="jarFile"/>
<attribute name="title"/>
<sequential>
<mkdir dir="${folder.lib}"/>
<package-maven-source-or-javadoc-jar
project="@{project}"
jarFile="@{jarFile}"
title="@{title}"
jarFileset="@{project}/src"
/>
</sequential>
</macrodef>
<!-- Package-javadoc macro -->
<macrodef name="package-javadoc">
<attribute name="project"/>
<attribute name="jarFile"/>
<attribute name="title"/>
<attribute name="package"/>
<sequential>
<mkdir dir="${folder.lib}"/>
<delete file="${folder.lib}/@{jarFile}" failonerror="false"/>
<delete dir="${folder.doc}/@{jarFile}" failonerror="false"/>
<javadoc packagenames="@{package}"
destdir="${folder.doc}/@{jarFile}"
author="true" version="true" use="true"
package="true"
classpath="${java.class.path}">
<classpath>
<path refid="classpath.general"/>
<fileset dir="web-server/lib" includes="**/*.jar"/>
<fileset dir="wtk/lib" includes="**/*.jar"/>
<dirset dir="@{project}/../">
<include name="charts/${folder.bin}"/>
<include name="core/${folder.bin}"/>
<include name="web/${folder.bin}"/>
<include name="web-server/${folder.bin}"/>
<include name="wtk/${folder.bin}"/>
<include name="wtk-terra/${folder.bin}"/>
</dirset>
</classpath>
<packageset dir="@{project}/src" includes="**/*"/>
<link href="http://download.oracle.com/javase/7/docs/api"/>
<link href="http://download.oracle.com/javaee/1.4/api/"/>
</javadoc>
<package-maven-source-or-javadoc-jar
project="@{project}"
jarFile="@{jarFile}"
title="@{title}"
jarFileset="${folder.doc}/@{jarFile}"
/>
</sequential>
</macrodef>
<!-- Clean macro -->
<macrodef name="clean">
<attribute name="project"/>
<sequential>
<delete includeemptydirs="true">
<fileset dir="@{project}">
<include name="${folder.bin}/**"/>
<include name="${folder.deploy}/**"/>
</fileset>
<fileset dir="${basedir}">
<include name="${folder.lib}/${ant.project.name}-@{project}-${version}.jar"/>
</fileset>
</delete>
</sequential>
</macrodef>
<!-- Return some environmental info -->
<target name="environment-info" description="Gives some info on Environment and Compiler flags"
depends=""
>
<echo message=""/>
<echo message="Compile environment for ${ant.project.name}-${version} is:"/>
<echo message="show deprecation ${compiler.deprecation}"/>
<echo message="debug ${compiler.debug}"/>
<echo message="source ${compiler.source}, target ${compiler.target}"/>
<echo message="encoding ${compiler.encoding}"/>
<echo message="indexJars ${compiler.indexJars}"/>
<echo message="arg ${compiler.arg}"/>
<echo message=""/>
<echo message="OS: ${os.name}, version ${os.version}, architecture ${os.arch}"/>
<echo message=""/>
<echo message="Java: home at '${java.home}', version ${java.version}, vendor ${java.vendor}"/>
<echo message=""/>
</target>
<!-- Display the classpath -->
<target name="environment-classpath" description="Gives some info on Environment and classpath"
depends="environment-info"
>
<echo message="Classpath from env vars: ${classpath_env}"/>
<echo message="Classpath from Java lib folder: ${classpath_javalib}"/>
</target>
<!-- Compile all classes (not including tests, because they depend on packaged .jar files) -->
<target name="compile" description="Compiles all projects"
depends="environment-info, charts, core, demos, demos-server, tutorials, tutorials-server, web, web-server, wtk, wtk-terra"/>
<!-- Compile all classes (tests included) -->
<target name="compile-tests" description="Compiles tests after compiling everything else"
depends="compile, tests"/>
<!-- Package JAR files -->
<target name="package" description="Packages all projects into JAR files" depends="compile">
<package project="charts" jarFile="${jar.charts}" title="Charts"/>
<package project="core" jarFile="${jar.core}" title="Core"/>
<package project="demos" jarFile="${jar.demos}" title="Demos"/>
<package project="demos-server" jarFile="${jar.demos-server}" title="Demos Server"/>
<package project="tutorials" jarFile="${jar.tutorials}" title="Tutorials"/>
<package project="tutorials-server" jarFile="${jar.tutorials-server}" title="Tutorials Server"/>
<package project="web" jarFile="${jar.web}" title="Web"/>
<package project="web-server" jarFile="${jar.web-server}" title="Web Server"/>
<package project="wtk" jarFile="${jar.wtk}" title="WTK"/>
<package project="wtk-terra" jarFile="${jar.wtk-terra}" title="WTK Terra Theme Provider"/>
</target>
<!-- Package JAR file for tests, note that this could be needed only for interactive GUI Tests -->
<target name="package-tests" description="Packages only tests project into JAR files" depends="compile-tests">
<package project="tests" jarFile="${jar.tests}" title="Tests"/>
</target>
<!-- Package Maven Sources JAR files -->
<target name="package-sources" description="Packages any project sources into a JAR file" depends="trim-whitespace, package">
<package-sources project="charts" jarFile="${jar.charts.sources}" title="Charts"/>
<package-sources project="core" jarFile="${jar.core.sources}" title="Core"/>
<package-sources project="web" jarFile="${jar.web.sources}" title="Web"/>
<package-sources project="web-server" jarFile="${jar.web-server.sources}" title="Web Server"/>
<package-sources project="wtk" jarFile="${jar.wtk.sources}" title="WTK"/>
<package-sources project="wtk-terra" jarFile="${jar.wtk-terra.sources}" title="WTK Terra Theme Provider"/>
</target>
<!-- Package Maven Javadoc JAR files -->
<target name="package-javadoc" description="Packages any project Javadoc into a JAR file" depends="package-sources">
<delete dir="${folder.doc}"/>
<package-javadoc project="charts" jarFile="${jar.charts.javadoc}" title="Charts" package="${src.package.base}.charts.*"/>
<package-javadoc project="core" jarFile="${jar.core.javadoc}" title="Core" package="${src.package.base}.*"/>
<package-javadoc project="web" jarFile="${jar.web.javadoc}" title="Web" package="${src.package.base}.web.*"/>
<package-javadoc project="web-server" jarFile="${jar.web-server.javadoc}" title="Web Server" package="${src.package.base}.web.server.*"/>
<package-javadoc project="wtk" jarFile="${jar.wtk.javadoc}" title="WTK" package="${src.package.base}.wtk.*"/>
<package-javadoc project="wtk-terra" jarFile="${jar.wtk-terra.javadoc}" title="WTK Terra Theme Provider" package="${src.package.base}.wtk.skin.terra.*"/>
<delete dir="${folder.doc}"/>
</target>
<!-- Run unit tests -->
<target name="test" description="Executes unit tests" depends="compile-tests">
<test project="charts"/>
<test project="core"/>
<test project="demos"/>
<test project="demos-server"/>
<test project="tests"/>
<test project="tutorials"/>
<test project="tutorials-server"/>
<test project="web"/>
<test project="web-server"/>
<test project="wtk"/>
<test project="wtk-terra"/>
</target>
<!-- Clean -->
<target name="clean" description="Removes all build artifacts">
<clean project="charts"/>
<clean project="core"/>
<clean project="demos"/>
<clean project="demos-server"/>
<clean project="tests"/>
<clean project="tutorials"/>
<clean project="tutorials-server"/>
<clean project="web"/>
<clean project="web-server"/>
<clean project="wtk"/>
<clean project="wtk-terra"/>
<delete dir="${folder.dist}"/>
<delete dir="${folder.doc}"/>
<delete dir="${folder.install}"/>
<delete dir="${folder.lib}"/>
</target>
<!-- Javadoc -->
<target name="doc" description="Generates API documentation in ${folder.doc}">
<javadoc packagenames="org.apache.pivot.*" destdir="${folder.doc}"
author="true" version="true" use="true"
package="true"
classpath="${java.class.path}">
<classpath>
<path refid="classpath.general"/>
<fileset dir="web-server/lib" includes="**/*.jar"/>
<fileset dir="wtk/lib" includes="**/*.jar"/>
</classpath>
<packageset dir="charts/src" includes="**/*"/>
<packageset dir="core/src" includes="**/*"/>
<packageset dir="web/src" includes="**/*"/>
<packageset dir="web-server/src" includes="**/*"/>
<packageset dir="wtk/src" includes="**/*"/>
<packageset dir="wtk-terra/src" includes="**/*"/>
<link href="http://download.oracle.com/javase/7/docs/api"/>
<link href="http://download.oracle.com/javaee/1.4/api/"/>
</javadoc>
</target>
<!-- Individual compile targets resolve inter-project dependency -->
<target name="charts" depends="core, wtk">
<compile project="charts"/>
</target>
<target name="core">
<compile project="core">
<fileset dir="wtk" includes="lib/**/*.jar"/>
</compile>
</target>
<target name="demos" depends="core, wtk, wtk-terra, web">
<compile project="demos"/>
</target>
<target name="demos-server" depends="core, web, web-server">
<compile project="demos-server">
<fileset dir="web-server" includes="lib/**/*.jar"/>
</compile>
</target>
<target name="tests" depends="core, web, wtk, wtk-terra">
<compile project="tests">
<fileset dir="wtk" includes="lib/**/*.jar"/>
</compile>
<copy todir="tests/${folder.bin}">
<fileset dir="tests/src" includes="**/*.bxml"/>
<fileset dir="tests/src" includes="**/*.json"/>
<fileset dir="tests/src" includes="**/*.png"/>
</copy>
</target>
<target name="tutorials" depends="core, wtk, web">
<compile project="tutorials"/>
<copy todir="tutorials/${folder.bin}">
<fileset dir="tutorials/src" includes="**/*.bxml"/>
<fileset dir="tutorials/src" includes="**/*.json"/>
<fileset dir="tutorials/src" includes="**/*.png"/>
</copy>
</target>
<target name="tutorials-server" depends="core, web, web-server">
<compile project="tutorials-server">
<fileset dir="web-server" includes="lib/**/*.jar"/>
</compile>
</target>
<target name="web" depends="core">
<compile project="web"/>
</target>
<target name="web-server" depends="core, web">
<compile project="web-server"/>
</target>
<target name="wtk" depends="core">
<fail>
<condition>
<not>
<available classname="netscape.javascript.JSObject"
classpathref="classpath.general"/>
</not>
</condition>
<![CDATA[
Error:
LiveConnect was not found on your classpath. Please see the BUILD
file for more information.
]]>
</fail>
<compile project="wtk"/>
</target>
<target name="wtk-terra" depends="core, wtk">
<compile project="wtk-terra">
<fileset dir="wtk" includes="lib/**/*.jar"/>
</compile>
</target>
<!-- Package source distribution -->
<target name="dist" description="Generates source release in ${folder.dist}"
depends="clean, trim-whitespace">
<mkdir dir="${folder.dist}/${release}-src"/>
<!-- Copy the source files to the release folder -->
<copy todir="${folder.dist}/${release}-src">
<fileset dir="${basedir}">
<include name="**/*"/>
<!-- Exclude hidden files and folders -->
<exclude name="**/.*/**"/>
<!-- Exclude folders containing compilation artifacts -->
<exclude name="**/${folder.bin}/**"/>
<exclude name="${folder.dist}/**"/>
<exclude name="${folder.doc}/**"/>
<exclude name="${folder.install}/**"/>
<exclude name="${folder.lib}/**"/>
</fileset>
</copy>
<!-- Create .zip archive -->
<zip destfile="${folder.dist}/${release}-src.zip" level="9">
<fileset dir="${folder.dist}" includes="${release}-src/**"/>
</zip>
<checksum file="${folder.dist}/${release}-src.zip" algorithm="md5"/>
<checksum file="${folder.dist}/${release}-src.zip" algorithm="sha"/>
<!-- Create .tar.gz archive -->
<tar destfile="${folder.dist}/${release}-src.tar" longfile="gnu">
<fileset dir="${folder.dist}" includes="${release}-src/**"/>
</tar>
<gzip src="${folder.dist}/${release}-src.tar"
destfile="${folder.dist}/${release}-src.tar.gz"/>
<delete file="${folder.dist}/${release}-src.tar"/>
<checksum file="${folder.dist}/${release}-src.tar.gz" algorithm="md5"/>
<checksum file="${folder.dist}/${release}-src.tar.gz" algorithm="sha"/>
</target>
<!-- Package binary distribution -->
<target name="install" description="Generates binary release in ${folder.install}"
depends="clean, package, doc, deploy">
<mkdir dir="${folder.install}/${release}/lib"/>
<mkdir dir="${folder.install}/${release}/doc"/>
<mkdir dir="${folder.install}/${release}/webapps"/>
<!-- Copy base files to the install folder -->
<copy todir="${folder.install}/${release}">
<fileset dir="${basedir}">
<include name="LICENSE"/>
<include name="NOTICE"/>
<include name="README"/>
<include name="RELEASE-NOTES"/>
</fileset>
</copy>
<!-- Copy release binaries -->
<copy todir="${folder.install}/${release}/lib">
<fileset dir="${folder.lib}">
<include name="${jar.charts}"/>
<include name="${jar.core}"/>
<include name="${jar.web}"/>
<include name="${jar.web-server}"/>
<include name="${jar.wtk}"/>
<include name="${jar.wtk-terra}"/>
</fileset>
</copy>
<!-- Copy documentation -->
<copy todir="${folder.install}/${release}/doc">
<fileset dir="${folder.doc}"/>
</copy>
<!-- Copy webapps -->
<copy todir="${folder.install}/${release}/webapps">
<fileset dir="${folder.lib}">
<include name="${ant.project.name}-demos.war"/>
<include name="${ant.project.name}-tutorials.war"/>
</fileset>
</copy>
<!-- Create .zip archive -->
<zip destfile="${folder.install}/${release}.zip" level="9">
<fileset dir="${folder.install}" includes="${release}/**"/>
</zip>
<checksum file="${folder.install}/${release}.zip" algorithm="md5"/>
<checksum file="${folder.install}/${release}.zip" algorithm="sha"/>
<!-- Create .tar.gz archive -->
<tar destfile="${folder.install}/${release}.tar" longfile="gnu">
<fileset dir="${folder.install}" includes="${release}/**"/>
</tar>
<gzip src="${folder.install}/${release}.tar" destfile="${folder.install}/${release}.tar.gz"/>
<delete file="${folder.install}/${release}.tar"/>
<checksum file="${folder.install}/${release}.tar.gz" algorithm="md5"/>
<checksum file="${folder.install}/${release}.tar.gz" algorithm="sha"/>
</target>
<!-- Generate deployment files -->
<target name="deploy" depends="package">
<!-- Copy library dependencies lib directory -->
<copy todir="${folder.lib}">
<fileset dir="wtk/lib">
<include name="*.jar"/>
</fileset>
</copy>
<!-- Delete old signed jars and old already deployed jars -->
<delete>
<fileset dir="${folder.lib}" includes="**/*.war"/>
<fileset dir="${folder.lib}" includes="**/*.signed.jar"/>
</delete>
<!-- Sign JARS -->
<mkdir dir="${folder.lib}/signed"/>
<copy todir="${folder.lib}/signed">
<fileset dir="${folder.lib}">
<include name="*.jar"/>
<exclude name="*.signed.jar"/>
</fileset>
</copy>
<signjar keystore="${keystore.location}" storepass="${keystore.passwd}"
alias="${keystore.alias}" preservelastmodified="true" lazy="true">
<path>
<fileset dir="${folder.lib}/signed" includes="*.jar" />
</path>
</signjar>
<copy todir="${folder.lib}">
<fileset dir="${folder.lib}/signed" includes="*.jar" />
<mapper type="glob" from="*.jar" to="*.signed.jar"/>
</copy>
<delete dir="${folder.lib}/signed"/>
<!-- Deploy demos -->
<mkdir dir="demos/${folder.deploy}/lib"/>
<delete>
<fileset dir="demos/${folder.deploy}/lib" includes="**/*.jar"/>
</delete>
<copy todir="demos/${folder.deploy}/lib">
<fileset dir="${folder.lib}">
<include name="*.jar"/>
<exclude name="*-server*.jar"/>
</fileset>
</copy>
<!-- Transform demos index -->
<xslt basedir="demos/www"
destdir="demos/${folder.deploy}"
extension=".html"
force="true"
style="demos/xsl/index.xsl"
includes="index.xml"/>
<!-- Transform demos html -->
<xslt basedir="demos/www"
destdir="demos/${folder.deploy}"
extension=".html"
force="true"
style="demos/xsl/demo.html.xsl"
includes="*.xml"
excludes="index.xml">
<param name="version" expression="${version}"/>
<param name="root" expression="${ant.project.name}-demos"/>
</xslt>
<!-- Transform demos jnlp -->
<xslt basedir="demos/www"
destdir="demos/${folder.deploy}"
extension=".jnlp"
force="true"
style="demos/xsl/demo.jnlp.xsl"
includes="*.xml"
excludes="index.xml">
<param name="version" expression="${version}"/>
<param name="root" expression="${local.server}/${ant.project.name}-demos"/>
</xslt>
<!-- Copy static demo files to deploy folder -->
<copy todir="demos/${folder.deploy}">
<fileset dir="demos/www">
<exclude name="**/*.xml"/>
<exclude name="**/*.template.html"/>
</fileset>
</copy>
<copy todir="demos/${folder.deploy}">
<fileset dir="demos/www">
<include name="*.template.html"/>
</fileset>
<filterset>
<filter token="VERSION" value="${version}"/>
</filterset>
<globmapper from="*.template.html" to="*.html"/>
</copy>
<!-- Generate demos WAR -->
<war destfile="${folder.lib}/${ant.project.name}-demos.war" webxml="demos/web.xml">
<fileset dir="demos/${folder.deploy}"/>
<classes dir="demos-server/${folder.bin}"/>
<classes dir="demos-server/src">
<exclude name="**/*.java"/>
<exclude name="**/*.bak"/>
<exclude name="**/package.html"/>
</classes>
<lib dir="${folder.lib}">
<include name="${jar.core}"/>
<include name="${jar.web}"/>
<include name="${jar.web-server}"/>
</lib>
</war>
<!-- Deploy tutorials -->
<mkdir dir="tutorials/${folder.deploy}/lib"/>
<delete>
<fileset dir="tutorials/${folder.deploy}/lib" includes="**/*.jar"/>
</delete>
<copy todir="tutorials/${folder.deploy}/lib">
<fileset dir="${folder.lib}">
<include name="*.jar"/>
<exclude name="*-demos*.jar"/>
<exclude name="*-server*.jar"/>
</fileset>
</copy>
<!-- Transform tutorials index -->
<xslt basedir="tutorials/www"
destdir="tutorials/${folder.deploy}"
extension=".html"
force="true"
style="tutorials/xsl/index.xsl"
includes="index.xml"/>
<!-- Transform tutorials html -->
<xslt basedir="tutorials/www"
destdir="tutorials/${folder.deploy}"
extension=".html"
force="true"
style="tutorials/xsl/tutorial.xsl"
includes="*.xml"
excludes="index.xml">
<param name="version" expression="${version}"/>
</xslt>
<!-- Copy static tutorial files to deploy folder -->
<copy todir="tutorials/${folder.deploy}">
<fileset dir="tutorials/www">
<exclude name="**/*.xml"/>
<exclude name="**/*.template.html"/>
</fileset>
</copy>
<copy todir="tutorials/${folder.deploy}">
<fileset dir="tutorials/www">
<include name="*.template.html"/>
</fileset>
<filterset>
<filter token="VERSION" value="${version}"/>
</filterset>
<globmapper from="*.template.html" to="*.html"/>
</copy>
<!-- Generate tutorials WAR -->
<war destfile="${folder.lib}/${ant.project.name}-tutorials.war" webxml="tutorials/web.xml">
<fileset dir="tutorials/${folder.deploy}"/>
<classes dir="tutorials-server/${folder.bin}"/>
<classes dir="tutorials-server/src">
<exclude name="**/*.java"/>
<exclude name="**/*.bak"/>
<exclude name="**/package.html"/>
</classes>
<lib dir="${folder.lib}">
<include name="${jar.core}"/>
<include name="${jar.web}"/>
<include name="${jar.web-server}"/>
</lib>
</war>
</target>
<!-- Installs JARs to local Maven repository -->
<target name="maven-install" depends="clean, package, package-sources, package-javadoc">
<mkdir dir="maven-install"/>
<copy todir="maven-install">
<fileset dir=".">
<include name="**/pom.xml"/>
</fileset>
<filterset>
<filter token="VERSION" value="${version}"/>
</filterset>
</copy>
<artifact:install file="maven-install/pom.xml">
<artifact:pom file="maven-install/pom.xml"/>
</artifact:install>
<artifact:install file="lib/${jar.core}">
<artifact:pom file="maven-install/core/pom.xml"/>
<attach file="lib/${jar.core.sources}" classifier="sources" />
<attach file="lib/${jar.core.javadoc}" classifier="javadoc" />
</artifact:install>
<artifact:install file="lib/${jar.web}">
<artifact:pom file="maven-install/web/pom.xml"/>
<attach file="lib/${jar.web.sources}" classifier="sources" />
<attach file="lib/${jar.web.javadoc}" classifier="javadoc" />
</artifact:install>
<artifact:install file="lib/${jar.web-server}">
<artifact:pom file="maven-install/web-server/pom.xml"/>
<attach file="lib/${jar.web-server.sources}" classifier="sources" />
<attach file="lib/${jar.web-server.javadoc}" classifier="javadoc" />
</artifact:install>
<artifact:install file="lib/${jar.wtk}">
<artifact:pom file="maven-install/wtk/pom.xml"/>
<attach file="lib/${jar.wtk.sources}" classifier="sources" />
<attach file="lib/${jar.wtk.javadoc}" classifier="javadoc" />
</artifact:install>
<artifact:install file="lib/${jar.wtk-terra}">
<artifact:pom file="maven-install/wtk-terra/pom.xml"/>
<attach file="lib/${jar.wtk-terra.sources}" classifier="sources" />
<attach file="lib/${jar.wtk-terra.javadoc}" classifier="javadoc" />
</artifact:install>
<artifact:install file="lib/${jar.charts}">
<artifact:pom file="maven-install/charts/pom.xml"/>
<attach file="lib/${jar.charts.sources}" classifier="sources" />
<attach file="lib/${jar.charts.javadoc}" classifier="javadoc" />
</artifact:install>
<delete dir="maven-install"/>
</target>
<!-- Remove trailing white space in all source files -->
<target name="trim-whitespace" depends="environment-info">
<fileset id="trimfiles" dir=".">
<include name="BUILD"/>
<include name="LICENSE"/>
<include name="NOTICE"/>
<include name="README"/>
<include name="RELEASE-NOTES"/>
<include name="**/*.java"/>
<include name="**/*.html"/>
<include name="**/*.jsp"/>
<include name="**/*.txt"/>
<include name="**/*.properties"/>
<include name="**/*.xml"/>
<include name="**/*.bxml"/>
<include name="**/*.json"/>
<include name="**/*.groovy"/>
<include name="**/*.scala"/>
</fileset>
<replaceregexp match="[\t]" replace=" " flags="gm" byline="true">
<fileset refid="trimfiles"/>
</replaceregexp>
<replaceregexp match="[\t ]+$" replace="" flags="gm" byline="true">
<fileset refid="trimfiles"/>
</replaceregexp>
</target>
</project>