<?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.
-->

<!-- POI OSGi Bundle System -->
<project name="POI OSGi Bundle" default="bundle" basedir=".." xmlns:mvn="antlib:org.apache.maven.artifact.ant">
    <description>The Apache POI OSGi Bundle System.</description>

    <property name="bundle.lib" location="osgi/lib"/>

    <!-- TODO Import these from the parent build file -->
    <property name="repository.m2" value="http://repo1.maven.org"/>
    <property name="version.id" value="3.11-beta1"/>
    <property name="dist.dir" value="build/dist"/>

    <!-- jars in the /lib directory, see the fetch-bundle-jars target-->
    <property name="bundle.bnd.jar" location="${bundle.lib}/bnd-1.50.0.jar"/>
    <property name="bundle.bnd.url" value="${repository.m2}/maven2/biz/aQute/bnd/1.50.0/bnd-1.50.0.jar"/>
    <import file="../build.xml"/>

    <target name="check-bundle-jars">
       <condition property="jars.bundle.present">
           <available file="${bundle.bnd.jar}"/>
       </condition>
    </target>

    <target name="fetch-bundle-jars" unless="jars.bundle.present">
        <mkdir dir="${bundle.lib}"/>
        <antcall target="downloadfile">
            <param name="sourcefile" value="${bundle.bnd.url}"/>
            <param name="destfile" value="${bundle.bnd.jar}"/>
        </antcall>
    </target>

<!--
    <target name="bundle" depends="init, check-bundle-jars, fetch-bundle-jars, jar">
-->
    <target name="bundle" depends="init, check-bundle-jars, fetch-bundle-jars">
        <taskdef resource="aQute/bnd/ant/taskdef.properties" classpath="${bundle.bnd.jar}"/>
        <mkdir dir="build/osgi"/>
        <bnd 
           classpath="${dist.dir}/poi-${version.id}-${DSTAMP}.jar,${dist.dir}/poi-scratchpad-${version.id}-${DSTAMP}.jar,${dist.dir}/poi-ooxml-${version.id}-${DSTAMP}.jar"
           eclipse="false" 
           failok="false" 
           exceptions="true" 
           output="build/osgi"
           files="test.bnd"/> 
        <!-- TODO Include the settings from http://svn.apache.org/repos/asf/servicemix/smx4/bundles/trunk/poi-3.9/pom.xml -->
        <!-- TODO Make this actually spit out an OSGi Jar -->
    </target>
</project>
