mirror of https://github.com/sbt/sbt.git
36 lines
1.2 KiB
Java
36 lines
1.2 KiB
Java
package xsbti;
|
|
|
|
/** A running server.
|
|
*
|
|
* A class implementing this must:
|
|
*
|
|
* 1. Expose an HTTP port that clients can connect to, returned via the uri method.
|
|
* 2. Accept HTTP HEAD requests against the returned URI. These are used as "ping" messages to ensure
|
|
* a server is still alive, when new clients connect.
|
|
* 3. Create a new thread to execute its service
|
|
* 4. Block the calling thread until the server is shutdown via awaitTermination()
|
|
*/
|
|
public interface Server {
|
|
/**
|
|
* @return
|
|
* A URI denoting the Port which clients can connect to.
|
|
*
|
|
* Note: we use a URI so that the server can bind to different IP addresses (even a public one) if desired.
|
|
* Note: To verify that a server is "up", the sbt launcher will attempt to connect to
|
|
* this URI's address and port with a socket. If the connection is accepted, the server is assumed to
|
|
* be working.
|
|
*/
|
|
public java.net.URI uri();
|
|
/**
|
|
* This should block the calling thread until the server is shutdown.
|
|
*
|
|
* @return
|
|
* The result that should occur from the server.
|
|
* Can be:
|
|
* - xsbti.Exit: Shutdown this launch
|
|
* - xsbti.Reboot: Restart the server
|
|
*
|
|
*
|
|
*/
|
|
public xsbti.MainResult awaitTermination();
|
|
} |