/* * <p> * 版权: ©2011 * </p> */ package org.young.isocket.jmx; import org.glassfish.gmbal.Description; import org.glassfish.gmbal.GmbalMBean; import org.glassfish.gmbal.ManagedObject; import org.glassfish.gmbal.ManagedOperation; import org.glassfish.grizzly.monitoring.jmx.GrizzlyJmxManager; import org.glassfish.grizzly.monitoring.jmx.JmxObject; import org.young.isocket.server.NIOSocketServer; /** * <p> * * </p> * * @see * @author yangjun2 * @email yangjun1120@gmail.com * */ @ManagedObject @Description("iSocketServer JMX Object.") public class SocketServerJMX extends JmxObject { private final SocketServerProbe probe = new JMXSocketServerProbe(); @Override public String getJmxName() { return "SocketServerMbean"; } @Override protected void onDeregister(GrizzlyJmxManager arg0) { // TODO Auto-generated method stub } @Override protected void onRegister(GrizzlyJmxManager arg0, GmbalMBean arg1) { // TODO Auto-generated method stub } public SocketServerJMX() { } /** * @return the Java type of the managed thread pool. */ @ManagedOperation(id = "shutdown-server") @Description("shutdown socket server") public void stopServer() { probe.stopServer(); } private class JMXSocketServerProbe implements SocketServerProbe { @Override public void stopServer() { try { NIOSocketServer.getInstance().stop(); NIOSocketServer.getInstance().notifyServer(); } catch (Exception e) { e.printStackTrace(); } } } }