diff --git a/ipojo/handler/eventadmin/doc/event-admin-handlers.html b/ipojo/handler/eventadmin/doc/event-admin-handlers.html
index a789ee0..783515a 100644
--- a/ipojo/handler/eventadmin/doc/event-admin-handlers.html
+++ b/ipojo/handler/eventadmin/doc/event-admin-handlers.html
@@ -1,365 +1,502 @@
-
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<HTML>
+<html><head>
+
+
   
-<!-- Mirrored Site: felix.apache.org. File: /site/event-admin-handlers.html. Date: Mon, 13 Oct 2008 06:53:08 GMT -->
-<HEAD>
-    <TITLE>Apache Felix - Event Admin Handlers</TITLE>
-    <LINK rel="stylesheet" href="media.data/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="index.html"><IMG border="0" alt="Apache Felix" src="media.data/logo.png"></A></DIV><DIV class="header"><A href="http://www.apache.org/"><IMG border="0" alt="Apache" src="media.data/apache.png"></A></DIV></DIV>
-    <DIV class="menu">
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <UL>
-	<LI><A href="news.html" title="news">news</A></LI>
-	<LI><A href="license.html" title="license">license</A></LI>
-	<LI><SPAN class="nobr"><A href="downloads.html" title="Visit page outside Confluence" rel="nofollow">downloads<SUP><IMG class="rendericon" src="../../cwiki.apache.org/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"></SUP></A></SPAN></LI>
-	<LI><A href="documentation.html" title="documentation">documentation</A></LI>
-	<LI><A href="mailinglists.html" title="mailinglists">mailing lists</A></LI>
-	<LI><A href="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="../../cwiki.apache.org/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"></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="../../cwiki.apache.org/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"></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="../../cwiki.apache.org/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"></SUP></A></SPAN>
+    <title>Apache Felix - Event Admin Handlers</title>
+    <link rel="stylesheet" href="event-admin-handlers_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="event-admin-handlers_files/logo.png" border="0"></a></div><div class="header"><a href="http://www.apache.org/"><img alt="Apache" src="event-admin-handlers_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="event-admin-handlers_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="event-admin-handlers_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="event-admin-handlers_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="event-admin-handlers_files/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7"></sup></a></span>
 <!-- ApacheCon Ad -->
-<IFRAME src="http://www.apache.org/ads/button.html" style="border-width:0; float: left" frameborder="0" scrolling="no" width="135" height="135"></IFRAME>
-<P style="height: 100px">
-<!-- ApacheCon Ad --></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%">
+<iframe src="event-admin-handlers_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%">
 
-<H1><A name="EventAdminHandlers-EventAdminHandlers"></A>Event Admin Handlers</H1>
+<h1><a name="EventAdminHandlers-EventAdminHandlers"></a>Event Admin Handlers</h1>
 
-<P>The goal of the Event Admin Handlers is to allow event communications between iPOJO component instances. The implementation of these handlers relies on an event admin services. It enables the iPOJO component to listen to a list of topics and to receive all related event. It also allows components to send events in an easy way.</P>
+<p>The goal of the Event Admin Handlers is to allow event
+communications between iPOJO component instances. The implementation of
+these handlers relies on an event admin services. It enables the iPOJO
+component to listen to a list of topics and to receive all related
+event. It also allows components to send events in an easy way.</p>
 
-<P>Hereafter is presented a small example of the metadata.xml file :</P>
-<DIV class="code"><DIV class="codeContent">
-<PRE class="code-xml">&lt;ipojo
-    <SPAN class="code-keyword">xmlns:ev</SPAN>=<SPAN class="code-quote">&quot;org.apache.felix.ipojo.handlers.event.EventAdminHandler&quot;</SPAN>&gt;
-	<SPAN class="code-tag">&lt;component className=<SPAN class="code-quote">&quot;...MyComponent&quot;</SPAN>&gt;</SPAN>
+<p><b>UPDATE</b> : the 1.1.0-SNAPSHOT version has a new namespace : <tt>org.apache.felix.ipojo.handlers.event</tt> instead of <tt>org.apache.felix.ipojo.handlers.event.EventAdminHandler</tt></p>
+
+<p>Hereafter is presented a small example of the metadata.xml file :</p>
+<div class="code"><div class="codeContent">
+<pre class="code-xml">&lt;ipojo
+    <span class="code-keyword">xmlns:ev</span>=<span class="code-quote">"org.apache.felix.ipojo.handlers.event.EventAdminHandler"</span>&gt;
+	<span class="code-tag">&lt;component className=<span class="code-quote">"...MyComponent"</span>&gt;</span>
 		&lt;ev:subscriber
-			name=<SPAN class="code-quote">&quot;mySubscriber&quot;</SPAN>
-			callback=<SPAN class="code-quote">&quot;receive&quot;</SPAN>
-			topics=<SPAN class="code-quote">&quot;foo&quot;</SPAN>/&gt;
+			name=<span class="code-quote">"mySubscriber"</span>
+			callback=<span class="code-quote">"receive"</span>
+			topics=<span class="code-quote">"foo"</span>/&gt;
 		&lt;ev:publisher
-			name=<SPAN class="code-quote">&quot;myPublisher&quot;</SPAN>
-			field=<SPAN class="code-quote">&quot;m_publisher&quot;</SPAN>
-			topics=<SPAN class="code-quote">&quot;bar,nuts&quot;</SPAN>/&gt;
-	<SPAN class="code-tag">&lt;/component&gt;</SPAN>
-	<SPAN class="code-tag">&lt;instance component=<SPAN class="code-quote">&quot;...MyComponent&quot;</SPAN>/&gt;</SPAN>
-<SPAN class="code-tag">&lt;/ipojo&gt;</SPAN></PRE>
-</DIV></DIV>
-<P>You need to specify the namespace of the Handler. You can find here one event subscriber (named mySubscriber) and one event publisher (named myPublisher). In these handler configurations, the name parameter is mandatory. The topics parameter is optional as it can be specified in the instance configuration. The callback parameter of the mySubscriber element is mandatory and indicates the method that handles received events. In this case, this method must have a single argument of type org.osgi.service.event.Event. The field parameter of the myPublisher element indicates the field (of type org.apache.felix.ipojo.handlers.event.publisher.Publisher) that is used by the POJO to send events on the specified topics. All type compliance will be checked by the handler at component instantiation time.</P>
+			name=<span class="code-quote">"myPublisher"</span>
+			field=<span class="code-quote">"m_publisher"</span>
+			topics=<span class="code-quote">"bar,nuts"</span>/&gt;
+	<span class="code-tag">&lt;/component&gt;</span>
+	<span class="code-tag">&lt;instance component=<span class="code-quote">"...MyComponent"</span>/&gt;</span>
+<span class="code-tag">&lt;/ipojo&gt;</span></pre>
+</div></div>
+<p>You need to specify the namespace of the Handler. You can find here
+one event subscriber (named mySubscriber) and one event publisher
+(named myPublisher). In these handler configurations, the name
+parameter is mandatory. The topics parameter is optional as it can be
+specified in the instance configuration. The callback parameter of the
+mySubscriber element is mandatory and indicates the method that handles
+received events. In this case, this method must have a single argument
+of type org.osgi.service.event.Event. The field parameter of the
+myPublisher element indicates the field (of type
+org.apache.felix.ipojo.handlers.event.publisher.Publisher) that is used
+by the POJO to send events on the specified topics. All type compliance
+will be checked by the handler at component instantiation time.</p>
 
-<P>Here is an example of the component implementation, compatible with the given description :</P>
-<DIV class="code"><DIV class="codeContent">
-<PRE class="code-java"><SPAN class="code-keyword">import</SPAN> org.apache.felix.ipojo.handlers.event.publisher.Publisher;
-<SPAN class="code-keyword">import</SPAN> org.osgi.service.event.Event;
+<p>Here is an example of the component implementation, compatible with the given description :</p>
+<div class="code"><div class="codeContent">
+<pre class="code-java"><span class="code-keyword">import</span> org.apache.felix.ipojo.handlers.event.publisher.Publisher;
+<span class="code-keyword">import</span> org.osgi.service.event.Event;
 
-<SPAN class="code-keyword">public</SPAN> class MyComponent ... {
-    <SPAN class="code-keyword">private</SPAN> Publisher m_publisher;
-    <SPAN class="code-keyword">public</SPAN> void receive(Event e) {
-       <SPAN class="code-comment">// Event received
-</SPAN>       <SPAN class="code-comment">// Do something with the event}
-</SPAN>
-    <SPAN class="code-keyword">public</SPAN> void doSomething() {
-        Dictionary e = <SPAN class="code-keyword">new</SPAN> Properties();
-        <SPAN class="code-comment">//...
-</SPAN>        <SPAN class="code-comment">// Fill out the event
-</SPAN>
-        <SPAN class="code-comment">// Send event
-</SPAN>        m_publisher.send(e);
+<span class="code-keyword">public</span> class MyComponent ... {
+    <span class="code-keyword">private</span> Publisher m_publisher;
+    <span class="code-keyword">public</span> void receive(Event e) {
+       <span class="code-comment">// Event received
+</span>       <span class="code-comment">// Do something with the event}
+</span>
+    <span class="code-keyword">public</span> void doSomething() {
+        Dictionary e = <span class="code-keyword">new</span> Properties();
+        <span class="code-comment">//...
+</span>        <span class="code-comment">// Fill out the event
+</span>
+        <span class="code-comment">// Send event
+</span>        m_publisher.send(e);
     }
-}</PRE>
-</DIV></DIV>
+}</pre>
+</div></div>
 
-<H1><A name="EventAdminHandlers-Download"></A>Download</H1>
+<h1><a name="EventAdminHandlers-Download"></a>Download</h1>
 
-<P>The event admin handlers (to send and receive events) are available in the Felix trunk in the iPOJO project. See the <A href="download.html" title="Download">Download</A> page to download and compile these sources.</P>
+<p>The event admin handlers (to send and receive events) are available in the Felix trunk in the iPOJO project. See the <a href="http://felix.apache.org/site/download.html" title="Download">Download</a> page to download and compile these sources.</p>
 
-<H1><A name="EventAdminHandlers-Howdoesitwork%3F"></A>How does it work?</H1>
+<h1><a name="EventAdminHandlers-Howdoesitwork?"></a>How does it work?</h1>
 
-<P>The handler will parse the description provided in the metadata, and register for you the EventHandler in the OSGi Registry. On one hand, your POJO will receive each event through the handler. With this handler you can specify different callback methods for different topics. On the other side, the handler instantiates and injects configured Publisher references in your POJO, so you can send events transparently through these publishers.</P>
+<p>The handler will parse the description provided in the metadata, and
+register for you the EventHandler in the OSGi Registry. On one hand,
+your POJO will receive each event through the handler. With this
+handler you can specify different callback methods for different
+topics. On the other side, the handler instantiates and injects
+configured Publisher references in your POJO, so you can send events
+transparently through these publishers.</p>
 
-<H1><A name="EventAdminHandlers-EventHandlerSpecification"></A>EventHandler Specification</H1>
+<h1><a name="EventAdminHandlers-EventHandlerSpecification"></a>EventHandler Specification</h1>
 
-<P>Here you can find all configuration options of the EventAdmin handler. As seen before, the handler contains two components : the event subscriber and the event publisher. These components can be configured, using several attributes, as described below. Some of these attributes can be (re)defined in the instance configuration.</P>
+<p>Here you can find all configuration options of the EventAdmin
+handler. As seen before, the handler contains two components : the
+event subscriber and the event publisher. These components can be
+configured, using several attributes, as described below. Some of these
+attributes can be (re)defined in the instance configuration.</p>
 
-<P>Handler namespace : org.apache.felix.ipojo.handlers.event.EventAdminHandler</P>
+<p>Handler namespace : org.apache.felix.ipojo.handlers.event.EventAdminHandler</p>
 
-<H2><A name="EventAdminHandlers-Eventsubscriberattributes"></A>Event subscriber attributes</H2>
+<h2><a name="EventAdminHandlers-Eventsubscriberattributes"></a>Event subscriber attributes</h2>
 
-<TABLE class="confluenceTable"><TBODY>
-<TR>
-<TH class="confluenceTh"> Attribute name </TH>
-<TH class="confluenceTh"> Required </TH>
-<TH class="confluenceTh"> Description </TH>
-</TR>
-<TR>
-<TD class="confluenceTd"> <EM>name</EM> </TD>
-<TD class="confluenceTd"> YES </TD>
-<TD class="confluenceTd"> The name of the event subscriber, acting as a unique 			identifier. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> <EM>callback</EM> </TD>
-<TD class="confluenceTd"> YES </TD>
-<TD class="confluenceTd"> The name of the POJO's method that will be called each time an 			event is received. This method takes only one parameter, of typeorg.osgi.service.event.Eventby default, but this type can be overridden by defining the 			data-key and/or the data-type attributes. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> <EM>topics</EM> </TD>
-<TD class="confluenceTd"> YES&#42; </TD>
-<TD class="confluenceTd"> The comma-separated-list of the topics that the handler will 			listen to. Each event sent on a topic present in this list will be 			sent to the specified callback method. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> <EM>data-key</EM> </TD>
-<TD class="confluenceTd"> NO </TD>
-<TD class="confluenceTd"> The data key is used when you want to receive data events. This 			attribute's value is the key corresponding to the received data in 			the event's dictionary. <BR clear="all">
-If you use this attribute, the parameter passed to the callback 			method is the the value associated to this key, not the whole 			event. <BR clear="all">
-This attribute is generally used with the <EM>data-type</EM>attribute to specify the received object type. <BR clear="all">
-If an event is received and it does not contain such a key, it 			is ignored (with a warning message). </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> <EM>data-type</EM> </TD>
-<TD class="confluenceTd"> NO </TD>
-<TD class="confluenceTd"> This attribute is associated to the data-key attribute. It 			specifies the type of objects (java.lang.Objectby default) that the callback expects. It is used to determine the 			unique callback method (in case of multiple methods with the same 			name) and to check type compliance at event reception. <BR clear="all">
-Data events that are not corresponding to the specified type 			will be ignored (with a warning message). </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> <EM>filter</EM> </TD>
-<TD class="confluenceTd"> NO&#42; </TD>
-<TD class="confluenceTd"> The event filter is used to filter incoming events before 			sending them to the callback. The syntax of this field is 			described in the OSGi EventAdmin Specification. If you don't 			specify a filter, all events sent on the listened topics will be 			considered. </TD>
-</TR>
-</TBODY></TABLE>
-<P>&#42; These attributes can be (re)defined in the instance configuration.</P>
+<table class="confluenceTable"><tbody>
+<tr>
+<th class="confluenceTh"> Attribute name </th>
+<th class="confluenceTh"> Required </th>
+<th class="confluenceTh"> Description </th>
+</tr>
+<tr>
+<td class="confluenceTd"> <em>name</em> </td>
+<td class="confluenceTd"> YES </td>
+<td class="confluenceTd"> The name of the event subscriber, acting as a unique 			identifier. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> <em>callback</em> </td>
+<td class="confluenceTd"> YES </td>
+<td class="confluenceTd"> The name of the POJO's method that will be
+called each time an event is received. This method takes only one
+parameter, of typeorg.osgi.service.event.Eventby default, but this type
+can be overridden by defining the data-key and/or the data-type
+attributes. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> <em>topics</em> </td>
+<td class="confluenceTd"> YES* </td>
+<td class="confluenceTd"> The comma-separated-list of the topics that
+the handler will listen to. Each event sent on a topic present in this
+list will be sent to the specified callback method. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> <em>data-key</em> </td>
+<td class="confluenceTd"> NO </td>
+<td class="confluenceTd"> The data key is used when you want to receive
+data events. This attribute's value is the key corresponding to the
+received data in the event's dictionary. <br clear="all">
+If you use this attribute, the parameter passed to the callback method
+is the the value associated to this key, not the whole event. <br clear="all">
+This attribute is generally used with the <em>data-type</em> attribute to specify the received object type. <br clear="all">
+If an event is received and it does not contain such a key, it 			is ignored (with a warning message). </td>
+</tr>
+<tr>
+<td class="confluenceTd"> <em>data-type</em> </td>
+<td class="confluenceTd"> NO </td>
+<td class="confluenceTd"> This attribute is associated to the data-key
+attribute. It specifies the type of objects (java.lang.Objectby
+default) that the callback expects. It is used to determine the unique
+callback method (in case of multiple methods with the same name) and to
+check type compliance at event reception. <br clear="all">
+Data events that are not corresponding to the specified type 			will be ignored (with a warning message). </td>
+</tr>
+<tr>
+<td class="confluenceTd"> <em>filter</em> </td>
+<td class="confluenceTd"> NO* </td>
+<td class="confluenceTd"> The event filter is used to filter incoming
+events before sending them to the callback. The syntax of this field is
+described in the OSGi EventAdmin Specification. If you don't specify a
+filter, all events sent on the listened topics will be considered. </td>
+</tr>
+</tbody></table>
+<p>* These attributes can be (re)defined in the instance configuration.</p>
 
-<H2><A name="EventAdminHandlers-Eventpublisherattributes"></A>Event publisher attributes</H2>
+<h2><a name="EventAdminHandlers-Eventpublisherattributes"></a>Event publisher attributes</h2>
 
-<TABLE class="confluenceTable"><TBODY>
-<TR>
-<TH class="confluenceTh"> Attribute name </TH>
-<TH class="confluenceTh"> Required </TH>
-<TH class="confluenceTh"> Description </TH>
-</TR>
-<TR>
-<TD class="confluenceTd"> <EM>name</EM> </TD>
-<TD class="confluenceTd"> YES </TD>
-<TD class="confluenceTd"> The name of the event publisher, acting as a unique identifier. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> <EM>field</EM> </TD>
-<TD class="confluenceTd"> YES </TD>
-<TD class="confluenceTd"> The name of the POJO's field that will be used to send events. 			The field is initialized at component instantiation time. The type 			of the field must be : org.apache.felix.ipojo.handlers.event.publisher.Publisher. Despite it creates a dependency between the component code and the handler, this system allows hiding the 			whole complexity of event sending. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> <EM>topics</EM> </TD>
-<TD class="confluenceTd"> YES&#42; </TD>
-<TD class="confluenceTd"> The comma-separated-list of the topics on which events will be 			sent. All subscribers that are listening to one of these topics 			will receive the events. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> <EM>data-key</EM> </TD>
-<TD class="confluenceTd"> NO </TD>
-<TD class="confluenceTd"> The data key is used when you want to send data events. This 			attribute's value is the key, in the event's dictionary, in which 			sent data are stored. When you use the <EM>sendData</EM> method of 			the Publisher, the given object is placed in the event dictionary, 			associated with the specified data-key. <BR clear="all">
-The default value of this attribute is user.data. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> <EM>synchronous</EM> </TD>
-<TD class="confluenceTd"> NO </TD>
-<TD class="confluenceTd"> Determines if event sending is synchronous or not. By default, 			events are sent asynchronously, but you can specify there the 			desired behaviour of the Publisher. <BR clear="all">
-The default value of this attribute is &quot;false&quot;. </TD>
-</TR>
-</TBODY></TABLE>
-<P>&#42; These attributes can be (re)defined in the instance configuration.</P>
+<table class="confluenceTable"><tbody>
+<tr>
+<th class="confluenceTh"> Attribute name </th>
+<th class="confluenceTh"> Required </th>
+<th class="confluenceTh"> Description </th>
+</tr>
+<tr>
+<td class="confluenceTd"> <em>name</em> </td>
+<td class="confluenceTd"> YES </td>
+<td class="confluenceTd"> The name of the event publisher, acting as a unique identifier. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> <em>field</em> </td>
+<td class="confluenceTd"> YES </td>
+<td class="confluenceTd"> The name of the POJO's field that will be
+used to send events. The field is initialized at component
+instantiation time. The type of the field must be :
+org.apache.felix.ipojo.handlers.event.publisher.Publisher. Despite it
+creates a dependency between the component code and the handler, this
+system allows hiding the whole complexity of event sending. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> <em>topics</em> </td>
+<td class="confluenceTd"> YES* </td>
+<td class="confluenceTd"> The comma-separated-list of the topics on which events will be sent. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> <em>data-key</em> </td>
+<td class="confluenceTd"> NO </td>
+<td class="confluenceTd"> The data key is used when you want to send
+data events. This attribute's value is the key, in the event's
+dictionary, in which sent data are stored. When you use the <em>sendData</em> method of 			the Publisher, the given object is placed in the event dictionary, 			associated with the specified data-key. <br clear="all">
+The default value of this attribute is user.data. </td>
+</tr>
+<tr>
+<td class="confluenceTd"> <em>synchronous</em> </td>
+<td class="confluenceTd"> NO </td>
+<td class="confluenceTd"> Determines if event sending is synchronous or
+not. By default, events are sent asynchronously, but you can specify
+there the desired behaviour of the Publisher. <br clear="all">
+The default value of this attribute is "false". </td>
+</tr>
+</tbody></table>
+<p>* These attributes can be (re)defined in the instance configuration.</p>
 
-<H2><A name="EventAdminHandlers-Instanceconfiguration"></A>Instance configuration</H2>
+<h2><a name="EventAdminHandlers-Instanceconfiguration"></a>Instance configuration</h2>
 
-<P>Some of the described attributes can be (re)defined in the instance configuration section of your metadata file. Its permits to configure event management instance by instance. The following properties are used by the handler :</P>
-<UL>
-	<LI><EM>event.topics</EM> : overrides <EM>topics</EM> attribute, 	available for both subscribers and publishers configuration</LI>
-	<LI><EM>event.filter</EM> : overrides <EM>filter</EM> attribute, 	available for subscribers configuration only.</LI>
-</UL>
+<p>Some of the described attributes can be (re)defined in the instance
+configuration section of your metadata file. Its permits to configure
+event management instance by instance. The following properties are
+used by the handler :</p>
+<ul>
+	<li><em>event.topics</em> : overrides <em>topics</em> attribute, 	available for both subscribers and publishers configuration</li>
+	<li><em>event.filter</em> : overrides <em>filter</em> attribute, 	available for subscribers configuration only.</li>
+</ul>
 
 
-<H2><A name="EventAdminHandlers-Publisherinterface"></A>Publisher interface</H2>
+<h2><a name="EventAdminHandlers-Publisherinterface"></a>Publisher interface</h2>
 
-<P>The Publisher interface is the link between the component code and the handler. It permits to publish events on the topics specified in the component's description (or instance configuration). The implemented methods are :</P>
-<UL>
-	<LI>public void send<FONT color="#000000">(Dictionary 	content);</FONT><BR>
-This method is used to send a 	standard event, with the specified content. Some specific properties 	may be added in the content to satisfy EventAdmin specification. 	(e.g., event.topic).</LI>
-	<LI>public void sendData<FONT color="#000000">(Object 	o);</FONT><BR>
-This method is the easier way to send 	data. The given object is placed in the event dictionary according 	to the <EM>data-key</EM> attribute (or its default value). Then, this 	dictionary is sent as a normal event.</LI>
-</UL>
+<p>The Publisher interface is the link between the component code and
+the handler. It permits to publish events on the topics specified in
+the component's description (or instance configuration). The
+implemented methods are :</p>
+<ul>
+	<li>public void send<font color="#000000">(Dictionary 	content);</font><br>
+This method is used to send a standard event, with the specified
+content. Some specific properties may be added in the content to
+satisfy EventAdmin specification. (e.g., event.topic).</li>
+	<li>public void sendData<font color="#000000">(Object 	o);</font><br>
+This method is the easier way to send 	data. The given object is placed in the event dictionary according 	to the <em>data-key</em> attribute (or its default value). Then, this 	dictionary is sent as a normal event.</li>
+</ul>
 
 
-<H1><A name="EventAdminHandlers-HandlerArchitecture"></A>Handler Architecture</H1>
+<h1><a name="EventAdminHandlers-HandlerArchitecture"></a>Handler Architecture</h1>
 
-<P>Here is shown the global architecture of the EventHandler : the interactions between the user components (i.e., POJO), the handler and the OSGi runtime environment.</P>
+<p>Here is shown the global architecture of the EventHandler : the
+interactions between the user components (i.e., POJO), the handler and
+the OSGi runtime environment.</p>
 
-<P><IMG src="event-admin-handlers.data/handler-arch.png" align="absmiddle" border="0"></P>
+<p><img src="event-admin-handlers_files/handler-arch.png" align="absmiddle" border="0"></p>
 
-<H1><A name="EventAdminHandlers-EventHandlerFeatures"></A>EventHandler Features</H1>
+<h1><a name="EventAdminHandlers-EventHandlerFeatures"></a>EventHandler Features</h1>
 
-<P>In this section, you will find some examples of the handler's features.</P>
+<p>In this section, you will find some examples of the handler's features.</p>
 
-<H2><A name="EventAdminHandlers-Instancecustomization"></A>Instance customization</H2>
+<h2><a name="EventAdminHandlers-Instancecustomization"></a>Instance customization</h2>
 
-<P>As described in the 'Instance configuration' section, you can (re)define some of the subscribers or publishers attributes. You can notice that required attributes that are not defined in the component description must be defined in the instance configuration section. Hereafter is an example of an instance configuration of this handler :</P>
-<DIV class="code"><DIV class="codeContent">
-<PRE class="code-xml">&lt;ipojo
-    <SPAN class="code-keyword">xmlns:ev</SPAN>=<SPAN class="code-quote">&quot;org.apache.felix.ipojo.handlers.event.EventAdminHandler&quot;</SPAN>&gt;
-	<SPAN class="code-tag">&lt;component className=<SPAN class="code-quote">&quot;...MyComponent&quot;</SPAN>&gt;</SPAN>
+<p>As described in the 'Instance configuration' section, you can
+(re)define some of the subscribers or publishers attributes. You can
+notice that required attributes that are not defined in the component
+description must be defined in the instance configuration section.
+Hereafter is an example of an instance configuration of this handler :</p>
+<div class="code"><div class="codeContent">
+<pre class="code-xml">&lt;ipojo
+    <span class="code-keyword">xmlns:ev</span>=<span class="code-quote">"org.apache.felix.ipojo.handlers.event.EventAdminHandler"</span>&gt;
+	<span class="code-tag">&lt;component className=<span class="code-quote">"...MyComponent"</span>&gt;</span>
 		&lt;ev:subscriber
-			name=<SPAN class="code-quote">&quot;mySubscriber&quot;</SPAN>
-			callback=<SPAN class="code-quote">&quot;handleEvent&quot;</SPAN>/&gt;
+			name=<span class="code-quote">"mySubscriber"</span>
+			callback=<span class="code-quote">"handleEvent"</span>/&gt;
 		&lt;ev:publisher
-			name=<SPAN class="code-quote">&quot;myPublisher&quot;</SPAN>
-			field=<SPAN class="code-quote">&quot;m_publisher&quot;</SPAN>/&gt;
-	<SPAN class="code-tag">&lt;/component&gt;</SPAN>
-	<SPAN class="code-tag">&lt;instance component=<SPAN class="code-quote">&quot;...MyComponent&quot;</SPAN>&gt;</SPAN>
-		<SPAN class="code-tag">&lt;property name=<SPAN class="code-quote">&quot;event.topics&quot;</SPAN>&gt;</SPAN>
-			<SPAN class="code-tag">&lt;property name=<SPAN class="code-quote">&quot;mySubscriber&quot;</SPAN> value=<SPAN class="code-quote">&quot;foo&quot;</SPAN>/&gt;</SPAN>
-			<SPAN class="code-tag">&lt;property name=<SPAN class="code-quote">&quot;myPublisher&quot;</SPAN> value=<SPAN class="code-quote">&quot;bar,nuts&quot;</SPAN>/&gt;</SPAN>
-		<SPAN class="code-tag">&lt;/property&gt;</SPAN>
-		<SPAN class="code-tag">&lt;property name=<SPAN class="code-quote">&quot;event.filter&quot;</SPAN>&gt;</SPAN>
-			&lt;property name=<SPAN class="code-quote">&quot;mySubscriber&quot;</SPAN>
-				    value=<SPAN class="code-quote">&quot;|((arg=Minibar)(arg=Coconuts))&quot;</SPAN>/&gt;
-		<SPAN class="code-tag">&lt;/property&gt;</SPAN>
-	<SPAN class="code-tag">&lt;/instance&gt;</SPAN>
-<SPAN class="code-tag">&lt;/ipojo&gt;</SPAN></PRE>
-</DIV></DIV>
+			name=<span class="code-quote">"myPublisher"</span>
+			field=<span class="code-quote">"m_publisher"</span>/&gt;
+	<span class="code-tag">&lt;/component&gt;</span>
+	<span class="code-tag">&lt;instance component=<span class="code-quote">"...MyComponent"</span>&gt;</span>
+		<span class="code-tag">&lt;property name=<span class="code-quote">"event.topics"</span>&gt;</span>
+			<span class="code-tag">&lt;property name=<span class="code-quote">"mySubscriber"</span> value=<span class="code-quote">"foo"</span>/&gt;</span>
+			<span class="code-tag">&lt;property name=<span class="code-quote">"myPublisher"</span> value=<span class="code-quote">"bar,nuts"</span>/&gt;</span>
+		<span class="code-tag">&lt;/property&gt;</span>
+		<span class="code-tag">&lt;property name=<span class="code-quote">"event.filter"</span>&gt;</span>
+			&lt;property name=<span class="code-quote">"mySubscriber"</span>
+				    value=<span class="code-quote">"|((arg=Minibar)(arg=Coconuts))"</span>/&gt;
+		<span class="code-tag">&lt;/property&gt;</span>
+	<span class="code-tag">&lt;/instance&gt;</span>
+<span class="code-tag">&lt;/ipojo&gt;</span></pre>
+</div></div>
 
-<H2><A name="EventAdminHandlers-Dataevents"></A>Data events</H2>
+<h2><a name="EventAdminHandlers-Dataevents"></a>Data events</h2>
 
-<P>One of the most important features of the EventHandler is the capability of sending and receiving data events. You may know that the OSGi EventAdmin Service allows bundles to send custom objects in events, inserting them in the event's dictionary. The EventHandler hides the dictionary manipulation and allows iPOJO components to receive custom objects at any time.</P>
+<p>One of the most important features of the EventHandler is the
+capability of sending and receiving data events. You may know that the
+OSGi EventAdmin Service allows bundles to send custom objects in
+events, inserting them in the event's dictionary. The EventHandler
+hides the dictionary manipulation and allows iPOJO components to
+receive custom objects at any time.</p>
 
-<P>First, you have define the <EM>data-key</EM> attribute in the publisher configuration. Sent objects will be contained in the event dictionary and are accessible with the &quot;user.data&quot; key.</P>
-<DIV class="code"><DIV class="codeContent">
-<PRE class="code-xml">&lt;ipojo
-    <SPAN class="code-keyword">xmlns:ev</SPAN>=<SPAN class="code-quote">&quot;org.apache.felix.ipojo.handlers.event.EventAdminHandler&quot;</SPAN>&gt;
-    <SPAN class="code-tag">&lt;component className=<SPAN class="code-quote">&quot;...DataPublisher&quot;</SPAN>&gt;</SPAN>
+<p>First, you have define the <em>data-key</em> attribute in the
+publisher configuration. Sent objects will be contained in the event
+dictionary and are accessible with the "user.data" key.</p>
+<div class="code"><div class="codeContent">
+<pre class="code-xml">&lt;ipojo
+    <span class="code-keyword">xmlns:ev</span>=<span class="code-quote">"org.apache.felix.ipojo.handlers.event.EventAdminHandler"</span>&gt;
+    <span class="code-tag">&lt;component className=<span class="code-quote">"...DataPublisher"</span>&gt;</span>
 		&lt;ev:publisher
-			name=<SPAN class="code-quote">&quot;myPublisher&quot;</SPAN>
-			field=<SPAN class="code-quote">&quot;m_publisher&quot;</SPAN>
-			topics=<SPAN class="code-quote">&quot;myTopic&quot;</SPAN>
-			data-key=<SPAN class="code-quote">&quot;my.data&quot;</SPAN>/&gt;
-	<SPAN class="code-tag">&lt;/component&gt;</SPAN>
-	<SPAN class="code-tag">&lt;instance component=<SPAN class="code-quote">&quot;...DataPublisher&quot;</SPAN>/&gt;</SPAN>
-<SPAN class="code-tag">&lt;/ipojo&gt;</SPAN></PRE>
-</DIV></DIV>
-<P>Then you can use the <EM>sendData</EM> method of your configured publisher.</P>
-<DIV class="code"><DIV class="codeContent">
-<PRE class="code-java"><SPAN class="code-keyword">import</SPAN> org.apache.felix.ipojo.handlers.event.publisher.Publisher;
-<SPAN class="code-comment">//...
-</SPAN><SPAN class="code-keyword">public</SPAN> class DataPublisher ... {
-    <SPAN class="code-keyword">private</SPAN> Publisher m_publisher;
+			name=<span class="code-quote">"myPublisher"</span>
+			field=<span class="code-quote">"m_publisher"</span>
+			topics=<span class="code-quote">"myTopic"</span>
+			data-key=<span class="code-quote">"my.data"</span>/&gt;
+	<span class="code-tag">&lt;/component&gt;</span>
+	<span class="code-tag">&lt;instance component=<span class="code-quote">"...DataPublisher"</span>/&gt;</span>
+<span class="code-tag">&lt;/ipojo&gt;</span></pre>
+</div></div>
+<p>Then you can use the <em>sendData</em> method of your configured publisher.</p>
+<div class="code"><div class="codeContent">
+<pre class="code-java"><span class="code-keyword">import</span> org.apache.felix.ipojo.handlers.event.publisher.Publisher;
+<span class="code-comment">//...
+</span><span class="code-keyword">public</span> class DataPublisher ... {
+    <span class="code-keyword">private</span> Publisher m_publisher;
 
-    <SPAN class="code-keyword">public</SPAN> void doSomething() {
-      <SPAN class="code-comment">// MyFavoriteType <SPAN class="code-keyword">extends</SPAN> MyFavoriteInterface
-</SPAN>      MyFavoriteType data = <SPAN class="code-keyword">new</SPAN> MyFavoriteType(...);
-      <SPAN class="code-comment">//...
-</SPAN>      <SPAN class="code-comment">// Send a data event
-</SPAN>      m_publisher.sendData(data);
+    <span class="code-keyword">public</span> void doSomething() {
+      <span class="code-comment">// MyFavoriteType <span class="code-keyword">extends</span> MyFavoriteInterface
+</span>      MyFavoriteType data = <span class="code-keyword">new</span> MyFavoriteType(...);
+      <span class="code-comment">//...
+</span>      <span class="code-comment">// Send a data event
+</span>      m_publisher.sendData(data);
     }
-}</PRE>
-</DIV></DIV>
-<P>The second step is to configure an event subscriber to receive such events. The <EM>data-key</EM> attribute's  value of the subscriber must be the same than the publisher's one. The <EM>data-type</EM>describe the type of received data events, and thus, must be compatible with the sent object's type (i.e., super-class or inherited interface). Then you can finally receive the sent object in the callback method. The parameter type of the callback must be the same than the data-type attribute value.</P>
-<DIV class="code"><DIV class="codeContent">
-<PRE class="code-xml">&lt;ipojo
-   <SPAN class="code-keyword">xmlns:ev</SPAN>=<SPAN class="code-quote">&quot;org.apache.felix.ipojo.handlers.event.EventAdminHandler&quot;</SPAN>&gt;
-	<SPAN class="code-tag">&lt;component className=<SPAN class="code-quote">&quot;...DataEventSubscriber&quot;</SPAN>&gt;</SPAN>
+}</pre>
+</div></div>
+<p>The second step is to configure an event subscriber to receive such events. The <em>data-key</em> attribute's  value of the subscriber must be the same than the publisher's one. The <em>data-type</em>describe
+the type of received data events, and thus, must be compatible with the
+sent object's type (i.e., super-class or inherited interface). Then you
+can finally receive the sent object in the callback method. The
+parameter type of the callback must be the same than the data-type
+attribute value.</p>
+<div class="code"><div class="codeContent">
+<pre class="code-xml">&lt;ipojo
+   <span class="code-keyword">xmlns:ev</span>=<span class="code-quote">"org.apache.felix.ipojo.handlers.event.EventAdminHandler"</span>&gt;
+	<span class="code-tag">&lt;component className=<span class="code-quote">"...DataEventSubscriber"</span>&gt;</span>
 		&lt;ev:subscriber
-			name=<SPAN class="code-quote">&quot;mySubscriber&quot;</SPAN>
-			callback=<SPAN class="code-quote">&quot;handleData&quot;</SPAN>
-			topics=<SPAN class="code-quote">&quot;myTopic&quot;</SPAN>
-			data-key=<SPAN class="code-quote">&quot;my.data&quot;</SPAN>
-			data-type=<SPAN class="code-quote">&quot;my.package.MyFavoriteInterface&quot;</SPAN>/&gt;
-	<SPAN class="code-tag">&lt;/component&gt;</SPAN>
-	<SPAN class="code-tag">&lt;instance component=<SPAN class="code-quote">&quot;...DataEventSubscriber&quot;</SPAN>/&gt;</SPAN>
-<SPAN class="code-tag">&lt;/ipojo&gt;</SPAN></PRE>
-</DIV></DIV>
-<DIV class="code"><DIV class="codeContent">
-<PRE class="code-java"><SPAN class="code-keyword">import</SPAN> my.<SPAN class="code-keyword">package</SPAN>.MyFavoriteInterface;
-<SPAN class="code-comment">//...
-</SPAN><SPAN class="code-keyword">public</SPAN> class DataEventSubscriber ... {
-  <SPAN class="code-keyword">public</SPAN> void handleData(MyFavoriteInterface o) {
-     <SPAN class="code-comment">// <SPAN class="code-object">Object</SPAN> received
-</SPAN>     <SPAN class="code-comment">//...
-</SPAN>   }
-}</PRE>
-</DIV></DIV>
+			name=<span class="code-quote">"mySubscriber"</span>
+			callback=<span class="code-quote">"handleData"</span>
+			topics=<span class="code-quote">"myTopic"</span>
+			data-key=<span class="code-quote">"my.data"</span>
+			data-type=<span class="code-quote">"my.package.MyFavoriteInterface"</span>/&gt;
+	<span class="code-tag">&lt;/component&gt;</span>
+	<span class="code-tag">&lt;instance component=<span class="code-quote">"...DataEventSubscriber"</span>/&gt;</span>
+<span class="code-tag">&lt;/ipojo&gt;</span></pre>
+</div></div>
+<div class="code"><div class="codeContent">
+<pre class="code-java"><span class="code-keyword">import</span> my.<span class="code-keyword">package</span>.MyFavoriteInterface;
+<span class="code-comment">//...
+</span><span class="code-keyword">public</span> class DataEventSubscriber ... {
+  <span class="code-keyword">public</span> void handleData(MyFavoriteInterface o) {
+     <span class="code-comment">// <span class="code-object">Object</span> received
+</span>     <span class="code-comment">//...
+</span>   }
+}</pre>
+</div></div>
 
-<H2><A name="EventAdminHandlers-Noteonsynchronouseventsending"></A>Note on synchronous event sending</H2>
+<h2><a name="EventAdminHandlers-Noteonsynchronouseventsending"></a>Note on synchronous event sending</h2>
 
-<P>By default, events are sent using asynchronous sending (a.k.a.<EM>post</EM> in OSGi EventAdmin). You can use synchronous sending by defining the <EM>synchronous</EM> attribute of your publisher to true.</P>
+<p>By default, events are sent using asynchronous sending (a.k.a.<em>post</em> in OSGi EventAdmin). You can use synchronous sending by defining the <em>synchronous</em> attribute of your publisher to true.</p>
 
-<P>The behaviour of synchronous event sending is particular when you specify several topics in the publisher description. The event is synchronously sent to each topic, one by one. So when you return from this function, you can be sure that the event has been delivered to each topic.</P>
+<p>The behaviour of synchronous event sending is particular when you
+specify several topics in the publisher description. The event is
+synchronously sent to each topic, one by one. So when you return from
+this function, you can be sure that the event has been delivered to
+each topic.</p>
 
-<H2><A name="EventAdminHandlers-Publisherinstanceinformation"></A>Publisher instance information</H2>
+<h2><a name="EventAdminHandlers-Publisherinstanceinformation"></a>Publisher instance information</h2>
 
-<P>All events sent by a publisher contains the name of the component instance that sent them. Its enables to filter received events depending the sender instance. The instance name is accessible in the event dictionary by the key <EM>publisher.instance.name</EM>. Despite it goes against MOM principles, this property is useful to trace events and especially event sources.</P></TD>
-<TD class="confluenceTd" valign="top" width="20%">
-<H6><A name="EventAdminHandlers-Overview"></A><B>Overview</B></H6>
-<UL>
-	<LI><A href="apache-felix-ipojo.html" title="Apache Felix iPOJO">Home Page</A></LI>
-	<LI><A href="apache-felix-ipojo-feature-overview.html" title="Apache Felix iPOJO Feature Overview">iPOJO Feature Overview</A></LI>
-	<LI><A href="download.html" title="Download">Download &amp; Install </A></LI>
-</UL>
+<p>All events sent by a publisher contains the name of the component
+instance that sent them. Its enables to filter received events
+depending the sender instance. The instance name is accessible in the
+event dictionary by the key <em>publisher.instance.name</em>. Despite it goes against MOM principles, this property is useful to trace events and especially event sources.</p>
 
 
-<H6><A name="EventAdminHandlers-GettingStarted"></A><B>Getting Started</B></H6>
-<UL>
-	<LI><A href="ipojo-in-10-minutes.html" title="iPOJO in 10 minutes">iPOJO in 10 minutes</A></LI>
-	<LI><A href="ipojo-hello-word-maven-based-tutorial.html" title="iPOJO Hello Word (Maven-Based) tutorial">iPOJO Hello Word &#40;Maven&#45;Based&#41; tutorial</A></LI>
-	<LI><A href="ipojo-advanced-tutorial.html" title="iPOJO Advanced Tutorial">iPOJO Advanced Tutorial</A></LI>
-</UL>
+<h2><a name="EventAdminHandlers-Configuringthehandlerwithannotations\Newin1.1.0SNAPSHOT\"></a>Configuring the handler with annotations [New in 1.1.0-SNAPSHOT]</h2>
+
+<p>It is possible to configure the handler with a simple annotations
+available in the annotation pack ('annotation' project in the iPOJO
+trunk). Here is an example of usage:</p>
+<div class="code"><div class="codeContent">
+<pre class="code-java"><span class="code-keyword">import</span> org.apache.felix.ipojo.annotations.Component;
+<span class="code-keyword">import</span> org.apache.felix.ipojo.handlers.event.Subscriber;
+<span class="code-keyword">import</span> org.osgi.service.event.Event;
 
 
-<H6><A name="EventAdminHandlers-UserGuide"></A><B>User Guide</B></H6>
-<UL>
-	<LI><A href="describing-components.html" title="Describing components">Describing components (handler list) </A></LI>
-	<LI><A href="how-to-use-ipojo-annotations.html" title="How to use iPOJO Annotations">How to use iPOJO Annotations</A></LI>
-	<LI><A href="using-xml-schemas.html" title="Using XML Schemas">Using XML Schemas</A></LI>
-	<LI><A href="ipojo-advanced-topics.html" title="iPOJO Advanced Topics">Advanced Topics</A></LI>
-	<LI><A href="ipojo-faq.html" title="iPOJO FAQ">FAQ</A></LI>
-</UL>
+@Component
+<span class="code-keyword">public</span> class PubSub {
+    @org.apache.felix.ipojo.handlers.event.Publisher(name=<span class="code-quote">"p1"</span>, synchronous=<span class="code-keyword">true</span>)
+    org.apache.felix.ipojo.handlers.event.publisher.Publisher publisher1;
+    
+    @org.apache.felix.ipojo.handlers.event.Publisher(name=<span class="code-quote">"p2"</span>, synchronous=<span class="code-keyword">false</span>, topics=<span class="code-quote">"foo,bar"</span>, data_key=<span class="code-quote">"data"</span>)
+    org.apache.felix.ipojo.handlers.event.publisher.Publisher publisher2;
+    
+    @org.apache.felix.ipojo.handlers.event.Publisher(name=<span class="code-quote">"p3"</span>, synchronous=<span class="code-keyword">true</span>, topics=<span class="code-quote">"bar"</span>)
+    org.apache.felix.ipojo.handlers.event.publisher.Publisher publisher3;
+    
+    @Subscriber(name=<span class="code-quote">"s1"</span>, data_key=<span class="code-quote">"data"</span>)
+    <span class="code-keyword">public</span> void receive1(<span class="code-object">Object</span> foo) {
+        <span class="code-comment">// <span class="code-object">Process</span> event
+</span>    }
+    
+    @Subscriber(name=<span class="code-quote">"s2"</span>, topics=<span class="code-quote">"foo,bar"</span>, filter=<span class="code-quote">"(foo=<span class="code-keyword">true</span>)"</span>)
+    <span class="code-keyword">public</span> void receive2(Event foo) {
+        <span class="code-comment">// <span class="code-object">Process</span> event
+</span>    }
+    
+    
+    @Subscriber(name=<span class="code-quote">"s3"</span>, topics=<span class="code-quote">"foo"</span>, data_key=<span class="code-quote">"data"</span>, data_type=<span class="code-quote">"java.lang.<span class="code-object">String</span>"</span>)
+    <span class="code-keyword">public</span> void receive3(<span class="code-object">String</span> foo) {
+        <span class="code-comment">// <span class="code-object">Process</span> event
+</span>    }
+}</pre>
+</div></div></td>
+<td class="confluenceTd" valign="top" width="20%">
+<h6><a name="EventAdminHandlers-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="EventAdminHandlers-Tools"></A><B>Tools</B></H6>
-<UL>
-	<LI><A href="ipojo-eclipse-plug-in.html" title="iPOJO Eclipse Plug-in">iPOJO Eclipse Plug&#45;in</A></LI>
-	<LI><A href="ipojo-ant-task.html" title="iPOJO Ant Task">iPOJO Ant Task</A></LI>
-	<LI><A href="ipojo-maven-plug-in.html" title="iPOJO Maven Plug-in">iPOJO Maven Plug&#45;in</A></LI>
-	<LI><A href="ipojo-concepts-overview.html" title="iPOJO Concepts Overview">iPOJO concepts overview</A></LI>
-</UL>
+<h6><a name="EventAdminHandlers-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="http://felix.apache.org/site/how-to-use-ipojo-annotations.html" 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="EventAdminHandlers-DeveloperGuide"></A><B>Developer Guide</B></H6>
-<UL>
-	<LI>API: <SPAN class="nobr"><A href="http://people.apache.org/~clement/ipojo/api/0.8/" title="Visit page outside Confluence" rel="nofollow">0.8<SUP><IMG class="rendericon" src="../../cwiki.apache.org/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"></SUP></A></SPAN></LI>
-	<LI><A href="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="how-to-use-ipojo-manipulation-metadata.html" title="How to use iPOJO Manipulation Metadata">How to use iPOJO Manipulation Metadata</A></LI>
-</UL>
+<h6><a name="EventAdminHandlers-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>
+	<li><a href="http://felix.apache.org/site/ipojo-reference-card.html" title="iPOJO-Reference-Card">iPOJO Reference Card</a></li>
+</ul>
 
 
-<H6><A name="EventAdminHandlers-Misc%26Contact"></A><B>Misc &amp; Contact</B></H6>
-<UL>
-	<LI><A href="apache-felix-ipojo-issuestracker.html" title="apache-felix-ipojo-issuestracker">Issues Tracker</A></LI>
-	<LI><A href="apache-felix-ipojo-supportedvms.html" title="apache-felix-ipojo-supportedVMs">Supported JVMs</A></LI>
-	<LI><A href="apache-felix-ipojo-supportedosgi.html" title="apache-felix-ipojo-supportedOSGi">Supported OSGi Implementations</A></LI>
-	<LI><A href="future-ideas.html" title="Future Ideas">Future Ideas</A></LI>
-	<LI><A href="contact.html" title="Contact">Contact</A></LI>
-	<LI><A href="related-works.html" title="Related Works">Related Works</A></LI>
-	<LI><A href="article-presentations.html" title="Article & Presentations">Article &amp; Presentations</A></LI>
-</UL>
+<h6><a name="EventAdminHandlers-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/ipojo-arch-command.html" title="iPOJO-Arch-Command">iPOJO Arch Command</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>
 
 
-<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="../../cwiki.apache.org/confluence/images/icons/feed-icon-32x32.png" align="absmiddle" border="0"><SUP><IMG class="rendericon" src="../../cwiki.apache.org/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"></SUP></A></SPAN></P></DIV></TD></TR></TBODY></TABLE>
-    </DIV>
-  </BODY>
+<h6><a name="EventAdminHandlers-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="event-admin-handlers_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>
 
-<!-- Mirrored Site: felix.apache.org. File: /site/event-admin-handlers.html. Date: Mon, 13 Oct 2008 06:53:08 GMT -->
-</HTML>
+
+<h6><a name="EventAdminHandlers-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="event-admin-handlers_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="event-admin-handlers_files/feed-icon-32x32.png" align="absmiddle" border="0"><sup><img class="rendericon" src="event-admin-handlers_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="event-admin-handlers_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>
\ No newline at end of file
