< prev index next >

test/jdk/com/sun/jndi/ldap/lib/BaseLdapServer.java

Print this page

        

*** 33,51 **** import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; - import java.util.concurrent.RejectedExecutionException; import static java.lang.System.Logger.Level.INFO; /* * A bare-bones (testing aid) server for LDAP scenarios. * * Override the following methods to provide customized behavior * * * beforeConnectionHandled * * handleRequest * * Instances of this class are safe for use by multiple threads. */ --- 33,51 ---- import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import static java.lang.System.Logger.Level.INFO; /* * A bare-bones (testing aid) server for LDAP scenarios. * * Override the following methods to provide customized behavior * + * * beforeAcceptingConnections * * beforeConnectionHandled * * handleRequest * * Instances of this class are safe for use by multiple threads. */
*** 81,90 **** --- 81,91 ---- private void acceptConnections() { logger().log(INFO, "Server is accepting connections at port {0}", getPort()); try { + beforeAcceptingConnections(); while (isRunning()) { Socket socket = serverSocket.accept(); logger().log(INFO, "Accepted new connection at {0}", socket); synchronized (lock) { // Recheck if the server is still running
*** 95,116 **** closeSilently(socket); } } connectionsPool.submit(() -> handleConnection(socket)); } ! } catch (IOException | RejectedExecutionException e) { if (isRunning()) { throw new RuntimeException( ! "Unexpected exception while accepting connections", e); } } finally { logger().log(INFO, "Server stopped accepting connections at port {0}", getPort()); } } /* * A "Template Method" describing how a connection (represented by a socket) * is handled. * * The socket is closed immediately before the method returns (normally or * abruptly). --- 96,124 ---- closeSilently(socket); } } connectionsPool.submit(() -> handleConnection(socket)); } ! } catch (Throwable t) { if (isRunning()) { throw new RuntimeException( ! "Unexpected exception while accepting connections", t); } } finally { logger().log(INFO, "Server stopped accepting connections at port {0}", getPort()); } } /* + * Called once immediately preceding the server accepting connections. + * + * Override to customize the behavior. + */ + protected void beforeAcceptingConnections() { } + + /* * A "Template Method" describing how a connection (represented by a socket) * is handled. * * The socket is closed immediately before the method returns (normally or * abruptly).
*** 238,253 **** --- 246,274 ---- } /** * Returns the local port this server is listening at. * + * This method can be called at any time. + * * @return the port this server is listening at */ public int getPort() { return serverSocket.getLocalPort(); } + /** + * Returns the address this server is listening at. + * + * This method can be called at any time. + * + * @return the address + */ + public InetAddress getInetAddress() { + return serverSocket.getInetAddress(); + } + /* * Returns a flag to indicate whether this server is running or not. * * @return {@code true} if this server is running, {@code false} otherwise. */
< prev index next >