List of usage examples for org.apache.http.impl.bootstrap ServerBootstrap bootstrap
public static ServerBootstrap bootstrap()
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); }