Hi Charles,

this blueprint descriptor is only valid for Karaf 2.2/2.3.

On trunk, we use Aries JMX: no need to use the MBeanRegistrer, etc.

Just use directly something like this:

    <service ref="mbeanImpl" auto-export="interfaces">
        <service-properties>
<entry key="jmx.objectname" value="org.apache.karaf:type=instance,name=${karaf.name}"/>
        </service-properties>
    </service>

You need nothing more ;)

Regards
JB

On 10/03/2012 06:47 PM, Charles Moulliard wrote:
The code that I tried to use is for Karaf 3.X.

The following blueprint file works fine :

<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
            xsi:schemaLocation="
http://www.osgi.org/xmlns/blueprint/v1.0.0
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd";>

     <!-- ServiceMBean -->
     <bean id="serviceMBean"
class="com.fusesource.poc.service.impl.MyService"/>

     <service ref="serviceMBean" auto-export="interfaces">
         <service-properties>
             <!-- Karaf 3.x -->
             <entry key="jmx.objectname"
value="com.fusesource.poc.service:type=service,name=feedback" />
             -->
         </service-properties>
     </service>

     <!-- Reference to the MBean Server -->
     <reference id="mbeanServer" interface="javax.management.MBeanServer">
         <reference-listener ref="mbeanRegistrer"
bind-method="registerMBeanServer" unbind-method="unregisterMBeanServer"/>
     </reference>

     <!-- MBean Registrer -->
     <!-- method destroy has been added after karaf 2.2.x
destroy-method="destroy" -->
     <bean id="mbeanRegistrer"
class="org.apache.karaf.management.MBeanRegistrer" init-method="init">
         <property name="mbeans">
             <map>
                 <entry
value="com.fusesource.poc.service:type=service,name=feedback"
key-ref="serviceMBean"/>
             </map>
         </property>
     </bean>

</blueprint>

On Wed, Oct 3, 2012 at 6:12 PM, Charles Moulliard <[email protected]
<mailto:[email protected]>> wrote:

    Hi,

    I have developed a small project to register a bean as a JMX Mbean.
    The code looks the same
    as org.apache.karaf.web.management.internal.Web of Karaf

    1. Interface

    package com.fusesource.poc.service;

    public interface ServiceMBean {

         String sayHello();

    }

    2. Impl

    package com.fusesource.poc.service.impl;

    import com.fusesource.poc.service.ServiceMBean;

    import javax.management.NotCompliantMBeanException;
    import javax.management.StandardMBean;

    public class MyService extends StandardMBean implements ServiceMBean {

         public MyService() throws NotCompliantMBeanException {
             super(ServiceMBean.class);
         }

         @Override
         public String sayHello() {
             return ">> Good morning from Weather Team";
         }
    }

    3. Blueprint

    <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
                xsi:schemaLocation="
    http://www.osgi.org/xmlns/blueprint/v1.0.0
    http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd";>

         <bean id="service"
    class="com.fusesource.poc.service.impl.MyService"/>

         <service ref="service" auto-export="interfaces">
             <service-properties>
                 <entry key="jmx.objectname"
    value="com.fusesource.poc.service:type=service,name=feedback" />
             </service-properties>
         </service>

    </blueprint>

    Remark : no error is reported in the console of karaf

    Unfortunately, when my bundle is started, I cannot see it registered
    in MBean server - JConsole. Is there something that I missed ?

    Regards

    --
    Charles Moulliard
    Apache Committer / Sr. Enterprise Architect (RedHat)
    Twitter : @cmoulliard | Blog : http://cmoulliard.blogspot.com





--
Charles Moulliard
Apache Committer / Sr. Enterprise Architect (RedHat)
Twitter : @cmoulliard | Blog : http://cmoulliard.blogspot.com



--
Jean-Baptiste Onofré
[email protected]
http://blog.nanthrax.net
Talend - http://www.talend.com

Reply via email to