blob: 6bc4d0b3dae05dda01c938cb56b85276decfff70 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
******************************************************************************
* Copyright (c) 2008, 2010 VMware Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* VMware Inc. - initial contribution
******************************************************************************
-->
<project name="common-common" xmlns:ivy="antlib:org.apache.ivy.ant">
<tstamp>
<format property="timestamp" pattern="yyyyMMddHHmmss" timezone="GMT"/>
</tstamp>
<!-- Properties -->
<dirname property="virgo.build.dir" file="${ant.file.common-common}/.."/>
<property file="${virgo.build.dir}/common/common.properties"/>
<!-- Global tasks -->
<condition property="adjusted.release.type" value="snapshot" else="${release.type}">
<equals arg1="integration" arg2="${release.type}"/>
</condition>
<!-- Main targets -->
<target name="clean" description="Removes the target directory.">
<delete quiet="false" failonerror="false" dir="${target.dir}"/>
</target>
<target name="clean-integration" description="Removes the integration repository directory.">
<fail message="The 'integration.repo.dir' property must be set on this project.">
<condition>
<not>
<isset property="integration.repo.dir"/>
</not>
</condition>
</fail>
<fail message="The 'project.organisation' property must be set on this project.">
<condition>
<not>
<isset property="project.organisation"/>
</not>
</condition>
</fail>
<echo message="Project Integration Repo: ${integration.repo.dir}/${project.organisation}"/>
<delete quiet="false" failonerror="false" dir="${integration.repo.dir}/${project.organisation}"/>
</target>
<target name="clean-all-integration" description="Removes the integration repository directory.">
<fail message="The 'integration.repo.dir' property must be set on this project.">
<condition>
<not>
<isset property="integration.repo.dir"/>
</not>
</condition>
</fail>
<echo message="Integration Repo: ${integration.repo.dir}"/>
<delete quiet="false" failonerror="false" dir="${integration.repo.dir}"/>
</target>
<target name="clean-ivy" description="Removes the ivy cache directory.">
<fail message="The 'ivy.cache.dir' property must be set on this project.">
<condition>
<not>
<isset property="ivy.cache.dir"/>
</not>
</condition>
</fail>
<echo message="Ivy Cache: ${ivy.cache.dir}"/>
<delete quiet="false" failonerror="false" dir="${ivy.cache.dir}"/>
</target>
<target name="resolve" depends="resolve.init" description="Retrieves all external dependencies for this project.">
<ivy:resolve id="all.classpath" log="download-only"/>
</target>
<!-- Other targets -->
<target name="ivy.init" unless="ivy.initialized">
<taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant">
<classpath>
<path location="${ivy.lib.dir}/ivy.jar"/>
<path location="${ivy.lib.dir}/org.springframework.build.aws.ivy.jar"/>
<path location="${ivy.lib.dir}/commons-codec.jar"/>
<path location="${ivy.lib.dir}/commons-httpclient.jar"/>
<path location="${ivy.lib.dir}/commons-logging.jar"/>
<path location="${ivy.lib.dir}/jets3t.jar"/>
<path location="${ivy.lib.dir}/jsch-0.1.42.jar"/>
<path location="${ivy.lib.dir}"/>
</classpath>
</taskdef>
<ivy:settings file="${ivy.settings.file}"/>
<property name="ivy.initialized" value="true"/>
</target>
<target name="resolve.init" depends="ivy.file.exists">
<fail message="Dependency resolution requires an ${ivy.file} file to exist.">
<condition>
<not>
<isset property="ivy.file.exists"/>
</not>
</condition>
</fail>
</target>
<target name="ivy.file.exists" depends="ivy.init">
<condition property="ivy.file.exists">
<available file="${ivy.file}"/>
</condition>
</target>
<target name="resolve.compile" depends="resolve.init">
<ivy:cachepath resolveId="compile.classpath" pathid="compile.classpath" conf="compile,optional,provided,server-provided" type="jar" log="download-only"/>
</target>
<target name="resolve.test" depends="resolve.init, resolve.compile">
<ivy:cachepath resolveId="test.classpath" pathid="test.classpath" conf="test" type="jar" log="download-only"/>
<ivy:cachepath resolveId="runtime.classpath" pathid="runtime.classpath" conf="runtime" type="jar" log="download-only"/>
</target>
<target name="resolve.aspects" depends="resolve.init">
<ivy:cachepath resolveId="aspects.classpath" pathid="aspects.classpath" conf="aspects" type="jar" log="download-only"/>
</target>
<target name="resolve.external" depends="resolve.init">
<ivy:cachepath resolveId="external.classpath" pathid="external.classpath" conf="external" type="jar" transitive="false" log="download-only"/>
<ivy:cachepath resolveId="external.srcpath" pathid="external.srcpath" conf="external" type="src" transitive="false" log="download-only"/>
</target>
<target name="src.init">
<condition property="src.exists">
<resourcecount when="gt" count="0">
<fileset dir="${main.java.dir}" erroronmissingdir="false">
<include name="**/*.java"/>
<include name="*.java"/>
</fileset>
</resourcecount>
</condition>
</target>
<target name="test.init">
<condition property="test.exists">
<resourcecount when="gt" count="0">
<fileset dir="${test.java.dir}" erroronmissingdir="false">
<include name="**/*.java"/>
<include name="*.java"/>
</fileset>
</resourcecount>
</condition>
<!-- init the property containing the ivy-cache and the integration repo location placeholders -->
<delete file="${basedir}/../user-ivy.properties"/>
<condition property="virgo.deps.path" value="${integration.repo.dir}" else="${ivy.cache.dir}/repository">
<equals arg1="${virgo.deps.location}" arg2="integration-repo"/>
</condition>
<echo file="${basedir}/../user-ivy.properties" message="ivy.cache=${ivy.cache.dir}&#xa;integration.repo.dir=${virgo.deps.path}&#xa;"/>
</target>
<target name="diagnostics" description="diagnostics">
<sequential>
<echo>The diagnostics target was explicitly requested...</echo>
<echo>----Ant diagnostics-------------------------------</echo>
<diagnostics/>
<echo>----Properties--Ant-------------------------------</echo>
<echoproperties>
<propertyset>
<propertyref builtin="all"/>
</propertyset>
</echoproperties>
<echo>----Environment-----------------------------------</echo>
<property environment="env"/>
<echoproperties>
<propertyset>
<propertyref prefix="env."/>
</propertyset>
</echoproperties>
<echo>--------------------------------------------------</echo>
<fail message="Diagnostics output -- build aborted."/>
</sequential>
</target>
<target name="exec-ant" description="execute an ant command">
<sequential>
<echo>exec-ant for target '${exec-ant-target}' executing in directory '${basedir}'</echo>
<exec executable="ant" dir="${basedir}"
failonerror="true" osfamily="unix"
resultproperty="exec-ant-rc">
<arg value="${exec-ant-target}"/>
<arg value="-Dci.build=${ci.build}"/>
<arg value="-Dtimestamp=${timestamp}"/>
<arg value="-Dbundle.version=${bundle.version}"/>
<arg value="-Dvirgo.deps.location=${virgo.deps.location}"/>
<arg value="${exec-args}"/>
</exec>
<exec executable="${virgo.build.dir}\common\runant.bat" dir="${basedir}"
failonerror="true" osfamily="windows"
resultproperty="exec-ant-rc">
<arg value="${exec-ant-target}"/>
<arg value="-Dci.build=${ci.build}"/>
<arg value="-Dtimestamp=${timestamp}"/>
<arg value="-Dbundle.version=${bundle.version}"/>
<arg value="-Dvirgo.deps.location=${virgo.deps.location}"/>
<arg value="${exec-args}"/>
</exec>
<echo>exec-ant for target '${exec-ant-target}' gave return code ${exec-ant-rc}</echo>
</sequential>
</target>
<!-- Macros -->
<macrodef name="compile">
<attribute name="classpath.id"/>
<attribute name="input.dir"/>
<attribute name="output.dir"/>
<attribute name="resources.dir"/>
<sequential>
<delete quiet="true" dir="@{output.dir}"/>
<mkdir dir="@{output.dir}"/>
<pre-compile classpath.id="@{classpath.id}" input.dir="@{input.dir}" output.dir="@{output.dir}"
resources.dir="@{resources.dir}"/>
<do-compile classpath.id="@{classpath.id}" input.dir="@{input.dir}" output.dir="@{output.dir}"
resources.dir="@{resources.dir}"/>
<post-compile classpath.id="@{classpath.id}" input.dir="@{input.dir}" output.dir="@{output.dir}"
resources.dir="@{resources.dir}"/>
</sequential>
</macrodef>
<macrodef name="test-compile">
<attribute name="classpath.id"/>
<attribute name="input.dir"/>
<attribute name="output.dir"/>
<attribute name="resources.dir"/>
<sequential>
<delete quiet="true" dir="@{output.dir}"/>
<mkdir dir="@{output.dir}"/>
<test-pre-compile classpath.id="@{classpath.id}" input.dir="@{input.dir}" output.dir="@{output.dir}"
resources.dir="@{resources.dir}"/>
<do-compile classpath.id="@{classpath.id}" input.dir="@{input.dir}" output.dir="@{output.dir}"
resources.dir="@{resources.dir}"/>
<test-post-compile classpath.id="@{classpath.id}" input.dir="@{input.dir}" output.dir="@{output.dir}"
resources.dir="@{resources.dir}"/>
</sequential>
</macrodef>
<macrodef name="pre-compile">
<attribute name="classpath.id"/>
<attribute name="input.dir"/>
<attribute name="output.dir"/>
<attribute name="resources.dir"/>
<sequential/>
</macrodef>
<macrodef name="post-compile">
<attribute name="classpath.id"/>
<attribute name="input.dir"/>
<attribute name="output.dir"/>
<attribute name="resources.dir"/>
<sequential/>
</macrodef>
<macrodef name="test-pre-compile">
<attribute name="classpath.id"/>
<attribute name="input.dir"/>
<attribute name="output.dir"/>
<attribute name="resources.dir"/>
<sequential/>
</macrodef>
<macrodef name="test-post-compile">
<attribute name="classpath.id"/>
<attribute name="input.dir"/>
<attribute name="output.dir"/>
<attribute name="resources.dir"/>
<sequential/>
</macrodef>
<macrodef name="java-doc">
<attribute name="input.dir"/>
<attribute name="output.dir"/>
<attribute name="classpath.id"/>
<attribute name="access"/>
<attribute name="exclude.package.names" default=""/>
<sequential>
<delete quiet="true" dir="@{output.dir}"/>
<mkdir dir="@{output.dir}"/>
<javadoc.links sourcepath="@{input.dir}" destdir="@{output.dir}" classpathref="@{classpath.id}"
access="@{access}" excludepackagenames="@{exclude.package.names}" maxmemory="${javadoc.max.memory}"
stylesheetfile="${javadoc.stylesheet.file}" splitindex="true" useexternalfile="true">
<header><![CDATA[<!-- Begin Google Analytics code --> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> var pageTracker = _gat._getTracker("UA-2728886-3"); pageTracker._setDomainName("none"); pageTracker._setAllowLinker(true); pageTracker._trackPageview(); </script> <!-- End Google Analytics code -->]]></header>
<bottom><![CDATA[<!-- Begin LoopFuse code --> <script src="http://loopfuse.net/webrecorder/js/listen.js" type="text/javascript"> </script> <script type="text/javascript"> _lf_cid = "LF_48be82fa"; _lf_remora(); </script> <!-- End LoopFuse code -->]]></bottom>
</javadoc.links>
<copy toDir="@{output.dir}/resources">
<fileset dir="${javadoc.resources.dir}" erroronmissingdir="false"/>
</copy>
</sequential>
</macrodef>
<presetdef name="javadoc.links">
<javadoc/>
</presetdef>
</project>