| <?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> |