@Override @After public void shutDown() throws Exception { if ( httpclient != null ) { httpclient.close(); } if ( server != null ) { server.shutdown( 0, TimeUnit.MILLISECONDS ); } }
@Before @Override public void setUp() throws Exception { super.setUp(); handler = new PingerHandler(); this.serverBootstrap.registerHandler( "/*", handler ); HttpHost target = start(); hostname = target.getHostName(); serverUrl = "http://" + hostname + ":" + target.getPort(); }
@Test public void shouldPingServer() throws IOException { final HostnamePort hostURL = new HostnamePort( hostname, server.getLocalPort() ); final Map<String,String> udcFields = new HashMap<>(); udcFields.put( ID, EXPECTED_STORE_ID ); udcFields.put( UdcConstants.VERSION, EXPECTED_KERNEL_VERSION ); Pinger p = new Pinger( hostURL, new TestUdcCollector( udcFields ) ); p.ping(); Map<String,String> actualQueryMap = handler.getQueryMap(); assertThat( actualQueryMap, notNullValue() ); assertThat( actualQueryMap.get( ID ), is( EXPECTED_STORE_ID ) ); }
public TestHttpServer start() { checkNotStarted(); 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; }
@Before public void setUp() throws Exception { localServer = ServerBootstrap.bootstrap() .setHttpProcessor(getHttpProcessor()) .registerHandler("/", new BasicValidationHandler("GET", null, null, null)) .registerHandler("/withPath", new BasicValidationHandler("GET", null, null, null)) .registerHandler("/with/nested/path", new BasicValidationHandler("GET", null, null, null)) .create(); localServer.start(); }
public void shutdown(final long gracePeriod, final TimeUnit timeUnit) { stop(); if (gracePeriod > 0) { try { awaitTermination(gracePeriod, timeUnit); } catch (final InterruptedException ex) { Thread.currentThread().interrupt(); } } final Set<Worker> workers = this.workerExecutorService.getWorkers(); for (final Worker worker: workers) { final HttpServerConnection conn = worker.getConnection(); try { conn.shutdown(); } catch (final IOException ex) { this.exceptionLogger.log(ex); } } }
public void stop() { if (null != server) { server.stop(); server = null; } }
@Override public void close() throws IOException { if (original != null) { LOGGER.log(Level.INFO, () -> "stopping MockUpdateCenter on http://" + server.getInetAddress().getHostAddress() + ":" + server.getLocalPort() + "/update-center.json"); HttpServer s = server; server = null; // make sure this.server holds a server that is guaranteed to be up s.shutdown(5, TimeUnit.SECONDS); /* TODO only if RemoteController etc.: injector.getInstance(Jenkins.class).runScript("DownloadService.signatureCheck = true; Jenkins.instance.updateCenter.sites.replaceBy([new UpdateSite(UpdateCenter.ID_DEFAULT, '%s')])", original); */ original = null; } } }
public static ServerBootstrap bootstrap() { return new ServerBootstrap(); }
private String getLocalServerHostAndPort() { return new StringBuilder() .append(localServer.getInetAddress().getHostName()) .append(":") .append(localServer.getLocalPort()) .toString(); }
public void stop() { if (this.status.compareAndSet(Status.ACTIVE, Status.STOPPING)) { this.listenerExecutorService.shutdown(); this.workerExecutorService.shutdown(); final RequestListener local = this.requestListener; if (local != null) { try { local.terminate(); } catch (final IOException ex) { this.exceptionLogger.log(ex); } } this.workerThreads.interrupt(); } }
public void awaitTermination(final long timeout, final TimeUnit timeUnit) throws InterruptedException { this.workerExecutorService.awaitTermination(timeout, timeUnit); }
@Override public void run() { System.out.println("Stopping HTTP Server..."); server.stop(); } }.start();
public static ServerBootstrap bootstrap() { return new ServerBootstrap(); }
@Test public void shouldIncludePingCountInURI() throws IOException { final int EXPECTED_PING_COUNT = 16; final HostnamePort hostURL = new HostnamePort( hostname, server.getLocalPort() ); final Map<String,String> udcFields = new HashMap<>(); Pinger p = new Pinger( hostURL, new TestUdcCollector( udcFields ) ); for ( int i = 0; i < EXPECTED_PING_COUNT; i++ ) { p.ping(); } assertThat( p.getPingCount(), is( equalTo( EXPECTED_PING_COUNT ) ) ); Map<String,String> actualQueryMap = handler.getQueryMap(); assertThat( actualQueryMap.get( UdcConstants.PING ), is( Integer.toString( EXPECTED_PING_COUNT ) ) ); }
@Override public void run() { server.shutdown(5, TimeUnit.SECONDS); } });
@After public void tearDown() { if (localServer != null) { localServer.stop(); } }
public static ServerBootstrap bootstrap() { return new ServerBootstrap(); }
@Test public void normalPingSequenceShouldBeOneThenTwoThenThreeEtc() throws Exception { int[] expectedSequence = {1, 2, 3, 4}; final HostnamePort hostURL = new HostnamePort( hostname, server.getLocalPort() ); final Map<String,String> udcFields = new HashMap<>(); Pinger p = new Pinger( hostURL, new TestUdcCollector( udcFields ) ); for ( int s : expectedSequence ) { p.ping(); int count = Integer.parseInt( handler.getQueryMap().get( UdcConstants.PING ) ); assertEquals( s, count ); } }
public static ServerBootstrap bootstrap() { return new ServerBootstrap(); }