<project name="Build specific targets and properties" default="noDefault">

        <!-- ===================================================================== -->
        <!-- Run a given ${target} on all elements being built -->
        <!-- Add on <ant> task for each top level element being built. -->
        <!-- ===================================================================== -->
        <property name="allElementsFile" value="${builder}/allElements.xml"/>
        <import file="${allElementsFile}" />
        <target name="allElements">
                <antcall target="allElementsDelegator" />
        </target>

        <!-- ===================================================================== -->
        <!-- ===================================================================== -->
        <target name="getBaseComponents" depends="checkLocalBase" unless="skipBase">
                <get src="${eclipseBaseURL}" dest="${buildDirectory}/../temp-base.zip" />
                <unzip dest="${base}" overwrite="true" src="${buildDirectory}/../temp-base.zip" />
        </target>

        <target name="checkLocalBase">
                <available file="${base}" property="skipBase" />
        </target>

        <!-- ===================================================================== -->
        <!-- Check out map files from correct repository -->
        <!-- Replace values for mapsCheckoutTag as desired. -->
        <!-- ===================================================================== -->
        <target name="getMapFiles" depends="checkLocalMaps" unless="skipMaps">

        </target>

        <target name="checkLocalMaps">

        </target>

        <target name="tagMapFiles" if="tagMaps">
        </target>

        <!-- ===================================================================== -->

        <target name="clean" unless="noclean">
                <antcall target="allElements">
                        <param name="target" value="cleanElement" />
                </antcall>
        </target>

        <target name="gatherLogs">
                <mkdir dir="${buildDirectory}/${buildLabel}/compilelogs" />
                <antcall target="allElements">
                        <param name="target" value="gatherLogs" />
                </antcall>
                <unzip dest="${buildDirectory}/${buildLabel}/compilelogs" overwrite="true">
                        <fileset dir="${buildDirectory}/features">
                                <include name="**/*.log.zip" />
                        </fileset>
                </unzip>
        </target>

        <!-- ===================================================================== -->
        <!-- Steps to do before setup -->
        <!-- ===================================================================== -->
        <target name="preSetup">
        </target>

        <!-- ===================================================================== -->
        <!-- Steps to do after setup but before starting the build proper -->
        <!-- ===================================================================== -->
        <target name="postSetup">           
        	<antcall target="getBaseComponents" />
        </target>

        <!-- ===================================================================== -->
        <!-- Steps to do before fetching the build elements -->
        <!-- ===================================================================== -->
        <target name="preFetch">
        </target>

        <!-- ===================================================================== -->
        <!-- Steps to do after fetching the build elements -->
        <!-- ===================================================================== -->
        <target name="postFetch">
        </target>

        <!-- ===================================================================== -->
        <!-- Steps to do before generating the build scripts. -->
        <!-- ===================================================================== -->
        <target name="preGenerate">
        </target>

        <!-- ===================================================================== -->
        <!-- Steps to do after generating the build scripts. -->
        <!-- ===================================================================== -->
        <target name="postGenerate">
                <antcall target="clean" />
        </target>

        <!-- ===================================================================== -->
        <!-- Steps to do before running the build.xmls for the elements being built. -->
        <!-- ===================================================================== -->
        <target name="preProcess">
        </target>

        <!-- ===================================================================== -->
        <!-- Steps to do after running the build.xmls for the elements being built. -->
        <!-- ===================================================================== -->
        <target name="postProcess">
        </target>

        <!-- ===================================================================== -->
        <!-- Steps to do before running assemble. -->
        <!-- ===================================================================== -->
        <target name="preAssemble">
        </target>

        <!-- ===================================================================== -->
        <!-- Steps to do after  running assemble. -->
        <!-- ===================================================================== -->
        <target name="postAssemble">
        </target>


        <!-- ===================================================================== -->
        <!-- Steps to do before running package. -->
        <!-- ===================================================================== -->
        <target name="prePackage">
        </target>

        <!-- ===================================================================== -->
        <!-- Steps to do after  running package. -->
        <!-- ===================================================================== -->
        <target name="postPackage">
        </target>

        <!-- ===================================================================== -->
        <!-- Steps to do after the build is done. -->
        <!-- ===================================================================== -->
        <target name="postBuild">
        	<taskdef resource="net/sf/antcontrib/antlib.xml" 
        		classpath="${builder}/../lib/ant/ant-contrib-1.0b3.jar" /> 	
        	
        	<property file="${builder}/common.properties" />
        	<property name="build.output.directory"
        		value="${buildDirectory}/tmp/edex" />
        	
        	<mkdir dir="${builder}/postBuild/${edex.root.directory}/data" />
        	<copy todir="${builder}/postBuild/${edex.root.directory}/data">
        		<fileset dir="${build.output.directory}/data">
        			<include name="utility/**" />
        		</fileset>
        	</copy>
        	
        	<mkdir dir="${builder}/postBuild/${edex.root.directory}/conf" />
        	<copy todir="${builder}/postBuild/${edex.root.directory}/conf">
        		<fileset dir="${build.output.directory}/conf">
        			<include name="resources/**" />
        		</fileset>
        	</copy>
        	
        	<!-- special rule for cots -->
        	<if>
        		<not>
        			<equals arg1="${topLevelElementId}" 
        			arg2="com.raytheon.uf.edex.cots.feature" />
        		</not>
        		<then>
        			<mkdir dir="${builder}/postBuild/${edex.root.directory}/lib" />
            		<copy todir="${builder}/postBuild/${edex.root.directory}/lib">
            			<fileset dir="${build.output.directory}">
                			<include name="plugins/**" />
                		</fileset>
					</copy>
        			
            	 	<shellscript shell="bash"
            	 	dir="${builder}/postBuild/${edex.root.directory}/lib">
            	 		cd plugins
            	 		for directory in `find -type d -maxdepth 1`; 
            	 		do
            	 			if [ ${directory} != "." ]; then
            	 				cd ${directory}
            	 				/awips2/java/bin/jar cmf \
            	 					META-INF/MANIFEST.MF \
            	 					../${directory}.jar \
            	 					*
            	 				cd ..
            	 				rm -rf ${directory}
            	 			fi
            	 		done
            	 	</shellscript>
        	
        			<move todir="${builder}/postBuild/${edex.root.directory}/lib">
        				<fileset dir="${builder}/postBuild/${edex.root.directory}/lib">
        					<include name="**/*.jar" />
        				</fileset>
        				<mapper type="regexp" from="^(.*)_(.*).jar" to="\1.jar" />
        			</move>
        		</then>
        	</if>
        	
        	<!-- copy the dependency stash -->
			<mkdir
				dir="${builder}/postBuild/${edex.root.directory}/lib/dependencies" />
        	<copy todir="${builder}/postBuild/${edex.root.directory}/lib/dependencies">
        		<fileset dir="${builder}/dependencies-stash">
            		<include name="*/**" />
            	</fileset>
			</copy>
        	<delete includeemptydirs="true">
        		<fileset dir="${builder}"
        			includes="dependencies-stash/**" />
        	</delete>
        	
        	<!-- manipulate the topLevelElementId - the feature -->
        	<propertyregex property="edex.component"
        		override="true"
        		input="${topLevelElementId}"
        		regexp="\."
        		replace="-" />
            <propertyregex property="edex.component"
            	override="true"
            	input="${edex.component}"
            	regexp="com-raytheon-uf-(.+)-feature"
            	select="\1" />
        	
        	<!-- Create the distribution directory. -->
        	<mkdir dir="${builder}/dist" />
        	<zip destfile="${builder}/dist/${edex.component}.zip"
        		basedir="${builder}/postBuild"
        		includes="*/**">
        	</zip>
        	
        	<delete includeemptydirs="true">
				<fileset dir="${build.output.directory}">
	    			<include name="**/**"/>
				</fileset>
			</delete>
        	
            <delete includeemptydirs="true">
    			<fileset dir="${builder}/postBuild">
    	    		<include name="**/**"/>
    			</fileset>
    		</delete>

        </target>

        <!-- ===================================================================== -->

        <!-- Steps to do to test the build results -->

        <!-- ===================================================================== -->

        <target name="test">
        </target>



        <target name="checkJUnitTestResults">
        </target>

        <!-- ===================================================================== -->
        <!-- Steps to do to publish the build results -->
        <!-- ===================================================================== -->
        <target name="publish">
        </target>

        <!-- ===================================================================== -->
        <!-- Default target                                                        -->
        <!-- ===================================================================== -->
        <target name="noDefault">
                <echo message="You must specify a target when invoking this file" />
        </target>

</project>