view osgi-ant-bundlor.xml @ 20:fe20e4ed4be2

CM-125: Ant script to assist creating OSGI jars.
author smith@nwoca.org
date Sat, 15 Jan 2011 15:25:11 -0500
parents
children a114600dc3d4
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">

    <description>Ant tasks to assist building OSGi bundles.</description>
 
    <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>
                <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>