Example usage for org.apache.http.impl.bootstrap ServerBootstrap bootstrap

List of usage examples for org.apache.http.impl.bootstrap ServerBootstrap bootstrap

Introduction

In this page you can find the example usage for org.apache.http.impl.bootstrap ServerBootstrap bootstrap.

Prototype

public static ServerBootstrap bootstrap() 

Source Link

Usage

From source file:com.adobe.ags.curly.test.TestWebServer.java

private TestWebServer(int port) throws IOException, InterruptedException {
    this.port = port;
    ServerBootstrap bootstrap = ServerBootstrap.bootstrap();
    bootstrap.setListenerPort(port);// ww w  .  j  ava 2s . c o  m
    bootstrap.setServerInfo("Test/1.1");
    bootstrap.setSocketConfig(SocketConfig.DEFAULT);
    bootstrap.registerHandler("*", this::handleHttpRequest);
    server = bootstrap.create();
    server.start();
}

From source file:org.apache.sling.hapi.client.test.util.HttpServerRule.java

@Override
protected void before() throws Throwable {
    final SocketConfig socketConfig = SocketConfig.custom().setSoTimeout(5000).build();
    serverBootstrap = ServerBootstrap.bootstrap().setSocketConfig(socketConfig).setServerInfo(ORIGIN);
    if (ProtocolScheme.https.equals(protocolScheme)) {
        serverBootstrap.setSslContext(SSLTestContexts.createServerSSLContext());
    }//from www.ja  v  a2s.  c  o  m
    registerHandlers();
    server = serverBootstrap.create();
    server.start();
    host = new HttpHost("127.0.0.1", server.getLocalPort(), protocolScheme.name());
    uri = URIUtils.rewriteURI(new URI("/"), host);
}

From source file:org.apache.servicecomb.demo.springmvc.server.DownloadSchema.java

public DownloadSchema() throws IOException {
    FileUtils.deleteQuietly(tempDir);/*from   w ww  . java  2  s.c  om*/
    FileUtils.forceMkdir(tempDir);

    // for download from net stream case
    HttpServer server = ServerBootstrap.bootstrap().setListenerPort(9000)
            .registerHandler("/download/netInputStream", (req, resp, context) -> {
                String uri = req.getRequestLine().getUri();
                String query = URI.create(uri).getQuery();
                int idx = query.indexOf('=');
                String content = query.substring(idx + 1);
                content = URLDecoder.decode(content, StandardCharsets.UTF_8.name());
                resp.setEntity(new StringEntity(content, StandardCharsets.UTF_8.name()));
            }).create();
    server.start();
}

From source file:org.apache.servicecomb.it.schema.DownloadSchema.java

public DownloadSchema() throws IOException {
    FileUtils.deleteQuietly(tempDir);/* w  ww .j a va2  s .c o m*/
    FileUtils.forceMkdir(tempDir);

    // for download from net stream case
    server = ServerBootstrap.bootstrap().setListenerPort(0)
            .registerHandler("/download/netInputStream", (req, resp, context) -> {
                String uri = req.getRequestLine().getUri();
                String query = URI.create(uri).getQuery();
                int idx = query.indexOf('=');
                String content = query.substring(idx + 1);
                content = URLDecoder.decode(content, StandardCharsets.UTF_8.name());
                resp.setEntity(new StringEntity(content, StandardCharsets.UTF_8.name()));
            }).create();
    server.start();
}

From source file:com.github.tddts.jet.oauth.impl.EmbeddedServerImpl.java

@PostConstruct
public void init() {
    AuthHandler authHandler = new DefaultAuthHandler(authService, implicitSuccessResponse, successMessage);
    CallbackRequestHandler requestHandler = new CallbackRequestHandler(authHandler,
            new SimpleAuthHandlerCallback());

    HttpServer httpServer = ServerBootstrap.bootstrap().setListenerPort(port)
            .registerHandler(serverPath, requestHandler).create();

    temporaryServer = new TemporaryHttpServer(httpServer);
}

From source file:it.mbcraft.command_server.engine.CommandServer.java

/**
 * Starts the server/*from  w ww. j ava2s. com*/
 *
 */
@Override
public void start() {

    try {
        System.out.print("Starting command server ...");

        SocketConfig config = SocketConfig.custom().setSoTimeout(15000).setTcpNoDelay(true).setBacklogSize(2)
                .setSoKeepAlive(false).build();

        server = ServerBootstrap.bootstrap().setListenerPort(listenPort)
                .setLocalAddress(InetAddress.getLoopbackAddress()).setServerInfo("Java:CommandServer/1.1")
                .setSocketConfig(config).setExceptionLogger(ExceptionLogger.NO_OP)
                .registerHandler("*", new HttpCommandHandler()).create();

        server.start();

        System.out.println("done!");
    } catch (IOException ex) {
        Logger.getLogger(CommandServer.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:brooklyn.test.TestHttpServer.java

public TestHttpServer start() {
    checkNotStarted();// w  w  w . j  av  a 2  s .c om

    HttpProcessor httpProcessor = new ImmutableHttpProcessor(requestInterceptors, responseInterceptors);
    int port = Networking.nextAvailablePort(basePort);
    ServerBootstrap bootstrap = ServerBootstrap.bootstrap().setListenerPort(port)
            .setLocalAddress(getLocalAddress()).setHttpProcessor(httpProcessor);

    for (HandlerTuple tuple : handlers) {
        bootstrap.registerHandler(tuple.path, tuple.handler);
    }
    server = bootstrap.create();

    try {
        server.start();
    } catch (IOException e) {
        throw Exceptions.propagate(e);
    }

    return this;
}

From source file:onl.area51.httpd.HttpServerBuilder.java

static HttpServerBuilder builder() {
    return new HttpServerBuilder() {
        private final ServerBootstrap sb = ServerBootstrap.bootstrap();
        private long gracePeriod = 5;
        private TimeUnit gracePeriodUnit = TimeUnit.MINUTES;
        private HttpRequestHandlerBuilder globalHandler;

        @Override/*from ww  w .ja va  2s .c  o  m*/
        public HttpServerBuilder shutdown(long gracePeriod, TimeUnit gracePeriodUnit) {
            if (gracePeriod < 1 || gracePeriodUnit == null) {
                throw new IllegalArgumentException("Invalid GracePeriod");
            }
            this.gracePeriod = gracePeriod;
            this.gracePeriodUnit = gracePeriodUnit;
            return this;
        }

        @Override
        public HttpServerBuilder setListenerPort(int listenerPort) {
            sb.setListenerPort(listenerPort);
            return this;
        }

        @Override
        public HttpServerBuilder setLocalAddress(InetAddress localAddress) {
            sb.setLocalAddress(localAddress);
            return this;
        }

        @Override
        public HttpServerBuilder setSocketConfig(SocketConfig socketConfig) {
            sb.setSocketConfig(socketConfig);
            return this;
        }

        @Override
        public HttpServerBuilder setConnectionConfig(ConnectionConfig connectionConfig) {
            sb.setConnectionConfig(connectionConfig);
            return this;
        }

        @Override
        public HttpServerBuilder setHttpProcessor(HttpProcessor httpProcessor) {
            sb.setHttpProcessor(httpProcessor);
            return this;
        }

        @Override
        public HttpServerBuilder addInterceptorFirst(HttpResponseInterceptor itcp) {
            sb.addInterceptorFirst(itcp);
            return this;
        }

        @Override
        public HttpServerBuilder addInterceptorLast(HttpResponseInterceptor itcp) {
            sb.addInterceptorLast(itcp);
            return this;
        }

        @Override
        public HttpServerBuilder addInterceptorFirst(HttpRequestInterceptor itcp) {
            sb.addInterceptorFirst(itcp);
            return this;
        }

        @Override
        public HttpServerBuilder addInterceptorLast(HttpRequestInterceptor itcp) {
            sb.addInterceptorLast(itcp);
            return this;
        }

        @Override
        public HttpServerBuilder setServerInfo(String serverInfo) {
            sb.setServerInfo(serverInfo);
            return this;
        }

        @Override
        public HttpServerBuilder setConnectionReuseStrategy(ConnectionReuseStrategy connStrategy) {
            sb.setConnectionReuseStrategy(connStrategy);
            return this;
        }

        @Override
        public HttpServerBuilder setResponseFactory(HttpResponseFactory responseFactory) {
            sb.setResponseFactory(responseFactory);
            return this;
        }

        @Override
        public HttpServerBuilder setHandlerMapper(HttpRequestHandlerMapper handlerMapper) {
            sb.setHandlerMapper(handlerMapper);
            return this;
        }

        @Override
        public HttpServerBuilder registerHandler(String pattern, HttpRequestHandler handler) {
            sb.registerHandler(pattern, handler);
            return this;
        }

        @Override
        public HttpServerBuilder setExpectationVerifier(HttpExpectationVerifier expectationVerifier) {
            sb.setExpectationVerifier(expectationVerifier);
            return this;
        }

        @Override
        public HttpServerBuilder setConnectionFactory(
                HttpConnectionFactory<? extends DefaultBHttpServerConnection> connectionFactory) {
            sb.setConnectionFactory(connectionFactory);
            return this;
        }

        @Override
        public HttpServerBuilder setSslSetupHandler(SSLServerSetupHandler sslSetupHandler) {
            sb.setSslSetupHandler(sslSetupHandler);
            return this;
        }

        @Override
        public HttpServerBuilder setServerSocketFactory(ServerSocketFactory serverSocketFactory) {
            sb.setServerSocketFactory(serverSocketFactory);
            return this;
        }

        @Override
        public HttpServerBuilder setSslContext(SSLContext sslContext) {
            sb.setSslContext(sslContext);
            return this;
        }

        @Override
        public HttpServerBuilder setExceptionLogger(ExceptionLogger exceptionLogger, boolean filter) {
            sb.setExceptionLogger(filter ? ex -> {
                if (!(ex instanceof SocketTimeoutException) && !(ex instanceof ConnectionClosedException)
                        && !(ex instanceof SocketException)) {
                    exceptionLogger.log(ex);
                }
            } : exceptionLogger);
            return this;
        }

        @Override
        public HttpRequestHandlerBuilder getGlobalHandlerBuilder() {
            if (globalHandler == null) {
                globalHandler = HttpRequestHandlerBuilder.create();
            }
            return globalHandler;
        }

        @Override
        public HttpServer build() {
            if (globalHandler != null) {
                sb.registerHandler("/*", globalHandler.build());
            }

            org.apache.http.impl.bootstrap.HttpServer server = sb.create();
            return new HttpServer() {
                @Override
                public void start() throws IOException {
                    server.start();
                }

                @Override
                public void stop() {
                    server.shutdown(gracePeriod, gracePeriodUnit);
                }
            };
        }

    };
}

From source file:org.jenkinsci.test.acceptance.update_center.MockUpdateCenter.java

public void ensureRunning() {
    if (original != null) {
        return;//  w  ww. j av  a  2 s .  c  o  m
    }
    // TODO this will likely not work on arbitrary controllers, so perhaps limit to the default WinstoneController
    Jenkins jenkins = injector.getInstance(Jenkins.class);
    List<String> sites = new UpdateCenter(jenkins).getJson("tree=sites[url]").findValuesAsText("url");
    if (sites.size() != 1) {
        // TODO ideally it would rather delegate to all of them, but that implies deprecating CachedUpdateCenterMetadataLoader.url and using whatever site(s) Jenkins itself specifies
        LOGGER.log(Level.WARNING, "found an unexpected number of update sites: {0}", sites);
        return;
    }
    UpdateCenterMetadata ucm;
    try {
        ucm = ucmd.get(jenkins);
    } catch (IOException x) {
        LOGGER.log(Level.WARNING, "cannot load data for mock update center", x);
        return;
    }
    JSONObject all;
    try {
        all = new JSONObject(ucm.originalJSON);
        all.remove("signature");
        JSONObject plugins = all.getJSONObject("plugins");
        LOGGER.info(() -> "editing JSON with " + plugins.length() + " plugins to reflect " + ucm.plugins.size()
                + " possible overrides");
        for (PluginMetadata meta : ucm.plugins.values()) {
            String name = meta.getName();
            String version = meta.getVersion();
            JSONObject plugin = plugins.optJSONObject(name);
            if (plugin == null) {
                LOGGER.log(Level.INFO, "adding plugin {0}", name);
                plugin = new JSONObject().accumulate("name", name);
                plugins.put(name, plugin);
            }
            plugin.put("url", name + ".hpi");
            updating(plugin, "version", version);
            updating(plugin, "gav", meta.gav);
            updating(plugin, "requiredCore", meta.requiredCore().toString());
            updating(plugin, "dependencies", new JSONArray(meta.getDependencies().stream().map(d -> {
                try {
                    return new JSONObject().accumulate("name", d.name).accumulate("version", d.version)
                            .accumulate("optional", d.optional);
                } catch (JSONException x) {
                    throw new AssertionError(x);
                }
            }).collect(Collectors.toList())));
            plugin.remove("sha1");
        }
    } catch (JSONException x) {
        LOGGER.log(Level.WARNING, "cannot prepare mock update center", x);
        return;
    }
    HttpProcessor proc = HttpProcessorBuilder.create().add(new ResponseServer("MockUpdateCenter"))
            .add(new ResponseContent()).add(new RequestConnControl()).build();
    UriHttpRequestHandlerMapper handlerMapper = new UriHttpRequestHandlerMapper();
    String json = "updateCenter.post(\n" + all + "\n);";
    handlerMapper.register("/update-center.json",
            (HttpRequest request, HttpResponse response, HttpContext context) -> {
                response.setStatusCode(HttpStatus.SC_OK);
                response.setEntity(new StringEntity(json, ContentType.APPLICATION_JSON));
            });
    handlerMapper.register("*.hpi", (HttpRequest request, HttpResponse response, HttpContext context) -> {
        String plugin = request.getRequestLine().getUri().replaceFirst("^/(.+)[.]hpi$", "$1");
        PluginMetadata meta = ucm.plugins.get(plugin);
        if (meta == null) {
            LOGGER.log(Level.WARNING, "no such plugin {0}", plugin);
            response.setStatusCode(HttpStatus.SC_NOT_FOUND);
            return;
        }
        File local = meta.resolve(injector, meta.getVersion());
        LOGGER.log(Level.INFO, "serving {0}", local);
        response.setStatusCode(HttpStatus.SC_OK);
        response.setEntity(new FileEntity(local));
    });
    handlerMapper.register("*", (HttpRequest request, HttpResponse response, HttpContext context) -> {
        String location = original.replace("/update-center.json", request.getRequestLine().getUri());
        LOGGER.log(Level.INFO, "redirect to {0}", location);
        /* TODO for some reason DownloadService.loadJSONHTML does not seem to process the redirect, despite calling setInstanceFollowRedirects(true):
        response.setStatusCode(HttpStatus.SC_MOVED_TEMPORARILY);
        response.setHeader("Location", location);
         */
        HttpURLConnection uc = (HttpURLConnection) new URL(location).openConnection();
        uc.setInstanceFollowRedirects(true);
        // TODO consider caching these downloads locally like CachedUpdateCenterMetadataLoader does for the main update-center.json
        byte[] data = IOUtils.toByteArray(uc);
        String contentType = uc.getContentType();
        response.setStatusCode(HttpStatus.SC_OK);
        response.setEntity(new ByteArrayEntity(data, ContentType.create(contentType)));

    });
    server = ServerBootstrap.bootstrap().
    // could setLocalAddress if using a JenkinsController that requires it
            setHttpProcessor(proc).setHandlerMapper(handlerMapper).setExceptionLogger(serverExceptionHandler())
            .create();

    try {
        server.start();
    } catch (IOException x) {
        LOGGER.log(Level.WARNING, "cannot start mock update center", x);
        return;

    }
    original = sites.get(0);
    // TODO figure out how to deal with Docker-based controllers which would need to have an IP address for the host
    String override = "http://" + server.getInetAddress().getHostAddress() + ":" + server.getLocalPort()
            + "/update-center.json";
    LOGGER.log(Level.INFO, "replacing update site {0} with {1}", new Object[] { original, override });
    jenkins.runScript(
            "DownloadService.signatureCheck = false; Jenkins.instance.updateCenter.sites.replaceBy([new UpdateSite(UpdateCenter.ID_DEFAULT, '%s')])",
            override);
}