public class WebServer extends Object
The WebServer can be modeled as: a) a network listener/dispatcher which sits on the port and listens for incoming http requests. b) static handlers - list of handlers that are bound to the current process (list of traces/logs/socket), c) 'normal' handlers, bound to the daemon state.
We would like the server to go down as infrequently as possible (this makes it simpler for /ws users who would otherwise need to reconnect and potentially lose state) which is the reason for section c) above.
| Modifier and Type | Class and Description | 
|---|---|
| static class  | WebServer.WebServerException | 
| Constructor and Description | 
|---|
| WebServer(int port,
         ProjectFilesystem projectFilesystem,
         Clock clock) | 
| Modifier and Type | Method and Description | 
|---|---|
| WebServerBuckEventListener | createListener() | 
| int | getNumActiveConnections() | 
| int | getPort() | 
| void | stop() | 
| void | updateAndStartIfNeeded(Optional<ArtifactCache> artifactCache)Update state and start the server if necessary. | 
public WebServer(int port,
                 ProjectFilesystem projectFilesystem,
                 Clock clock)
port - If 0, then an ephemeral
     port will be assigned. Use getPort() to find out which port is being used.public int getPort()
public WebServerBuckEventListener createListener()
public int getNumActiveConnections()
public void updateAndStartIfNeeded(Optional<ArtifactCache> artifactCache) throws WebServer.WebServerException
artifactCache - cache to serve.WebServer.WebServerExceptionpublic void stop()
          throws WebServer.WebServerException
WebServer.WebServerException