Issue #1276 - v1.0 of multiple WA deployment support

Change-Id: I2468458fdf690f05841124300c166d217b81f6b5

Former-commit-id: 7ecbbdfdbb [formerly cae04523db] [formerly 9263a0ac57] [formerly 4fd43ee45c [formerly 9263a0ac57 [formerly 2d35b221dca2248da68ae1d11f20b40dfb11052c]]]
Former-commit-id: 4fd43ee45c
Former-commit-id: 16e7831852267916f15c8ff6963b429fd72ee1c5 [formerly 2c14ea1bb7]
Former-commit-id: d928e2f257
This commit is contained in:
Bryan Kowal 2012-11-06 16:13:26 -06:00
parent 977450cdfb
commit 4f02bbc98e
3 changed files with 155 additions and 102 deletions

View file

@ -4,7 +4,7 @@
<property file="${basedir}/edex/common.properties" />
<property file="${basedir}/edex/developer.properties" />
<condition property="wa.enabled">
<not><equals arg1="${wa.root.directory}" arg2="" /></not>
<not><equals arg1="${wa.to.deploy}" arg2="" /></not>
</condition>
<!-- Determine where we are. -->
@ -52,20 +52,26 @@
</then>
</if>
<!-- add the associated wa directory if it exists. -->
<if><isset property="wa.enabled" />
<!-- Loop through the WA directories, if they exist. -->
<if>
<isset property="wa.enabled" />
<then>
<var name="wa.base.directory"
value="${wa.root.directory}/${variable.name}" />
<for list="${wa.to.deploy}" param="wa"
delimiter="${path.separator}">
<sequential>
<var name="wa.base.directory"
value="@{wa}/${variable.name}" />
<if>
<available file="${wa.base.directory}"
type="dir" />
<then>
<var name="basedirectories"
value="${wa.base.directory};${basedirectories}" />
</then>
</if>
<if>
<available file="${wa.base.directory}"
type="dir" />
<then>
<var name="basedirectories"
value="${wa.base.directory};${basedirectories}" />
</then>
</if>
</sequential>
</for>
</then>
</if>
</sequential>

View file

@ -25,7 +25,48 @@
</then>
</if>
<!-- deploy edex plugins -->
<antcall target="deploy.feature" />
<!-- which feature do we want to deploy? -->
<if>
<isset property="wa.enabled" />
<then>
<!--
Find the feature associated with
Work Assignments.
-->
<var name="feature.to.find"
value="${wa.edex.feature}" />
</then>
<else>
<!--
Find the standard AWIPS II
Baseline feature.
-->
<var name="feature.to.find"
value="${edex.feature}" />
</else>
</if>
<var name="feature" value="" />
<!--
find the feature file: we may deploy multiple features
if multiple Work Assignment directories have been
specified.
-->
<for list="${basedirectories}" param="directory"
delimiter=";">
<sequential>
<if>
<available file="@{directory}/${feature.to.find}" />
<then>
<var name="feature"
value="@{directory}/${feature.to.find}" />
<deploy.feature
feature="${feature}" />
</then>
</if>
</sequential>
</for>
<!-- optionally: deploy raytheon python -->
<if>
<equals arg1="${deploy.python}" arg2="true" />
@ -43,98 +84,101 @@
</then>
</if>
<!--
Search for WA-specific Non-Spring
Web Applications to deploy.
-->
<if>
<and>
<isset property="wa.enabled" />
<!-- TODO: A way to make this pathing lookup better? -->
<available file="${wa.root.directory}/edexOsgi/build.edex/wa-build.xml" type="file" />
</and>
<then>
<ant antfile="${wa.root.directory}/edexOsgi/build.edex/wa-build.xml" inheritall="true" inheritrefs="true"/>
<isset property="wa.enabled" />
<then>
<for list="${wa.to.deploy}" param="wa"
delimiter="${path.separator}">
<sequential>
<if>
<available file="@{wa}/edexOsgi/build.edex/wa-build.xml"
type="file" />
<then>
<ant
antfile="@{wa}/edexOsgi/build.edex/wa-build.xml"
inheritall="true" inheritrefs="true"/>
</then>
</if>
</sequential>
</for>
</then>
</if>
</target>
<!-- public -->
<!-- Targets specific to the developer deployment. -->
<target name="deploy.feature">
<!-- prepare to run includegen -->
<var name="includes.directory" value="${basedir}/tmp/includes" />
<if>
<available file="${includes.directory}" type="dir" />
<then>
<delete verbose="true" includeemptydirs="true">
<fileset dir="${includes.directory}"
includes="*/**" />
</delete>
</then>
</if>
<mkdir dir="${includes.directory}" />
<macrodef name="deploy.feature">
<attribute name="feature" />
<var name="feature" value="" />
<!-- find the feature file -->
<for list="${basedirectories}" param="directory"
delimiter=";">
<sequential>
<if>
<available file="@{directory}/${edex.feature}" />
<then>
<var name="feature"
value="@{directory}/${edex.feature}" />
</then>
</if>
</sequential>
</for>
<!-- run includegen -->
<echo message="Generating deployment list for feature: ${edex.feature}" />
<!--
TODO: need to update the includegen ant task to recognize
plugin architecture restrictions. Plugins that should only
be deployed for a 64-bit system should not be deployed for
a 32-bit system, etc.
-->
<includegen providerfilter="${includegen.filter}"
basedirectories="${basedirectories}"
featurefile="${feature}"
cotsout="${includes.directory}/cots.includes"
plugsout="${includes.directory}/plugins.includes"
coreout="${includes.directory}/core.includes" />
<sequential>
<!-- prepare to run includegen -->
<var name="includes.directory" value="${basedir}/tmp/includes" />
<if>
<available file="${includes.directory}" type="dir" />
<then>
<delete verbose="true" includeemptydirs="true">
<fileset dir="${includes.directory}"
includes="*/**" />
</delete>
</then>
</if>
<mkdir dir="${includes.directory}" />
<var name="destination.directory"
value="${edex.root.directory}/lib/plugins" />
<mkdir dir="${destination.directory}" />
<processPlugins
includes.file="${includes.directory}/plugins.includes"
plugin.type="plugins"
plugin.directories="${basedirectories}"
destination.directory="${destination.directory}" />
<processPlugins
includes.file="${includes.directory}/core.includes"
plugin.type="core"
plugin.directories="${basedirectories}"
destination.directory="${destination.directory}" />
<!-- run includegen -->
<echo message="Generating deployment list for feature: ${feature}" />
<!--
TODO: need to update the includegen ant task to recognize
plugin architecture restrictions. Plugins that should only
be deployed for a 64-bit system should not be deployed for
a 32-bit system, etc.
-->
<includegen providerfilter="${includegen.filter}"
basedirectories="${basedirectories}"
featurefile="${feature}"
cotsout="${includes.directory}/cots.includes"
plugsout="${includes.directory}/plugins.includes"
coreout="${includes.directory}/core.includes" />
<var name="destination.directory"
value="${edex.root.directory}/lib/dependencies" />
<mkdir dir="${destination.directory}" />
<processPlugins
includes.file="${includes.directory}/cots.includes"
plugin.type="cots"
plugin.directories="${basedirectories}"
destination.directory="${destination.directory}" />
<var name="destination.directory"
value="${edex.root.directory}/lib/plugins" />
<mkdir dir="${destination.directory}" />
<processPlugins
includes.file="${includes.directory}/plugins.includes"
plugin.type="plugins"
plugin.directories="${basedirectories}"
destination.directory="${destination.directory}" />
<processPlugins
includes.file="${includes.directory}/core.includes"
plugin.type="core"
plugin.directories="${basedirectories}"
destination.directory="${destination.directory}" />
<!-- cleanup the temporary directories -->
<if>
<available file="${basedir}/tmp"
type="dir" />
<then>
<delete includeemptydirs="true">
<fileset dir="${basedir}"
includes="tmp/**" />
</delete>
</then>
</if>
</target>
<var name="destination.directory"
value="${edex.root.directory}/lib/dependencies" />
<mkdir dir="${destination.directory}" />
<processPlugins
includes.file="${includes.directory}/cots.includes"
plugin.type="cots"
plugin.directories="${basedirectories}"
destination.directory="${destination.directory}" />
<!-- cleanup the temporary directories -->
<if>
<available file="${basedir}/tmp"
type="dir" />
<then>
<delete includeemptydirs="true">
<fileset dir="${basedir}"
includes="tmp/**" />
</delete>
</then>
</if>
</sequential>
</macrodef>
<target name="deploy.python">
<property name="site-package.directory"

View file

@ -1,12 +1,9 @@
#-----------------------------------------------------------------------------#
# developer configurable properties.
# the root directory of the work assignment repository when one
# exists. TODO: is this the only way???
wa.root.directory=
# the edex feature to deploy; when working a work assignment, this
# will occasionally become: com.raytheon.edex.wa.feature/feature.xml
edex.feature=com.raytheon.edex.feature.uframe/feature.xml
# the root directories of the work assignment(s) to deploy.
# delimited by colon (:)
wa.to.deploy=
# deploy the raytheon ufpy, dynamicserialize, and pypies site-packages
deploy.python=true
@ -32,4 +29,10 @@ gfesuite.project=com.raytheon.uf.tools.gfesuite.servicebackup
# static properties dependent on the current versions of the foss libraries
# we are utilizing - should only be modified by CM.
python.version.dir=python2.7
python.version.dir=python2.7
# the Common Baseline EDEX feature
edex.feature=com.raytheon.edex.feature.uframe/feature.xml
# the name of the Work Assignment EDEX feature -
# this feature must exist in a Work Assignment to deploy it.
wa.edex.feature=com.raytheon.edex.wa.feature/feature.xml