blob: 975ab09c3923cb0e41ca24e12346877bcdfbd1c6 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head>
<title>Apache Felix - iPOJO Ant Task</title>
<link rel="stylesheet" href="ipojo-ant-task_files/site.css" type="text/css" media="all">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head><body>
<div class="title"><div class="logo"><a href="http://felix.apache.org/site/index.html"><img alt="Apache Felix" src="ipojo-ant-task_files/logo.png" border="0"></a></div><div class="header"><a href="http://www.apache.org/"><img alt="Apache" src="ipojo-ant-task_files/apache.png" border="0"></a></div></div>
<div class="menu">
<ul>
<li><a href="http://felix.apache.org/site/news.html" title="news">news</a></li>
<li><a href="http://felix.apache.org/site/license.html" title="license">license</a></li>
<li><a href="http://felix.apache.org/site/downloads.cgi" rel="nofollow">downloads</a></li>
<li><a href="http://felix.apache.org/site/documentation.html" title="documentation">documentation</a></li>
<li><a href="http://felix.apache.org/site/mailinglists.html" title="mailinglists">mailing lists</a></li>
<li><a href="http://felix.apache.org/site/contributing.html" title="Contributing">contributing</a></li>
<li><a href="http://www.apache.org/" rel="nofollow">asf</a></li>
<li><a href="http://www.apache.org/foundation/sponsorship.html" rel="nofollow">sponsorship</a></li>
<li><a href="http://www.apache.org/foundation/thanks.html" rel="nofollow">sponsors</a>
<!-- ApacheCon Ad -->
<iframe src="ipojo-ant-task_files/button.html" style="border-width: 0pt; float: left;" scrolling="no" frameborder="0" height="135" width="135"></iframe>
<p style="height: 100px;">
<!-- ApacheCon Ad -->
</p></li></ul> </div>
<div class="main">
<style type="text/css">
@import url(http://people.apache.org/~clement/ipojo/site/superfish.css);
</style>
<style type="text/css">
@import url(http://people.apache.org/~clement/ipojo/site/style.css);
</style>
<p>
<script class="javascript" src="ipojo-ant-task_files/shCore.js"></script>
<script class="javascript" src="ipojo-ant-task_files/shBrushCSharp.js"></script>
<script class="javascript" src="ipojo-ant-task_files/shBrushPhp.js"></script>
<script class="javascript" src="ipojo-ant-task_files/shBrushJScript.js"></script>
<script class="javascript" src="ipojo-ant-task_files/shBrushVb.js"></script>
<script class="javascript" src="ipojo-ant-task_files/shBrushSql.js"></script>
<script class="javascript" src="ipojo-ant-task_files/shBrushXml.js"></script>
<script class="javascript" src="ipojo-ant-task_files/shBrushShell.js"></script>
<script class="javascript" src="ipojo-ant-task_files/shBrushDelphi.js"></script>
<script class="javascript" src="ipojo-ant-task_files/shBrushPython.js"></script>
<script class="javascript" src="ipojo-ant-task_files/shBrushJava.js"></script>
<script type="text/javascript" src="ipojo-ant-task_files/jquery-1.js"></script>
<script type="text/javascript" src="ipojo-ant-task_files/hoverIntent.js"></script>
<script type="text/javascript" src="ipojo-ant-task_files/superfish.js"></script>
<script type="text/javascript" src="ipojo-ant-task_files/supersubs.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("ul.sf-menu").supersubs({
minWidth: 14, // minimum width of sub-menus in em units
maxWidth: 30, // maximum width of sub-menus in em units
extraWidth: 1 // extra width can ensure lines don't sometimes turn over
// due to slight rounding differences and font-family
}).superfish(); // call supersubs first, then superfish, so that subs are
// not display:none when measuring. Call before initialising
// containing tabs for same reason.
});
</script>
</p><div class="main">
<div class="page-header">
<img src="ipojo-ant-task_files/header.png" class="header">
<a href="http://ipojo.org/"><img src="ipojo-ant-task_files/ipojo.png" class="header-logo" width="225"></a>
<ul class="sf-menu sf-js-enabled sf-shadow" id="ipojo-menu">
<li class="current">
<!-- Menu Overview -->
<a href="" class="sf-with-ul">Overview<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
<ul style="float: none; width: 14em; display: none; visibility: hidden;">
<li style="white-space: normal; float: left; width: 100%;">
<a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo.html" title="Apache Felix iPOJO">Home</a>
</li>
<li style="white-space: normal; float: left; width: 100%;">
<a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-why-choose-ipojo.html" title="apache-felix-ipojo-why-choose-ipojo">Why choose iPOJO</a>
</li>
<li style="white-space: normal; float: left; width: 100%;">
<a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-successstories.html" title="apache-felix-ipojo-successstories">Success stories</a>
</li>
<li style="white-space: normal; float: left; width: 100%;">
<a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-feature-overview.html" title="Apache Felix iPOJO Feature Overview">Features</a>
</li>
</ul>
</li>
<li class="">
<!-- Menu download -->
</li><li>
<a href="http://felix.apache.org/site/download.html" title="Download">Download </a>
</li>
<li class="">
<!-- Menu Documentation -->
<a href="" class="sf-with-ul">Documentation<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
<ul style="float: none; width: 14em; display: none; visibility: hidden;">
<!-- sub- menu : getting started -->
<li style="white-space: normal; float: left; width: 100%;" class="">
<a style="float: none; width: auto;" href="" class="sf-with-ul">Getting Started<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
<ul style="left: 14em; float: none; width: 14em; display: none; visibility: hidden;">
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/ipojo-in-10-minutes.html" title="iPOJO in 10 minutes">iPOJO in 10 minutes</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/how-to-use-ipojo-annotations.html" title="How to use iPOJO Annotations">Using Annotations</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/ipojo-hello-word-maven-based-tutorial.html" title="iPOJO Hello Word (Maven-Based) tutorial">Maven tutorial</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/ipojo-advanced-tutorial.html" title="iPOJO Advanced Tutorial">Advanced tutorial</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-dosgi.html" title="apache-felix-ipojo-dosgi">Using Distributed OSGi</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/ipojo-composition-tutorial.html" title="iPOJO Composition Tutorial">Application Composition</a></li>
</ul>
</li> <!-- end of getting started -->
<!-- sub menu : Describing Components -->
<li style="white-space: normal; float: left; width: 100%;" class="">
<a style="float: none; width: auto;" href="http://felix.apache.org/site/describing-components.html" class="sf-with-ul">Describing components<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
<ul style="left: 14em; float: none; width: 14em; display: none; visibility: hidden;">
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/service-requirement-handler.html" title="Service Requirement Handler">Requiring a service</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/providing-osgi-services.html" title="Providing OSGi services">Providing a service</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/lifecycle-callback-handler.html" title="Lifecycle Callback Handler">Lifecycle management</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/configuration-handler.html" title="Configuration Handler">Configuration</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/architecture-handler.html" title="Architecture Handler">Introspection</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/controller-lifecycle-handler.html" title="Controller Lifecycle Handler">Impacting the lifecycle</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/event-admin-handlers.html" title="Event Admin Handlers">Asynchronous communication</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/ipojo-jmx-handler.html" title="iPOJO JMX Handler">JMX management</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/extender-pattern-handler.html" title="Extender Pattern Handler">Extender pattern</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/white-board-pattern-handler.html" title="White Board Pattern Handler">Whiteboard pattern</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/temporal-service-dependency.html" title="Temporal Service Dependency">Temporal dependencies</a></li>
</ul>
</li> <!-- End of describing components -->
<!-- sub- menu : User Guide -->
<li style="white-space: normal; float: left; width: 100%;" class="">
<a style="float: none; width: auto;" href="" class="sf-with-ul">User Guide<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
<ul style="left: 14em; float: none; width: 14em; display: none; visibility: hidden;">
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/using-xml-schemas.html" title="Using XML Schemas">XML Schemas</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-api.html" title="apache-felix-ipojo-api">API</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-testing-components.html" title="apache-felix-ipojo-testing-components">Testing components</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-eclipse-integration.html" title="apache-felix-ipojo-eclipse-integration">Eclipse Integration</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/ipojo-faq.html" title="iPOJO FAQ">FAQ</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/ipojo-reference-card.html" title="iPOJO-Reference-Card">Reference Card</a></li>
</ul>
</li> <!-- end of user guide -->
<!-- sub- menu : Dev Guide -->
<li class="" style="white-space: normal; float: left; width: 100%;">
<a style="float: none; width: auto;" href="" class="sf-with-ul">Advanced Topics<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
<ul style="left: 14em; float: none; width: 14em; display: none; visibility: hidden;">
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/ipojo/api/1.2.0" rel="nofollow">Javadoc</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/how-to-write-your-own-handler.html" title="How to write your own handler">Handler guide</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/how-to-use-ipojo-manipulation-metadata.html" title="How to use iPOJO Manipulation Metadata">Manipulation Metadata </a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/dive-into-the-ipojo-manipulation-depths.html" title="Dive into the iPOJO Manipulation depths">Dive into the iPOJO Manipulation depths</a></li>
</ul>
</li> <!-- End of Dev guide -->
</ul>
</li> <!-- End of doc -->
<!-- Menu 4 : Tools -->
<li class="">
<a href="" class="sf-with-ul">Tools<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
<ul style="float: none; width: 14em; display: none; visibility: hidden;">
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="" title="iPOJO Ant Task">Ant Task</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/ipojo-eclipse-plug-in.html" title="iPOJO Eclipse Plug-in">Eclipse Plugin</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/ipojo-maven-plug-in.html" title="iPOJO Maven Plug-in">Maven Plugin</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-online-manipulator.html" title="apache-felix-ipojo-online-manipulator">Online Manipulator</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/ipojo-webconsole-plugin.html" title="iPOJO Webconsole Plugin">Webconsole plugin</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-junit4osgi.html" title="apache-felix-ipojo-junit4osgi">Junit4OSGi</a></li>
</ul>
</li><!-- End of tools -->
<!-- Menu 5 : Misc -->
<li class="">
<a href="" class="sf-with-ul">Misc<span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span><span class="sf-sub-indicator"> »</span></a>
<ul style="float: none; width: 14em; display: none; visibility: hidden;">
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-issuestracker.html" title="apache-felix-ipojo-issuestracker">Issues Tracker</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-supportedvms.html" title="apache-felix-ipojo-supportedVMs">Supported JVMs</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/apache-felix-ipojo-supportedosgi.html" title="apache-felix-ipojo-supportedOSGi">Supported OSGi Implementations</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://ipojo-dark-side.blogspot.com/" rel="nofollow">iPOJO's Dark Side Blog</a></li>
<li style="white-space: normal; float: left; width: 100%;"><a style="float: none; width: auto;" href="http://felix.apache.org/site/article-presentations.html" title="Article &amp; Presentations">Article &amp; Presentations</a></li>
</ul>
</li><!-- End of misc -->
</ul> <!-- End of the menu -->
</div> <!-- Page header -->
<div class="content">
<h1><a name="iPOJOAntTask-iPOJOAntTask"></a>iPOJO Ant Task</h1>
<p><em>iPOJO Ant Task allows automating the iPOJO manipulation process
within an Ant build process. This page explains how to use the iPOJO
Ant Task and how to combine them with the BND Tasks.</em></p>
<div class="toc">
<ul>
<li><a href="#iPOJOAntTask-DownloadingtheiPOJOAntTask">Downloading the iPOJO Ant Task</a></li>
<li><a href="#iPOJOAntTask-HowtousetheAntTask">How to use the Ant Task</a></li>
<li><a href="#iPOJOAntTask-AntTaskArguments">Ant Task Arguments</a></li>
<li><a href="#iPOJOAntTask-CombiningtheiPOJOAntTaskandBND">Combining the iPOJO Ant Task and BND</a></li>
<li>Directory manipulation [New in the 1.3.0-SNAPSHOT version ]</li>
<li>Conclusion</li>
</ul></div>
<h2><a name="iPOJOAntTask-DownloadingtheiPOJOAntTask"></a>Downloading the iPOJO Ant Task</h2>
<p>The iPOJO Ant Task can ben downloaded from <a href="http://felix.apache.org/site/download.html" title="Download">here</a>.</p>
<h2><a name="iPOJOAntTask-HowtousetheAntTask"></a>How to use the Ant Task</h2>
<p>The iPOJO Ant task take an input bundle and a metadata file and create the final (i.e. manipulated) bundle.<br>
To use the task declare a target in your build.xml as:</p>
<div class="pom"><p>&lt;target name="main"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;<font color="red">&lt;!-- Change the path to point on the iPOJO Ant task jar--&gt;</font><br>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;taskdef name="ipojo"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classname="org.apache.felix.ipojo.task.IPojoTask"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="red">classpath="org.apache.felix.ipojo.ant-1.2.0.jar"</font>/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&lt;ipojo<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input="foo.jar"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;metadata = "meta.xml"<br>
&nbsp;&nbsp;&nbsp;&nbsp;/&gt;<br>
&lt;/target&gt;</p></div>
<p>First, define the new task. Then simply use it. The input argument
describe the input bundle (must exists) and the metadata argument
describes the metadata file (must exist too). The input bundle must be
a well-formed bundle.</p>
<h2><a name="iPOJOAntTask-AntTaskArguments"></a>Ant Task Arguments</h2>
<p>The iPOJO Ant Task as three different arguments:</p>
<ul>
<li>Input: describes the input bundle. This argument is mandatory.</li>
<li>Output: describes the output bundle. This argument is optional. If not present, the output file will be input file.</li>
<li>Metadata:
describes the metadata file. This argument is optional. By default, it
tries with a metadata.xml file (in the same directory as the build.xml
file). If the default file is not present, it tries to use only iPOJO
annotations.</li>
<li>IgnoreAnnotations: if set to <tt>true</tt>, the manipulator skips annotations processing.</li>
<li>IgnoreEmbeddedSchemas: if set to <tt>true</tt>, the manipulator doesn't use embedded XML-Schemas</li>
</ul>
<h2><a name="iPOJOAntTask-CombiningtheiPOJOAntTaskandBND"></a>Combining the iPOJO Ant Task and BND</h2>
<p>The iPOJO Ant Task requires an input bundle. BND is a tools
simplifying bundle creation. So, it is possible to combine the two
tools to create your bundle automatically. The following build.xml
shows you an example of combination.</p>
<div class="pom"><p>&lt;project default="main" basedir="."&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;target name="bnd"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="red">&lt;!-- Change to use the latest BND version –</font><font color="red">&gt;</font><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;taskdef resource="aQute/bnd/ant/taskdef.properties"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="red">classpath="bnd-0.0.178.jar"</font>/&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bnd<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classpath="src"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eclipse="true"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;failok="false"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exceptions="true"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="red">files="foo.bnd"</font>/&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/target&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&lt;target name="main" depends="bnd"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;echo message="Call main"/&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="red">&lt;!-- Change the path to point on the iPOJO Ant task jar --&gt;</font><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;taskdef name="ipojo"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classname="org.apache.felix.ipojo.task.PojoTask"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="red">classpath="org.apache.felix.ipojo.ant-1.2.0.jar"</font> /&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ipojo<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="red">input="foo.jar"</font><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;metadata = "meta.xml"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/target&gt;<br>
&lt;/project&gt;</p></div>
<p>The first target creates the bundle with BND. More details on the
BND Ant Task are available here. To combine the BND output and the
iPOJO input, the iPOJO input need to be the same as the BND file but
with the ".jar" extension. For instance, the BND file is foo.bnd, so
the input jar must be foo.jar.<br>
To be sure that the BND bundle is already created, you can add the "<em>depends</em>" clause in the target using the iPOJO task to the target creating the bundle.</p>
<p>However, it is possible to create only one target doing the two operations as:</p>
<div class="pom"><p>&lt;target name="main"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;<font color="red">&lt;!-- Change to use the latest BND version --&gt;</font><br>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;taskdef<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resource="aQute/bnd/ant/taskdef.properties"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="red">classpath="bnd-0.0.178.jar"/&gt;</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="red">&lt;!-- Change the path to point on the iPOJO Ant task jar --&gt;</font><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;taskdef name="ipojo"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classname="org.apache.felix.ipojo.task.IPojoTask"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="red">classpath="org.apache.felix.ipojo.ant-1.2.0.jar"</font>/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&lt;bnd<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classpath="src"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eclipse="true"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;failok="false"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exceptions="true"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;files="<font color="red">foo.bnd</font>"/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&lt;ipojo<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input="<font color="red">foo.jar</font>"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;metadata = "meta.xml"/&gt;<br>
&lt;/target&gt;</p></div>
<h2><a name="iPOJOAntTask-Directorymanipulation\Newinthe1.3.0SNAPSHOTversion\"></a>Directory manipulation [New in the 1.3.0-SNAPSHOT version ]</h2>
<p>The manipulator can take a directory in input. In this case, classes
from this folder is manipulated. You can also set the manifest file
location too. Here in an example of configuration using this mode:</p>
<div class="code">
<div class="dp-highlighter"><table class="dp-xml" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="line1"><span></span><span class="tag">&lt;</span><span>target&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"manipulate"</span><span>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr><tr><td class="line2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span>ipojo&nbsp;</span></td></tr><tr><td class="line1">&nbsp;&nbsp;&nbsp;&nbsp;<span class="attribute">dir</span><span>=</span><span class="attribute-value">"${output..}"</span><span>&nbsp;</span><span class="comments">&lt;!--&nbsp;Manipulated&nbsp;directory&nbsp;--&gt;</span><span>&nbsp;</span></td></tr><tr><td class="line2">&nbsp;&nbsp;&nbsp;&nbsp;<span class="attribute">metadata</span><span>=</span><span class="attribute-value">"metadata.xml"</span><span>&nbsp;</span></td></tr><tr><td class="line1">&nbsp;&nbsp;&nbsp;&nbsp;<span class="attribute">manifest</span><span>=</span><span class="attribute-value">"META-INF/MANIFEST.MF"</span><span>&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;Manifest&nbsp;location&nbsp;--&gt;</span><span>&nbsp;</span></td></tr><tr><td class="line2">&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">/&gt;</span><span>&nbsp;</span></td></tr><tr><td class="line1"><span class="tag">&lt;/</span><span>target</span><span class="tag">&gt;</span><span>&nbsp;</span></td></tr></tbody></table></div><textarea style="display: none;" name="newcodemacro" class="xml:nocontrols:nogutter" rows="10" readonly="readonly">&lt;target name="manipulate"&gt;
&lt;ipojo
dir="${output..}" &lt;!-- Manipulated directory --&gt;
metadata="metadata.xml"
manifest="META-INF/MANIFEST.MF" &lt;!-- Manifest location --&gt;
/&gt;
&lt;/target&gt;</textarea>
<script class="javascript">
if(!window.newcodemacro_initialised)
{
window.newcodemacro_initialised = true;
window.oldonloadmethod = window.onload;
window.onload = function(){
dp.SyntaxHighlighter.HighlightAll('newcodemacro');
if(window.oldonloadmethod)
{
window.oldonloadmethod();
}
}
}
</script>
</div>
<div class="panelMacro"><table class="infoMacro"><colgroup><col width="24"><col></colgroup><tbody><tr><td valign="top"><img src="ipojo-ant-task_files/information.gif" alt="" border="0" align="absmiddle" height="16" width="16"></td><td><b>Manifest location</b><br><p>If not set, the manifest is searched in the given directory/META-INF folder (<em>i.e.</em> <tt>$dir/META-INF/MANIFEST.MF</tt>.</p></td></tr></tbody></table></div>
<h2><a name="iPOJOAntTask-Conclusion"></a>Conclusion</h2>
<p>Subscribe to the Felix users mailing list by sending a message to <a href="mailto:users-subscribe@felix.apache.org" rel="nofollow">users-subscribe@felix.apache.org</a>; after subscribing, email questions or feedback to <a href="mailto:users@felix.apache.org" rel="nofollow">users@felix.apache.org</a>.
<br clear="all">
<br clear="all"></p>
</div>
<img src="ipojo-ant-task_files/footer.png" class="footer">
</div>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="ipojo-ant-task_files/ga.js" type="text/javascript"></script>
<script type="text/javascript">
try{
var pageTracker = _gat._getTracker("UA-1518442-4");
pageTracker._trackPageview();
} catch(err) {}
</script>
</div>
</body></html>