From 5f2bea4576ac094aa5358e3782b35021cab91d5d Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Thu, 01 Mar 2007 03:53:12 +0000
Subject: [PATCH] Add the svn:eol-style property to a file that was missing it.
---
opends/tests/functional-tests/staf-installer.xml | 1214 ++++++++++++++++++++++++++++----------------------------
1 files changed, 607 insertions(+), 607 deletions(-)
diff --git a/opends/tests/functional-tests/staf-installer.xml b/opends/tests/functional-tests/staf-installer.xml
index 89e7bf4..2a59bcf 100644
--- a/opends/tests/functional-tests/staf-installer.xml
+++ b/opends/tests/functional-tests/staf-installer.xml
@@ -1,607 +1,607 @@
-<!--
- ! CDDL HEADER START
- !
- ! The contents of this file are subject to the terms of the
- ! Common Development and Distribution License, Version 1.0 only
- ! (the "License"). You may not use this file except in compliance
- ! with the License.
- !
- ! You can obtain a copy of the license at
- ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
- ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
- ! See the License for the specific language governing permissions
- ! and limitations under the License.
- !
- ! When distributing Covered Code, include this CDDL HEADER in each
- ! file and include the License file at
- ! trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
- ! add the following below this CDDL HEADER, with the fields enclosed
- ! by brackets "[]" replaced with your own identifying * information:
- ! Portions Copyright [yyyy] [name of copyright owner]
- !
- ! CDDL HEADER END
- !
- !
- ! Portions Copyright 2007 Sun Microsystems, Inc.
- ! -->
-
-<project name="opends-staf-installer" basedir="." default="usage">
- <description>
- Installer ant file for the staf platform
- This allows tests that need a running instance of staf to easily
- get one and hides all the complexity under the hood
- </description>
-
- <!-- installer wide settings - top -->
- <property file="../../PRODUCT"/>
- <property name="product.name"
- value="${SHORT_NAME}-${MAJOR_VERSION}.${MINOR_VERSION}" />
- <!-- this is the file where the default values are defined -->
- <property file="staf-installer/staf-installer.properties" />
-
- <!-- Define the os name in case we're on windows
- why do this ?
- the jvm returns different strings for os.name on different flavors
- of windows ('Windows 2000', 'Windows 2003', 'Windows XP', ...)
- -->
- <condition property="os.myname" value="windows" else="${os.name}">
- <os family="windows"/>
- </condition>
-
- <!-- Check if the current platform is supported -->
- <condition property="platform.supported">
- <available file="staf-installer/${os.myname}.properties"/>
- </condition>
-
- <!-- Load architecture specific properties
- loading this one first allows to override common properties with platform
- specific properties
- -->
- <property file="staf-installer/${os.myname}-${os.arch}-${sun.arch.data.model}.properties" />
- <property file="staf-installer/${os.myname}-${os.arch}.properties" />
-
- <!-- Load properties common to the OS regardless of architecture -->
- <property file="staf-installer/${os.myname}.properties" />
-
- <!-- Daily build properties -->
- <tstamp>
- <format property="todays.date" pattern="yyyyMMdd"/>
- </tstamp>
- <tstamp>
- <format property="yesterdays.date" pattern="yyyyMMdd" offset="-24" unit="hour"/>
- </tstamp>
- <condition property="daily.date" value="${todays.date}" else="${yesterdays.date}">
- <http url="${daily.build.url}/${todays.date}${daily.build.time}/${SHORT_NAME}/build/package/${product.name}.zip"/>
- </condition>
- <property name="daily.package.dir"
- value="${staf.home}/daily-builds/${daily.date}"/>
- <property name="daily.package"
- value="${daily.package.dir}/${product.name}.zip"/>
- <property name="daily.package.url"
- value="${daily.build.url}/${daily.date}${daily.build.time}/${SHORT_NAME}/build/package/${product.name}.zip"/>
-
- <!-- installer wide settings - bottom -->
-
-<!-- Usage section - top -->
- <!-- Default target => how to use this file -->
- <target name="usage"
- description="Gives a message that helps using this file">
- <echo>Installer usage:
- main targets=
- usage : print this message
- status : report if the staf is installed and running
- bootstrap : install and start the staf
- run-tests : run the functional tests (requires staf installed and started)
- run-daily : run the functional tests on today's build
- wipeout : stop and uninstall the staf
- subtargets=
- download : download the archives necessary to install the staf
- install : install the staf
- start : start the staf unless it is already running
- stop : stop the staf if it is already running
- uninstall : uninstall the staf if it is installed</echo>
- </target>
-<!-- Usage section - bottom -->
-
-<!-- Downloader section - top -->
- <target name="download-do-prepare-check-proxy">
- <echo>Checking for proxy [${proxy.host}:${proxy.port}] as user [${proxy.user}].</echo>
- <echo>Note: If these values do not match your environment, </echo>
- <echo> please edit the following config file:</echo>
- <echo> [${basedir}${file.separator}staf-installer${file.separator}staf-installer.properties]</echo>
- <condition property="proxy.enabled">
- <and>
- <not>
- <http url="${bits.download.url}"/>
- </not>
- <isreachable host="${proxy.host}" timeout="5"/>
- </and>
- </condition>
- </target>
- <target name="download-do-prepare-set-proxy" if="proxy.enabled" >
- <echo>Proxy detected. Configuring.</echo>
- <setproxy
- proxyhost="${proxy.host}"
- proxyport="${proxy.port}"
- proxyuser="${proxy.user}"
- proxypassword="${proxy.pass}"/>
- </target>
- <target
- name="download-do-prepare"
- depends="download-do-prepare-check-proxy,download-do-prepare-set-proxy">
- <mkdir dir="${bits.download.dir}" />
- </target>
- <target name="download-do-failed" unless="bits.all.downloaded" >
- <echo>Couldn't get the bits, sorry.</echo>
- </target>
- <target name="download-do-succeeded" if="bits.all.downloaded" >
- <echo>Successfully downloaded all the archives needed for installation.</echo>
- </target>
-
- <target name="download-do-get-staf" unless="bits.staf.downloaded.before">
- <get src="${bits.download.url}/${bits.staf.archive}"
- dest="${bits.download.dir}/${bits.staf.archive}" />
- <property name="bits.staf.downloaded" value="true"/>
- </target>
-
- <target name="download-do-get-stax" unless="bits.stax.downloaded.before">
- <get src="${bits.download.url}/${bits.stax.archive}"
- dest="${bits.download.dir}/${bits.stax.archive}" />
- <property name="bits.stax.downloaded" value="true" />
- </target>
-
- <target name="download-do"
- if="platform.supported"
- depends="status-do,download-do-prepare,download-do-get-staf,download-do-get-stax">
- <condition property="bits.all.downloaded" >
- <and>
- <or>
- <isset property="bits.staf.downloaded"/>
- <isset property="bits.staf.downloaded.before" />
- </or>
- <or>
- <isset property="bits.stax.downloaded"/>
- <isset property="bits.stax.downloaded.before" />
- </or>
- </and>
- </condition>
- <antcall target="download-do-succeeded" />
- <antcall target="download-do-failed" />
- </target>
-
- <target name="download-dont" unless="platform.supported">
- <echo>${os.myname}-${os.arch} is not a supported platform</echo>
- </target>
-
- <target name="download"
- depends="status-do,download-do,download-dont"
- description="Download the bits necessary to install staf"/>
-
- <target name="download-daily" depends="status-do,download-do-prepare" unless="daily.package.downloaded">
- <mkdir dir="${daily.package.dir}"/>
- <get src="${daily.package.url}"
- dest="${daily.package}"/>
- </target>
-
- <!-- Downloader section - bottom -->
-
-<!-- Installation section - top -->
- <target name="install-config" if="staf.install.successful">
- <copy file="${staf.config.stubs}" tofile="${staf.config}">
- <filterchain>
- <expandproperties/>
- </filterchain>
- </copy>
- </target>
-
- <target name="install-stax" if="staf.install.successful">
- <unzip
- src="${bits.download.dir}/${bits.stax.archive}"
- dest="${staf.install.dir}/services"/>
- </target>
-
- <target name="install-staf-jar"
- description="deploy the staf bits"
- if="staf.archive.is.jar">
- <echo message="Installing staf, please wait, it'll take some time..." />
- <java jar="${bits.download.dir}/${bits.staf.archive}" fork="true">
- <arg value="-silent" />
- <arg line="-W license.selection="Accept"" />
- <arg line="-W stafinstalldirectory.defaultInstallLocation="${staf.install.dir}""/>
- </java>
- <condition property="staf.install.successful">
- <available file="${staf.install.dir}/bin/STAF.cfg"/>
- </condition>
- </target>
-
- <target name="install-staf-tar" if="staf.archive.is.tar">
- <gunzip
- src="${bits.download.dir}/${bits.staf.archive}"
- dest="${bits.download.dir}"/>
- <untar dest="${bits.download.dir}">
- <fileset dir="${bits.download.dir}">
- <include name="*.tar"/>
- </fileset>
- </untar>
- <exec executable="${bits.download.dir}/staf/STAFInst">
- <arg value="-source"/>
- <arg value="${bits.download.dir}/staf"/>
- <arg value="-target"/>
- <arg value="${staf.install.dir}"/>
- <arg value="-acceptlicense"/>
- </exec>
- <condition property="staf.install.successful">
- <available file="${staf.install.dir}/bin/STAF.cfg"/>
- </condition>
- </target>
-
- <target name="install-staf"
- depends="install-staf-jar,install-staf-tar">
- <fail unless="staf.install.successful" />
- </target>
-
- <target name="install-prepare" >
- <mkdir dir="${staf.install.dir}"/>
- <mkdir dir="${staf.install.dir}/services"/>
- <mkdir dir="${staf.config.dir}"/>
- </target>
-
- <target name="install"
- description="Perform framework installation"
- depends="status-do,install-prepare,install-staf,install-stax,install-config"
- if="bits.all.downloaded"/>
-<!-- Installation section - bottom -->
-
-<!-- Gui section - top -->
- <target name="gui"
- description="brings up the stax gui" >
- <java classname="com.ibm.staf.service.stax.STAXMonitor"
- classpath="${staf.install.dir}/services/stax/STAXMon.jar${path.separator}${staf.install.dir}/bin/JSTAF.jar"
- fork="true"
- spawn="true"/>
- </target>
-<!-- Gui section - bottom -->
-
-<!-- Run tests section - top -->
-
- <target name="get-pkg">
- <condition property="product.package.dir"
- value="${daily.package.dir}"
- else="${project.home}/build/package">
- <isset property="tests.run.daily"/>
- </condition>
- <property name="product.package"
- value="${product.package.dir}/${product.name}.zip"/>
- </target>
-
- <target name="run-tests-prepare"
- depends="status-do,get-pkg"
- if="staf.running">
- <condition property="staf.lib.dir"
- value="${staf.install.dir}${file.separator}bin"
- else="${staf.install.dir}${file.separator}lib">
- <os family="windows"/>
- </condition>
- <!-- python config - top -->
- <!-- 1. get a timestamp for step 3 -->
- <tstamp>
- <format property="tests.run.time" pattern="yyyy.MM.dd-HH.mm.ss"/>
- </tstamp>
- <!-- make all the necessary directories for this test run -->
- <mkdir dir="${staf.tmp.dir}"/>
- <mkdir dir="${tests.run.dir}/${tests.run.time}"/>
- <mkdir dir="${tests.run.dir}/${tests.run.time}/config"/>
- <mkdir dir="${tests.run.dir}/${tests.run.time}/report"/>
- <!-- these will serve for after-the-fact archiving the logs -->
- <mkdir dir="${tests.run.dir}/${tests.run.time}/staf-logs"/>
- <mkdir dir="${tests.run.dir}/${tests.run.time}/server-logs"/>
- <mkdir dir="${tests.run.dir}/${tests.run.time}/coverage"/>
-
- <!-- 3. perform the config back up if necessary -->
- <copy file="${tests.config}"
- tofile="${tests.config.backup}"
- overwrite="false"/>
- <!-- 4. generate the timestamped config file that will be used for this run -->
- <copy file="${tests.config.stubs}"
- tofile="${tests.run.dir}/${tests.run.time}/config/${tests.config.file}">
- <filterchain>
- <expandproperties/>
- </filterchain>
- </copy>
- <!-- 5. this is a windows-specific measure to replace the windows file
- separator by a forward slash. Staf otherwise fails to find the
- files.
- -->
- <replace file="${tests.run.dir}/${tests.run.time}/config/${tests.config.file}" token="\" value="/"/>
- <!-- 6. copy the generated config in place of the previous one -->
- <copy file="${tests.run.dir}/${tests.run.time}/config/${tests.config.file}"
- tofile="${tests.config}"
- overwrite="true"/>
- <!-- python config - bottom -->
- </target>
-
- <target name="run-tests"
- depends="status-do,run-tests-prepare"
- if="staf.running">
- <property name="tests.request" value="EXECUTE FILE ${tests.xml} JOBNAME OpenDS_Functional_Tests SCRIPTFILE ${tests.config} SCRIPTFILE ${tests.python} WAIT CLEARLOGS"/>
- <condition property="tests.replay.script" value="replay.bat" else="replay.sh">
- <os family="windows"/>
- </condition>
- <echo>Generating replay script to allow you to re-execute the tests in the same conditions</echo>
- <copy file="${staf.installer.dir}${file.separator}${tests.replay.script}"
- tofile="${tests.run.dir}${file.separator}${tests.run.time}${file.separator}${tests.replay.script}">
- <filterchain>
- <expandproperties/>
- </filterchain>
- </copy>
- <echo>Running tests. This will take more than a while.</echo>
- <property name="CLASSPATH" value="${staf.lib.dir}/JSTAF.jar${path.separator}${e.CLASSPATH}"/>
- <exec
- dir="${staf.bin.dir}"
- executable="${staf.executable}"
- >
- <arg line="LOCAL STAX ${tests.request}"/>
- <env key="CLASSPATH" path="${staf.lib.dir}/JSTAF.jar${path.separator}${e.CLASSPATH}"/>
- <env key="STAFCONVDIR" value="${staf.install.dir}/codepage"/>
- <env key="STAFCODEPAGE" value="LATIN_1"/>
- </exec>
- <!-- restore the original config file to avoid it to be mistakenly commited
- with the generated values -->
- <delete file="${tests.config}"/>
- <move file="${tests.config.backup}"
- tofile="${tests.config}"/>
- <echo file="${tests.run.dir}/last.run">${tests.run.time}</echo>
- <echo>Saving server logs</echo>
- <copy todir="${tests.run.dir}/${tests.run.time}/server-logs">
- <fileset dir="${staf.tmp.dir}/${product.name}/logs"/>
- </copy>
- <echo>Saving Staf/Stax logs</echo>
- <copy todir="${tests.run.dir}/${tests.run.time}/staf-logs">
- <fileset dir="${staf.home}/logs"/>
- </copy>
- <delete dir="${staf.home}/logs" />
- <echo>Saving report</echo>
- <copy todir="${tests.run.dir}/${tests.run.time}/report">
- <fileset dir="${staf.tmp.dir}">
- <include name="r*"/>
- </fileset>
- </copy>
- </target>
-
- <target name="daily">
- <property name="tests.run.daily" value="true"/>
- </target>
-
- <target name="run-daily" depends="status-do,daily,download-daily,coverage-instrument,run-tests"/>
-
- <target name="coverage-on">
- <property name="coverage.on" value="true"/>
- </target>
-
- <target name="coverage-instrument" depends="status-do,get-pkg" if="coverage.on">
- <mkdir dir="${staf.tmp.dir}/coverage-instr"/>
- <unzip src="${product.package}"
- dest="${staf.tmp.dir}/coverage-instr"/>
- <move file="${product.package}" tofile="${product.package}.nocov"/>
- <replace file="${staf.tmp.dir}/coverage-instr/${product.name}/bin/start-ds.bat"
- token="start "OpenDS %DIR_HOME%" /B "%JAVA_BIN%""
- value="start "OpenDS %DIR_HOME%" /B "%JAVA_BIN%" -cp "${project.home}${file.separator}ext${file.separator}emma${file.separator}lib${file.separator}emma.jar" emmarun -cp "%CLASSPATH%" -sp "${project.home}${file.separator}src${file.separator}server" -ix org.opends.server.* -r html"/>
- <zip basedir="${staf.tmp.dir}/coverage-instr" destfile="${product.package}"/>
- <delete dir="${staf.tmp.dir}/coverage-instr"/>
- </target>
- <target name="restore-pkg" if="coverage-on">
- <delete file="${product.package}"/>
- <move file="${product.package}.nocov" tofile="${product.package}"/>
- </target>
- <target name="daily-coverage" depends="coverage-on,run-daily,restore-pkg"/>
-
- <target name="testwithcoverage" depends="coverage-on,coverage-instrument,run-tests,restore-pkg"/>
-<!-- Run tests section - bottom -->
-
-<!-- Uninstallation section - top -->
- <target name="uninstall-do"
- description="Uninstall the staf"
- if="staf.installed" >
- <echo message="Uninstalling staf, please wait..." />
- <java jar="${staf.install.dir}/_uninst/uninstall.jar" fork="true">
- <arg value="-silent" />
- </java>
- <sleep seconds="5" />
- <delete dir="${staf.install.dir}" />
- </target>
-
-
- <target name="uninstall-dont-not-installed" unless="staf.installed">
- <echo>Staf is not installed.</echo>
- </target>
- <target name="uninstall-dont-running" if="staf.running">
- <echo>Staf is running. Stop staf before uninstalling.</echo>
- <echo>Use either the 'stop' or the 'wipeout' target.</echo>
- </target>
- <target
- name="uninstall-dont"
- depends="uninstall-dont-running,uninstall-dont-not-installed" />
-
- <target name="uninstall" depends="status-do,uninstall-do,uninstall-dont">
- </target>
-<!-- Uninstallation section - bottom -->
-
-<!-- Start section - top -->
- <target name="start-do"
- description="start the staf"
- if="staf.installed"
- unless="staf.running" >
- <echo message="Starting staf daemon ... on ${os.myname}" />
- <exec
- dir="${staf.bin.dir}"
- executable="${staf.daemon}"
- spawn="true">
- <arg value="${staf.config}"/>
- <env key="${path.var}" path="${java.home}${file.separator}bin${path.separator}${staf.install.dir}${file.separator}bin${path.separator}${path.current}"/>
- <env key="LD_LIBRARY_PATH" path="${staf.install.dir}/lib"/>
- <env key="CLASSPATH" path="${staf.install.dir}/bin/JSTAF.jar${path.separator}${e.CLASSPATH}"/>
- <env key="STAFCONVDIR" value="${staf.install.dir}/codepage"/>
- <env key="STAFCODEPAGE" value="LATIN_1"/>
- <env key="STAF_INSTANCE_NAME" value="STAF"/>
- </exec>
- </target>
- <target name="start-dont" if="staf.running">
- <echo>Staf is already running.</echo>
- </target>
- <target name="start" depends="status-do">
- <antcall target="start-do"/>
- <antcall target="start-dont"/>
- </target>
-<!-- Start section - bottom -->
-
-<!-- Stop section - top -->
- <target name="stop-do" if="staf.running">
- <echo>Stopping staf...</echo>
- <exec
- executable="${staf.executable}"
- spawn="true" >
- <arg line="local shutdown shutdown"/>
- </exec>
- <echo>staf has been instructed to close the shop.</echo>
- <echo>Please allow some time as staf wipes the plate clean</echo>
- </target>
- <target name="stop-dont" unless="staf.running">
- <echo>Staf is not running.</echo>
- </target>
- <target name="stop" depends="status-do">
- <antcall target="stop-do"/>
- <antcall target="stop-dont"/>
- </target>
-<!-- Stop section - bottom -->
-
-<!-- Status section - top -->
- <!-- Bits status section - top -->
- <target name="status-archive-downloaded?" if="bits.all.downloaded.before">
- <echo>Staf bits are ready to be installed. Use 'install' target.</echo>
- </target>
- <target name="status-archive-not-downloaded?" unless="bits.all.downloaded.before">
- <echo>No staf bits found. Use the get-bits or bootstrap target.</echo>
- </target>
- <!-- Bits status section - bottom -->
-
- <!-- Installation status section - top -->
- <target name="status-staf-installed?" if="staf.installed">
- <echo>Found staf installed in [${staf.install.dir}]</echo>
- <antcall target="status-staf-running?" />
- <antcall target="status-staf-not-running?" />
- </target>
- <target name="status-staf-not-installed?" unless="staf.installed">
- <echo>Could not find staf installation.</echo>
- <echo>Checking if the bits here and ready for installation...</echo>
- <antcall target="status-archive-downloaded?" />
- <antcall target="status-archive-not-downloaded?" />
- </target>
- <!-- Installation status section - bottom -->
-
- <!-- Running status section - top -->
- <target name="status-staf-running?" if="staf.running">
- <echo>staf is listening on port [${staf.port.default}]</echo>
- <echo>You're all set to run the functional tests.</echo>
- </target>
- <target name="status-staf-not-running?" unless="staf.running">
- <echo>staf is NOT running. Use the 'start' target.</echo>
- </target>
- <!-- Running status section - bottom -->
-
-
- <!-- Get status section - top -->
- <target name="status-do" unless="status-do.already.run" >
- <!-- check if the various archives needed have already been downloaded -->
- <condition property="bits.staf.downloaded.before">
- <available file="${bits.download.dir}/${bits.staf.archive}"/>
- </condition>
- <condition property="bits.stax.downloaded.before" >
- <available file="${bits.download.dir}/${bits.stax.archive}" />
- </condition>
- <condition property="bits.all.downloaded.before">
- <and>
- <isset property="bits.staf.downloaded.before"/>
- <isset property="bits.stax.downloaded.before"/>
- </and>
- </condition>
- <available file="${daily.package}" property="daily.package.downloaded"/>
-
- <available file="${staf.install.dir}"
- type="dir"
- property="staf.installed" />
-
- <condition property="staf.running">
- <socket port="${staf.port}" server="${host.name}"/>
- </condition>
-
- <condition property="staf.archive.is.jar">
- <contains string="${bits.staf.archive}" substring=".jar"/>
- </condition>
- <condition property="staf.archive.is.tar">
- <not>
- <contains string="${bits.staf.archive}" substring=".jar"/>
- </not>
- </condition>
- <condition property="binary.extension" value=".exe" else="">
- <os family="windows"/>
- </condition>
- <condition property="script.extension" value=".bat" else="">
- <os family="windows"/>
- </condition>
-
- <condition property="path.var" value="Path" else="PATH">
- <os family="windows"/>
- </condition>
- <macrodef name="propertycopy">
- <attribute name="name"/>
- <attribute name="from"/>
- <sequential>
- <property name="@{name}" value="${@{from}}"/>
- </sequential>
- </macrodef>
- <property environment="e"/>
- <propertycopy name="path.current" from="e.${path.var}"/>
-
- <property name="staf.executable"
- value="${staf.bin.dir}${file.separator}STAF${binary.extension}"/>
- <property name="staf.daemon"
- value="${staf.bin.dir}${file.separator}STAFProc${binary.extension}"/>
-
- <property name="status-do.already.run" value="true"/>
- </target>
- <!-- Get status section - bottom -->
-
- <!-- Status cli section - top -->
- <target name="status" depends="status-do">
- <condition property="is.platform.supported" value="yes" else="no" >
- <isset property="platform.supported"/>
- </condition>
- <echo>Operating System Family - ${os.myname}</echo>
- <echo>Operating System Name - ${os.name}</echo>
- <echo>Operating System Version - ${os.version}</echo>
- <echo>Machine Architecture - ${os.arch}</echo>
- <echo>Platform Supported - ${is.platform.supported}</echo>
- <echo>Java Home - ${java.home}</echo>
- <echo>Java Version - ${java.version}</echo>
- <echo>PATH - ${path.current}</echo>
- <echo>CLASSPATH - ${e.CLASSPATH}</echo>
- <antcall target="status-staf-installed?" />
- <antcall target="status-staf-not-installed?" />
- </target>
- <!-- Status cli section - bottom -->
-<!-- Status section - bottom -->
-
-<!-- Macros section - top -->
- <target name="bootstrap">
- <antcall target="download" />
- <antcall target="install" />
- <antcall target="start" />
- </target>
-
- <target name="wipeout">
- <antcall target="stop"/>
- <sleep seconds="10"/>
- <antcall target="uninstall"/>
- </target>
-<!-- Macros section - bottom -->
-</project>
+<!--
+ ! CDDL HEADER START
+ !
+ ! The contents of this file are subject to the terms of the
+ ! Common Development and Distribution License, Version 1.0 only
+ ! (the "License"). You may not use this file except in compliance
+ ! with the License.
+ !
+ ! You can obtain a copy of the license at
+ ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ ! See the License for the specific language governing permissions
+ ! and limitations under the License.
+ !
+ ! When distributing Covered Code, include this CDDL HEADER in each
+ ! file and include the License file at
+ ! trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+ ! add the following below this CDDL HEADER, with the fields enclosed
+ ! by brackets "[]" replaced with your own identifying * information:
+ ! Portions Copyright [yyyy] [name of copyright owner]
+ !
+ ! CDDL HEADER END
+ !
+ !
+ ! Portions Copyright 2007 Sun Microsystems, Inc.
+ ! -->
+
+<project name="opends-staf-installer" basedir="." default="usage">
+ <description>
+ Installer ant file for the staf platform
+ This allows tests that need a running instance of staf to easily
+ get one and hides all the complexity under the hood
+ </description>
+
+ <!-- installer wide settings - top -->
+ <property file="../../PRODUCT"/>
+ <property name="product.name"
+ value="${SHORT_NAME}-${MAJOR_VERSION}.${MINOR_VERSION}" />
+ <!-- this is the file where the default values are defined -->
+ <property file="staf-installer/staf-installer.properties" />
+
+ <!-- Define the os name in case we're on windows
+ why do this ?
+ the jvm returns different strings for os.name on different flavors
+ of windows ('Windows 2000', 'Windows 2003', 'Windows XP', ...)
+ -->
+ <condition property="os.myname" value="windows" else="${os.name}">
+ <os family="windows"/>
+ </condition>
+
+ <!-- Check if the current platform is supported -->
+ <condition property="platform.supported">
+ <available file="staf-installer/${os.myname}.properties"/>
+ </condition>
+
+ <!-- Load architecture specific properties
+ loading this one first allows to override common properties with platform
+ specific properties
+ -->
+ <property file="staf-installer/${os.myname}-${os.arch}-${sun.arch.data.model}.properties" />
+ <property file="staf-installer/${os.myname}-${os.arch}.properties" />
+
+ <!-- Load properties common to the OS regardless of architecture -->
+ <property file="staf-installer/${os.myname}.properties" />
+
+ <!-- Daily build properties -->
+ <tstamp>
+ <format property="todays.date" pattern="yyyyMMdd"/>
+ </tstamp>
+ <tstamp>
+ <format property="yesterdays.date" pattern="yyyyMMdd" offset="-24" unit="hour"/>
+ </tstamp>
+ <condition property="daily.date" value="${todays.date}" else="${yesterdays.date}">
+ <http url="${daily.build.url}/${todays.date}${daily.build.time}/${SHORT_NAME}/build/package/${product.name}.zip"/>
+ </condition>
+ <property name="daily.package.dir"
+ value="${staf.home}/daily-builds/${daily.date}"/>
+ <property name="daily.package"
+ value="${daily.package.dir}/${product.name}.zip"/>
+ <property name="daily.package.url"
+ value="${daily.build.url}/${daily.date}${daily.build.time}/${SHORT_NAME}/build/package/${product.name}.zip"/>
+
+ <!-- installer wide settings - bottom -->
+
+<!-- Usage section - top -->
+ <!-- Default target => how to use this file -->
+ <target name="usage"
+ description="Gives a message that helps using this file">
+ <echo>Installer usage:
+ main targets=
+ usage : print this message
+ status : report if the staf is installed and running
+ bootstrap : install and start the staf
+ run-tests : run the functional tests (requires staf installed and started)
+ run-daily : run the functional tests on today's build
+ wipeout : stop and uninstall the staf
+ subtargets=
+ download : download the archives necessary to install the staf
+ install : install the staf
+ start : start the staf unless it is already running
+ stop : stop the staf if it is already running
+ uninstall : uninstall the staf if it is installed</echo>
+ </target>
+<!-- Usage section - bottom -->
+
+<!-- Downloader section - top -->
+ <target name="download-do-prepare-check-proxy">
+ <echo>Checking for proxy [${proxy.host}:${proxy.port}] as user [${proxy.user}].</echo>
+ <echo>Note: If these values do not match your environment, </echo>
+ <echo> please edit the following config file:</echo>
+ <echo> [${basedir}${file.separator}staf-installer${file.separator}staf-installer.properties]</echo>
+ <condition property="proxy.enabled">
+ <and>
+ <not>
+ <http url="${bits.download.url}"/>
+ </not>
+ <isreachable host="${proxy.host}" timeout="5"/>
+ </and>
+ </condition>
+ </target>
+ <target name="download-do-prepare-set-proxy" if="proxy.enabled" >
+ <echo>Proxy detected. Configuring.</echo>
+ <setproxy
+ proxyhost="${proxy.host}"
+ proxyport="${proxy.port}"
+ proxyuser="${proxy.user}"
+ proxypassword="${proxy.pass}"/>
+ </target>
+ <target
+ name="download-do-prepare"
+ depends="download-do-prepare-check-proxy,download-do-prepare-set-proxy">
+ <mkdir dir="${bits.download.dir}" />
+ </target>
+ <target name="download-do-failed" unless="bits.all.downloaded" >
+ <echo>Couldn't get the bits, sorry.</echo>
+ </target>
+ <target name="download-do-succeeded" if="bits.all.downloaded" >
+ <echo>Successfully downloaded all the archives needed for installation.</echo>
+ </target>
+
+ <target name="download-do-get-staf" unless="bits.staf.downloaded.before">
+ <get src="${bits.download.url}/${bits.staf.archive}"
+ dest="${bits.download.dir}/${bits.staf.archive}" />
+ <property name="bits.staf.downloaded" value="true"/>
+ </target>
+
+ <target name="download-do-get-stax" unless="bits.stax.downloaded.before">
+ <get src="${bits.download.url}/${bits.stax.archive}"
+ dest="${bits.download.dir}/${bits.stax.archive}" />
+ <property name="bits.stax.downloaded" value="true" />
+ </target>
+
+ <target name="download-do"
+ if="platform.supported"
+ depends="status-do,download-do-prepare,download-do-get-staf,download-do-get-stax">
+ <condition property="bits.all.downloaded" >
+ <and>
+ <or>
+ <isset property="bits.staf.downloaded"/>
+ <isset property="bits.staf.downloaded.before" />
+ </or>
+ <or>
+ <isset property="bits.stax.downloaded"/>
+ <isset property="bits.stax.downloaded.before" />
+ </or>
+ </and>
+ </condition>
+ <antcall target="download-do-succeeded" />
+ <antcall target="download-do-failed" />
+ </target>
+
+ <target name="download-dont" unless="platform.supported">
+ <echo>${os.myname}-${os.arch} is not a supported platform</echo>
+ </target>
+
+ <target name="download"
+ depends="status-do,download-do,download-dont"
+ description="Download the bits necessary to install staf"/>
+
+ <target name="download-daily" depends="status-do,download-do-prepare" unless="daily.package.downloaded">
+ <mkdir dir="${daily.package.dir}"/>
+ <get src="${daily.package.url}"
+ dest="${daily.package}"/>
+ </target>
+
+ <!-- Downloader section - bottom -->
+
+<!-- Installation section - top -->
+ <target name="install-config" if="staf.install.successful">
+ <copy file="${staf.config.stubs}" tofile="${staf.config}">
+ <filterchain>
+ <expandproperties/>
+ </filterchain>
+ </copy>
+ </target>
+
+ <target name="install-stax" if="staf.install.successful">
+ <unzip
+ src="${bits.download.dir}/${bits.stax.archive}"
+ dest="${staf.install.dir}/services"/>
+ </target>
+
+ <target name="install-staf-jar"
+ description="deploy the staf bits"
+ if="staf.archive.is.jar">
+ <echo message="Installing staf, please wait, it'll take some time..." />
+ <java jar="${bits.download.dir}/${bits.staf.archive}" fork="true">
+ <arg value="-silent" />
+ <arg line="-W license.selection="Accept"" />
+ <arg line="-W stafinstalldirectory.defaultInstallLocation="${staf.install.dir}""/>
+ </java>
+ <condition property="staf.install.successful">
+ <available file="${staf.install.dir}/bin/STAF.cfg"/>
+ </condition>
+ </target>
+
+ <target name="install-staf-tar" if="staf.archive.is.tar">
+ <gunzip
+ src="${bits.download.dir}/${bits.staf.archive}"
+ dest="${bits.download.dir}"/>
+ <untar dest="${bits.download.dir}">
+ <fileset dir="${bits.download.dir}">
+ <include name="*.tar"/>
+ </fileset>
+ </untar>
+ <exec executable="${bits.download.dir}/staf/STAFInst">
+ <arg value="-source"/>
+ <arg value="${bits.download.dir}/staf"/>
+ <arg value="-target"/>
+ <arg value="${staf.install.dir}"/>
+ <arg value="-acceptlicense"/>
+ </exec>
+ <condition property="staf.install.successful">
+ <available file="${staf.install.dir}/bin/STAF.cfg"/>
+ </condition>
+ </target>
+
+ <target name="install-staf"
+ depends="install-staf-jar,install-staf-tar">
+ <fail unless="staf.install.successful" />
+ </target>
+
+ <target name="install-prepare" >
+ <mkdir dir="${staf.install.dir}"/>
+ <mkdir dir="${staf.install.dir}/services"/>
+ <mkdir dir="${staf.config.dir}"/>
+ </target>
+
+ <target name="install"
+ description="Perform framework installation"
+ depends="status-do,install-prepare,install-staf,install-stax,install-config"
+ if="bits.all.downloaded"/>
+<!-- Installation section - bottom -->
+
+<!-- Gui section - top -->
+ <target name="gui"
+ description="brings up the stax gui" >
+ <java classname="com.ibm.staf.service.stax.STAXMonitor"
+ classpath="${staf.install.dir}/services/stax/STAXMon.jar${path.separator}${staf.install.dir}/bin/JSTAF.jar"
+ fork="true"
+ spawn="true"/>
+ </target>
+<!-- Gui section - bottom -->
+
+<!-- Run tests section - top -->
+
+ <target name="get-pkg">
+ <condition property="product.package.dir"
+ value="${daily.package.dir}"
+ else="${project.home}/build/package">
+ <isset property="tests.run.daily"/>
+ </condition>
+ <property name="product.package"
+ value="${product.package.dir}/${product.name}.zip"/>
+ </target>
+
+ <target name="run-tests-prepare"
+ depends="status-do,get-pkg"
+ if="staf.running">
+ <condition property="staf.lib.dir"
+ value="${staf.install.dir}${file.separator}bin"
+ else="${staf.install.dir}${file.separator}lib">
+ <os family="windows"/>
+ </condition>
+ <!-- python config - top -->
+ <!-- 1. get a timestamp for step 3 -->
+ <tstamp>
+ <format property="tests.run.time" pattern="yyyy.MM.dd-HH.mm.ss"/>
+ </tstamp>
+ <!-- make all the necessary directories for this test run -->
+ <mkdir dir="${staf.tmp.dir}"/>
+ <mkdir dir="${tests.run.dir}/${tests.run.time}"/>
+ <mkdir dir="${tests.run.dir}/${tests.run.time}/config"/>
+ <mkdir dir="${tests.run.dir}/${tests.run.time}/report"/>
+ <!-- these will serve for after-the-fact archiving the logs -->
+ <mkdir dir="${tests.run.dir}/${tests.run.time}/staf-logs"/>
+ <mkdir dir="${tests.run.dir}/${tests.run.time}/server-logs"/>
+ <mkdir dir="${tests.run.dir}/${tests.run.time}/coverage"/>
+
+ <!-- 3. perform the config back up if necessary -->
+ <copy file="${tests.config}"
+ tofile="${tests.config.backup}"
+ overwrite="false"/>
+ <!-- 4. generate the timestamped config file that will be used for this run -->
+ <copy file="${tests.config.stubs}"
+ tofile="${tests.run.dir}/${tests.run.time}/config/${tests.config.file}">
+ <filterchain>
+ <expandproperties/>
+ </filterchain>
+ </copy>
+ <!-- 5. this is a windows-specific measure to replace the windows file
+ separator by a forward slash. Staf otherwise fails to find the
+ files.
+ -->
+ <replace file="${tests.run.dir}/${tests.run.time}/config/${tests.config.file}" token="\" value="/"/>
+ <!-- 6. copy the generated config in place of the previous one -->
+ <copy file="${tests.run.dir}/${tests.run.time}/config/${tests.config.file}"
+ tofile="${tests.config}"
+ overwrite="true"/>
+ <!-- python config - bottom -->
+ </target>
+
+ <target name="run-tests"
+ depends="status-do,run-tests-prepare"
+ if="staf.running">
+ <property name="tests.request" value="EXECUTE FILE ${tests.xml} JOBNAME OpenDS_Functional_Tests SCRIPTFILE ${tests.config} SCRIPTFILE ${tests.python} WAIT CLEARLOGS"/>
+ <condition property="tests.replay.script" value="replay.bat" else="replay.sh">
+ <os family="windows"/>
+ </condition>
+ <echo>Generating replay script to allow you to re-execute the tests in the same conditions</echo>
+ <copy file="${staf.installer.dir}${file.separator}${tests.replay.script}"
+ tofile="${tests.run.dir}${file.separator}${tests.run.time}${file.separator}${tests.replay.script}">
+ <filterchain>
+ <expandproperties/>
+ </filterchain>
+ </copy>
+ <echo>Running tests. This will take more than a while.</echo>
+ <property name="CLASSPATH" value="${staf.lib.dir}/JSTAF.jar${path.separator}${e.CLASSPATH}"/>
+ <exec
+ dir="${staf.bin.dir}"
+ executable="${staf.executable}"
+ >
+ <arg line="LOCAL STAX ${tests.request}"/>
+ <env key="CLASSPATH" path="${staf.lib.dir}/JSTAF.jar${path.separator}${e.CLASSPATH}"/>
+ <env key="STAFCONVDIR" value="${staf.install.dir}/codepage"/>
+ <env key="STAFCODEPAGE" value="LATIN_1"/>
+ </exec>
+ <!-- restore the original config file to avoid it to be mistakenly commited
+ with the generated values -->
+ <delete file="${tests.config}"/>
+ <move file="${tests.config.backup}"
+ tofile="${tests.config}"/>
+ <echo file="${tests.run.dir}/last.run">${tests.run.time}</echo>
+ <echo>Saving server logs</echo>
+ <copy todir="${tests.run.dir}/${tests.run.time}/server-logs">
+ <fileset dir="${staf.tmp.dir}/${product.name}/logs"/>
+ </copy>
+ <echo>Saving Staf/Stax logs</echo>
+ <copy todir="${tests.run.dir}/${tests.run.time}/staf-logs">
+ <fileset dir="${staf.home}/logs"/>
+ </copy>
+ <delete dir="${staf.home}/logs" />
+ <echo>Saving report</echo>
+ <copy todir="${tests.run.dir}/${tests.run.time}/report">
+ <fileset dir="${staf.tmp.dir}">
+ <include name="r*"/>
+ </fileset>
+ </copy>
+ </target>
+
+ <target name="daily">
+ <property name="tests.run.daily" value="true"/>
+ </target>
+
+ <target name="run-daily" depends="status-do,daily,download-daily,coverage-instrument,run-tests"/>
+
+ <target name="coverage-on">
+ <property name="coverage.on" value="true"/>
+ </target>
+
+ <target name="coverage-instrument" depends="status-do,get-pkg" if="coverage.on">
+ <mkdir dir="${staf.tmp.dir}/coverage-instr"/>
+ <unzip src="${product.package}"
+ dest="${staf.tmp.dir}/coverage-instr"/>
+ <move file="${product.package}" tofile="${product.package}.nocov"/>
+ <replace file="${staf.tmp.dir}/coverage-instr/${product.name}/bin/start-ds.bat"
+ token="start "OpenDS %DIR_HOME%" /B "%JAVA_BIN%""
+ value="start "OpenDS %DIR_HOME%" /B "%JAVA_BIN%" -cp "${project.home}${file.separator}ext${file.separator}emma${file.separator}lib${file.separator}emma.jar" emmarun -cp "%CLASSPATH%" -sp "${project.home}${file.separator}src${file.separator}server" -ix org.opends.server.* -r html"/>
+ <zip basedir="${staf.tmp.dir}/coverage-instr" destfile="${product.package}"/>
+ <delete dir="${staf.tmp.dir}/coverage-instr"/>
+ </target>
+ <target name="restore-pkg" if="coverage-on">
+ <delete file="${product.package}"/>
+ <move file="${product.package}.nocov" tofile="${product.package}"/>
+ </target>
+ <target name="daily-coverage" depends="coverage-on,run-daily,restore-pkg"/>
+
+ <target name="testwithcoverage" depends="coverage-on,coverage-instrument,run-tests,restore-pkg"/>
+<!-- Run tests section - bottom -->
+
+<!-- Uninstallation section - top -->
+ <target name="uninstall-do"
+ description="Uninstall the staf"
+ if="staf.installed" >
+ <echo message="Uninstalling staf, please wait..." />
+ <java jar="${staf.install.dir}/_uninst/uninstall.jar" fork="true">
+ <arg value="-silent" />
+ </java>
+ <sleep seconds="5" />
+ <delete dir="${staf.install.dir}" />
+ </target>
+
+
+ <target name="uninstall-dont-not-installed" unless="staf.installed">
+ <echo>Staf is not installed.</echo>
+ </target>
+ <target name="uninstall-dont-running" if="staf.running">
+ <echo>Staf is running. Stop staf before uninstalling.</echo>
+ <echo>Use either the 'stop' or the 'wipeout' target.</echo>
+ </target>
+ <target
+ name="uninstall-dont"
+ depends="uninstall-dont-running,uninstall-dont-not-installed" />
+
+ <target name="uninstall" depends="status-do,uninstall-do,uninstall-dont">
+ </target>
+<!-- Uninstallation section - bottom -->
+
+<!-- Start section - top -->
+ <target name="start-do"
+ description="start the staf"
+ if="staf.installed"
+ unless="staf.running" >
+ <echo message="Starting staf daemon ... on ${os.myname}" />
+ <exec
+ dir="${staf.bin.dir}"
+ executable="${staf.daemon}"
+ spawn="true">
+ <arg value="${staf.config}"/>
+ <env key="${path.var}" path="${java.home}${file.separator}bin${path.separator}${staf.install.dir}${file.separator}bin${path.separator}${path.current}"/>
+ <env key="LD_LIBRARY_PATH" path="${staf.install.dir}/lib"/>
+ <env key="CLASSPATH" path="${staf.install.dir}/bin/JSTAF.jar${path.separator}${e.CLASSPATH}"/>
+ <env key="STAFCONVDIR" value="${staf.install.dir}/codepage"/>
+ <env key="STAFCODEPAGE" value="LATIN_1"/>
+ <env key="STAF_INSTANCE_NAME" value="STAF"/>
+ </exec>
+ </target>
+ <target name="start-dont" if="staf.running">
+ <echo>Staf is already running.</echo>
+ </target>
+ <target name="start" depends="status-do">
+ <antcall target="start-do"/>
+ <antcall target="start-dont"/>
+ </target>
+<!-- Start section - bottom -->
+
+<!-- Stop section - top -->
+ <target name="stop-do" if="staf.running">
+ <echo>Stopping staf...</echo>
+ <exec
+ executable="${staf.executable}"
+ spawn="true" >
+ <arg line="local shutdown shutdown"/>
+ </exec>
+ <echo>staf has been instructed to close the shop.</echo>
+ <echo>Please allow some time as staf wipes the plate clean</echo>
+ </target>
+ <target name="stop-dont" unless="staf.running">
+ <echo>Staf is not running.</echo>
+ </target>
+ <target name="stop" depends="status-do">
+ <antcall target="stop-do"/>
+ <antcall target="stop-dont"/>
+ </target>
+<!-- Stop section - bottom -->
+
+<!-- Status section - top -->
+ <!-- Bits status section - top -->
+ <target name="status-archive-downloaded?" if="bits.all.downloaded.before">
+ <echo>Staf bits are ready to be installed. Use 'install' target.</echo>
+ </target>
+ <target name="status-archive-not-downloaded?" unless="bits.all.downloaded.before">
+ <echo>No staf bits found. Use the get-bits or bootstrap target.</echo>
+ </target>
+ <!-- Bits status section - bottom -->
+
+ <!-- Installation status section - top -->
+ <target name="status-staf-installed?" if="staf.installed">
+ <echo>Found staf installed in [${staf.install.dir}]</echo>
+ <antcall target="status-staf-running?" />
+ <antcall target="status-staf-not-running?" />
+ </target>
+ <target name="status-staf-not-installed?" unless="staf.installed">
+ <echo>Could not find staf installation.</echo>
+ <echo>Checking if the bits here and ready for installation...</echo>
+ <antcall target="status-archive-downloaded?" />
+ <antcall target="status-archive-not-downloaded?" />
+ </target>
+ <!-- Installation status section - bottom -->
+
+ <!-- Running status section - top -->
+ <target name="status-staf-running?" if="staf.running">
+ <echo>staf is listening on port [${staf.port.default}]</echo>
+ <echo>You're all set to run the functional tests.</echo>
+ </target>
+ <target name="status-staf-not-running?" unless="staf.running">
+ <echo>staf is NOT running. Use the 'start' target.</echo>
+ </target>
+ <!-- Running status section - bottom -->
+
+
+ <!-- Get status section - top -->
+ <target name="status-do" unless="status-do.already.run" >
+ <!-- check if the various archives needed have already been downloaded -->
+ <condition property="bits.staf.downloaded.before">
+ <available file="${bits.download.dir}/${bits.staf.archive}"/>
+ </condition>
+ <condition property="bits.stax.downloaded.before" >
+ <available file="${bits.download.dir}/${bits.stax.archive}" />
+ </condition>
+ <condition property="bits.all.downloaded.before">
+ <and>
+ <isset property="bits.staf.downloaded.before"/>
+ <isset property="bits.stax.downloaded.before"/>
+ </and>
+ </condition>
+ <available file="${daily.package}" property="daily.package.downloaded"/>
+
+ <available file="${staf.install.dir}"
+ type="dir"
+ property="staf.installed" />
+
+ <condition property="staf.running">
+ <socket port="${staf.port}" server="${host.name}"/>
+ </condition>
+
+ <condition property="staf.archive.is.jar">
+ <contains string="${bits.staf.archive}" substring=".jar"/>
+ </condition>
+ <condition property="staf.archive.is.tar">
+ <not>
+ <contains string="${bits.staf.archive}" substring=".jar"/>
+ </not>
+ </condition>
+ <condition property="binary.extension" value=".exe" else="">
+ <os family="windows"/>
+ </condition>
+ <condition property="script.extension" value=".bat" else="">
+ <os family="windows"/>
+ </condition>
+
+ <condition property="path.var" value="Path" else="PATH">
+ <os family="windows"/>
+ </condition>
+ <macrodef name="propertycopy">
+ <attribute name="name"/>
+ <attribute name="from"/>
+ <sequential>
+ <property name="@{name}" value="${@{from}}"/>
+ </sequential>
+ </macrodef>
+ <property environment="e"/>
+ <propertycopy name="path.current" from="e.${path.var}"/>
+
+ <property name="staf.executable"
+ value="${staf.bin.dir}${file.separator}STAF${binary.extension}"/>
+ <property name="staf.daemon"
+ value="${staf.bin.dir}${file.separator}STAFProc${binary.extension}"/>
+
+ <property name="status-do.already.run" value="true"/>
+ </target>
+ <!-- Get status section - bottom -->
+
+ <!-- Status cli section - top -->
+ <target name="status" depends="status-do">
+ <condition property="is.platform.supported" value="yes" else="no" >
+ <isset property="platform.supported"/>
+ </condition>
+ <echo>Operating System Family - ${os.myname}</echo>
+ <echo>Operating System Name - ${os.name}</echo>
+ <echo>Operating System Version - ${os.version}</echo>
+ <echo>Machine Architecture - ${os.arch}</echo>
+ <echo>Platform Supported - ${is.platform.supported}</echo>
+ <echo>Java Home - ${java.home}</echo>
+ <echo>Java Version - ${java.version}</echo>
+ <echo>PATH - ${path.current}</echo>
+ <echo>CLASSPATH - ${e.CLASSPATH}</echo>
+ <antcall target="status-staf-installed?" />
+ <antcall target="status-staf-not-installed?" />
+ </target>
+ <!-- Status cli section - bottom -->
+<!-- Status section - bottom -->
+
+<!-- Macros section - top -->
+ <target name="bootstrap">
+ <antcall target="download" />
+ <antcall target="install" />
+ <antcall target="start" />
+ </target>
+
+ <target name="wipeout">
+ <antcall target="stop"/>
+ <sleep seconds="10"/>
+ <antcall target="uninstall"/>
+ </target>
+<!-- Macros section - bottom -->
+</project>
--
Gitblit v1.10.0