public void start()

in server/src/main/java/org/apache/asyncweb/server/transport/mina/MinaTransport.java [185:244]


    public void start() throws TransportException
    {
        initIOHandler();
        acceptor = new NioSocketAcceptor( ioThreads );
        eventExecutor = new OrderedThreadPoolExecutor( this.eventThreads );
        
        boolean success = false;
        try {
        	DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();
        	
            chain.addFirst( "threadPool", new ExecutorFilter( eventExecutor ) );
            acceptor.setReuseAddress( true );
            acceptor.getSessionConfig().setReuseAddress(true);

            chain.addLast("mdc", new MdcInjectionFilter() );
            
            if ( isLoggingTraffic )
            {
                LOG.debug( "Configuring traffic logging filter" );
                LoggingFilter filter = new LoggingFilter();
                filter.setSessionClosedLogLevel( logLevel );
                filter.setExceptionCaughtLogLevel( logLevel );
                filter.setMessageReceivedLogLevel( logLevel );
                filter.setMessageSentLogLevel( logLevel );
                filter.setSessionClosedLogLevel( logLevel );
                filter.setSessionCreatedLogLevel( logLevel );
                filter.setSessionIdleLogLevel( logLevel );
                filter.setSessionOpenedLogLevel( logLevel );
                acceptor.getFilterChain().addLast( "logging", filter );
            }

            // TODO make this configurable instead of hardcoding like this
            acceptor.setBacklog( 100 );
            acceptor.setHandler( ioHandler );

            if ( address != null )
            {
                acceptor.bind( new InetSocketAddress( address, port ) );
            }
            else
            {
                acceptor.bind( new InetSocketAddress( port ) );
            }
            
            success = true;
            LOG.debug( "NIO HTTP Transport bound on port " + port );
        }
        catch ( IOException e )
        {
            throw new TransportException( "NIOTransport Failed to bind to port " + port, e );
        }
        finally
        {
            if ( ! success )
            {
                acceptor.dispose();
                acceptor = null;
            }
        }
    }