mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Christophe Sovant
22.17.2008 5c72383eb9b8472d9c6a7dba2339dd0204ccc213
Issue 3030: refactoring ant build (part II)
15 files deleted
9 files added
3 files renamed
4 files modified
3761 ■■■■■ changed files
opends/tests/staf-tests/build 3 ●●●● patch | view | raw | blame | history
opends/tests/staf-tests/build.bat 3 ●●●● patch | view | raw | blame | history
opends/tests/staf-tests/functional-tests/config/config.py 71 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/ant/Linux.properties 26 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/ant/SunOS-sparc.properties 26 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/ant/SunOS-x86.properties 26 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/ant/build.properties 110 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/ant/build.xml 377 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/ant/dependencies.xml 149 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/ant/opends.xml 107 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/ant/proxy.xml 71 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/ant/staf-installer.properties 114 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/ant/staf-installer.xml 1365 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/ant/staf.xml 250 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/ant/tests.xml 301 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/ant/usage.xml 66 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/ant/user.xml 184 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/ant/windows-x86-32.properties 27 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/ant/windows-x86-64.properties 26 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/ant/windows.properties 27 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/staf/failure.html 7 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/staf/replay.bat 37 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/staf/replay.sh 37 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/staf/staf-controler.cfg 2 ●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/staf/staf-slave.cfg 15 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/staf/stress-tests.cfg 51 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/tests/config.py.stubs 6 ●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/tests/runStressTests.xml 245 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/tests/runTestJob.xml 2 ●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/tests/runTests.xml patch | view | raw | blame | history
opends/tests/staf-tests/stress-tests/config/config.py 30 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/build
@@ -45,7 +45,8 @@
fi
OPENDS_LIB=`cd ../../lib;pwd`
ANT_LIB=$OPENDS_LIB/mail.jar:$OPENDS_LIB/activation.jar
ANT_HOME=`cd ../..;pwd`/ext/ant
export ANT_HOME
# Execute the ant script and pass it any additional command-line arguments.
$ANT_HOME/bin/ant -lib $OPENDS_LIB/mail.jar:$OPENDS_LIB/activation.jar -f shared/ant/staf-installer.xml ${*}
$ANT_HOME/bin/ant -lib ${ANT_LIB} -f shared/ant/build.xml ${*}
opends/tests/staf-tests/build.bat
@@ -47,6 +47,7 @@
if not "%*" == "" echo   your parameters=%*
echo Now running ant ...
set OPENDS_LIB=%FT_HOME%\..\..\lib
"%ANT_HOME%\bin\ant" -lib "%OPENDS_LIB%\mail.jar;%OPENDS_LIB%\activation.jar" -f shared\ant\staf-installer.xml %*
set ANT_LIB="%OPENDS_LIB%\mail.jar;%OPENDS_LIB%\activation.jar"
"%ANT_HOME%\bin\ant" -lib "%ANT_LIB%" -f shared\ant\staf-installer.xml %*
:end
opends/tests/staf-tests/functional-tests/config/config.py
File was deleted
opends/tests/staf-tests/shared/ant/Linux.properties
File was deleted
opends/tests/staf-tests/shared/ant/SunOS-sparc.properties
File was deleted
opends/tests/staf-tests/shared/ant/SunOS-x86.properties
File was deleted
opends/tests/staf-tests/shared/ant/build.properties
New file
@@ -0,0 +1,110 @@
# 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
# information:
#      Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
#      Copyright 2007-2008 Sun Microsystems, Inc.
## These values can be overrided using the user.properties file
# Log directory section
logs.dir=${basedir}${file.separator}temp${file.separator}logs
# Repository section
repository.dir=${basedir}${file.separator}temp${file.separator}repository
# OpenDS section
default.opends.dir=${project.home}${file.separator}build${file.separator}package
default.opends.zip=${product.name}.zip
opends.dir=${default.opends.dir}
opends.zip=${default.opends.zip}
# Java section
java.path=${java.home}
# Shared folder
shared.dir=${basedir}${file.separator}shared
# Proxy section
proxy.enabled=n
proxy.host=webcache.central.sun.com
proxy.port=8080
proxy.user=
proxy.pass=
# Archives section
archives.dir=${repository.dir}${file.separator}archives
staf.url=http://superb-east.dl.sourceforge.net/sourceforge/staf
staf.version=330
## staf.archive value depends on os
stax.version=333
stax.archive=STAXV${stax.version}.zip
email.version=331
email.archive=EmailV${email.version}.zip
event.version=311
event.archive=EventV${event.version}.zip
eventmanager.version=332
eventmanager.archive=EventManagerV${eventmanager.version}.zip
http.version=300
http.archive=HTTPV${http.version}.zip
tomcat.version=6.0.14
tomcat.url=http://archive.apache.org/dist/tomcat/tomcat-6/v${tomcat.version}/bin
tomcat.archive=apache-tomcat-${tomcat.version}.zip
# STAF section
staf.install.dir=${repository.dir}${file.separator}install${file.separator}staf-${os.myname}
staf.port=6500
staf.config.dir=${repository.dir}${file.separator}configs
staf.shared.dir=${shared.dir}${file.separator}staf
staf.config.stubs=${staf.shared.dir}${file.separator}staf-${staf.type}.cfg
staf.config.file=${staf.config.dir}${file.separator}staf-${staf.type}-${host.name}.cfg
staf.bin.dir=${staf.install.dir}${file.separator}bin
staf.daemon=${staf.bin.dir}${file.separator}STAFProc${extension.binary}
staf.executable=${staf.bin.dir}${file.separator}STAF${extension.binary}
staf.email.send=false
staf.email.to=
# Tests section
tests.dir=${basedir}${file.separator}${tests.type}
tests.shared.dir=${shared.dir}${file.separator}tests
tests.config.stubs=${tests.shared.dir}${file.separator}config.py.stubs
tests.config.file=config-${host.name}.py
tests.run.dir=${logs.dir}${file.separator}${tests.type}${file.separator}run
tests.tmp.dir=${logs.dir}${file.separator}${tests.type}${file.separator}tmp
tests.xml=${tests.shared.dir}${file.separator}runTestJob.xml
opends.port.ldap=1389
opends.port.ldaps=1636
opends.port.jmx=1689
opends.admin.dn=cn=myself
opends.admin.pwd=password
snmp.opendmk.lib.dir=
test.plan.custom=${basedir}${file.separator}${tests.type}${file.separator}testcases${file.separator}run-custom-suites.dat
test.plan.default=${basedir}${file.separator}${tests.type}${file.separator}testcases${file.separator}run-default-suites.dat
test.plan.list=aci,backends,clu,core,dsconfig,dsml,groups,i18n,indexes,logging,monitoring,plugins,privileges,quickstart,replication,schema,security,setup,snmp,tasks,virtualAttributes
# Email section
email.enabled=n
email.to=${user.name}@${host.name}
email.from=${user.name}@${host.name}
email.server.host=${host.name}
email.server.port=25
email.server.user=
email.server.pwd=
opends/tests/staf-tests/shared/ant/build.xml
New file
@@ -0,0 +1,377 @@
<!--
 ! 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
 !
 !
 !      Copyright 2008 Sun Microsystems, Inc.
 ! -->
<project name="opends-staf-tests" 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>
  <!-- ################## -->
  <!-- # ANT PROPERTIES # -->
  <!-- ################## -->
  <!-- Display ant properties -->
  <target name="properties">
    <echoproperties/>
  </target>
  <!-- ######## -->
  <!-- # INIT # -->
  <!-- ######## -->
  <!-- Initialise variables -->
  <target name="global-init">
    <!-- Define project.home variable -->
    <dirname file="${basedir}/.." property="project.home"/>
    <!-- Default value for product.name variable -->
    <property file="${project.home}/PRODUCT"/>
    <property name="product.name"
      value="${SHORT_NAME}-${MAJOR_VERSION}.${MINOR_VERSION}.${POINT_VERSION}"/>
    <!-- Define antfile.dir variable -->
    <property name="antfile.dir" value="${basedir}/shared/ant"/>
    <!-- Define antfile.dir variable -->
    <property name="tmp.dir" value="${java.io.tmpdir}/temp_files"/>
    <!-- Load ant-contrib -->
    <taskdef resource="net/sf/antcontrib/antlib.xml">
      <classpath>
        <fileset dir="${project.home}/ext/ant/lib">
          <include name="**/*.jar"/>
        </fileset>
      </classpath>
    </taskdef>
    <!-- Check if the current platform is supported -->
    <switch value="${os.name}">
      <case value="SunOS">
        <!-- Solaris system -->
        <switch value="${os.arch}">
          <case value="sparc">
            <!-- Solaris sparc -->
            <exec executable="isainfo" output="os.bits">
              <arg value="-b"/>
            </exec>
            <switch value="${os.bits}">
              <case value="32">
                <!-- Solaris sparc 32 bit -->
                <property name="os.myname" value="solaris-sparc"/>
              </case>
              <case value="64">
                <!-- Solaris sparc 64 bit -->
                <property name="os.myname" value="solaris-sparc64"/>
              </case>
            </switch>
          </case>
          <case value="x86">
            <!-- Solaris x86 -->
            <property name="os.myname" value="solaris-x86"/>
          </case>
          <case value="amd64">
            <!-- Solaris amd64 -->
            <property name="os.myname" value="solaris-x64-64"/>
          </case>
        </switch>
        <exec executable="uname" outputproperty="host.name">
            <arg line="-n"/>
        </exec>
        <property name="extension.binary" value=""/>
        <property name="extension.shell" value=""/>
        <property name="var.path" value="PATH"/>
      </case>
      <case value="Linux">
        <!-- Linux system -->
        <switch value="${os.arch}">
          <case value="i386">
            <!-- Linux i386 -->
            <property name="os.myname" value="linux"/>
          </case>
          <case value="amd64">
            <!-- Linux amd64 -->
            <property name="os.myname" value="linux-amd64"/>
          </case>
        </switch>
        <exec executable="uname" outputproperty="host.name">
            <arg line="-n"/>
        </exec>
        <property name="extension.binary" value=""/>
        <property name="extension.shell" value=""/>
        <property name="var.path" value="PATH"/>
      </case>
      <default>
        <if>
          <equals arg1="${os.family}" arg2="windows"/>
          <then>
            <!-- Windows system -->
            <property name="os.myname" value="win32"/>
            <property name="host.name" value="${env.COMPUTERNAME}"/>
            <property name="extension.binary" value=".exe"/>
            <property name="extension.shell" value=".bat"/>
            <property name="var.path" value="Path"/>
          </then>
          <else>
            <fail>"Unsupported platform."</fail>
          </else>
        </if>
      </default>
    </switch>
    <!-- Default value for staf.type -->
    <if>
      <not>
        <isset property="staf.type"/>
      </not>
      <then>
        <property name="staf.type" value="controler"/>
      </then>
    </if>
    <!-- Default value for tests.type -->
    <if>
      <not>
        <isset property="tests.type"/>
      </not>
      <then>
        <property name="tests.type" value="functional-tests"/>
      </then>
    </if>
    <!-- User-defined values -->
    <property file="${basedir}/user.properties"/>
    <!-- Default values for build environment -->
    <property file="${antfile.dir}/build.properties"/>
    <!-- Set value for staf.archive and staf.lib.dir variables -->
    <if>
      <equals arg1="${os.family}" arg2="windows"/>
      <then>
        <!-- Windows system -->
        <property name="staf.archive"
                  value="STAF${staf.version}-setup-${os.myname}.exe"/>
        <property name="staf.lib.dir" value="${staf.install.dir}${file.separator}bin"/>
      </then>
      <else>
        <!-- Other systems -->
        <property name="staf.archive"
                  value="STAF${staf.version}-${os.myname}.tar.gz"/>
        <property name="staf.lib.dir" value="${staf.install.dir}${file.separator}lib"/>
      </else>
    </if>
  </target>
  <!-- ######### -->
  <!-- # USAGE # -->
  <!-- ######### -->
  <!-- Display usage -->
  <target name="usage"
          depends="global-init">
    <ant antfile="${antfile.dir}/usage.xml" target="usage"/>
  </target>
  <!-- ############# -->
  <!-- # CONFIGURE # -->
  <!-- ############# -->
  <!-- Configure user variables -->
  <target name="user-configure"
          depends="global-init">
    <ant antfile="${antfile.dir}/user.xml" target="configure"/>
  </target>
  <!-- Unconfigure user variables -->
  <target name="user-unconfigure"
          depends="global-init">
    <ant antfile="${antfile.dir}/user.xml" target="unconfigure"/>
  </target>
  <!-- ######### -->
  <!-- # PROXY # -->
  <!-- ######### -->
  <!-- Check proxy -->
  <target name="proxy-check"
          depends="global-init">
    <ant antfile="${antfile.dir}/proxy.xml" target="check"/>
  </target>
  <!-- Set proxy -->
  <target name="proxy-set"
          depends="global-init,proxy-check">
    <ant antfile="${antfile.dir}/proxy.xml" target="set"/>
  </target>
  <!-- ############ -->
  <!-- # DOWNLOAD # -->
  <!-- ############ -->
  <!-- Download dependencies -->
  <target name="dependencies-download"
          depends="global-init,proxy-set">
    <ant antfile="${antfile.dir}/dependencies.xml" target="download"/>
  </target>
  <!-- Remove current dependencies -->
  <target name="dependencies-remove"
          depends="global-init">
    <ant antfile="${antfile.dir}/dependencies.xml" target="remove"/>
  </target>
  <!-- Remove old dependencies -->
  <target name="dependencies-removeold"
          depends="global-init">
    <ant antfile="${antfile.dir}/dependencies.xml" target="removeold"/>
  </target>
  <!-- Remove all dependencies -->
  <target name="dependencies-removeall"
          depends="global-init">
    <ant antfile="${antfile.dir}/dependencies.xml" target="removeall"/>
  </target>
  <!-- ######## -->
  <!-- # STAF # -->
  <!-- ######## -->
  <!-- Install STAF and STAF services -->
  <target name="staf-install"
          depends="global-init,dependencies-download">
    <ant antfile="${antfile.dir}/staf.xml" target="install"/>
  </target>
  <!-- Uninstall STAF and STAF services -->
  <target name="staf-uninstall"
          depends="global-init,staf-stop">
    <ant antfile="${antfile.dir}/staf.xml" target="uninstall"/>
  </target>
  <!-- Start STAF -->
  <target name="staf-start"
          depends="global-init,staf-install">
    <ant antfile="${antfile.dir}/staf.xml" target="start"/>
  </target>
  <target name="staf-start-slave">
    <property name="staf.type" value="slave"/>
    <antcall target="staf-start"/>
  </target>
  <target name="staf-start-controler">
    <property name="tests.type" value="controler"/>
    <antcall target="staf-start"/>
  </target>
  <!-- Stop STAF -->
  <target name="staf-stop"
          depends="global-init">
    <ant antfile="${antfile.dir}/staf.xml" target="stop"/>
  </target>
  <!-- Status STAF -->
  <target name="staf-status"
          depends="global-init">
    <ant antfile="${antfile.dir}/staf.xml" target="status"/>
  </target>
   <!-- Start STAF GUI -->
  <target name="staf-gui"
          depends="global-init,staf-start">
    <ant antfile="${antfile.dir}/staf.xml" target="gui"/>
  </target>
  <!-- Display STAF JVM logs -->
  <target name="staf-jvmlogs"
          depends="global-init,staf-start">
    <ant antfile="${antfile.dir}/staf.xml" target="jvmlogs"/>
  </target>
  <!-- ######### -->
  <!-- # TESTS # -->
  <!-- ######### -->
  <!-- Configure tests to run -->
  <target name="tests-configure"
          depends="global-init">
    <ant antfile="${antfile.dir}/tests.xml" target="configure"/>
  </target>
  <!-- Configure functional tests to run -->
  <target name="tests-func-configure">
    <property name="tests.type" value="functional-tests"/>
    <antcall target="tests-configure"/>
  </target>
  <!-- Configure stress tests to run -->
  <target name="tests-stress-configure">
    <property name="tests.type" value="stress-tests"/>
    <antcall target="tests-configure"/>
  </target>
  <!-- Run tests -->
  <target name="tests-run"
          depends="global-init,opends-build,staf-start">
    <ant antfile="${antfile.dir}/tests.xml" target="run"/>
  </target>
  <!-- Run functional tests -->
  <target name="tests-func-run">
    <property name="tests.type" value="functional-tests"/>
    <antcall target="tests-run"/>
  </target>
  <!-- Run stress tests -->
  <target name="tests-stress-run">
    <property name="tests.type" value="stress-tests"/>
    <antcall target="tests-run"/>
  </target>
  <!-- ########## -->
  <!-- # OPENDS # -->
  <!-- ########## -->
  <!-- Build OpenDS zip -->
  <target name="opends-build"
          depends="global-init">
    <ant antfile="${antfile.dir}/opends.xml" target="build"/>
  </target>
</project>
opends/tests/staf-tests/shared/ant/dependencies.xml
New file
@@ -0,0 +1,149 @@
<!--
 ! 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
 !
 !
 !      Copyright 2008 Sun Microsystems, Inc.
 ! -->
<project name="dependencies">
  <description>
    Manage dependencies.
  </description>
  <!-- Download all the dependencies -->
  <target name="download">
    <mkdir dir="${archives.dir}"/>
    <!-- STAF and other services -->
    <var name="list" value="${staf.archive},${stax.archive},${email.archive}"/>
    <var name="list" value="${list},${event.archive},${eventmanager.archive}"/>
    <var name="list" value="${list},${http.archive},${tomcat.archive}"/>
    <mkdir dir="${tmp.dir}"/>
    <for list="${list}" param="archive">
      <sequential>
        <var name="rc" unset="true"/>
        <var name="ext" unset="true"/>
        <var name="url" unset="true"/>
        <if>
          <not>
            <available file="${staf.install.dir}/bin/STAF.cfg"/>
          </not>
          <then>
            <trycatch property="error" reference="referror">
              <try>
                <propertyregex property="ext"
                               input="@{archive}"
                               regexp=".*\.(.*)"
                               select="\1"
                               casesensitive="false"/>
                <switch value="${ext}">
                  <case value="gz">
                    <!-- gz files -->
                    <gunzip src="${archives.dir}/@{archive}"
                            dest="${tmp.dir}"/>
                  </case>
                  <case value="zip">
                    <!-- zip files -->
                    <unzip src="${archives.dir}/@{archive}"
                           dest="${tmp.dir}"/>
                  </case>
                  <default>
                  </default>
                </switch>
                <var name="rc" value="0"/>
              </try>
              <catch>
                <echo>ERROR: ${error}</echo>
                <var name="rc" value="-1"/>
              </catch>
            </trycatch>
          </then>
        </if>
        <var name="rc" value="0"/>
        <if>
          <or>
            <not>
              <equals arg1="${rc}" arg2="0"/>
            </not>
            <not>
              <available file="${archives.dir}/@{archive}"/>
            </not>
          </or>
          <then>
            <if>
              <equals arg1="@{archive}" arg2="${tomcat.archive}"/>
              <then>
                <!-- Tomcat url -->
                <var name="url" value="${tomcat.url}"/>
              </then>
              <else>
                <!-- Other url -->
                <var name="url" value="${staf.url}"/>
              </else>
            </if>
            <get src="${url}/@{archive}"
                 dest="${archives.dir}/@{archive}"/>
          </then>
        </if>
      </sequential>
    </for>
    <delete includeemptydirs="true">
       <fileset dir="${tmp.dir}" includes="**/*"/>
    </delete>
  </target>
  <!-- Remove current dependencies -->
  <target name="remove">
    <delete dir="${archives.dir}">
      <include name="STAF${staf.version}*"/>
      <include name="${stax.archive}"/>
      <include name="${email.archive}"/>
      <include name="${event.archive}"/>
      <include name="${eventmanager.archive}"/>
      <include name="${http.archive}"/>
      <include name="${tomcat.archive}"/>
    </delete>
  </target>
  <!-- Remove old dependencies -->
  <target name="removeold">
    <delete dir="${archives.dir}">
      <exclude name="STAF${staf.version}*"/>
      <exclude name="${stax.archive}"/>
      <exclude name="${email.archive}"/>
      <exclude name="${event.archive}"/>
      <exclude name="${eventmanager.archive}"/>
      <exclude name="${http.archive}"/>
      <exclude name="${tomcat.archive}"/>
    </delete>
  </target>
  <!-- Remove all the dependencies -->
  <target name="removeall">
    <delete dir="${archives.dir}"/>
  </target>
</project>
opends/tests/staf-tests/shared/ant/opends.xml
New file
@@ -0,0 +1,107 @@
<!--
 ! 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
 !
 !
 !      Copyright 2008 Sun Microsystems, Inc.
 ! -->
<project name="opends">
  <description>
    Build OpenDS archive.
  </description>
  <!-- Build OpenDS archive -->
  <target name="build">
    <if>
      <and>
       <equals arg1="${opends.dir}" arg2="${default.opends.dir}"/>
       <equals arg1="${opends.zip}" arg2="${default.opends.zip}"/>
      </and>
      <then>
        <loadproperties srcFile="${project.home}/build.properties">
          <filterchain>
            <linecontains>
              <contains value="opendmk."/>
            </linecontains>
          </filterchain>
        </loadproperties>
        <if>
          <not>
            <available file="${opends.dir}/${opends.zip}"/>
          </not>
          <then>
            <if>
              <and>
                <not>
                  <equals arg1="${snmp.opendmk.lib.dir}" arg2=""/>
                </not>
                <available file="${snmp.opendmk.lib.dir}"/>
              </and>
              <then>
                <echo>Build ${opends.zip} with SNMP</echo>
                <replace file="${project.home}/build.properties"
                         value="opendmk.lib.dir=${snmp.opendmk.lib.dir}">
                  <replacefilter token="opendmk.lib.dir="/>
                </replace>
                <property name="package.rebuild" value="true"/>
              </then>
              <else>
                <echo>Build ${opends.zip} without SNMP</echo>
                <property name="package.rebuild" value="true"/>
              </else>
            </if>
          </then>
          <else>
            <if>
              <and>
                <not>
                  <equals arg1="${snmp.opendmk.lib.dir}" arg2=""/>
                </not>
                <available file="${snmp.opendmk.lib.dir}"/>
                <equals arg1="${opendmk.lib.dir}" arg2=""/>
              </and>
              <then>
                <echo>Rebuild ${opends.zip} with SNMP</echo>
                <replace file="${project.home}/build.properties"
                         value="opendmk.lib.dir=${snmp.opendmk.lib.dir}">
                  <replacefilter token="opendmk.lib.dir="/>
                </replace>
                <property name="package.rebuild" value="true"/>
              </then>
            </if>
          </else>
        </if>
        <if>
          <isset property="package.rebuild"/>
          <then>
            <ant antfile="${project.home}/build.xml"
                 target="package"
                 inheritAll="false"/>
          </then>
        </if>
      </then>
    </if>
  </target>
</project>
opends/tests/staf-tests/shared/ant/proxy.xml
New file
@@ -0,0 +1,71 @@
<!--
 ! 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
 !
 !
 !      Copyright 2008 Sun Microsystems, Inc.
 ! -->
<project name="proxy">
  <description>
    Proxy configuration.
  </description>
  <!-- Check proxy configuration -->
  <target name="check">
    <if>
      <equals arg1="${proxy.enabled}" arg2="y"/>
      <then>
        <echo>Checking for proxy [${proxy.host}:${proxy.port}]</echo>
        <echo>as user [${proxy.user}].</echo>
        <fail message="Proxy [${proxy.host}] is unreachable.">
          <condition>
            <and>
              <not>
                <http url="${staf.url}"/>
              </not>
              <not>
                <isreachable host="${proxy.host}" timeout="5"/>
              </not>
            </and>
          </condition>
        </fail>
        <echo>Proxy detected.</echo>
      </then>
    </if>
  </target>
  <!-- Set proxy configuration -->
  <target name="set">
    <if>
      <equals arg1="${proxy.enabled}" arg2="y"/>
      <then>
        <echo>Configuring proxy...</echo>
        <setproxy proxyhost="${proxy.host}"
                  proxyport="${proxy.port}"
                  proxyuser="${proxy.user}"
                  proxypassword="${proxy.pass}"/>
      </then>
    </if>
  </target>
</project>
opends/tests/staf-tests/shared/ant/staf-installer.properties
File was deleted
opends/tests/staf-tests/shared/ant/staf-installer.xml
File was deleted
opends/tests/staf-tests/shared/ant/staf.xml
New file
@@ -0,0 +1,250 @@
<!--
 ! 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
 !
 !
 !      Copyright 2008 Sun Microsystems, Inc.
 ! -->
<project name="staf">
  <description>
    Manage STAF (install/uninstall, start/stop).
  </description>
  <!-- Install STAF and services -->
  <target name="install">
    <if>
      <not>
        <available file="${staf.install.dir}/bin/STAF.cfg"/>
      </not>
      <then>
        <mkdir dir="${tmp.dir}"/>
        <!-- Install STAF -->
        <echo>Installing staf, please wait...</echo>
        <mkdir dir="${staf.install.dir}"/>
        <gunzip src="${archives.dir}/${staf.archive}" dest="${tmp.dir}"/>
        <untar dest="${tmp.dir}">
          <fileset dir="${tmp.dir}">
            <include name="*.tar"/>
          </fileset>
        </untar>
        <chmod file="${tmp.dir}/staf/STAFInst" perm="755"/>
        <exec executable="${tmp.dir}/staf/STAFInst">
          <arg value="-source"/>
          <arg value="${tmp.dir}/staf"/>
          <arg value="-target"/>
          <arg value="${staf.install.dir}"/>
          <arg value="-acceptlicense"/>
        </exec>
        <delete dir="${repository.dir}/staf"/>
        <!-- Install services -->
        <echo>Installing services, please wait...</echo>
        <mkdir dir="${staf.install.dir}/services"/>
        <unzip src="${archives.dir}/${email.archive}"
           dest="${staf.install.dir}/services"/>
        <unzip src="${archives.dir}/${event.archive}"
           dest="${staf.install.dir}/services"/>
        <unzip src="${archives.dir}/${eventmanager.archive}"
           dest="${staf.install.dir}/services"/>
        <unzip src="${archives.dir}/${stax.archive}"
           dest="${staf.install.dir}/services"/>
        <unzip src="${archives.dir}/${http.archive}"
           dest="${staf.install.dir}/services"/>
        <!-- Add DSML service extension -->
        <mkdir dir="${staf.install.dir}/services/dsml"/>
        <copy todir="${staf.install.dir}/services/dsml">
          <fileset dir="${basedir}/../staf-tests/shared/dsml"
               includes="dsmlService.jar"/>
        </copy>
        <delete includeemptydirs="true">
          <fileset dir="${tmp.dir}" includes="**/*"/>
        </delete>
      </then>
      <else>
        <echo>Staf is already installed in [${staf.install.dir}]</echo>
      </else>
    </if>
    <!-- Copy functional-tests.cfg -->
    <mkdir dir="${staf.config.dir}"/>
    <copy file="${staf.config.stubs}" tofile="${staf.config.file}">
      <filterchain>
        <expandproperties/>
      </filterchain>
    </copy>
  </target>
  <!-- Uninstall STAF and services -->
  <target name="uninstall">
    <if>
      <available file="${staf.install.dir}/bin/STAF.cfg"/>
      <then>
        <echo>Uninstalling staf, please wait...</echo>
        <exec executable="${staf.install.dir}/STAFUninst"/>
        <delete dir="${staf.install.dir}"/>
      </then>
      <else>
        <echo>Staf is not installed</echo>
      </else>
    </if>
  </target>
  <!-- Start STAF -->
  <target name="start">
    <if>
      <not>
        <socket port="${staf.port}" server="${host.name}"/>
      </not>
      <then>
        <echo>Starting staf, please wait...</echo>
        <exec dir="${staf.bin.dir}"
              executable="${staf.daemon}"
              spawn="true">
          <arg value="${staf.config.file}"/>
          <env key="${var.path}" path="${java.path}${file.separator}bin${path.separator}${staf.install.dir}${file.separator}bin"/>
          <env key="LD_LIBRARY_PATH" path="${staf.install.dir}/lib"/>
          <env key="CLASSPATH" path="${staf.lib.dir}/JSTAF.jar${path.separator}:${project.home}/ext/svnkit/svnkit.jar:."/>
          <env key="STAFCONVDIR" value="${staf.install.dir}/codepage"/>
          <env key="STAFCODEPAGE" value="LATIN_1"/>
          <env key="STAF_INSTANCE_NAME" value="STAF"/>
        </exec>
        <echo>Waiting for service to become available...</echo>
        <waitfor maxwait="3"
             maxwaitunit="minute"
             checkevery="10"
             checkeveryunit="second"
             timeoutproperty="timeout">
          <socket server="${host.name}" port="${staf.port}"/>
        </waitfor>
        <echo>STAF is now ready to serve requests</echo>
      </then>
      <else>
        <echo>Staf is already listening on port [${staf.port}]</echo>
      </else>
    </if>
  </target>
  <!-- Stop STAF -->
  <target name="stop">
    <if>
      <socket port="${staf.port}" server="${host.name}"/>
      <then>
        <echo>Stopping staf, please wait...</echo>
        <exec executable="${staf.executable}">
          <arg line="local shutdown shutdown"/>
          <env key="${var.path}" path="${java.path}${file.separator}bin${path.separator}${staf.install.dir}${file.separator}bin"/>
          <env key="LD_LIBRARY_PATH" path="${staf.lib.dir}"/>
          <env key="CLASSPATH" path="${staf.lib.dir}/JSTAF.jar${path.separator}:."/>
          <env key="STAFCONVDIR" value="${staf.install.dir}/codepage"/>
          <env key="STAFCODEPAGE" value="LATIN_1"/>
        </exec>
        <echo>Waiting for service to shutdown gracefully...</echo>
        <waitfor maxwait="3"
             maxwaitunit="minute"
             checkevery="10"
             checkeveryunit="second"
             timeoutproperty="timeoutSocketListening">
          <not>
            <socket server="${host.name}" port="${staf.port}"/>
          </not>
        </waitfor>
        <echo>STAF stopped</echo>
      </then>
      <else>
        <echo>Staf is not running</echo>
      </else>
    </if>
  </target>
  <!-- Display STAF status -->
  <target name="status">
    <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>Java Home                - ${java.path}</echo>
    <echo>Java Version             - ${java.version}</echo>
    <echo></echo>
    <if>
      <available file="${staf.install.dir}/bin/STAF.cfg"/>
      <then>
        <echo>Staf is installed in [${staf.install.dir}]</echo>
      </then>
      <else>
        <echo>Staf is not installed</echo>
      </else>
    </if>
    <echo></echo>
    <if>
      <socket port="${staf.port}" server="${host.name}"/>
      <then>
        <echo>Staf is listening on port [${staf.port}]</echo>
      </then>
      <else>
        <echo>Staf is not running</echo>
      </else>
    </if>
  </target>
  <!-- Display STAF gui -->
  <target name="gui">
    <exec dir="${staf.install.dir}"
          executable="${java.path}/bin/java"
          spawn="true">
      <env key="${var.path}" path="${java.path}${file.separator}bin${path.separator}${staf.install.dir}${file.separator}bin"/>
      <env key="LD_LIBRARY_PATH" path="${staf.lib.dir}"/>
      <env key="CLASSPATH" path="${staf.lib.dir}/JSTAF.jar${path.separator}:."/>
      <env key="STAFCONVDIR" value="${staf.install.dir}/codepage"/>
      <env key="STAFCODEPAGE" value="LATIN_1"/>
      <arg value="-classpath"/>
      <arg value="${staf.install.dir}/services/stax/STAXMon.jar${path.separator}${staf.lib.dir}/JSTAF.jar"/>
      <arg value="com.ibm.staf.service.stax.STAXMonitor"/>
    </exec>
  </target>
  <!-- Display jvmlogs -->
  <target name="jvmlogs">
    <exec dir="${staf.install.dir}"
          executable="${java.path}/bin/java"
          spawn="true">
      <env key="${var.path}" path="${java.path}${file.separator}bin${path.separator}${staf.install.dir}${file.separator}bin"/>
      <env key="LD_LIBRARY_PATH" path="${staf.lib.dir}"/>
      <env key="CLASSPATH" path="${staf.lib.dir}/JSTAF.jar${path.separator}:."/>
      <env key="STAFCONVDIR" value="${staf.install.dir}/codepage"/>
      <env key="STAFCODEPAGE" value="LATIN_1"/>
      <arg value="-classpath"/>
      <arg value="${staf.lib.dir}${path.separator}${staf.lib.dir}/JSTAF.jar"/>
      <arg value="com.ibm.staf.STAFJVMLogViewer"/>
    </exec>
  </target>
</project>
opends/tests/staf-tests/shared/ant/tests.xml
New file
@@ -0,0 +1,301 @@
<!--
 ! 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
 !
 !
 !      Copyright 2008 Sun Microsystems, Inc.
 ! -->
<project name="tests">
  <description>
    Execute the tests.
  </description>
  <target name="run">
    <tstamp>
      <format property="tests.run.time" pattern="yyyy.MM.dd-HH.mm.ss"/>
    </tstamp>
      <!-- clean up some -->
    <delete dir="${tests.tmp.dir}"/>
      <!-- make all the necessary directories for this test run -->
    <mkdir dir="${tests.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"/>
    <delete file="${test.plan.default}"/>
    <for list="${test.plan.list}" param="item">
      <sequential>
      <echo file="${test.plan.default}" append="true">@{item}
</echo>
      </sequential>
    </for>
    <!-- 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>
    <!-- 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="/"/>
    <property name="tests.request" value="EXECUTE FILE ${tests.xml} JOBNAME OpenDS_Functional_Tests SCRIPTFILE ${tests.run.dir}/${tests.run.time}/config/${tests.config.file} WAIT CLEARLOGS"/>
    <echo>While the tests are running you may tail the job logs at</echo>
    <echo>${staf.install.dir}/logs/MACHINE/${host.name}</echo>
    <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="LD_LIBRARY_PATH" value="${staf.lib.dir}"/>
      <env key="STAFCONVDIR" value="${staf.install.dir}/codepage"/>
      <env key="STAFCODEPAGE" value="LATIN_1"/>
    </exec>
    <symlink link="${tests.run.dir}/latest" resource="${tests.run.time}" overwrite="true"/>
    <if>
      <available file="${tests.tmp.dir}/${product.name}/logs"/>
      <then>
        <echo>Saving server logs</echo>
        <copy todir="${tests.run.dir}/${tests.run.time}/server-logs">
          <fileset dir="${tests.tmp.dir}/${product.name}/logs"/>
        </copy>
      </then>
    </if>
    <echo>Saving Staf/Stax logs</echo>
    <copy todir="${tests.run.dir}/${tests.run.time}/staf-logs">
      <fileset dir="${staf.install.dir}/logs"/>
    </copy>
    <delete dir="${staf.install.dir}/logs"/>
    <echo>Saving report</echo>
    <copy todir="${tests.run.dir}/${tests.run.time}/report">
      <fileset dir="${tests.tmp.dir}">
        <include name="r*"/>
      </fileset>
    </copy>
    <delete file="${tests.tmp.dir}/percentage.properties"/>
  </target>
  <target name="configure">
    <condition property="already.customized" value="true" else="false">
      <available file="${test.plan.custom}" />
    </condition>
    <if>
      <equals arg1="${already.customized}" arg2="true" />
      <then>
        <input message="A previously customized test plan was detected. Do you want to change the list of suites to run?" validargs="y,n" defaultvalue="n" addproperty="prompt.do" />
      </then>
      <else>
        <echo>No previous customized test plan found.</echo>
        <property name="prompt.do" value="y" />
      </else>
    </if>
    <if>
      <equals arg1="${prompt.do}" arg2="y" />
      <then>
        <delete file="${test.plan.custom}" />
        <for param="item">
          <dirset dir="${tests.dir}/testcases"
                  includes="*">
            <type type="dir"/>
          </dirset>
          <sequential>
            <var name="test" unset="true"/>
            <var name="answer" unset="true"/>
            <basename property="test" file="@{item}"/>
            <input message="Do you want to execute ${test}?" validargs="y,n" defaultvalue="y" addproperty="answer"/>
            <if>
              <equals arg1="${answer}" arg2="y" />
              <then>
                <echo file="${test.plan.custom}" append="true">${test}
</echo>
              </then>
            </if>
          </sequential>
        </for>
      </then>
    </if>
  </target>
  <target name="send-mail-prepare">
    <condition property="test.successful">
      <available file="${tests.tmp.dir}/my-report.html"/>
    </condition>
    <condition property="email.send">
      <equals arg1="${email.enabled}" arg2="y"
              casesensitive="false" trim="true"/>
    </condition>
  </target>
  <target name="send-mail-get-percentage" depends="send-mail-prepare" if="test.successful">
    <echo>test report found.Proceeding...</echo>
    <delete file="${tests.tmp.dir}/percentage.properties"/>
    <copy file="${tests.tmp.dir}/my-report.html" tofile="${tests.tmp.dir}/percentage.properties">
      <filterchain>
        <linecontains>
          <contains value='font size="+2'/>
        </linecontains>
        <tokenfilter>
          <replaceregex pattern=".*font size=.+2..(.*\d+)%./font.*" replace="test.percentage=\1"/>
        </tokenfilter>
      </filterchain>
    </copy>
    <property file="${tests.tmp.dir}/percentage.properties"/>
    <echo>Test Success Rate: ${test.percentage}%</echo>
  </target>
  <target name="send-mail" if="email.send" depends="send-mail-get-percentage">
    <condition property="email.send.noauth">
      <or>
        <not>
          <isset property="email.server.user"/>
        </not>
        <not>
          <length string="${email.server.user}" when="greater"
                  trim="true" length="0"/>
        </not>
      </or>
    </condition>
    <condition property="email.file"
               value="${tests.tmp.dir}/my-report.html"
               else="staf-installer/failure.html">
      <available file="${tests.tmp.dir}/my-report.html"/>
    </condition>
    <condition property="email.subject"
               value="FT - Run - ${daily.date} - ${os.name} - ${os.arch} - ${test.percentage}%"
               else="FT - Failed -${daily.date} - ${os.name} - ${os.arch}">
      <available file="${tests.tmp.dir}/my-report.html"/>
    </condition>
    <antcall target="send-mail-noauth"/>
    <antcall target="send-mail-withauth"/>
  </target>
  <target name="send-mail-noauth" if="email.send.noauth">
    <mail from="${email.from}"
          tolist="${email.to}"
          subject="${email.subject}"
          mailhost="${email.server.host}"
          mailport="${email.server.port}"
          messagefile="${email.file}"
          messagemimetype="text/html" />
  </target>
  <target name="send-mail-withauth" unless="email.send.noauth">
    <mail from="${email.from}"
          tolist="${email.to}"
          subject="${email.subject}"
          mailhost="${email.server.host}"
          mailport="${email.server.port}"
          user="${email.server.user}"
          password="${email.server.pwd}"
          messagefile="${email.file}"
          messagemimetype="text/html" />
  </target>
  <target name="coverage-init">
    <path id="emma.lib">
      <pathelement location="${project.home}/ext/emma/lib/emma.jar"     />
      <pathelement location="${project.home}/ext/emma/lib/emma_ant.jar" />
    </path>
    <taskdef resource="emma_ant.properties" classpathref="emma.lib" />
  </target>
  <target name="coverage-on" depends="coverage-init">
    <property name="coverage.on" value="true"/>
  </target>
  <target name="coverage-instrument" if="coverage.on">
    <delete dir="${tests.tmp.dir}/coverage-instr" />
    <mkdir dir="${tests.tmp.dir}/coverage-instr" />
    <!-- unzip the original package in a temporary location to make the
         changes necessary so that the coverage tool is called
     -->
    <unzip src="${product.package}"
           dest="${tests.tmp.dir}/coverage-instr"/>
    <!-- Add emma in the package along with the other librairies
         this has the advantage of being automatically picked up by the scripts
    -->
    <copy file="${project.home}/ext/emma/lib/emma.jar"
          tofile="${tests.tmp.dir}/coverage-instr/${product.name}/lib/emma.jar"/>
    <!-- move the original product package to make room for the coverage
         enabled package
     -->
    <move file="${product.package}" tofile="${product.package}.nocov"/>
    <!-- intrument the OpenDS java archive to gather coverage -->
    <java classpath="${tests.tmp.dir}${file.separator}coverage-instr${file.separator}${product.name}${file.separator}lib${file.separator}emma.jar"
          classname="emma" fork="true">
      <jvmarg value="-Demma.metadata.out.file=${tests.tmp.dir}${file.separator}coverage-instr${file.separator}${product.name}${file.separator}coverage.em" />
      <arg value="instr" />
      <arg value="-m" />
      <arg value="overwrite" />
      <arg value="-ip" />
      <arg value="${tests.tmp.dir}${file.separator}coverage-instr${file.separator}${product.name}${file.separator}lib${file.separator}OpenDS.jar:${tests.tmp.dir}${file.separator}coverage-instr${file.separator}${product.name}${file.separator}lib${file.separator}extensions${file.separator}snmp-mib2605.jar" />
    </java>
    <echo>Writing properties file</echo>
    <echo file="${tests.tmp.dir}/coverage-instr/${product.name}/classes/emma.properties">coverage.out.file=${tests.tmp.dir}/emma.coverage
    </echo>
    <!-- Repackage the product with coverage enabled scripts -->
    <zip basedir="${tests.tmp.dir}/coverage-instr" destfile="${product.package}">
      <zipfileset dir="${tests.tmp.dir}/coverage-instr"
                  includes="${product.name}/setup,${product.name}/uninstall,${product.name}/upgrade,${product.name}/bin/*,${product.name}/lib/*.sh"
           filemode="755" dirmode="755" />
    </zip>
    <!-- <delete dir="${tests.tmp.dir}/coverage-instr"/> -->
  </target>
  <target name="coverage-report" if="coverage.on">
    <delete dir="${tests.tmp.dir}/coverage/all" />
    <mkdir dir="${tests.tmp.dir}/coverage/all" />
    <emma enabled="${coverage.on}" >
      <report >
        <infileset dir="${tests.tmp.dir}" includes="**/*.em,**/*.ec" />
        <sourcepath>
          <dirset dir="${project.home}" >
            <include name="src" />
          </dirset>
        </sourcepath>
        <html outfile="${tests.tmp.dir}/coverage/all/index.html"
              columns="name, method, line"
              sort="+line, +name"
              metrics="line:80"
        />
      </report>
    </emma>
  </target>
  <target name="restore-pkg" if="coverage.on">
    <delete file="${product.package}"/>
    <move file="${product.package}.nocov" tofile="${product.package}"/>
  </target>
  <target name="testwithcoverage" depends="coverage-on,coverage-instrument,restore-pkg,coverage-report"/>
<!-- Run tests section - bottom -->
</project>
opends/tests/staf-tests/shared/ant/usage.xml
New file
@@ -0,0 +1,66 @@
<!--
 ! 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
 !
 !
 !      Copyright 2008 Sun Microsystems, Inc.
 ! -->
<project name="usage">
  <description>
    Display usage.
  </description>
  <!-- Display usage -->
  <target name="usage"
          description="Gives a message that helps using this file">
    <echo>
      --general--
      usage                   : print this message
      properties              : print ant properties
      --dependencies--
      dependencies-download   : download the archives necessary to install staf
      dependencies-remove     : remove the archives previously downloaded
      --staf--
      staf-install            : install the staf
      staf-start              : start staf without services
      staf-controler-start    : start staf without services
      staf-remote-start       : start staf with all the services
      staf-stop               : stop staf
      staf-uninstall          : uninstall
      staf-status             : report if staf is installed and running
      staf-gui                : start the STAX gui
      staf-jvmlogs            : start the STAF jvm log viewer
      --tests--
      tests-configure         : configure the functional tests
      tests-func-configure    : configure the functional tests
      tests-stress-configure  : configure the stress tests
      tests-run               : run the functional tests
      tests-func-run          : run the functional tests
      tests-stress-run        : run the stress tests
    </echo>
  </target>
</project>
opends/tests/staf-tests/shared/ant/user.xml
New file
@@ -0,0 +1,184 @@
<!--
 ! 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
 !
 !
 !      Copyright 2008 Sun Microsystems, Inc.
 ! -->
<project name="user">
  <description>
    Configure user variables.
  </description>
  <target name="configure">
    <echo>* Framework configuration</echo>
    <input message="   Enter path to OpenDS archive:"
           defaultvalue="${opends.dir}"
           addproperty="opends.dir.input"/>
    <input message="   Enter OpenDS archive name:"
           defaultvalue="${opends.zip}"
           addproperty="opends.zip.input"/>
    <input message="   Enter path to logs directory:"
           defaultvalue="${logs.dir}"
           addproperty="logs.dir.input"/>
    <input message="   Enter path to repository directory:"
           defaultvalue="${repository.dir}"
           addproperty="repository.dir.input"/>
    <input message="   Use proxy?"
           defaultvalue="${proxy.enabled}"
           validargs="y,n"
           addproperty="proxy.enabled.input"/>
    <if>
      <equals arg1="${proxy.enabled.input}" arg2="y"/>
      <then>
        <input message="   Enter proxy host:"
               defaultvalue="${proxy.host}"
               addproperty="proxy.host.input"/>
        <input message="   Enter proxy port:"
               defaultvalue="${proxy.port}"
               addproperty="proxy.port.input"/>
        <input message="   Enter proxy user:"
               defaultvalue="${proxy.user}"
               addproperty="proxy.user.input"/>
        <input message="   Enter proxy password:"
               defaultvalue="${proxy.pass}"
               addproperty="proxy.pass.input"/>
      </then>
      <else>
        <property name="proxy.host.input" value="${proxy.host}"/>
        <property name="proxy.port.input" value="${proxy.port}"/>
        <property name="proxy.user.input" value="${proxy.user}"/>
        <property name="proxy.pass.input" value="${proxy.pass}"/>
      </else>
    </if>
    <echo>* STAF configuration</echo>
    <input message="   Enter STAF version:"
           defaultvalue="${staf.version}"
           addproperty="staf.version.input"/>
    <input message="   Enter STAX version:"
           defaultvalue="${stax.version}"
           addproperty="stax.version.input"/>
    <input message="   Enter Email service version:"
           defaultvalue="${email.version}"
           addproperty="email.version.input"/>
    <input message="   Enter Event service version:"
           defaultvalue="${event.version}"
           addproperty="event.version.input"/>
    <input message="   Enter EventManager service version:"
           defaultvalue="${eventmanager.version}"
           addproperty="eventmanager.version.input"/>
    <input message="   Enter HTTP service version:"
           defaultvalue="${http.version}"
           addproperty="http.version.input"/>
    <input message="   Enter Tomcat service version:"
           defaultvalue="${tomcat.version}"
           addproperty="tomcat.version.input"/>
    <input message="   Enter hostname:"
           defaultvalue="${host.name}"
           addproperty="host.name.input"/>
    <input message="   Enter STAF port:"
           defaultvalue="${staf.port}"
           addproperty="staf.port.input"/>
    <echo>* Tests configuration</echo>
    <input message="   Enter Java home path:"
           defaultvalue="${java.path}"
           addproperty="java.path.input"/>
    <input message="   Enter OpenDS ldap port:"
           defaultvalue="${opends.port.ldap}"
           addproperty="opends.port.ldap.input"/>
    <input message="   Enter OpenDS secure ldap port:"
           defaultvalue="${opends.port.ldaps}"
           addproperty="opends.port.ldaps.input"/>
    <input message="   Enter OpenDS jmx port:"
           defaultvalue="${opends.port.jmx}"
           addproperty="opends.port.jmx.input"/>
    <input message="   Enter OpenDS admin DN (also called root DN):"
           defaultvalue="${opends.admin.dn}"
           addproperty="opends.admin.dn.input"/>
    <input message="   Enter OpenDS admin password:"
           defaultvalue="${opends.admin.pwd}"
           addproperty="opends.admin.pwd.input"/>
    <input message="   Enter OpenDMK lib directory:"
           defaultvalue="${snmp.opendmk.lib.dir}"
           addproperty="snmp.opendmk.lib.dir.input"/>
    <input message="   Send report email?"
           defaultvalue="${email.enabled}"
           validargs="y,n"
           addproperty="email.enabled.input"/>
    <if>
      <equals arg1="${email.enabled.input}" arg2="y"/>
      <then>
        <input message="   Email will appear to be from:"
               defaultvalue="${email.from}"
               addproperty="email.from.input"/>
        <input message="   Send email to:"
               defaultvalue="${email.to}"
               addproperty="email.to.input"/>
        <input message="   Enter SMTP server host:"
               defaultvalue="${email.server.host}"
               addproperty="email.server.host.input"/>
        <input message="   Enter SMTP server port:"
               defaultvalue="${email.server.port}"
               addproperty="email.server.port.input"/>
        <input message="   Enter SMTP server user:"
               defaultvalue="${email.server.user}"
               addproperty="email.server.user.input"/>
        <input message="   Enter SMTP server password:"
               defaultvalue="${email.server.pwd}"
               addproperty="email.server.pwd.input"/>
      </then>
      <else>
        <property name="email.from.input" value="${email.from}"/>
        <property name="email.to.input" value="${email.to}"/>
        <property name="email.server.host.input" value="${email.server.host}"/>
        <property name="email.server.port.input" value="${email.server.port}"/>
        <property name="email.server.user.input" value="${email.server.user}"/>
        <property name="email.server.pwd.input" value="${email.server.pwd}"/>
      </else>
    </if>
    <propertyselector property="input.list"
                      delimiter=","
                      match="(.*)\.input"
                      select="\1"
                      casesensitive="false"/>
    <echo>Saving ...</echo>
    <echo file="${basedir}/user.properties"># User-defined values
# This file is generated by "build user-configure" command
    </echo>
    <for list="${input.list}" param="item">
      <sequential>
        <var name="val" value="${@{item}.input}"/>
        <echo file="${basedir}/user.properties" append="true">
@{item}=${val}</echo>
      </sequential>
    </for>
  </target>
  <target name="unconfigure">
    <delete file="${basedir}/user.properties"/>
  </target>
</project>
opends/tests/staf-tests/shared/ant/windows-x86-32.properties
File was deleted
opends/tests/staf-tests/shared/ant/windows-x86-64.properties
File was deleted
opends/tests/staf-tests/shared/ant/windows.properties
File was deleted
opends/tests/staf-tests/shared/staf/failure.html
File was deleted
opends/tests/staf-tests/shared/staf/replay.bat
File was deleted
opends/tests/staf-tests/shared/staf/replay.sh
File was deleted
opends/tests/staf-tests/shared/staf/staf-controler.cfg
File was renamed from opends/tests/staf-tests/shared/staf/functional-tests.cfg
@@ -40,7 +40,7 @@
# LOG SERVICE CONFIGURATION
SERVICE Log LIBRARY STAFLog \
  PARMS "Directory {STAF/Config/STAFRoot}/../logs"
  PARMS "Directory {STAF/Config/STAFRoot}/logs"
  
# ZIP SERVICE CONFIGURATION
SERVICE Zip LIBRARY STAFZip
opends/tests/staf-tests/shared/staf/staf-slave.cfg
File was renamed from opends/tests/staf-tests/shared/ant/SunOS.properties
@@ -21,4 +21,17 @@
# CDDL HEADER END
#
#
#      Copyright 2007-2008 Sun Microsystems, Inc.
#      Copyright 2008 Sun Microsystems, Inc.
# Turn on tracing of internal errors and deprecated options
trace enable tracepoints "error deprecated"
# Enable TCP/IP connections
interface tcp library STAFTCP option port=${staf.port}
# Set default local trust
trust machine local://local level 5
trust machine tcp://* level 5
# Add default service loader
serviceloader library STAFDSLS
opends/tests/staf-tests/shared/staf/stress-tests.cfg
File was deleted
opends/tests/staf-tests/shared/tests/config.py.stubs
@@ -27,12 +27,12 @@
TEST_JVM_STRING             = '${java.version}(${sun.arch.data.model} bits)'
STAF_LOCAL_HOSTNAME         = 'localhost'
STAF_REMOTE_HOSTNAME        = 'localhost'
TMPDIR                      = '${staf.tmp.dir}'
TMPDIR                      = '${tests.tmp.dir}'
PSWDFILE                    = '%s/password' % TMPDIR
OPENDSDIR                   = '${project.home}'
OPENDSNAME                  = '${product.name}'
ZIPNAME                     = '${product.name}.zip'
ZIPPATH                     = '${product.package.dir}'
ZIPPATH                     = '${opends.dir}'
TESTS_ROOT                  = '%s/tests/staf-tests' % OPENDSDIR
TESTS_DIR                   = '%s/functional-tests' % TESTS_ROOT
TESTS_SHARED_DIR            = '%s/shared' % TESTS_DIR
@@ -47,7 +47,7 @@
DIRECTORY_INSTANCE_SSL_PORT = '${opends.port.ldaps}'
DIRECTORY_INSTANCE_SFX      = 'dc=com'
DIRECTORY_INSTANCE_BE       = 'userRoot'
JAVA_HOME                   = '${java.home}'
JAVA_HOME                   = '${java.path}'
LOGS_ROOT                   = '%s' % TMPDIR
LOGS_URI                    = ''
SEND_MAIL_AFTER_TEST_RUN    = '${staf.email.send}'
opends/tests/staf-tests/shared/tests/runStressTests.xml
File was deleted
opends/tests/staf-tests/shared/tests/runTestJob.xml
@@ -81,7 +81,7 @@
      </script>
      
      <job name="'Job: %s %s' % (STAF_REMOTE_HOSTNAME,ServerOsString) " monitor="1" clearlogs="'Enabled'" logtcstartstop="'Enabled'">
        <job-file>'%s/shared/tests/runFuncTests.xml' % TESTS_ROOT</job-file>
        <job-file>'%s/shared/tests/runTests.xml' % TESTS_ROOT</job-file>
        <job-scriptfiles machine="STAF_LOCAL_HOSTNAME"> STAXJobScriptFiles </job-scriptfiles>
        <job-action>
          <log>'Started sub-job %s on %s, %s' % (STAXSubJobID,STAF_REMOTE_HOSTNAME,ServerOsString )</log>
opends/tests/staf-tests/shared/tests/runTests.xml
opends/tests/staf-tests/stress-tests/config/config.py
File was deleted