From 38bdc0d97be50d62fc7f18561480685808a50217 Mon Sep 17 00:00:00 2001
From: al_xipe <al_xipe@localhost>
Date: Wed, 14 Feb 2007 06:38:11 +0000
Subject: [PATCH] refactoring in the installer to make it easier to maintain
---
opendj-sdk/opends/tests/installer.xml | 350 +++++++++++++++++++++++++--------------------------------
1 files changed, 153 insertions(+), 197 deletions(-)
diff --git a/opendj-sdk/opends/tests/installer.xml b/opendj-sdk/opends/tests/installer.xml
index dc3df2d..2efb971 100644
--- a/opendj-sdk/opends/tests/installer.xml
+++ b/opendj-sdk/opends/tests/installer.xml
@@ -45,7 +45,15 @@
<!-- Define default values for mandatory properties in case the
property files would not be found
-->
-
+ <condition property="script.ext" value=".bat">
+ <os family="windows"/>
+ </condition>
+ <condition property="script.ext" value="">
+ <not>
+ <isset property="script.ext"/>
+ </not>
+ </condition>
+ <!-- Usage section - top -->
<target name="usage">
<echo>Installer usage:
status : reports if product is installed and/or running
@@ -61,209 +69,157 @@
uninstall : uninstall the product if it is installed
</echo>
</target>
+ <!-- Usage section - bottom -->
- <!-- Installation -->
- <target name="install.do"
- description="deploy the product bits"
- unless="product.installed" >
- <echo message="Installing ${product.name} ${product.version}..." />
- <property name="config.file"
- location="${full.install.dir}/config/config.ldif"/>
- <mkdir dir="${install.dir}"/>
- <unzip dest="${install.dir}">
- <fileset dir="${project.home}/build/package">
- <include name="*.zip"/>
- </fileset>
- </unzip>
- <chmod perm="755">
- <fileset dir="${full.install.dir}/bin">
- <exclude name="*.bat"/>
- </fileset>
- </chmod>
- </target>
-
- <target name="install" >
- <available file="${full.install.dir}"
- type="dir"
- property="product.installed" />
- <antcall target="install.do" />
- </target>
+ <!-- Installation section - top -->
+ <target name="install-do"
+ description="deploy the product bits"
+ unless="product.installed" >
+ <echo message="Installing ${product.name} ${product.version}..." />
+ <property name="config.file"
+ location="${full.install.dir}/config/config.ldif"/>
+ <mkdir dir="${install.dir}"/>
+ <unzip dest="${install.dir}">
+ <fileset dir="${project.home}/build/package">
+ <include name="*.zip"/>
+ </fileset>
+ </unzip>
+ <chmod perm="755">
+ <fileset dir="${full.install.dir}/bin">
+ <exclude name="*.bat"/>
+ </fileset>
+ </chmod>
+ </target>
+
+ <target name="install" depends="status-do,install-do"/>
<!-- end of install related targets -->
- <!-- Uninstallation -->
- <target name="uninstall.do"
- description="Uninstall the product"
- if="product.installed" >
- <echo message="Uninstalling ${product.name} ${product.version}..." />
- <delete dir="${install.dir}" />
- </target>
- <target name="uninstall">
- <available file="${full.install.dir}"
- type="dir"
- property="product.installed" />
- <antcall target="uninstall.do" />
- </target>
- <!-- end of uninstall related targets -->
+ <!-- Uninstallation section - top -->
+ <target name="uninstall-do"
+ description="Uninstall the product"
+ if="product.installed">
+ <echo message="Uninstalling ${product.name} ${product.version}..." />
+ <delete dir="${install.dir}" />
+ </target>
+ <target name="uninstall" depends="status-do,stop-do,uninstall-do"/>
+ <!-- Uninstallation section - bottom -->
- <!-- configuration -->
+ <!-- Configuration secton - top -->
+ <target name="configure-do"
+ description="configures product to listen on the right port number"
+ if="product.installed" >
+ <echo message="basedir=[${basedir}]" />
+ <echo message="configuring ${product.name} ${product.version}..." />
+ <java fork="true" classname="org.opends.server.tools.ConfigureDS">
+ <!-- building the classpath to run the configurator -->
+ <classpath>
+ <fileset dir="${full.install.dir}/lib">
+ <include name="*.jar"/>
+ </fileset>
+ </classpath>
+
+ <!-- provide the arguments here -->
+ <jvmarg value="-Dorg.opends.server.scriptName=configure-ds"/>
+ <arg value="--configClass"/>
+ <arg value="org.opends.server.extensions.ConfigFileHandler"/>
+ <arg value="--configFile"/>
+ <arg value="${full.install.dir}/config/config.ldif"/>
+ <arg line="-p ${port.ldap}"/>
+ <arg value="-D"/>
+ <arg value="${bind.dn}"/>
+ <arg value="-w"/>
+ <arg value="${bind.pwd}"/>
+ </java>
+ </target>
+
+ <target name="configure" depends="status-do,configure-do"/>
+ <!-- Configuration section - bottom -->
+
+ <!-- Start section - top -->
+ <target name="start-do"
+ description="start the product"
+ if="product.installed"
+ unless="product.running" >
+ <echo message="Starting ${product.name} ${product.version}... on ${os.name}" />
+ <exec
+ executable="${full.install.dir}${file.separator}bin${file.separator}start-ds${script.ext}"
+ spawn="true"/>
+ </target>
+ <target name="start" depends="status-do,start-do"/>
+ <!-- Start section - bottom -->
-
- <target name="configure.do"
- description="configures product to listen on the right port number"
- if="product.installed" >
- <echo message="basedir=[${basedir}]" />
- <echo message="configuring ${product.name} ${product.version}..." />
- <java fork="true" classname="org.opends.server.tools.ConfigureDS">
- <!-- building the classpath to run the configurator -->
- <classpath>
- <fileset dir="${full.install.dir}/lib">
- <include name="*.jar"/>
- </fileset>
- </classpath>
+ <!-- Stop section - top -->
+ <target name="stop.force"
+ description="stop the server">
+ <echo message="Stopping ${product.name} ${product.version}..." />
+ <exec
+ executable="${full.install.dir}${file.separator}bin${file.separator}stop-ds${script.ext}"
+ spawn="true">
+ <arg line="-h ${host.name}"/>
+ <arg line="-p ${port.ldap}"/>
+ <arg line="-w ${bind.pwd}" />
+ <arg value="-D" />
+ <arg value="${bind.dn}" />
+ </exec>
+ </target>
+
+ <target name="stop-do" if="product.running">
+ <antcall target="stop.force" />
+ </target>
+
+ <target name="stop" depends="status-do,stop-do"/>
+
+ <target name="sleep" if="product.running">
+ <echo message="Give the server some time to shut down and release locks..." />
+ <sleep seconds="10" />
+ </target>
+ <target name="stop.sleep" depends="stop,sleep"/>
+ <!-- Stop section - bottom -->
+
+ <!-- Status section - top -->
+ <target name="status-do" description="gather status">
+ <available file="${full.install.dir}"
+ type="dir"
+ property="product.installed" />
+ <condition property="product.running">
+ <socket port="${port.ldap}" server="${host.name}"/>
+ </condition>
+ </target>
+ <target name="is-product-running?" if="product.running">
+ <echo message="${product.name} is listening on port [${port.ldap}]"/>
+ </target>
+ <target name="is-product-not-running?" unless="product.running">
+ <echo message="${product.name} is NOT running"/>
+ </target>
+ <target name="is-product-installed?" if="product.installed">
+ <echo message="Found ${product.name} installed in [${full.install.dir}]" />
+ <antcall target="is-product-running?"/>
+ <antcall target="is-product-not-running?"/>
+ </target>
+ <target name="is-product-not-installed?" unless="product.installed">
+ <echo message="Could not find ${product.name} installation." />
+ </target>
+ <!-- end of installation status -->
- <!-- provide the arguments here -->
- <jvmarg value="-Dorg.opends.server.scriptName=configure-ds"/>
- <arg value="--configClass"/>
- <arg value="org.opends.server.extensions.ConfigFileHandler"/>
- <arg value="--configFile"/>
- <arg value="${full.install.dir}/config/config.ldif"/>
- <arg line="-p ${port.ldap}"/>
- <arg value="-D"/>
- <arg value="${bind.dn}"/>
- <arg value="-w"/>
- <arg value="${bind.pwd}"/>
- </java>
- </target>
-
- <target name="configure">
- <available file="${full.install.dir}"
- type="dir"
- property="product.installed" />
- <antcall target="configure.do" />
- </target>
- <!-- end of config related targets -->
-
- <!-- start -->
- <target name="start.do"
- description="start the product"
- if="product.installed"
- unless="product.running" >
- <echo message="Starting ${product.name} ${product.version}... on ${os.name}" />
- <exec
- os="${windows.list}"
- executable="${full.install.dir}\bin\start-ds.bat"
- spawn="true" />
- <exec
- os="${unix.list}"
- executable="${full.install.dir}/bin/start-ds"
- spawn="true" />
- </target>
- <target name="start">
- <available file="${full.install.dir}"
- type="dir"
- property="product.installed" />
- <condition property="product.running">
- <socket port="${port.ldap}" server="${host.name}"/>
- </condition>
- <antcall target="start.do" />
- </target>
- <!-- end of start related targets -->
-
- <!-- stop -->
- <target name="stop.force"
- description="stop the server">
- <echo message="Stopping ${product.name} ${product.version}..." />
- <exec
- os="${windows.list}"
- executable="${full.install.dir}\bin\stop-ds.bat"
- spawn="true">
- <arg line="-h ${host.name}"/>
- <arg line="-p ${port.ldap}"/>
- <arg line="-w ${bind.pwd}" />
- <arg value="-D" />
- <arg value="${bind.dn}" />
- </exec>
- <exec
- os="${unix.list}"
- executable="${full.install.dir}/bin/stop-ds"
- spawn="true" >
- <arg line="-h ${host.name}"/>
- <arg line="-p ${port.ldap}"/>
- <arg line="-w ${bind.pwd}" />
- <arg value="-D" />
- <arg value="${bind.dn}" />
- </exec>
- </target>
- <target name="stop.do" if="product.running">
- <antcall target="stop.force" />
- </target>
- <target name="stop" >
- <condition property="product.running">
- <socket port="${port.ldap}" server="${host.name}"/>
- </condition>
- <antcall target="stop.do" />
- </target>
-
- <target name="sleep" if="product.running">
- <echo message="Give the server some time to shut down and release locks..." />
- <sleep seconds="10" />
- </target>
- <target name="stop.sleep" >
- <condition property="product.running">
- <socket port="${port.ldap}" server="${host.name}"/>
- </condition>
- <antcall target="stop.do" />
- <antcall target="sleep" />
- </target>
-
- <!-- end of stop related targets -->
-
- <!-- status -->
- <!-- Installation status -->
- <target name="is-product-installed?" if="product.installed">
- <echo message="Found ${product.name} installed in [${full.install.dir}]" />
- </target>
- <target name="is-product-not-installed?" unless="product.installed">
- <echo message="Could not find ${product.name} installation." />
- </target>
- <!-- end of installation status -->
-
- <!-- Running status -->
- <target name="is-product-running?" if="product.running">
- <echo message="${product.name} is listening on port [${port.ldap}]"/>
- </target>
- <target name="is-product-not-running?" unless="product.running">
- <echo message="${product.name} is NOT running"/>
- </target>
- <!-- end of running status -->
- <target name="status">
- <available file="${full.install.dir}"
- type="dir"
- property="product.installed" />
- <condition property="product.running">
- <socket port="${port.ldap}" server="${host.name}"/>
- </condition>
- <antcall target="is-product-installed?" />
- <antcall target="is-product-not-installed?" />
- <antcall target="is-product-running?" />
- <antcall target="is-product-not-running?" />
- </target>
- <!-- end of status related tasks -->
+ <!-- Running status -->
+ <target name="status" depends="status-do,is-product-installed?,is-product-not-installed?"/>
+ <!-- Status section - bottom -->
<!-- macros - chained operations -->
- <target name="bootstrap">
- <echo message="Bootstrap: wipe the plate clean in case there is a previous install"/>
- <antcall target="wipeout" />
- <echo message="Bootstrap: install the product" />
- <antcall target="install" />
- <antcall target="configure" />
- <antcall target="start" />
- </target>
-
- <target name="wipeout">
- <echo message="Wipeout: removing product" />
- <antcall target="stop.sleep" />
- <antcall target="uninstall" />
- </target>
+ <target name="bootstrap">
+ <echo message="Bootstrap: wipe the plate clean in case there is a previous install"/>
+ <antcall target="wipeout" />
+
+ <echo message="Bootstrap: install the product" />
+ <antcall target="install" />
+ <antcall target="configure" />
+ <antcall target="start" />
+ </target>
+
+ <target name="wipeout" if="product.installed" depends="status-do">
+ <echo message="Wipeout: removing product" />
+ <antcall target="stop.sleep" />
+ <antcall target="uninstall" />
+ </target>
<!-- end of macros related targets-->
</project>
--
Gitblit v1.10.0