/*
* This software copyright by various authors including the RPTools.net development team, and licensed under the LGPL
* Version 3 or, at your option, any later version.
*
* Portions of this software were originally covered under the Apache Software License, Version 1.1 or Version 2.0.
*
* See the file LICENSE elsewhere in this distribution for license details.
*/
package net.sbbi.upnp.samples;
/*
* import java.util.HashMap; import java.util.Map;
*
* import javax.management.MBeanServer; import javax.management.ObjectName; import
* javax.management.remote.JMXConnectorServer; import javax.management.remote.JMXConnectorServerFactory; import
* javax.management.remote.JMXServiceURL;
*
* import net.sbbi.upnp.jmx.UPNPMBeanDevice; import net.sbbi.upnp.jmx.upnp.UPNPConnectorServer;
*
* import java.lang.management.ClassLoadingMXBean; import java.lang.management.ManagementFactory; import
* java.lang.management.MemoryMXBean; import java.lang.management.RuntimeMXBean; import
* java.lang.management.ThreadMXBean;
*/
/**
* Sample class to expose JRE 1.5 JVM MBeans as UPNP devices
*
* @author <a href="mailto:superbonbon@sbbi.net">SuperBonBon</a>
* @version 1.0
*/
public class JDK5ManagementAsUpnp {
public static void main(String[] args) {
/*
* Runnable runnable = new Runnable() {
*
* public void run() { UPNPMBeanDevice jdk5Device = new UPNPMBeanDevice( "JDK5Management", 1, "SBBI",
* "JDK 5 UPNP JMX Interface", "UPNPLIB", null ); UPNPMBeanDevice jdk5Device2 = new UPNPMBeanDevice(
* "JDK5Management", 1, "SBBI", "JDK 5 UPNP JMX Classloader Interface", "UPNPLIB", "BEAN2" );
*
* try { MBeanServer defaultServer = ManagementFactory.getPlatformMBeanServer();
*
* JMXServiceURL url = new JMXServiceURL( "service:jmx:upnp://192.168.0.3:8080" ); Map env = new HashMap();
* env.put( JMXConnectorServerFactory.PROTOCOL_PROVIDER_PACKAGES, "net.sbbi.upnp.jmx" ); env.put(
* UPNPConnectorServer.EXPOSE_MBEANS_AS_UPNP_DEVICES, Boolean.TRUE ); env.put(
* UPNPConnectorServer.EXPOSE_EXISTING_MBEANS_AS_UPNP_DEVICES, Boolean.TRUE );
*
* JMXConnectorServer connectorServer = JMXConnectorServerFactory.newJMXConnectorServer( url, env, null );
* String upnpConnectorBeanName = "Connectors:protocol=upnp,host=192.168.0.3,port=8080"; ObjectName
* cntorServerName = ObjectName.getInstance( upnpConnectorBeanName ); defaultServer.registerMBean(
* connectorServer, cntorServerName ); connectorServer.start();
*
* RuntimeMXBean mbean = ManagementFactory.getRuntimeMXBean(); ObjectName name = new ObjectName(
* ManagementFactory.RUNTIME_MXBEAN_NAME ); jdk5Device.addService( mbean, name, defaultServer, "RUNTIME_MXBEAN",
* "RUNTIME_MXBEAN_TYPE", 1 ); ThreadMXBean mbeanThread = ManagementFactory.getThreadMXBean(); name = new
* ObjectName( ManagementFactory.THREAD_MXBEAN_NAME ); jdk5Device.addService( mbeanThread, name, defaultServer,
* "THREAD_MXBEAN_NAME", "THREAD_MXBEAN_NAME_TYPE", 1 );
*
* MemoryMXBean mbeanMem = ManagementFactory.getMemoryMXBean(); name = new ObjectName(
* ManagementFactory.MEMORY_MXBEAN_NAME ); jdk5Device.addService( mbeanMem, name, defaultServer,
* "MEMORY_MXBEAN_NAME", "MEMORY_MXBEAN_NAME_TYPE", 1 );
*
* ClassLoadingMXBean clBean = ManagementFactory.getClassLoadingMXBean(); name = new ObjectName(
* ManagementFactory.CLASS_LOADING_MXBEAN_NAME ); jdk5Device2.addService( clBean, name, defaultServer,
* "CLASS_LOADING_MXBEAN_NAME", "CLASS_LOADING_MXBEAN_NAME_TYPE", 1 );
*
* jdk5Device.addChildMBean( jdk5Device2 ); System.out.println( "devices created" ); jdk5Device.start();
* System.out.println( "devices started" ); } catch ( Exception ex ) { ex.printStackTrace(); return; } while (
* true ) { try { Thread.sleep( 1000 ); } catch ( InterruptedException intEx ) {
* Thread.currentThread().interrupt(); break; } } try { jdk5Device.stop(); System.out.println( "devices stopped"
* ); } catch ( Exception ex ) { ex.printStackTrace(); } } };
*
* Thread thrd = new Thread( runnable ); thrd.setDaemon( false ); thrd.start();
*/
}
}