<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at
  
    http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
-->
<project name="bldcommon" 
         xmlns:ivy="antlib:org.apache.ivy.ant">
    
    <dirname property="common.dir" file="${ant.file.bldcommon}"/>
    <property file="${common.dir}/sigil-defaults.properties" prefix="default."/>
    <property file="${common.dir}/build.properties"/>

    <!-- =====================================================
         stuff intended to be over-ridden is prefixed with my.
         =====================================================-->

    <fileset id="my.projects" dir="${basedir}">
      <include name="**/${build_xml}"/>
    </fileset>

    <path id="my.classpath">
        <fileset dir="${basedir}" includes="lib/*.jar"/>
    </path>

    <path id="javac.classpath">
	<path refid="my.classpath"/>
        <fileset dir="${deps.dir}" />
    </path>

    <path id="sigil.classpath">
        <path refid="javac.classpath" />
        <path location="${classes.dir}" />
    </path>

    <!-- ================================= 
          target: load-ivy
         ================================= -->
    <target name="load-ivy" depends="ident,ivy-taskdefs">
	<ivy:settings file="${common.dir}/ivysettings.xml" />
    </target>

    <!-- ================================= 
          target: ivy-taskdefs
         ================================= -->
    <target name="ivy-taskdefs" unless="ivy.loaded">
    	<property name="ivy.loaded" value="true"/>
		<echo message="Loading Ivy ... common.dir=${common.dir}"/>
	
	    	<taskdef resource="org/apache/ivy/ant/antlib.xml"
	    	         uri="antlib:org.apache.ivy.ant"
			 classpath="${ivy.jar}:${sigil-ivy-plugin.jar}"/>
	
		<taskdef name="sigil.bundle"
			 classname="org.apache.felix.sigil.ant.BundleTask"
			 classpath="${sigil-ivy-plugin.jar}"/>
    	
    	<taskdef name="sigil.bundle.info"
    		 classname="org.apache.felix.sigil.ant.BundleInfoTask"
    		 classpath="${sigil-ivy-plugin.jar}"/>
    </target>    
	

    <!-- ================================= 
          target: build (default target)
         ================================= -->
    <target name="build" depends="publish-local, composites" />

    <target name="ident">
      <echo message="${ant.project.name}"/>
    </target>

    <!-- ================================= 
          target: resolve              
         ================================= -->
    <target name="resolve" depends="common-init"
    	description="--> resolve and retrieve dependencies with ivy">
	<mkdir dir="${deps.dir}"/>
    	<ivy:resolve file="${ivy.file}" log="${resolve.log}"/>
    	<ivy:retrieve pattern="${deps.dir}/[artifact].[ext]"
		symlink="true" sync="true"/>
    	<!-- sync=true removes empty deps dir, so re-create it -->
	<mkdir dir="${deps.dir}"/>
    </target>

    <!-- ================================= 
          target: publish-local
         ================================= -->

    <target name="publish-check" unless="bundle.modified">
      <ivy:info file="${ivy.file}"/>
      <condition property="bundle.modified">
	<not>
	  <available file="${repository.dir}/local/${ivy.module}" type="dir"/>
	</not>
      </condition>
    </target>

    <target name="publish-local" depends="bundle, publish-check" if="bundle.modified"
    	description="--> publish project in the local repository">

	<tstamp>
	    <format property="now" pattern="yyyyMMddHHmmss"/>
	</tstamp>
        <property name="local-version" value="${now}"/>

	<antcall target="clean-local"/>
    	<ivy:publish artifactspattern="${build.lib.dir}/[artifact].[ext]" 
		       resolver="local"
		       pubrevision="${local-version}" 
		       pubdate="${now}"
		       forcedeliver="true"
		       status="integration"/>
        <echo message="project ${ant.project.name} published locally with version ${local-version}" />
    </target>

    <!-- ================================= 
          target: report              
         ================================= -->
    <target name="report" depends="resolve"
    	description="--> generates a report of dependencies">
        <ivy:report todir="${build.dir}"/>
    </target>
    
    <!-- ================================= 
          target: compile              
         ================================= -->
    <target name="compile" depends="resolve"
    	description="--> compile the project">
        <!-- uncomment the following to debug classpath -->
        <!--pathconvert property="cp" refid="javac.classpath"/>
        <echo>Classpath - ${cp}</echo-->
        <mkdir dir="${classes.dir}" />
        <javac srcdir="${src.dir}"
		destdir="${classes.dir}"
		classpathref="javac.classpath"
		target="1.5"
		debug="true" />
    </target>
    
    <!-- ================================= 
          target: bundle
         ================================= -->
    <target name="bundle" depends="compile"
    	description="--> build OSGi bundle(s) for this project">
	<mkdir dir="${build.lib.dir}"/>
        <sigil.bundle
                classpathref="sigil.classpath"
		destpattern="${build.lib.dir}/[name].[ext]"
		force="${bundle.force}"
		property="bundle.modified" />
    </target>

    <!-- ================================= 
          target: composites              
         ================================= -->
    <available file="${composite.dir}" type="dir"
               property="composite.dir.present"/>

    <target name="composites" if="composite.dir.present"
    	description="--> filter xml composites replacing ${VERSION} etc.">
	<mkdir dir="${build.etc.dir}"/>
	<copy todir="${build.etc.dir}">
	  <fileset dir="${composite.dir}">
	    <exclude name="*-template.composite"/>
	    <include name="*.composite"/>
	    <include name="*.system"/>
	  </fileset>
	  <filterset begintoken="@" endtoken="@">
	    <filter token="VERSION" value="${bundle.version}"/>
	    <filter token="COMMUNITY_VERSION" value="${community.version}"/>
	    <filter token="JINI_VERSION" value="${jini.version}"/>
	    <filter token="PAREMUS_VERSION" value="${paremus.version}"/>
	  </filterset>
	</copy>
    </target>

    <!-- ================================= 
          target: install              
	  install-bin, install-etc deprecated in favour of single
	  assemble/bin, assemble/etc dirs
         ================================= -->
    <target name="install"
    	 depends="install-lib, install-composites"/>

    <available file="bin" type="dir"
               property="bin.dir.present"/>
    <available file="etc" type="dir"
               property="etc.dir.present"/>

    <target name="install-bin" if="bin.dir.present">
	<mkdir dir="${install.dir}/bin"/>
	<copy todir="${install.dir}/bin">
	  <fileset dir="bin" />
	</copy>
	<chmod dir="${install.dir}/bin" perm="755" excludes="*.bat"/>
    </target>

    <target name="install-etc" if="etc.dir.present">
	<mkdir dir="${install.dir}/etc"/>
	<copy todir="${install.dir}/etc">
	  <fileset dir="etc" />
	</copy>
    </target>

    <target name="composites-available">
      <available file="${build.etc.dir}" type="dir"
               property="build.etc.dir.present"/>
    </target>

    <target name="install-composites"
	 depends="composites, composites-available"
	      if="build.etc.dir.present">
	<copy todir="${install.dir}/etc">
	  <fileset dir="${build.etc.dir}" />
	</copy>
    </target>

    <target name="libs-available">
      <available file="${build.lib.dir}" type="dir"
               property="build.lib.dir.present"/>
    </target>

    <target name="install-lib"
	 depends="publish-local, libs-available"
	      if="build.lib.dir.present">
	<copy todir="${install.dir}/lib">
	  <fileset dir="${build.lib.dir}" />
	  <mapper type="glob" from="*.jar" to="*-${buildVersion}.jar"/>
	</copy>
    </target>

    <!-- ================================= 
	  target: clean-local              
	 ================================= -->
    <target name="clean-local" depends="load-ivy"
    	description="--> cleans the local repository for the current module">
       <ivy:info file="${ivy.file}"/>
       <delete dir="${repository.dir}/local/${ivy.module}"/>
    </target>

    <!-- ================================= 
	  target: clean-deps              
	 ================================= -->
    <target name="clean-deps"
    	description="--> clean the project dependencies directory">
	<delete includeemptydirs="true" dir="${deps.dir}"/>
    </target>

    <!-- ================================= 
          target: clean-build              
         ================================= -->
    <target name="clean-build"
    	description="--> clean the project built files">
        <delete includeemptydirs="true" dir="${build.dir}"/>
    </target>

    <!-- ================================= 
          target: clean              
         ================================= -->
    <target name="clean" depends="ident, clean-build, clean-deps"
    	description="--> clean the project" />


    <!-- ================================= 
          target: common-init
         ================================= -->
    <target name="common-init" depends="load-ivy,init">
    </target>

    <!-- ================================= 
          target: init
         ================================= -->
    <target name="init">
    </target>

    <!-- ================================= 
          target: buildlist
         ================================= -->
    <target name="buildlist" depends="common-init">
      <ivy:buildlist reference="ordered-list"
		  onMissingDescriptor="skip">
	<fileset refid="my.projects"/>
      </ivy:buildlist>
    </target>

    <!-- ================================= 
          target: build-list
         ================================= -->
    <target name="build-list" depends="buildlist" 
	  description="--> build all projects in the right order">
      <property name="target" value="build"/>
      <subant target="${target}" buildpathref="ordered-list">
	<propertyset>
	  <propertyref name="ivy.loaded" />
	</propertyset>
      </subant>
    </target>

    <!-- ================================= 
          target: install-list
         ================================= -->
    <target name="install-list"
	  description="--> install all projects">
      <antcall target="build-list">
        <param name="target" value="install"/>
      </antcall>
    </target>

    <!-- ================================= 
          target: ident-list
         ================================= -->
    <target name="ident-list"
	  description="--> identify projects">
      <antcall target="build-list">
        <param name="target" value="ident"/>
      </antcall>
    </target>

    <!-- ================================= 
          target: clean-list
         ================================= -->
    <target name="clean-list"
	  description="--> clean all projects">
      <antcall target="build-list">
        <param name="target" value="clean"/>
      </antcall>
    </target>

    <!-- ================================= 
          target: clean-all
         ================================= -->
    <target name="clean-all" depends="clean-list, clean" 
    description="--> clean repository, cache, and all projects">
      <delete dir="${repository.dir}"/>
      <delete dir="${cache.dir}"/>
      <delete dir="${install.dir}"/>
      <delete dir="${dist.dir}"/>
    </target>
	
    <target name="sigil.test" depends="ivy-taskdefs">
        <mkdir dir="${dist.dir}/lib/sigil" />
        <copy todir="${dist.dir}/lib/sigil" overwrite="true">
                <fileset dir="${common.dir}/test/lib">
                        <include name="*.jar" />
                </fileset>
        </copy>

        <mkdir dir="${dist.dir}/etc/sigil/boot" />

        <copy todir="${dist.dir}/etc/sigil/boot" overwrite="true">
                <fileset dir="${common.dir}/test/etc/boot">
                        <include name="*" />
                </fileset>
        </copy>

    	<property name="install.script" value="${dist.dir}/etc/sigil/boot/2-install-tests" />
        <delete file="${install.script}" />

        <for param="project">
            <fileset refid="my.projects" />
            <sequential>
                <antcall target="sigil.test.setup">
					<param name="project" value="@{project}"/>
                </antcall>
            </sequential>
        </for>

        <for param="project">
            <fileset refid="my.projects" />
            <sequential>
                <antcall target="sigil.test.install">
					<param name="project" value="@{project}"/>
                </antcall>
            </sequential>
        </for>
    	
        <delete dir="${dist.dir}/../test-results" />
    	
        <exec executable="sh" osfamily="unix">
          <arg line="${dist.dir}/bin/container equinox -verbose=true" />
          <arg line="-bootScript=etc/sigil/boot" />
        </exec>
    </target>	

	<target name="sigil.test.setup">
		<property name="dir" location="${project}/../" />
		<path id="test.resources">
	        <fileset dir="${dir}">
	        	<include name="build/lib/*.jar" />
	        	<exclude name="**/*-dl.jar" />
	        </fileset>
            <fileset dir="${dir}">
            	<include name="build/deps/*.jar" />
	        	<exclude name="**/*!*.jar" />
            </fileset>
		</path>
        <for param="jar">
        	<path refid="test.resources"/>
            <sequential>
            	<antcall target="sigil.test.load">
                	<param name="jar" value="@{jar}" />
            	</antcall>
            </sequential>
        </for>
	</target>
	
	<target name="sigil.test.install">
		<property name="dir" location="${project}/../" />
		<path id="test.bundles">
	        <fileset dir="${dir}">
	        	<include name="build/lib/*test.jar" />
            </fileset>
		</path>
        <for param="jar">
        	<path refid="test.bundles"/>
            <sequential>
            	<antcall target="sigil.test.start">
                	<param name="jar" value="@{jar}" />
            	</antcall>
            </sequential>
        </for>
	</target>
	
	<target name="sigil.test.load">
		<sigil.bundle.info bundle="${jar}" header="Bundle-SymbolicName" property="test.bundle.symbolic.name"/>
		<if>
			<isset property="test.bundle.symbolic.name"/>
			<then>
		        <echo file="${install.script}" append="true">cds load boot ${test.bundle.symbolic.name}.jar ${jar}
</echo>
			</then>
		</if>
	</target>
	
	<target name="sigil.test.start">
		<sigil.bundle.info bundle="${jar}" header="Bundle-SymbolicName" property="test.bundle.symbolic.name"/>
		<if>
			<isset property="test.bundle.symbolic.name"/>
			<then>
				<sigil.bundle.info bundle="${jar}" header="Bundle-Version" property="test.bundle.version" defaultvalue="0"/>
				<sigil.bundle.info bundle="${jar}" header="Fragment-Host" property="test.bundle.fragment"/>
				<if>
					<isset property="test.bundle.fragment" />
					<then>
						<propertyregex property="test.bundle.fragment.name"
						              input="${test.bundle.fragment}"
						              regexp="([^;]*).*"
									  select="\1"
						              casesensitive="false" />

		        		<echo file="${install.script}" append="true">nim policy -a osgi.installed.bundle/${test.bundle.fragment.name} osgi.fragment.bundle/${test.bundle.symbolic.name}:${test.bundle.version}
</echo>
		        		<echo file="${install.script}" append="true">nim add ${test.bundle.symbolic.name}:${test.bundle.version}@fragment
</echo>
					</then>
					<else>
		        		<echo file="${install.script}" append="true">nim add ${test.bundle.symbolic.name}:${test.bundle.version}@installed
</echo>
					</else>
				</if>
			</then>
		</if>
	</target>
</project>
