當前位置: 首頁>>代碼示例>>Java>>正文


Java StandardMBean類代碼示例

本文整理匯總了Java中javax.management.StandardMBean的典型用法代碼示例。如果您正苦於以下問題:Java StandardMBean類的具體用法?Java StandardMBean怎麽用?Java StandardMBean使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


StandardMBean類屬於javax.management包,在下文中一共展示了StandardMBean類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: adaptMBeanIfPossible

import javax.management.StandardMBean; //導入依賴的package包/類
/**
 * Build an adapted MBean for the given bean instance, if possible.
 * <p>The default implementation builds a JMX 1.2 StandardMBean
 * for the target's MBean/MXBean interface in case of an AOP proxy,
 * delegating the interface's management operations to the proxy.
 * @param bean the original bean instance
 * @return the adapted MBean, or {@code null} if not possible
 */
@SuppressWarnings("unchecked")
protected DynamicMBean adaptMBeanIfPossible(Object bean) throws JMException {
	Class<?> targetClass = AopUtils.getTargetClass(bean);
	if (targetClass != bean.getClass()) {
		Class<?> ifc = JmxUtils.getMXBeanInterface(targetClass);
		if (ifc != null) {
			if (!ifc.isInstance(bean)) {
				throw new NotCompliantMBeanException("Managed bean [" + bean +
						"] has a target class with an MXBean interface but does not expose it in the proxy");
			}
			return new StandardMBean(bean, ((Class<Object>) ifc), true);
		}
		else {
			ifc = JmxUtils.getMBeanInterface(targetClass);
			if (ifc != null) {
				if (!ifc.isInstance(bean)) {
					throw new NotCompliantMBeanException("Managed bean [" + bean +
							"] has a target class with an MBean interface but does not expose it in the proxy");
				}
				return new StandardMBean(bean, ((Class<Object>) ifc));
			}
		}
	}
	return null;
}
 
開發者ID:lamsfoundation,項目名稱:lams,代碼行數:34,代碼來源:MBeanExporter.java

示例2: createStandardMBean

import javax.management.StandardMBean; //導入依賴的package包/類
/**
 * Instantiates and registers a StandardMBean in the MBean server.
 *
 * @param implementationClassName
 *      The implementation class name of the MBean.
 * @param interfaceClassName
 *      The management interface class name of the MBean.
 * @param isMXBean
 *      If true, the resultant MBean is an MXBean.
 * @param name
 *      The object name of the StandardMBean.
 */
@SuppressWarnings("unchecked")
public void createStandardMBean(
        String implementationClassName,
        String interfaceClassName,
        boolean isMXBean,
        ObjectName name)
        throws Exception {

    Object implementation =
            Class.forName(implementationClassName).newInstance();
    Class<Object> interfaceClass = interfaceClassName == null ? null :
        (Class<Object>)Class.forName(interfaceClassName);

    // Create the StandardMBean
    StandardMBean standardMBean = new StandardMBean(
            implementation,
            interfaceClass,
            isMXBean);

    // Register the StandardMBean
    mbeanServer.registerMBean(standardMBean, name);
}
 
開發者ID:lambdalab-mirror,項目名稱:jdk8u-jdk,代碼行數:35,代碼來源:ServerDelegate.java

示例3: main

import javax.management.StandardMBean; //導入依賴的package包/類
public static void main(String[] args) throws Exception {
    final Child child = new Child();
    test(child,"Child[MBean]",false);
    final ChildMix childx = new ChildMix();
    test(childx,"ChildMix[MXBean]",true);
    final ChildMixMix childmx = new ChildMixMix();
    test(childmx,"ChildMixMix[MXBean]",false);
    final StandardMBean schild = new StandardMBean(child,ChildMBean.class);
    test(schild,"Child[StandarMBean(Child)]",false);
    final StandardMBean schildx =
            new StandardMBean(childx,ChildMXBean.class,true);
    test(schildx,"ChildMix[StandarMXBean(ChildMix)]",true);
    final StandardMBean schildmx =
            new StandardMBean(childmx,ChildMixMXBean.class,true);
    test(schildmx,"ChildMixMix[StandarMXBean(ChildMixMix)]",true);
}
 
開發者ID:lambdalab-mirror,項目名稱:jdk8u-jdk,代碼行數:17,代碼來源:TooManyFooTest.java

示例4: adaptMBeanIfPossible

import javax.management.StandardMBean; //導入依賴的package包/類
/**
 * Build an adapted MBean for the given bean instance, if possible.
 * <p>The default implementation builds a JMX 1.2 StandardMBean
 * for the target's MBean/MXBean interface in case of an AOP proxy,
 * delegating the interface's management operations to the proxy.
 * @param bean the original bean instance
 * @return the adapted MBean, or {@code null} if not possible
 */
@SuppressWarnings("unchecked")
protected DynamicMBean adaptMBeanIfPossible(Object bean) throws JMException {
	Class<?> targetClass = AopUtils.getTargetClass(bean);
	if (targetClass != bean.getClass()) {
		Class<Object> ifc = (Class<Object>) JmxUtils.getMXBeanInterface(targetClass);
		if (ifc != null) {
			if (!(ifc.isInstance(bean))) {
				throw new NotCompliantMBeanException("Managed bean [" + bean +
						"] has a target class with an MXBean interface but does not expose it in the proxy");
			}
			return new StandardMBean(bean, ifc, true);
		}
		else {
			ifc = (Class<Object>) JmxUtils.getMBeanInterface(targetClass);
			if (ifc != null) {
				if (!(ifc.isInstance(bean))) {
					throw new NotCompliantMBeanException("Managed bean [" + bean +
							"] has a target class with an MBean interface but does not expose it in the proxy");
				}
				return new StandardMBean(bean, ifc);
			}
		}
	}
	return null;
}
 
開發者ID:panguixiang,項目名稱:my-spring-cache-redis,代碼行數:34,代碼來源:MBeanExporter.java

示例5: boot

import javax.management.StandardMBean; //導入依賴的package包/類
/**
 * Start the management service if gemfirexd.system.jmx is true.
 * <P>
 * Starting the service means:
 * <UL>
 * <LI> getting the platform MBeanServer which may require starting it
 * <LI> registering a Version mbean representing the system
 * </UL>
 */
public synchronized void boot(boolean create, Properties properties)
        throws StandardException {
    
    registeredMbeans = new HashMap<ObjectName,StandardMBean>();
    
    systemIdentifier =
        Monitor.getMonitor().getUUIDFactory().createUUID().toString();
    
    findServer();
         
    myManagementBean = (ObjectName) registerMBean(this,
            ManagementMBean.class,
            "type=Management");
    myManagementServer = mbeanServer;
    
    registerMBean(
            new Version(
                    Monitor.getMonitor().getEngineVersion(),
                    SystemPermission.ENGINE),
            VersionMBean.class,
            "type=Version,jar=gemfirexd.jar");
}
 
開發者ID:gemxd,項目名稱:gemfirexd-oss,代碼行數:32,代碼來源:JMXManagementService.java

示例6: serviceStart

import javax.management.StandardMBean; //導入依賴的package包/類
@Override
protected void serviceStart() throws Exception {
  String uuid = UUID.randomUUID().toString();
  tmpDir = Paths.get(SYSTEM_TMP, LOCALIZATION_DIR).toFile();
  if (!tmpDir.exists()) {
    tmpDir.mkdir();
  }
  tmpDir.setExecutable(false, false);
  tmpDir.setExecutable(true);
  // Writable only to the owner
  tmpDir.setWritable(false, false);
  tmpDir.setWritable(true);
  // Readable by none
  tmpDir.setReadable(false, false);
  
  materializeDir = Paths.get(tmpDir.getAbsolutePath(), uuid);
  // Random materialization directory should have the default umask
  materializeDir.toFile().mkdir();
  LOG.debug("Initialized at dir: " + materializeDir.toString());

  StandardMBean mbean = new StandardMBean(this, CertificateLocalizationMBean.class);
  mbeanObjectName = MBeans.register(serviceName, "CertificateLocalizer", mbean);
  
  super.serviceStart();
}
 
開發者ID:hopshadoop,項目名稱:hops,代碼行數:26,代碼來源:CertificateLocalizationService.java

示例7: start

import javax.management.StandardMBean; //導入依賴的package包/類
@Override
public void start(final ModuleContext context) throws Exception {
    MBeanServer server = ServiceLocator.getRequiredService(context, MBeanServer.class);
    ModuleStateA moduleState = new ModuleStateA() {

        @Override
        public String getResourceIdentity() {
            return context.getModule().getIdentity().getCanonicalForm();
        }

        @Override
        public String getModuleState() {
            return context.getModule().getState().toString();
        }
    };
    StandardMBean mbean = new StandardMBean(moduleState, ModuleStateA.class);
    server.registerMBean(mbean, getObjectName(context.getModule()));
}
 
開發者ID:tdiesler,項目名稱:fabric8poc,代碼行數:19,代碼來源:ModuleActivatorA.java

示例8: registerJMX

import javax.management.StandardMBean; //導入依賴的package包/類
protected void registerJMX() {
    // register with jmx
    MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
    try {
        String cName = this.getClass().getName();
        if (cName.indexOf('.') != -1) {
            cName = cName.substring(cName.lastIndexOf('.')).replaceFirst("[\\.]", "");
        }
        oName = new ObjectName(String.format("org.red5.server:type=%s,name=%s", cName, name));
        // don't reregister
        if (!mbs.isRegistered(oName)) {
            mbs.registerMBean(new StandardMBean(this, ScopeMXBean.class, true), oName);
        }
    } catch (Exception e) {
        log.warn("Error on jmx registration", e);
    }
}
 
開發者ID:Red5,項目名稱:red5-server-common,代碼行數:18,代碼來源:Scope.java

示例9: registerJMX

import javax.management.StandardMBean; //導入依賴的package包/類
protected void registerJMX() {
    // register with jmx
    MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
    try {
        String cName = this.getClass().getName();
        if (cName.indexOf('.') != -1) {
            cName = cName.substring(cName.lastIndexOf('.')).replaceFirst("[\\.]", "");
        }
        String hostStr = host;
        int port = 1935;
        if (host != null && host.indexOf(":") > -1) {
            String[] arr = host.split(":");
            hostStr = arr[0];
            port = Integer.parseInt(arr[1]);
        }
        // Create a new mbean for this instance
        oName = new ObjectName(String.format("org.red5.server:type=%s,connectionType=%s,host=%s,port=%d,clientId=%s", cName, type, hostStr, port, client.getId()));
        if (!mbs.isRegistered(oName)) {
            mbs.registerMBean(new StandardMBean(this, RTMPMinaConnectionMXBean.class, true), oName);
        } else {
            log.debug("Connection is already registered in JMX");
        }
    } catch (Exception e) {
        log.warn("Error on jmx registration", e);
    }
}
 
開發者ID:Red5,項目名稱:red5-server-common,代碼行數:27,代碼來源:RTMPMinaConnection.java

示例10: testProxy

import javax.management.StandardMBean; //導入依賴的package包/類
public void testProxy() throws Exception {
    ObjectName n = new ObjectName("foo:id=" + UUID.randomUUID().toString());
    Impl s = new Impl();
    server.registerMBean(new StandardMBean(s, Ifc1.class), n);

    Ifc1 s1 = MBeanUtils.createProxy(getClass().getClassLoader(), n, Ifc1.class);
    assertNotNull(s1);
    assertEquals(s.foo, s1.getfoo());
    assertEquals(s.bar, s1.getBar());
    assertEquals("ab", s1.cat("a", "b"));

    Ifc1 s2 = MBeanUtils.createProxy(getClass().getClassLoader(), n, Ifc1.class);
    assertNotNull(s2);
    assertEquals(s.foo, s2.getfoo());
    assertEquals(s.bar, s2.getBar());
    assertEquals("ab", s2.cat("a", "b"));
}
 
開發者ID:addthis,項目名稱:basis,代碼行數:18,代碼來源:MBeanUtilsTest.java

示例11: registerNewMBean

import javax.management.StandardMBean; //導入依賴的package包/類
@SuppressWarnings({ "unchecked", "rawtypes" })
public static boolean registerNewMBean(Class clazz, Class interfaceClass) {
    boolean status = false;
    try {
        String cName = clazz.getName();
        if (cName.indexOf('.') != -1) {
            cName = cName.substring(cName.lastIndexOf('.')).replaceFirst("[\\.]", "");
        }
        log.debug("Register name: {}", cName);
        MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
        mbs.registerMBean(new StandardMBean(Class.forName(clazz.getName()).newInstance(), interfaceClass), new ObjectName("org.red5.server:type=" + cName));
        status = true;
    } catch (Exception e) {
        log.error("Could not register the {} MBean", clazz.getName(), e);
    }
    return status;
}
 
開發者ID:Red5,項目名稱:red5-server,代碼行數:18,代碼來源:JMXUtil.java

示例12: registerNewMBean

import javax.management.StandardMBean; //導入依賴的package包/類
@SuppressWarnings({ "unchecked", "rawtypes" })
public static boolean registerNewMBean(Class clazz, Class interfaceClass) {
	boolean status = false;
	try {
		String cName = clazz.getName();
		if (cName.indexOf('.') != -1) {
			cName = cName.substring(cName.lastIndexOf('.')).replaceFirst("[\\.]", "");
		}
		log.debug("Register name: {}", cName);
		MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
		mbs.registerMBean(new StandardMBean(Class.forName(clazz.getName()).newInstance(), interfaceClass), new ObjectName("org.red5.server:type=" + cName));
		status = true;
	} catch (Exception e) {
		log.error("Could not register the {} MBean", clazz.getName(), e);
	}
	return status;
}
 
開發者ID:cwpenhale,項目名稱:red5-mobileconsole,代碼行數:18,代碼來源:JMXUtil.java

示例13: registerJMX

import javax.management.StandardMBean; //導入依賴的package包/類
protected void registerJMX() {
	// register with jmx
	MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
	try {
		String cName = this.getClass().getName();
		if (cName.indexOf('.') != -1) {
			cName = cName.substring(cName.lastIndexOf('.')).replaceFirst("[\\.]", "");
		}
		oName = new ObjectName(String.format("org.red5.server:type=%s,name=%s", cName, name));
		// don't reregister
		if (!mbs.isRegistered(oName)) {
			mbs.registerMBean(new StandardMBean(this, ScopeMXBean.class, true), oName);
		}
	} catch (Exception e) {
		log.warn("Error on jmx registration", e);
	}
}
 
開發者ID:cwpenhale,項目名稱:red5-mobileconsole,代碼行數:18,代碼來源:Scope.java

示例14: registerJMX

import javax.management.StandardMBean; //導入依賴的package包/類
protected void registerJMX() {
	// register with jmx
	MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
	try {
		String cName = this.getClass().getName();
		if (cName.indexOf('.') != -1) {
			cName = cName.substring(cName.lastIndexOf('.')).replaceFirst("[\\.]", "");
		}
		String hostStr = host;
		int port = 1935;
		if (host != null && host.indexOf(":") > -1) {
			String[] arr = host.split(":");
			hostStr = arr[0];
			port = Integer.parseInt(arr[1]);
		}
		// Create a new mbean for this instance
		oName = new ObjectName(String.format("org.red5.server:type=%s,connectionType=%s,host=%s,port=%d,clientId=%s", cName, type, hostStr, port, client.getId()));
		if (!mbs.isRegistered(oName)) {
			mbs.registerMBean(new StandardMBean(this, RTMPMinaConnectionMXBean.class, true), oName);
		} else {
			log.debug("Connection is already registered in JMX");
		}
	} catch (Exception e) {
		log.warn("Error on jmx registration", e);
	}
}
 
開發者ID:cwpenhale,項目名稱:red5-mobileconsole,代碼行數:27,代碼來源:RTMPMinaConnection.java

示例15: registerOrGetJmxBean

import javax.management.StandardMBean; //導入依賴的package包/類
private RedisThrottlerJmxBean registerOrGetJmxBean() {
    MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
    try {
        synchronized (jmxBeanReferenceCountByName) {

            // Get the reference count for the JMX bean.
            Integer jmxBeanReferenceCount = jmxBeanReferenceCountByName.get(jmxBeanName);
            if (jmxBeanReferenceCount == null) {
                jmxBeanReferenceCount = 0;
            }

            // Create or get the JMX bean.
            RedisThrottlerJmxBean jmxBean;
            try {
                jmxBean = new RedisThrottlerInternalJmxBean();
                StandardMBean jmxBeanWrapper = new StandardMBean(jmxBean, RedisThrottlerJmxBean.class);
                mbs.registerMBean(jmxBeanWrapper, jmxBeanName);
            } catch (InstanceAlreadyExistsException ignored) {
                jmxBean = JMX.newMBeanProxy(mbs, jmxBeanName, RedisThrottlerJmxBean.class);
            }

            // Increment the reference count and return the JMX bean.
            jmxBeanReferenceCountByName.put(jmxBeanName, jmxBeanReferenceCount + 1);
            return jmxBean;

        }
    } catch (Throwable error) {
        String message = String.format("failed accessing the JMX bean (jmxBeanName=%s)", jmxBeanName);
        throw new RuntimeException(message, error);
    }
}
 
開發者ID:vy,項目名稱:log4j2-redis-appender,代碼行數:32,代碼來源:RedisThrottler.java


注:本文中的javax.management.StandardMBean類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。