Java tutorial
/* * Copyright (c) 2012 - 2016 Jadler contributors * This program is made available under the terms of the MIT License. */ package net.jadler.stubbing.server.jdk; import com.sun.net.httpserver.HttpServer; import net.jadler.RequestManager; import net.jadler.stubbing.server.StubHttpServer; import java.io.IOException; import java.net.InetSocketAddress; import net.jadler.exception.JadlerException; import static org.apache.commons.lang.Validate.isTrue; import static org.apache.commons.lang.Validate.notNull; /** * Stub server implementation based on {@link HttpServer} which is part of JDK. */ public class JdkStubHttpServer implements StubHttpServer { private final HttpServer server; public JdkStubHttpServer(final int port) { isTrue(port >= 0, "port cannot be a negative number"); try { server = HttpServer.create(new InetSocketAddress(port), 0); } catch (final IOException e) { throw new JadlerException("Cannot create JDK server", e); } } public JdkStubHttpServer() { this(0); } @Override public void registerRequestManager(final RequestManager ruleProvider) { notNull(ruleProvider, "ruleProvider cannot be null"); server.createContext("/", new JdkHandler(ruleProvider)); } @Override public void start() throws Exception { server.start(); } @Override public void stop() throws Exception { server.stop(0); } @Override public int getPort() { return server.getAddress().getPort(); } }