如何使用OSGi本机注释对JMXbean进行注释?

如何使用OSGi本机注释对JMXbean进行注释?,osgi,aem,jmx,Osgi,Aem,Jmx,我有一个运行在felix scr注释(AEM 6.4.8,Java 8)上的JMX bean,我想对它进行重构,以便它使用OSGi注释。基本上,我们很清楚该怎么做,我想只有一个小小的“=”需要逃脱? 旧代码如下所示: @Component(immediate=true) @Property(name="jmx.objectname", value={"com.mypackage.monitoring:type=HierarchyModificationListene

我有一个运行在felix scr注释(AEM 6.4.8,Java 8)上的JMX bean,我想对它进行重构,以便它使用OSGi注释。基本上,我们很清楚该怎么做,我想只有一个小小的“=”需要逃脱? 旧代码如下所示:

@Component(immediate=true)
@Property(name="jmx.objectname", value={"com.mypackage.monitoring:type=HierarchyModificationListenerMbean"})
@Service
public class HierarchyModificationListenerMbeanImpl
extends AnnotatedStandardMBean
implements ListenerStats {
重构后的代码将是:

@Component(immediate=true, service = ListenerStats.class, property = {"jmx.objectname=com.mypackage.monitoring:type=HierarchyModificationListenerMbean"})
public class HierarchyModificationListenerMbeanImpl
extends AnnotatedStandardMBean
implements ListenerStats {
在这种情况下,我不确定如何处理“:type=”


有什么想法吗?

看看这一页,您的属性定义似乎应该能做到这一点

您的代码对我来说很不错。唯一的问题是,您是否有一个接口
HierarchyModificationListenerMbean
?您的实现类应该声明它实现了这样的接口

例如:

公共接口MyMBean{
}
@组件(服务=dynamicBean.class,属性={
“jmx.objectname=com.yourproject.osgi:type=MyMBean”
})
公共类MyMBeanImpl扩展了AnnotatedStandardMBean,实现了MyMBean{
公共MyMBeanImpl(){
超级(MyMBean.class)
}
}