Interface RatpackServerSpec
-
- All Known Subinterfaces:
GroovyRatpackServerSpec
public interface RatpackServerSpec
A buildable specification of a Ratpack server.This type is used when creating a new Ratpack server, via
RatpackServer.of(Action)
.There are three aspects of a Ratpack server, which can be set via the following methods:
serverConfig(ServerConfig)
- the initial information needed to start the serverregistry(Function)
- the registry of objects making up the applicationhandler(Function)
- the request handling chain
The other methods of this interface are alternate, sometimes more convenient or concise, variants of those methods.
None of the methods of this interface are additive (i.e. calling
handlers(Action)
twice will result in the second “value” being used).All of the methods are effectively optional, as there are default values for the three different aspects (each of the base methods details what the default value is). However, in practice you almost always want to at least set a request handler.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default RatpackServerSpec
handler(Class<? extends Handler> handlerType)
Sets the root handler by getting a handler of the given type from the server registry.RatpackServerSpec
handler(Function<? super Registry,? extends Handler> handlerFactory)
Sets the root handler to the return of the given function.default RatpackServerSpec
handlers(Action<? super Chain> handlers)
Sets the root handler to the chain specified by the given action.default RatpackServerSpec
registry(Registry registry)
Sets the user registry to exactly the given registry.RatpackServerSpec
registry(Function<? super Registry,? extends Registry> function)
Sets the user registry as the return value of the given function.default RatpackServerSpec
registryOf(Action<? super RegistrySpec> action)
Builds the user registry via the given spec action.RatpackServerSpec
serverConfig(ServerConfig serverConfig)
Sets the server configuration for the application.default RatpackServerSpec
serverConfig(ServerConfigBuilder builder)
Convenience function thatbuilds
the config from the given builder and delegates toserverConfig(ServerConfig)
.default RatpackServerSpec
serverConfig(Action<? super ServerConfigBuilder> action)
-
-
-
Method Detail
-
registryOf
default RatpackServerSpec registryOf(Action<? super RegistrySpec> action) throws Exception
Builds the user registry via the given spec action.- Parameters:
action
- the definition of the user registry- Returns:
this
- Throws:
Exception
- any thrown byaction
- See Also:
registry(Registry)
-
registry
default RatpackServerSpec registry(Registry registry)
Sets the user registry to exactly the given registry.- Parameters:
registry
- the user registry- Returns:
this
-
registry
RatpackServerSpec registry(Function<? super Registry,? extends Registry> function)
Sets the user registry as the return value of the given function.The given function receives the “base” registry (i.e. the base infrastructure provided by Ratpack) as its argument.
If a user registry is not set, an
empty registry
will be used.- Parameters:
function
- a function that provides the user registry- Returns:
this
-
serverConfig
default RatpackServerSpec serverConfig(ServerConfigBuilder builder)
Convenience function thatbuilds
the config from the given builder and delegates toserverConfig(ServerConfig)
.- Parameters:
builder
- the server configuration (as a builder)- Returns:
this
-
serverConfig
RatpackServerSpec serverConfig(ServerConfig serverConfig)
Sets the server configuration for the application.Server configs can be created via
ServerConfig.builder()
.- Parameters:
serverConfig
- the server configuration- Returns:
this
-
serverConfig
default RatpackServerSpec serverConfig(Action<? super ServerConfigBuilder> action) throws Exception
- Throws:
Exception
-
handler
default RatpackServerSpec handler(Class<? extends Handler> handlerType)
Sets the root handler by getting a handler of the given type from the server registry.This can be useful when integrating with something that can wire together objects, such as Google Guice.
import ratpack.guice.Guice; import ratpack.core.handling.Context; import ratpack.core.handling.Handler; import ratpack.test.embed.EmbeddedApp; import javax.inject.Inject; import static org.junit.jupiter.api.Assertions.assertEquals; public class Example { public static class MyHandler implements Handler { private final String value; @Inject public MyHandler(String value) { this.value = value; } public void handle(Context ctx) throws Exception { ctx.render(value); } } public static void main(String... args) throws Exception { EmbeddedApp.of(s -> s .registry(Guice.registry(b -> b .bindInstance("Hello World!") .bind(MyHandler.class) )) .handler(MyHandler.class) ).test(httpClient -> assertEquals("Hello World!", httpClient.getText()) ); } }
- Parameters:
handlerType
- the type of handler to retrieve from the registry- Returns:
this
-
handlers
default RatpackServerSpec handlers(Action<? super Chain> handlers)
Sets the root handler to the chain specified by the given action.The server registry is available during the action via the
Chain.getRegistry()
method of the given chain.- Parameters:
handlers
- an action defining a handler chain- Returns:
this
- See Also:
Chain
-
handler
RatpackServerSpec handler(Function<? super Registry,? extends Handler> handlerFactory)
Sets the root handler to the return of the given function.The given function receives the effective server registry. This is the base registry (common Ratpack infrastructure)
joined
with the user registry (i.e. the registry set on this spec).All requests will be routed to the given handler.
Generally, it is more convenient to use the
handlers(Action)
method than this as it makes it easy to build a handler chain.The
Handlers
type provides handler implementations that may be of use.If a handler is not set, the handler returned by
Handlers.notFound()
will be used (i.e. all requests will result in a 404).- Parameters:
handlerFactory
- a factory for the root handler- Returns:
this
- See Also:
Handlers
,handlers(Action)
-
-