Example usage for org.apache.http.nio.protocol AsyncNHttpServiceHandler setHandlerResolver

List of usage examples for org.apache.http.nio.protocol AsyncNHttpServiceHandler setHandlerResolver

Introduction

In this page you can find the example usage for org.apache.http.nio.protocol AsyncNHttpServiceHandler setHandlerResolver.

Prototype

public void setHandlerResolver(final NHttpRequestHandlerResolver handlerResolver) 

Source Link

Usage

From source file:com.limegroup.gnutella.http.HttpTestServer.java

public void execute(EventListener listener) throws IOException {
    BasicHttpProcessor processor = new BasicHttpProcessor();
    processor.addInterceptor(new ResponseDate());
    processor.addInterceptor(new ResponseServer());
    processor.addInterceptor(new ResponseContent());
    processor.addInterceptor(new ResponseConnControl());

    AsyncNHttpServiceHandler serviceHandler = new AsyncNHttpServiceHandler(processor,
            new DefaultHttpResponseFactory(), new DefaultConnectionReuseStrategy(), params);

    serviceHandler.setEventListener(listener);

    serviceHandler.setHandlerResolver(this.registry);

    reactor = new DefaultDispatchedIOReactor(params, NIODispatcher.instance().getScheduledExecutorService());
    IOEventDispatch ioEventDispatch = new DefaultServerIOEventDispatch(serviceHandler, params);
    reactor.execute(ioEventDispatch);// ww  w.  ja  v  a 2 s  .c om
}

From source file:niproxy.NiProxy.java

/**
 * Setups a monitoring http proxy and starts a non blocking listening
 * service based on a {@link NiProxyConfig}. This is based on the Apache 
 * Software Foundation's example code "Basic non-blocking HTTP server" that 
 * can be found from http://hc.apache.org/httpcomponents-core-ga/examples.html. 
 *///from w w  w . ja v  a2  s  .c om
public NiProxy() {
    HttpParams params = new SyncBasicHttpParams();
    params.setIntParameter(CoreConnectionPNames.SO_TIMEOUT, NiProxyConfig.getHttpConnectionTimeout())
            .setIntParameter(CoreConnectionPNames.SOCKET_BUFFER_SIZE, 8 * 1024)
            .setBooleanParameter(CoreConnectionPNames.STALE_CONNECTION_CHECK, false)
            .setBooleanParameter(CoreConnectionPNames.TCP_NODELAY, true);

    HttpProcessor httpproc = new ImmutableHttpProcessor(new HttpResponseInterceptor[] { new ResponseDate(),
            new ResponseServer(), new ResponseContent(), new ResponseConnControl() });

    AsyncNHttpServiceHandler handler = new AsyncNHttpServiceHandler(httpproc, new DefaultHttpResponseFactory(),
            new DefaultConnectionReuseStrategy(), params);

    // Set up request handlers
    NHttpRequestHandlerRegistry registry = new NHttpRequestHandlerRegistry();
    registry.register("*", NiProxyMonitor.get());

    handler.setHandlerResolver(registry);

    // Provide an event logger
    handler.setEventListener(new EventLogger());

    IOEventDispatch ioEventDispatch = new DefaultServerIOEventDispatch(handler, params);
    try {
        logger.info("Setting up " + NiProxyConfig.getIOReactorWorkersCount() + " IOReactor workers");
        ListeningIOReactor ioReactor = new DefaultListeningIOReactor(NiProxyConfig.getIOReactorWorkersCount(),
                params);
        String host = NiProxyConfig.getNiProxyHost();
        int port = NiProxyConfig.getNiProxyPort();
        logger.info("Listening for connections at " + host + ":" + port);
        ioReactor.listen(new InetSocketAddress(host, port));
        logger.info("NiProxy set up done. Launching event dispatch...");
        ioReactor.execute(ioEventDispatch);
    } catch (Exception e) {
        logger.error("I/O reactor was interrupted. Exception: " + e);
        e.printStackTrace();
    }
    logger.info("NiProxy server shutdown.");
}

From source file:com.zotoh.maedr.device.apache.HttpIO.java

protected void onStart() throws Exception {

    // mostly copied from apache http tutotial...

    HttpParams params = new BasicHttpParams();
    params.setIntParameter(CoreConnectionPNames.SO_TIMEOUT, (int) getSocetTimeoutMills())
            .setIntParameter(CoreConnectionPNames.SOCKET_BUFFER_SIZE, 8 * 1024) // 8k?
            .setBooleanParameter(CoreConnectionPNames.STALE_CONNECTION_CHECK, false)
            .setBooleanParameter(CoreConnectionPNames.TCP_NODELAY, true)
            .setParameter(CoreProtocolPNames.ORIGIN_SERVER, "Apache-HttpCore/4.x");

    BasicHttpProcessor httpproc = new BasicHttpProcessor();
    httpproc.addInterceptor(new ResponseDate());
    httpproc.addInterceptor(new ResponseServer());
    httpproc.addInterceptor(new ResponseContent());
    httpproc.addInterceptor(new ResponseConnControl());

    ConnectionReuseStrategy strategy = new DefaultConnectionReuseStrategy();
    HttpResponseFactory rspFac = new DefaultHttpResponseFactory();
    NHttpServiceHandler svc;// w w  w  .  j  a va 2  s  .  com
    EventListener evt = new EventLogger(getId(), tlog());

    if (isAsync()) {
        AsyncNHttpServiceHandler handler = new AsyncNHttpServiceHandler(httpproc, rspFac, strategy, params);
        NHttpRequestHandlerRegistry r = new NHttpRequestHandlerRegistry();
        r.register("*", new HttpNRequestCB(this));
        handler.setHandlerResolver(r);
        handler.setEventListener(evt);
        svc = handler;
    } else {
        StreamedHttpServiceHandler handler = new StreamedHttpServiceHandler(httpproc, rspFac, strategy, params);
        HttpRequestHandlerRegistry r = new HttpRequestHandlerRegistry();
        r.register("*", new HttpRequestCB(this));
        handler.setHandlerResolver(r);
        handler.setEventListener(evt);
        svc = handler;
    }

    IOEventDispatch disp = isSSL() ? onSSL(svc, params) : onBasic(svc, params);
    ListeningIOReactor ioReactor;
    ioReactor = new DefaultListeningIOReactor(getWorkers(), params);
    ioReactor.listen(new InetSocketAddress(NetUte.getNetAddr(getHost()), getPort()));
    _curIO = ioReactor;

    // start...
    runServer(disp, ioReactor);
}