javax.management.modelmbean.RequiredModelMBean#setManagedResource ( )源码实例Demo

下面列出了javax.management.modelmbean.RequiredModelMBean#setManagedResource ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: iaf   文件: JmxMbeanHelper.java
/**
 * Hooks an {@link nl.nn.adapterframework.core.Adapter Adapter} to the MBean server
 */
public static void hookupAdapter(IAdapter adapter) throws ConfigurationException {
    MBeanServer server = getMBeanServer();
    if (server != null) {
    	synchronized(registeredAdapters) {
  	try {
          ObjectName objectName = getObjectName(adapter);
		
          RequiredModelMBean modelMbean =
                  new RequiredModelMBean(createMBeanInfo(adapter));
          modelMbean.setManagedResource(adapter, "ObjectReference");
          LOG.debug("modelMBean generated for object " + objectName);
          ObjectInstance objectInstance = registerMBean(server, objectName, modelMbean);
          if (objectInstance!=null) {
          	registeredAdapters.put(adapter, objectInstance.getObjectName());
          }
      } catch (Exception e) {
          throw new ConfigurationException(e);
      }
    	}
    } else {
        LOG.warn("No MBean server found");
    }
}
 
public static void main(String[] args) throws Exception {
    // 获取当前平台 MBean Server
    MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
    RequiredModelMBean modelMBean = new RequiredModelMBean();
    modelMBean.setManagedResource(new User(), "objectReference");
    // 创建 RequiredModelMBean 的 ObjectName
    ObjectName objectName = new ObjectName("thinking.in.spring.boot.samples.production.ready.jmx:type=User");
    mBeanServer.registerMBean(modelMBean, objectName);
    System.out.printf("MBean (ObjectName[%s])已注册到平台 MBean Server...\n", objectName);
    System.out.println("按任意键结束...");
    System.in.read();
}
 
public ModelMBean assemble(Object obj, ObjectName name) throws JMException {
  ModelMBeanInfo mbi = null;

  // use the default provided mbean which has been annotated with JMX
  // annotations
  LOG.trace("Assembling MBeanInfo for: {} from @ManagedResource object: {}", name, obj);
  mbi = assembler.getMBeanInfo(obj, null, name.toString());

  if (mbi == null) {
    return null;
  }

  RequiredModelMBean mbean = new RequiredModelMBean(mbi);

  try {
    mbean.setManagedResource(obj, "ObjectReference");
  } catch (InvalidTargetObjectTypeException e) {
    throw new JMException(e.getMessage());
  }

  // Allows the managed object to send notifications
  if (obj instanceof NotificationSenderAware) {
    ((NotificationSenderAware) obj).setNotificationSender(new NotificationSenderAdapter(mbean));
  }

  return mbean;
}
 
@Override
public ModelMBean assemble(Object obj, ObjectName name) throws JMException {
    ModelMBeanInfo mbi = null;

    // use the default provided mbean which has been annotated with JMX annotations
    LOGGER.trace("Assembling MBeanInfo for: {} from @ManagedResource object: {}", name, obj);
    mbi = assembler.getMBeanInfo(obj, null, name.toString());

    if (mbi == null) {
        return null;
    }

    RequiredModelMBean mbean = new RequiredModelMBean(mbi);

    try {
        mbean.setManagedResource(obj, "ObjectReference");
    } catch (InvalidTargetObjectTypeException e) {
        throw new JMException(e.getMessage());
    }

    // Allows the managed object to send notifications
    if (obj instanceof NotificationSenderAware) {
        ((NotificationSenderAware) obj).setNotificationSender(new NotificationSenderAdapter(mbean));
    }

    return mbean;
}
 
源代码5 项目: cxf   文件: RMEndpoint.java
void initialise(RMConfiguration config, Conduit c, EndpointReferenceType r,
    org.apache.cxf.transport.Destination d,
    Message message) {
    configuration = config;
    conduit = c;
    replyTo = r;
    createServices();
    createEndpoints(d);
    setPolicies(message);
    if (manager != null && manager.getBus() != null) {
        managedEndpoint = new ManagedRMEndpoint(this);
        instrumentationManager = manager.getBus().getExtension(InstrumentationManager.class);
        if (instrumentationManager != null) {
            ModelMBeanAssembler assembler = new ModelMBeanAssembler();
            ModelMBeanInfo mbi = assembler.getModelMbeanInfo(managedEndpoint.getClass());
            MBeanServer mbs = instrumentationManager.getMBeanServer();
            if (mbs == null) {
                LOG.log(Level.WARNING, "MBeanServer not available.");
            } else {
                try {
                    RequiredModelMBean rtMBean =
                        (RequiredModelMBean)mbs.instantiate("javax.management.modelmbean.RequiredModelMBean");
                    rtMBean.setModelMBeanInfo(mbi);
                    try {
                        rtMBean.setManagedResource(managedEndpoint, "ObjectReference");
                    } catch (InvalidTargetObjectTypeException itotex) {
                        throw new JMException(itotex.getMessage());
                    }
                    ObjectName name = managedEndpoint.getObjectName();
                    instrumentationManager.register(rtMBean, name);
                    modelMBean = rtMBean;
                } catch (JMException jmex) {
                    LOG.log(Level.WARNING, "Registering ManagedRMEndpoint failed.", jmex);
                }
            }
        }
    }
}
 
源代码6 项目: cxf   文件: InstrumentationManagerImpl.java
private void register(Object obj, ObjectName name, ModelMBeanInfo mbi, boolean forceRegistration)
    throws JMException {
    RequiredModelMBean rtMBean =
        (RequiredModelMBean)mbs.instantiate("javax.management.modelmbean.RequiredModelMBean");
    rtMBean.setModelMBeanInfo(mbi);
    try {
        rtMBean.setManagedResource(obj, "ObjectReference");
    } catch (InvalidTargetObjectTypeException itotex) {
        throw new JMException(itotex.getMessage());
    }
    registerMBeanWithServer(rtMBean, persist(name), forceRegistration);
}