<!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 JMX Handler</title>
    <link rel="stylesheet" href="ipojo-jmx-handler_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-jmx-handler_files/logo.png" border="0"></a></div><div class="header"><a href="http://www.apache.org/"><img alt="Apache" src="ipojo-jmx-handler_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="ipojo-jmx-handler_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="ipojo-jmx-handler_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="ipojo-jmx-handler_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="ipojo-jmx-handler_files/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7"></sup></a></span>
<!-- ApacheCon Ad -->
<iframe src="ipojo-jmx-handler_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="iPOJOJMXHandler-iPOJOJMXHandler"></a>iPOJO JMX Handler</h1>

<p>This handler provides JMX management of component instance. It could
be useful to manage instance remotely. As the handler exposes MBeans,
you must have a MBean server running on your platform (as the platform
MBean server or the MOSGi MBean Server).</p>

<h2><a name="iPOJOJMXHandler-Features"></a>Features</h2>

<p>The handler allows to:</p>
<ul>
	<li>Expose attributes accessible via JMX (with rights management).</li>
	<li>Expose methods to be called through JMX.</li>
	<li>Get notifications when attributes are modified .</li>
</ul>


<h2><a name="iPOJOJMXHandler-Prerequisites"></a>Prerequisites</h2>

<p>To be functional this handler must register on an MBean Server,thus
you obviously need it. Several servers are currently supported : the
standard platform MBean server (included in the JDK), MOSGi (provided
with Felix), ...<br>
To use MOSGi, you have to deploy at least the following three bundles of MOSGi:</p>
<ul>
	<li>org.apache.felix.mosgi.jmx.agent</li>
	<li>org.apache.felix.mosgi.jmx.registry</li>
	<li>org.apache.felix.mosgi.jmx.rmiconnector</li>
</ul>


<p>You can find MOSGi documentation on <span class="nobr"><a href="http://cwiki.apache.org/FELIX/mosgi-managed-osgi-framework.html" title="Visit page outside Confluence" rel="nofollow">http://cwiki.apache.org/FELIX/mosgi-managed-osgi-framework.html<sup><img class="rendericon" src="ipojo-jmx-handler_files/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7"></sup></a></span></p>

<h2><a name="iPOJOJMXHandler-Download"></a>Download</h2>

<p>The JMX handler is 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>

<h2><a name="iPOJOJMXHandler-Howtouseit"></a>How to use it</h2>

<p>The handler needs to be added in the metadata.xml, you just add a namespace (e.g., jmx) :</p>
<div class="code"><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;ipojo <span class="code-keyword">xmlns:jmx</span>=<span class="code-quote">"org.apache.felix.ipojo.handlers.jmx"</span>&gt;</span>
	...
<span class="code-tag">&lt;/ipojo&gt;</span></pre>
</div></div>
<p>So, you could now expose in JMX properties and methods of your component. They are surrounded by the &lt;jmx:config&gt;<br>
tag.</p>
<div class="code"><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;jmx:config&gt;</span>
    <span class="code-tag">&lt;jmx:property name=<span class="code-quote">"message"</span> field=<span class="code-quote">"m_msg"</span> rights=<span class="code-quote">"w"</span> notification=<span class="code-quote">"true"</span>/&gt;</span>
    <span class="code-tag">&lt;jmx:method name=<span class="code-quote">"doSomethingBad"</span>/&gt;</span>
    <span class="code-tag">&lt;jmx:method name=<span class="code-quote">"doSomethingGood"</span>/&gt;</span>
<span class="code-tag">&lt;/jmx:config&gt;</span></pre>
</div></div>
<p><em>Note:</em> Be careful that the argument and return type of
methods must be serializable. In case of several methods have the same
name, each of them will be exposed.</p>

<h2><a name="iPOJOJMXHandler-JMXHandleroptions"></a>JMX Handler options</h2>

<p>Here you can find all configuration options of the JMX handler.
There are two kinds of manageable elements : properties and methods.
First is described the global configuration of the handler. Then
elements can be configured, using several attributes, as described
below.</p>

<h2><a name="iPOJOJMXHandler-Globalhandlerattributes"></a>Global handler 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">objectName</td>
<td class="confluenceTd">NO</td>
<td class="confluenceTd">The complete object name of the managed
component. The syntax of this attribute must be compliant with the
ObjectName syntax, detailed in the JMX specification.<br>
If neither domain nor name attributes are specified, the default value
is determined by the package, the type and the instance name of the
component. This attribute overrides the domain and name attributes.<br>
<em>Example:</em> "my.domain:type=myType,name=myName"</td>
</tr>
<tr>
<td class="confluenceTd">domain</td>
<td class="confluenceTd">NO</td>
<td class="confluenceTd">The domain of the managed object (i.e., the
left part of the object name). This attribute must be compliant with
the domain syntax, as described in the JMX specification.<br>
<em>Example:</em> "my.domain"</td>
</tr>
<tr>
<td class="confluenceTd">name</td>
<td class="confluenceTd">NO</td>
<td class="confluenceTd">The name property of the managed object. The
value of this attribute must comply with the ObjectName value syntax,
as described in the JMX specification.</td>
</tr>
<tr>
<td class="confluenceTd">usesMOSGi</td>
<td class="confluenceTd">NO</td>
<td class="confluenceTd">Determines if the component must be register on the MOSGi MBean server or not.</td>
</tr>
<tr>
<td class="confluenceTd">preRegister <br>
postRegister <br>
preDeregister<br>
postDeregister</td>
<td class="confluenceTd">NO</td>
<td class="confluenceTd">These attributes allow to specify methods to
carry out operations before and after being registered or unregistered
from the MBean server.</td>
</tr>
</tbody></table>

<h2><a name="iPOJOJMXHandler-Propertiesattributes"></a>Properties 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">field</td>
<td class="confluenceTd">YES</td>
<td class="confluenceTd">The name of the component's field to expose.</td>
</tr>
<tr>
<td class="confluenceTd">name</td>
<td class="confluenceTd">NO</td>
<td class="confluenceTd">The name of the property as it will appear in JMX. If unspecified, the default value is the name of the exposed field.</td>
</tr>
<tr>
<td class="confluenceTd">rights</td>
<td class="confluenceTd">NO</td>
<td class="confluenceTd">Specify the access permission of the exposed field. The accepted values are : 
<ul>
	<li>"r" : read-only access, the default value.</li>
	<li>"w" : read and write access.</li>
</ul>
</td>
</tr>
<tr>
<td class="confluenceTd">notification</td>
<td class="confluenceTd">NO</td>
<td class="confluenceTd">Enable or disable attribute change
notification sending for this property. If set to "true", a
notification is sent each time the value of the field changes.</td>
</tr>
</tbody></table>

<h2><a name="iPOJOJMXHandler-Methodsattributes"></a>Methods 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">name</td>
<td class="confluenceTd">YES</td>
<td class="confluenceTd">The name of the method to expose. If multiple methods have the same name, all of them are exposed.</td>
</tr>
<tr>
<td class="confluenceTd">description</td>
<td class="confluenceTd">NO</td>
<td class="confluenceTd">The description of the exposed method, as it will appear in JMX.</td>
</tr>
</tbody></table>


<h2><a name="iPOJOJMXHandler-Examples"></a>Examples</h2>

<p>In this part, we will give you a complete example of a component managed with JMX, using the JConsole provided by the SUN JDK.</p>

<h3><a name="iPOJOJMXHandler-ExposingAttributes"></a>Exposing Attributes</h3>

<p>In first time we create a simple component named MyComponent. We have add two fields named m_level (int) and m_message (String).</p>
<div class="code"><div class="codeContent">
<pre class="code-java"><span class="code-keyword">public</span> class
MyComponent ... {
	<span class="code-comment">// Exposed attributes
</span>	<span class="code-keyword">private</span> <span class="code-object">String</span> m_message;
	<span class="code-keyword">private</span> <span class="code-object">int</span> m_level;
}</pre>
</div></div>
<p>We expose now the attributes in the jmx:config<br>
tag in the metadata :</p>
<div class="code"><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;?xml version=<span class="code-quote">"1.0"</span> encoding=<span class="code-quote">"UTF-8"</span>?&gt;</span>
<span class="code-tag">&lt;iPOJO <span class="code-keyword">xmlns:jmx</span>=<span class="code-quote">"org.apache.felix.ipojo.handlers.jmx"</span>&gt;</span>
    &lt;component className=<span class="code-quote">"...MyComponent"</span>
      architecture=<span class="code-quote">"true"</span>
      immediate=<span class="code-quote">"true"</span>&gt;

      <span class="code-tag">&lt;provides/&gt;</span>
      <span class="code-tag">&lt;jmx:config&gt;</span>
	<span class="code-tag"><span class="code-comment">&lt;!-- Exposed properties --&gt;</span></span>
	&lt;jmx:property field=<span class="code-quote">"m_level"</span>
          name=<span class="code-quote">"The level"</span>
          rights=<span class="code-quote">"r"</span>/&gt;
	&lt;jmx:property field=<span class="code-quote">"m_message"</span>
          name=<span class="code-quote">"The message"</span>
          rights=<span class="code-quote">"w"</span>/&gt;
      <span class="code-tag">&lt;/jmx:config&gt;</span>
    <span class="code-tag">&lt;/component&gt;</span>
    &lt;instance
      component=<span class="code-quote">"...MyComponent"</span>/&gt;
<span class="code-tag">&lt;/iPOJO&gt;</span></pre>
</div></div>
<p>Now, we could get and write the properties in the JConsole :<br>
<img src="ipojo-jmx-handler_files/JMXHandler_1.png" align="absmiddle" border="0"></p>

<h3><a name="iPOJOJMXHandler-ExposingMethods"></a>Exposing Methods</h3>

<p>We could now add methods in the initial class :</p>
<div class="code"><div class="codeContent">
<pre class="code-java">/**
Do something good
*/
<span class="code-keyword">public</span> void doSomethingGood() {
		...
}

/**
Do something bad
*/
<span class="code-keyword">public</span> void doSomethingBad() {
		...
}

/**
Do nothing
*/
<span class="code-keyword">public</span> void doNothing() {
		...
}</pre>
</div></div>
<p>We add corresponding tags in the metadata to expose these methods:</p>
<div class="code"><div class="codeContent">
<pre class="code-xml"><span class="code-tag"><span class="code-comment">&lt;!-- Exposed methods --&gt;</span></span>
&lt;jmx:method name=<span class="code-quote">"doSomethingGood"</span>
      description=<span class="code-quote">"Do something good."</span>/&gt;
&lt;jmx:method name=<span class="code-quote">"doSomethingBad"</span>
      description=<span class="code-quote">"Do something bad."</span>/&gt;
&lt;jmx:method name=<span class="code-quote">"doNothing"</span>
      description=<span class="code-quote">"Do absolutely nothing."</span>/&gt;</pre>
</div></div>
<p>Now the three methods are exposed in the operations tab of the JConsole. We can invoked these methods :</p>

<p><img src="ipojo-jmx-handler_files/JMXHandler_2.png" align="absmiddle" border="0"></p>

<h3><a name="iPOJOJMXHandler-AttributeNotifications:"></a>Attribute Notifications:</h3>

<p>You could subscribe to attribute notification by adding the
notification attribute in property tag. In our example if we want to be
notified when m_level is modified, we change the property line in the
metatada like this:</p>
<div class="code"><div class="codeContent">
<pre class="code-xml">&lt;jmx:property field=<span class="code-quote">"m_level"</span>
      name=<span class="code-quote">"The level"</span>
      rights=<span class="code-quote">"r"</span>
      notification=<span class="code-quote">"true"</span>/&gt;</pre>
</div></div>
<p>So now if we change the string through JConsole or if the POJO is
modified in other way, a notification will be sent to every listener.
For example, we subscribe in the notification tab, and we get
notification when the message changes :</p>

<p><img src="ipojo-jmx-handler_files/JMXHandler_3.png" align="absmiddle" border="0"></p>

<h2><a name="iPOJOJMXHandler-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 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.jmx.Config;
<span class="code-keyword">import</span> org.apache.felix.ipojo.handlers.jmx.Method;
<span class="code-keyword">import</span> org.apache.felix.ipojo.handlers.jmx.Property;

@Component
@Config(domain=<span class="code-quote">"my-domain"</span>, usesMOSGi=<span class="code-keyword">false</span>)
<span class="code-keyword">public</span> class JMXSimple {

    @Property(name=<span class="code-quote">"prop"</span>, notification=<span class="code-keyword">true</span>, rights=<span class="code-quote">"w"</span>) <span class="code-comment">// Field published in the MBean
</span>    <span class="code-object">String</span> m_foo;
    
    @Method(description=<span class="code-quote">"set the foo prop"</span>) <span class="code-comment">// Method published in the MBean
</span>    <span class="code-keyword">public</span> void setFoo(<span class="code-object">String</span> mes) {
        <span class="code-object">System</span>.out.println(<span class="code-quote">"Set foo to "</span> + mes);
        m_foo = mes;
    }
    
    @Method(description=<span class="code-quote">"get the foo prop"</span>) <span class="code-comment">// Method published in the MBean
</span>    <span class="code-keyword">public</span> <span class="code-object">String</span> getFoo() {
        <span class="code-keyword">return</span> m_foo;
    }
}</pre>
</div></div>
<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>
</td>
<td class="confluenceTd" valign="top" width="20%">
<h6><a name="iPOJOJMXHandler-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="iPOJOJMXHandler-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="iPOJOJMXHandler-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="iPOJOJMXHandler-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="iPOJOJMXHandler-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="ipojo-jmx-handler_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="iPOJOJMXHandler-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="ipojo-jmx-handler_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="ipojo-jmx-handler_files/feed-icon-32x32.png" align="absmiddle" border="0"><sup><img class="rendericon" src="ipojo-jmx-handler_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="ipojo-jmx-handler_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>