1 package org.apache.mina.integration.jmx; 2 3 import java.lang.management.ManagementFactory; 4 import java.net.InetSocketAddress; 5 import java.util.concurrent.TimeUnit; 6 7 import javax.management.MBeanServer; 8 import javax.management.ObjectName; 9 10 import org.apache.mina.common.IoAcceptor; 11 import org.apache.mina.common.IoHandlerAdapter; 12 import org.apache.mina.filter.executor.ExecutorFilter; 13 import org.apache.mina.filter.executor.IoEventQueueThrottle; 14 import org.apache.mina.filter.executor.OrderedThreadPoolExecutor; 15 import org.apache.mina.filter.logging.LoggingFilter; 16 import org.apache.mina.transport.socket.nio.NioSocketAcceptor; 17 18 public class Foo { 19 public static void main(String[] args) throws Exception { 20 final MBeanServer server = ManagementFactory.getPlatformMBeanServer(); 21 22 IoAcceptor service = new NioSocketAcceptor(); 23 service.setHandler(new IoHandlerAdapter()); 24 25 ExecutorFilter executorFilter = new ExecutorFilter( 26 new OrderedThreadPoolExecutor( 27 0, 16, 30, TimeUnit.SECONDS, 28 new IoEventQueueThrottle(1048576))); 29 30 service.getFilterChain().addLast("executor", executorFilter); 31 service.bind(new InetSocketAddress(8080)); 32 33 server.registerMBean( 34 new IoServiceMBean(service), 35 new ObjectName("org.apache.mina:type=service,name=myService")); 36 37 server.registerMBean( 38 new IoFilterMBean(executorFilter), 39 new ObjectName("org.apache.mina:type=filter,name=executor")); 40 41 server.registerMBean( 42 new IoFilterMBean(new LoggingFilter()), 43 new ObjectName("org.apache.mina:type=filter,name=logger")); 44 } 45 }