JMX (Java Management eXtension) integration.

## Monitoring Your MINA Services and Sessions

### Monitoring an IoService

    acceptor = new SocketAcceptor();

    try
    {
        IoServiceManager iosm = new IoServiceManager(acceptor);
        MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
        ObjectName name = new ObjectName( "com.acme.test:type=IoServiceManager,name=MyMINAServer" );
        mbs.registerMBean( iosm, name );
    }
    catch( JMException e )
    {
        logger.error( "JMX Exception: ", e );
    }

### Monitoring an IoSession

Each session is registered to MBean server individually.

    acceptor.addListener( new IoServiceListener()
    {
        public void serviceActivated( IoService service, SocketAddress serviceAddress, IoHandler handler, IoServiceConfig config )
        {
        }

        public void serviceDeactivated( IoService service, SocketAddress serviceAddress, IoHandler handler, IoServiceConfig config )
        {
        }

        public void sessionCreated( IoSession session )
        {
            try
            {
                IoSessionManager sessMgr = new IoSessionManager( session );
                MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
                ObjectName name = new ObjectName( "com.acme.test.session:type=IoSessionManager,name=" + session.getRemoteAddress().toString().replace( ':', '/' ) );
                mbs.registerMBean( sessMgr, name );
            }
            catch( JMException e )
            {
                logger.error( "JMX Exception: ", e );
            }
        }

        public void sessionDestroyed( IoSession session )
        {
            try
            {
                ObjectName name = new ObjectName( "com.acme.test.session:type=IoSessionManager,name=" + session.getRemoteAddress().toString().replace( ':', '/' ) );
                ManagementFactory.getPlatformMBeanServer().unregisterMBean( name );
            }
            catch( JMException e )
            {
                logger.error( "JMX Exception: ", e );
            }
        }
    });