view osgi-ant-bundlor.xml @ 36:82a5d5a000fe

CM-125: Auto connect osgi dependency to build process
author smith@nwoca.org
date Sat, 07 May 2011 11:22:58 -0400
parents 7df554d8c4c1
children ba7ae19e40a0
line wrap: on
line source
<?xml version="1.0" encoding="UTF-8"?>
<project name="osgi-project-tasks" default="" basedir="."
         xmlns:ssdtosgi="http://www.ssdt-ohio.org/ant/osgi"
         xmlns:ivy="antlib:fr.jayasoft.ivy.ant"
         xmlns:bundlor="antlib:com.springsource.bundlor.ant"
         xmlns:ssdtant="antlib:org.ssdt_ohio.tools.ant">

    <description>Ant tasks to assist building OSGi bundles.</description>
    
    <ssdtant:add-dependency target="-post-jar" depends="-osgi-jar"/>

     <target name="-osgi-jar"            depends="-init-osgi,ivy-info">
        <ssdtosgi:jar jar="${dist.jar}"/>
    </target>

    <target name="-init-osgi">
        <ivy:settings  file="ivysettings.xml"/>
        <ivy:cachepath  resolveId="bundlor.classpath"
                        pathid="bundlor.classpath"
                        organisation="com.springsource.bundlor"
                        module="com.springsource.bundlor.ant"
                        revision="1.0.0.RELEASE"
                        inline="true"
                        type="jar"
                        log="download-only"/>
        <taskdef resource="com/springsource/bundlor/ant/antlib.xml"
                 uri="antlib:com.springsource.bundlor.ant"
                 classpathref="bundlor.classpath"/>

        <macrodef name="jar"
                  description="OSGi-ifies jar file"
                  uri="http://www.ssdt-ohio.org/ant/osgi">
            <attribute name="jar" description="input jar"/>
            <attribute name="symbolicName" description="Bundle Symbolic Name" default="${ivy.organisation}.${ivy.module}"/>
            <attribute name="name" description="Bundle Name" default="${application.title}"/>
            <attribute name="version" description="Bundle Version" default="${ivy.revision}"/>
            <attribute name="template" description="Bundle Template" default="${basedir}/template.mf"/>
            <sequential>
                <echo message="OSGI-ifying @{jar} as @{symbolicName};@{version}" level="info"/>
                <bundlor:bundlor
                    inputPath="${basedir}/@{jar}"
                    outputPath="${basedir}/@{jar}"
                    bundleVersion="@{version}"
                    bundleSymbolicName="@{symbolicName}"
                    failOnWarnings="true"
                    manifestTemplatePath="@{template}">
                    <property name="bundle.name" value="@{name}"/>
                    <propertyset>
                        <propertyref prefix="ivy"/>
                        <mapper type="glob" from="ivydeps.*" to="*"/>
                    </propertyset>
                </bundlor:bundlor>
            </sequential>
        </macrodef>

    </target>

</project>