<!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 - How to use iPOJO Annotations</title>
    <link rel="stylesheet" href="how-to-use-ipojo-annotations_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="how-to-use-ipojo-annotations_files/logo.png" border="0"></a></div><div class="header"><a href="http://www.apache.org/"><img alt="Apache" src="how-to-use-ipojo-annotations_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><span class="nobr"><a href="http://felix.apache.org/site/downloads.cgi" title="Visit page outside Confluence" rel="nofollow">downloads<sup><img class="rendericon" src="how-to-use-ipojo-annotations_files/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7"></sup></a></span></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><span class="nobr"><a href="http://www.apache.org/" title="Visit page outside Confluence" rel="nofollow">asf<sup><img class="rendericon" src="how-to-use-ipojo-annotations_files/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7"></sup></a></span></li>
	<li><span class="nobr"><a href="http://www.apache.org/foundation/sponsorship.html" title="Visit page outside Confluence" rel="nofollow">sponsorship<sup><img class="rendericon" src="how-to-use-ipojo-annotations_files/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7"></sup></a></span></li>
	<li><span class="nobr"><a href="http://www.apache.org/foundation/thanks.html" title="Visit page outside Confluence" rel="nofollow">sponsors<sup><img class="rendericon" src="how-to-use-ipojo-annotations_files/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7"></sup></a></span>
<!-- ApacheCon Ad -->
<iframe src="how-to-use-ipojo-annotations_files/button.html" style="border-width: 0pt; float: left;" scrolling="no" width="135" frameborder="0" height="135"></iframe>
<p style="height: 100px;">
<!-- ApacheCon Ad -->
</p></li></ul> </div>
    <div class="main">
<table class="sectionMacro" border="0" cellpadding="5" cellspacing="0" width="100%"><tbody><tr>
<td class="confluenceTd" valign="top" width="80%">
<p>iPOJO defines several annotations to help developer to define their
components. This page presents an example of iPOJO annotation and
describes provided annotations.</p>

<h1><a name="HowtouseiPOJOAnnotations-GettingiPOJOAnnotations:"></a>Getting iPOJO Annotations:</h1>

<p>iPOJO Annotations are defines inside the
org.apache.felix.ipojo.annotations project. You can download the Jar
file of this project from the <a href="http://felix.apache.org/site/download.html" title="Download">download</a> page. Sources are available on the <span class="nobr"><a href="http://felix.apache.org/site/sourcecode.html" title="Visit page outside Confluence" rel="nofollow">Felix trunk<sup><img class="rendericon" src="how-to-use-ipojo-annotations_files/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7"></sup></a></span>.<br>
Once added to your class path / build path / dependencies, you can use
the annotations as normal annotations. These annotations are
automatically processed by the iPOJO manipulator.</p>

<h2><a name="HowtouseiPOJOAnnotations-InEclipse:"></a>In Eclipse:</h2>

<p>Add the org.apache.felix.ipojo.annotations jar file in your build
path. Do not forget to use a Java compiler accepting annotations (1.5
or higher).</p>

<h2><a name="HowtouseiPOJOAnnotations-InMaven:"></a>In Maven:</h2>

<p>Add the following dependency:</p>
<div class="code"><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;dependency&gt;</span>
      <span class="code-tag">&lt;groupId&gt;</span>org.apache.felix<span class="code-tag">&lt;/groupId&gt;</span>
      <span class="code-tag">&lt;artifactId&gt;</span>org.apache.felix.ipojo.annotations<span class="code-tag">&lt;/artifactId&gt;</span>
      <span class="code-tag">&lt;version&gt;</span>1.0.0<span class="code-tag">&lt;/version&gt;</span>
<span class="code-tag">&lt;/dependency&gt;</span></pre>
</div></div>
<p>Moreover, you need to set that the source code and the target code
are Java 1.5 code. To achieve this, just add the following plugin in
your plugins section:</p>
<div class="code"><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;plugin&gt;</span>
        <span class="code-tag">&lt;groupId&gt;</span>org.apache.maven.plugins<span class="code-tag">&lt;/groupId&gt;</span>
	<span class="code-tag">&lt;artifactId&gt;</span>maven-compiler-plugin<span class="code-tag">&lt;/artifactId&gt;</span>
	<span class="code-tag">&lt;configuration&gt;</span>
	  <span class="code-tag">&lt;source&gt;</span>1.5<span class="code-tag">&lt;/source&gt;</span>
	  <span class="code-tag">&lt;target&gt;</span>1.5<span class="code-tag">&lt;/target&gt;</span>
	<span class="code-tag">&lt;/configuration&gt;</span>
<span class="code-tag">&lt;/plugin&gt;</span></pre>
</div></div>

<h2><a name="HowtouseiPOJOAnnotations-InAnt:"></a>In Ant :</h2>

<p>Just add the org.apache.felix.ipojo.annotations jar file  in your class path.</p>

<h1><a name="HowtouseiPOJOAnnotations-Anexampleofusage:"></a>An example of usage:</h1>

<p>To illustrate annotations usage, let taking the tutorial example. In this tutorial, there are two components:</p>
<ul>
	<li>The first one provides the hello service</li>
	<li>The second one uses the provided hello service<br>
You can download the archive containing the examples and a preconfigured version of Felix <span class="nobr"><a href="http://people.apache.org/%7Eclement/ipojo/tutorials/annotations/annotation-tutorial.zip" title="Visit page outside Confluence" rel="nofollow">here<sup><img class="rendericon" src="how-to-use-ipojo-annotations_files/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7"></sup></a></span>.</li>
</ul>


<h2><a name="HowtouseiPOJOAnnotations-HelloServiceProvider"></a>Hello Service Provider</h2>

<p>The provider uses two annotations. The "component" annotation is
mandatory and defines that the class defines a component type. Then the
"provides" annotation just declare that the defined component type
provides a service.</p>
<div class="code"><div class="codeContent">
<pre class="code-java"><span class="code-keyword">package</span> ipojo.example.hello.impl;

<span class="code-keyword">import</span> ipojo.example.hello.Hello;

<span class="code-keyword">import</span> org.apache.felix.ipojo.annotations.Component;
<span class="code-keyword">import</span> org.apache.felix.ipojo.annotations.Provides;

/**
  * Component implementing the Hello service.
 **/
@Component
@Provides
<span class="code-keyword">public</span> class HelloImpl <span class="code-keyword">implements</span> Hello {
    <span class="code-keyword">public</span> <span class="code-object">String</span> sayHello(<span class="code-object">String</span> name) { 
     <span class="code-keyword">return</span> <span class="code-quote">"hello "</span> + name; 
    }
}</pre>
</div></div>

<h2><a name="HowtouseiPOJOAnnotations-HelloServiceConsumer"></a>Hello Service Consumer</h2>

<p>The Hello Service Consumer use more annotations. First it used the
component annotation. To defines its "immediate" behavior, it add the
'immediate' attribute.<br>
Then, it uses the requires annotation to define a service dependency.
Finally, it uses the validate and invalidate annotations to define
lifecycle callbacks.</p>
<div class="code"><div class="codeContent">
<pre class="code-java"><span class="code-keyword">package</span> ipojo.example.hello.client;

<span class="code-keyword">import</span> org.apache.felix.ipojo.annotations.Component;
<span class="code-keyword">import</span> org.apache.felix.ipojo.annotations.Invalidate;
<span class="code-keyword">import</span> org.apache.felix.ipojo.annotations.Requires;
<span class="code-keyword">import</span> org.apache.felix.ipojo.annotations.Validate;

<span class="code-keyword">import</span> ipojo.example.hello.Hello;

@Component(name=<span class="code-quote">"AnnotedHelloClient"</span>, immediate=<span class="code-keyword">true</span>)
<span class="code-keyword">public</span> class HelloClient <span class="code-keyword">implements</span> <span class="code-object">Runnable</span> {

@Requires
<span class="code-keyword">private</span> Hello[] m_hello; <span class="code-comment">// Service Dependency
</span>
<span class="code-keyword">private</span> <span class="code-keyword">final</span> <span class="code-keyword">static</span> <span class="code-object">int</span> DELAY=10000;
<span class="code-keyword">private</span> <span class="code-object">boolean</span> end;

 <span class="code-keyword">public</span> void run() {
    <span class="code-keyword">while</span> (!end) {
               <span class="code-keyword">try</span> {
		invoke();
                <span class="code-object">Thread</span>.sleep(DELAY);
              } <span class="code-keyword">catch</span> (InterruptedException ie) { }
              /* will recheck end */
     }
}

<span class="code-keyword">public</span> void invoke() {
	<span class="code-keyword">for</span> (<span class="code-object">int</span> i = 0; i &lt; m_hello.length; i++) { 
          <span class="code-object">System</span>.out.println(m_hello[i].
             sayHello(<span class="code-quote">"Clement"</span>)); 
        }
}

 @Validate
 <span class="code-keyword">public</span> void starting() {    
    <span class="code-object">Thread</span> T = <span class="code-keyword">new</span> <span class="code-object">Thread</span>(<span class="code-keyword">this</span>);     
    end = <span class="code-keyword">false</span>;     
    T.start(); 
 }

 @Invalidate
 <span class="code-keyword">public</span> void stopping() {    
     end = <span class="code-keyword">true</span>; 
 }
}</pre>
</div></div>

<h1><a name="HowtouseiPOJOAnnotations-DefinedAnnotations"></a>Defined Annotations</h1>

<p>This section lists defined annotations and how to use them.</p>

<h2><a name="HowtouseiPOJOAnnotations-@Component"></a>@Component</h2>

<p><b>Goal:</b> Defines a component type<br>
<b>Target:</b> The component implementation class<br>
<b>Attributes:</b></p>
<ul>
	<li>name : defines the component type name (optional, default = the class name)</li>
	<li>factory: defines the factory name (optional, default = "false")</li>
	<li>immediate: defines the component type as immediate (optional, default = "false")</li>
	<li>architecture: enable the architecture exposition (optional, default = "false")</li>
	<li>propagation: enable configuration property propagation (on provided services) (optional, default = "false")</li>
</ul>


<h2><a name="HowtouseiPOJOAnnotations-@Provides"></a>@Provides</h2>

<p><b>Goal:</b> Defines that the component type provide services<br>
<b>Target:</b> The component implementation class<br>
<b>Attributes:</b></p>
<ul>
	<li>specifications: defines the provided interface (optional, default = all implemented interfaces)</li>
	<li>factory: defines the service object creation policy ("SINGLETON" or "SERVICE") (optional, default = "SINGLETON")</li>
	<li><b>[1.1.0-SNAPSHOT]</b> the <tt>factory</tt> attribute became <tt>strategy</tt>. A third policy is now available (<tt>instance</tt>) allowing to create one service object per asking instance. Moreover, it is also possible to indicates the <tt>CreationStrategy</tt> class name.</li>
</ul>


<p><em>Note:</em> "SERVICE" means OSGi service factory.</p>

<h2><a name="HowtouseiPOJOAnnotations-@Requires"></a>@Requires</h2>

<p><b>Goal:</b> Defines a service dependency<br>
<b>Target:</b> Field<br>
<b>Attributes:</b></p>
<ul>
	<li>Filter: defines the LDAP filter (optional)</li>
	<li>Optional: defines if the dependency is optional (optional, default = "false")</li>
	<li>Id:
defines the dependency Id (useful to identify bind &amp; unbind
methods) (optional, default = field name) (if a dependency with the
same id is already created (by a @bind or @unbind annotation), it
merges the dependencies).</li>
	<li>Nullable: enable or disable the
Null Object injection when the dependency is optional and no providers
are available (optional, default = "true")</li>
	<li>Default-Implementation: set the Default-Implmentation (optional, by default iPOJO uses a Null object)</li>
	<li>Policy: defines the binding policy (accepted value : dynamic, static, dynamic-priority) (optional, default = "dynamic")</li>
	<li>Comparator: defines the comparator to use to sort service references (optional, default = OSGi Service Reference Comparator)</li>
	<li>From : defines the specific provider to use</li>
</ul>


<h2><a name="HowtouseiPOJOAnnotations-@ServiceProperty"></a>@ServiceProperty</h2>

<p><b>Goal:</b> Defines a service property<br>
<b>Target:</b> Field<br>
<b>Attributes:</b></p>
<ul>
	<li>name: property name (optional, default=field name</li>
	<li>value: property value (optional, default=no value)</li>
</ul>


<h2><a name="HowtouseiPOJOAnnotations-@Property"></a>@Property</h2>

<p><b>Goal:</b> Defines a property<br>
<b>Target:</b> Field or Method<br>
<b>Attributes:</b></p>
<ul>
	<li>name: property name (optional, default=field name computed by
removing "set" from the method name (for instance setFoo(String ff)
will get the Foo name))</li>
	<li>value: property value (optional, default=no value)</li>
</ul>


<p><em>note:</em> if another property with the same name is defined the method or the field is added to the existing property</p>

<h2><a name="HowtouseiPOJOAnnotations-@Bind"></a>@Bind</h2>

<p><b>Goal:</b> Defines a bind method<br>
<b>Target:</b> Method<br>
<b>Attributes:</b></p>
<ul>
	<li>Id: Dependency Id, if the id is already defines in a
"@requires " or "@unbind" annotation, it adds this method as a bind
method of the already created dependency. (optional, default= no id,
compute an id if the method name begin by "bind" (for instance
"bindFoo" will have the "Foo" id))</li>
	<li>Specification : required dependency (optional)</li>
	<li>Aggregate : is the dependency an aggregate dependency (optional, default= "false")</li>
	<li>Optional: is the dependency an optional dependency (optional, default= "false")</li>
	<li>Filter: dependency LDAP filter (optional)</li>
	<li>Policy: defines the binding policy (accepted value : dynamic, static, dynamic-priority) (optional, default = "dynamic")</li>
	<li>Comparator: defines the comparator to use to sort service references (optional, default = OSGi Service Reference Comparator)</li>
	<li>From : defines the specific provider to use</li>
</ul>


<h2><a name="HowtouseiPOJOAnnotations-@Unbind"></a>@Unbind</h2>

<p><b>Goal:</b> Defines an unbind method<br>
<b>Target:</b> Method<br>
<b>Attributes:</b></p>
<ul>
	<li>Id: Dependency Id, if the id is already defines in a
"@requires" or "@bind" annotation, it adds this method as an unbind
method of the already created dependency. (optional, default= no id,
compute an id if the method name begin by "unbind" (for instance
"unbindFoo" will have the "Foo" id))</li>
	<li>Specification : required dependency (optional)</li>
	<li>Aggregate : is the dependency an aggregate dependency (optional, default= "false")</li>
	<li>Optional: is the dependency an optional dependency (optional, default= "false")</li>
	<li>Filter: dependency LDAP filter (optional)</li>
	<li>Policy: defines the binding policy (accepted value : dynamic, static, dynamic-priority) (optional, default = "dynamic")</li>
	<li>Comparator: defines the comparator to use to sort service references (optional, default = OSGi Service Reference Comparator)</li>
	<li>From : defines the specific provider to use</li>
</ul>


<h2><a name="HowtouseiPOJOAnnotations-@Validate"></a>@Validate</h2>

<p><b>Goal:</b> defines a validate lifecycle callback<br>
<b>Target:</b> method</p>

<h2><a name="HowtouseiPOJOAnnotations-@Invalidate"></a>@Invalidate</h2>

<p><b>Goal:</b> defines a validate lifecycle callback<br>
<b>Target:</b> method</p>

<h2><a name="HowtouseiPOJOAnnotations-TemporalDependencies(externalhandler)"></a>Temporal Dependencies (external handler)</h2>

<p>The temporal dependency handler is an external handler. However, it
can be used with an annotation defined in the iPOJO annotations jar
file. <br>
The annotation is org.apache.felix.ipojo.handler.temporal.Requires and targets a field. <br>
<b>Attributes:</b></p>
<ul>
	<li>filter : specify the dependency filter</li>
	<li>timeout : specify the dependency timeout (optional)</li>
	<li>onTimeout
: specify the onTimeout action (null, nullable, empty-array,
default-implementation (specify the class name in this case) (optional).</li>
</ul>



<h2><a name="HowtouseiPOJOAnnotations-ExposinginstancesasaJMXMBean(externalhandler)\Newinthe1.1.0SNAPSHOTversion\"></a>Exposing instances as a JMX MBean (external handler) [New in the 1.1.0-SNAPSHOT version]</h2>

<p>The JMX Handler allows exposing an instance as a JMX MBean. To
configure the JMX handler directly from your code, three annotations
are provided. They are in the <tt>org.apache.felix.ipojo.handlers.jmx</tt> package</p>

<p>The <tt>@org.apache.felix.ipojo.handlers.jmx.Config</tt> (<tt>@Config</tt> if the package it correctly imported) annotation is a type annotation (so placed on the <tt>class</tt> element. This annotation indicates that the instance will be exposed as an MBean. This annotation supports:</p>
<ul>
	<li>usesMOSGi: set to <tt>true</tt> to use MOSGi. Otherwise, the MBean will be exposed in the MBean Platform Server (default: <tt>false</tt>).</li>
	<li>objectname: set the MBean objectname. The objectname must follow JMX specification. (default: <tt>package-name:factory-name:instance-name</tt>)</li>
	<li>domain: set the MBean domain. (default: <tt>package-name</tt>)</li>
	<li>name: set the MBean name. (default: <tt>instance-name</tt>).</li>
</ul>


<p>The <tt>@org.apache.felix.ipojo.handlers.jmx.Property</tt> (<tt>@Property</tt>) annotation is a field annotation indicating that the field is exposed in the MBean. The supported attributes are:</p>
<ul>
	<li>name: set the property name</li>
	<li>rights: set the access permission. Possible values are <tt>r</tt> (read only) and <tt>w</tt> (read and write). By default, properties are in read-only mode.</li>
	<li>notification: enables notification on this property. By default notifications are disabled.</li>
</ul>


<p>The <tt>@org.apache.felix.ipojo.handlers.jmx.Method</tt> (<tt>@Method</tt>) annotation is a method annotation indicating that the method is exposed in the MBean. Only one attribute can be customized:</p>
<ul>
	<li>description: set the method description.</li>
</ul>



<h1><a name="HowtouseiPOJOAnnotations-Metadatafileandannotationmerge"></a>Metadata file and annotation merge</h1>

<p>It is possible to defines component type both in the metadata file
(in XML) and by using annotation. However, if a component type defined
by using annotations has the same name than a type define in the XML
file, the XML descriptor override the annotation defined type. However,
a warning message is launched during the manipulation.</p>

<h1><a name="HowtouseiPOJOAnnotations-Instancecreation"></a>Instance creation</h1>

<p>Annotation can only be used to define component type. To define
instances, you need to use the XML descriptor. Instance can refer to
annotated types by referring to their names.</p>
<div class="code"><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;instance component=<span class="code-quote">"ipojo.example.hello.impl.HelloImpl"</span>/&gt;</span>
<span class="code-tag">&lt;instance component=<span class="code-quote">"AnnotedHelloClient"</span>/&gt;</span></pre>
</div></div>

<h1><a name="HowtouseiPOJOAnnotations-UsingCustomAnnotations"></a>Using Custom Annotations</h1>

<p>External handlers can provides their own annotations. Using these
annotations just requires to add them to your build path. To external
handlers annotations, please refer to the external handler
documentation.</p></td>
<td class="confluenceTd" valign="top" width="20%">
<h6><a name="HowtouseiPOJOAnnotations-Overview"></a><b>Overview</b></h6>
<ul>
	<li><a href="http://felix.apache.org/site/apache-felix-ipojo.html" title="Apache Felix iPOJO">Home Page</a></li>
	<li><a href="http://felix.apache.org/site/apache-felix-ipojo-feature-overview.html" title="Apache Felix iPOJO Feature Overview">iPOJO Feature Overview</a></li>
	<li><a href="http://felix.apache.org/site/download.html" title="Download">Download &amp; Install </a></li>
</ul>


<h6><a name="HowtouseiPOJOAnnotations-GettingStarted"></a><b>Getting Started</b></h6>
<ul>
	<li><a href="http://felix.apache.org/site/ipojo-in-10-minutes.html" title="iPOJO in 10 minutes">iPOJO in 10 minutes</a></li>
	<li><a href="" title="How to use iPOJO Annotations">How to use iPOJO Annotations</a></li>
	<li><a href="http://felix.apache.org/site/ipojo-hello-word-maven-based-tutorial.html" title="iPOJO Hello Word (Maven-Based) tutorial">iPOJO Hello Word (Maven-Based) tutorial</a></li>
	<li><a href="http://felix.apache.org/site/ipojo-advanced-tutorial.html" title="iPOJO Advanced Tutorial">iPOJO Advanced Tutorial</a></li>
	<li><a href="http://felix.apache.org/site/ipojo-composition-tutorial.html" title="iPOJO Composition Tutorial">iPOJO Composition Tutorial</a></li>
</ul>


<h6><a name="HowtouseiPOJOAnnotations-UserGuide"></a><b>User Guide</b></h6>
<ul>
	<li><a href="http://felix.apache.org/site/describing-components.html" title="Describing components">Describing components (handler list) </a></li>
	<li><a href="http://felix.apache.org/site/using-xml-schemas.html" title="Using XML Schemas">Using XML Schemas</a></li>
	<li><a href="http://felix.apache.org/site/apache-felix-ipojo-testing-components.html" title="apache-felix-ipojo-testing-components">Testing components</a></li>
	<li><a href="http://felix.apache.org/site/ipojo-advanced-topics.html" title="iPOJO Advanced Topics">Advanced Topics</a></li>
	<li><a href="http://felix.apache.org/site/ipojo-faq.html" title="iPOJO FAQ">FAQ</a></li>
</ul>


<h6><a name="HowtouseiPOJOAnnotations-Tools"></a><b>Tools</b></h6>
<ul>
	<li><a href="http://felix.apache.org/site/ipojo-eclipse-plug-in.html" title="iPOJO Eclipse Plug-in">iPOJO Eclipse Plug-in</a></li>
	<li><a href="http://felix.apache.org/site/ipojo-ant-task.html" title="iPOJO Ant Task">iPOJO Ant Task</a></li>
	<li><a href="http://felix.apache.org/site/ipojo-maven-plug-in.html" title="iPOJO Maven Plug-in">iPOJO Maven Plug-in</a></li>
	<li><a href="http://felix.apache.org/site/apache-felix-ipojo-junit4osgi.html" title="apache-felix-ipojo-junit4osgi">Junit4OSGi</a></li>
	<li><a href="http://felix.apache.org/site/ipojo-concepts-overview.html" title="iPOJO Concepts Overview">iPOJO concepts overview</a></li>
</ul>


<h6><a name="HowtouseiPOJOAnnotations-DeveloperGuide"></a><b>Developer Guide</b></h6>
<ul>
	<li>API: <span class="nobr"><a href="http://people.apache.org/%7Eclement/ipojo/api/1.0/" title="Visit page outside Confluence" rel="nofollow">1.0<sup><img class="rendericon" src="how-to-use-ipojo-annotations_files/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7"></sup></a></span></li>
	<li><a href="http://felix.apache.org/site/how-to-write-your-own-handler.html" title="How to write your own handler">How to write your own handler</a></li>
	<li><a href="http://felix.apache.org/site/how-to-use-ipojo-manipulation-metadata.html" title="How to use iPOJO Manipulation Metadata">How to use iPOJO Manipulation Metadata</a></li>
	<li><a 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>


<h6><a name="HowtouseiPOJOAnnotations-Misc&amp;Contact"></a><b>Misc &amp; Contact</b></h6>
<ul>
	<li><a href="http://felix.apache.org/site/apache-felix-ipojo-issuestracker.html" title="apache-felix-ipojo-issuestracker">Issues Tracker</a></li>
	<li><a href="http://felix.apache.org/site/apache-felix-ipojo-supportedvms.html" title="apache-felix-ipojo-supportedVMs">Supported JVMs</a></li>
	<li><a href="http://felix.apache.org/site/apache-felix-ipojo-supportedosgi.html" title="apache-felix-ipojo-supportedOSGi">Supported OSGi Implementations</a></li>
	<li><span class="nobr"><a href="http://ipojo-dark-side.blogspot.com/" title="Visit page outside Confluence" rel="nofollow">iPOJO's Dark Side Blog<sup><img class="rendericon" src="how-to-use-ipojo-annotations_files/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7"></sup></a></span></li>
	<li><a href="http://felix.apache.org/site/future-ideas.html" title="Future Ideas">Future Ideas</a></li>
	<li><a href="http://felix.apache.org/site/contact.html" title="Contact">Contact</a></li>
	<li><a href="http://felix.apache.org/site/related-works.html" title="Related Works">Related Works</a></li>
	<li><a href="http://felix.apache.org/site/article-presentations.html" title="Article &amp; Presentations">Article &amp; Presentations</a></li>
</ul>


<hr>
<div class="" align="center">
<p><span class="nobr"><a href="http://cwiki.apache.org/confluence/createrssfeed.action?types=blogpost&amp;statuses=created&amp;statuses=modified&amp;spaces=FELIX&amp;labelString=iPOJO&amp;rssType=atom&amp;maxResults=10&amp;timeSpan=5&amp;publicFeed=true&amp;title=iPOJO%20Atom%20Feed" title="Stay tuned!" rel="nofollow"><img src="how-to-use-ipojo-annotations_files/feed-icon-32x32.png" align="absmiddle" border="0"><sup><img class="rendericon" src="how-to-use-ipojo-annotations_files/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7"></sup></a></span></p></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="how-to-use-ipojo-annotations_files/ga.js" type="text/javascript"></script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-1518442-4");
pageTracker._trackPageview();
</script>
</td></tr></tbody></table>
    </div>
  </body></html>