Search in sources :

Example 1 with DefaultExecController

use of ratpack.exec.internal.DefaultExecController in project ratpack by ratpack.

the class DefaultRatpackServer method start.

@Override
public synchronized void start() throws Exception {
    if (isRunning()) {
        return;
    }
    ServerConfig serverConfig;
    LOGGER.info("Starting server...");
    DefinitionBuild definitionBuild = buildUserDefinition();
    if (definitionBuild.error != null) {
        if (definitionBuild.getServerConfig().isDevelopment()) {
            LOGGER.warn("Exception raised getting server config (will use default config until reload):", definitionBuild.error);
            needsReload.set(true);
        } else {
            throw Exceptions.toException(definitionBuild.error);
        }
    }
    serverConfig = definitionBuild.getServerConfig();
    execController = new DefaultExecController(serverConfig.getThreads());
    ChannelHandler channelHandler = ThreadBinding.bindFor(true, execController, () -> buildHandler(definitionBuild));
    channel = buildChannel(serverConfig, channelHandler);
    boundAddress = (InetSocketAddress) channel.localAddress();
    String startMessage = String.format("Ratpack started %sfor %s://%s:%s", serverConfig.isDevelopment() ? "(development) " : "", getScheme(), getBindHost(), getBindPort());
    if (Slf4jNoBindingDetector.isHasBinding()) {
        if (LOGGER.isInfoEnabled()) {
            LOGGER.info(startMessage);
        }
    } else {
        System.out.println(startMessage);
    }
    shutdownHookThread = new Thread("ratpack-shutdown-thread") {

        @Override
        public void run() {
            try {
                DefaultRatpackServer.this.stop();
            } catch (Exception ignored) {
                ignored.printStackTrace(System.err);
            }
        }
    };
    Runtime.getRuntime().addShutdownHook(shutdownHookThread);
}
Also used : ServerConfig(ratpack.server.ServerConfig) DefaultExecController(ratpack.exec.internal.DefaultExecController)

Example 2 with DefaultExecController

use of ratpack.exec.internal.DefaultExecController in project ratpack by ratpack.

the class DefaultRequestFixture method getEffectiveRegistry.

private Registry getEffectiveRegistry(final DefaultHandlingResult.ResultsHolder results) {
    ClientErrorHandler clientErrorHandler = (context, statusCode) -> {
        results.setClientError(statusCode);
        context.getResponse().status(statusCode);
        results.getLatch().countDown();
    };
    ServerErrorHandler serverErrorHandler = (context, throwable1) -> {
        results.setThrowable(throwable1);
        results.getLatch().countDown();
    };
    final Registry userRegistry = Registry.builder().add(ClientErrorHandler.class, clientErrorHandler).add(ServerErrorHandler.class, serverErrorHandler).build();
    return Exceptions.uncheck(() -> {
        ServerConfig serverConfig = serverConfigBuilder.build();
        DefaultExecController execController = new DefaultExecController(serverConfig.getThreads());
        return ServerRegistry.serverRegistry(new TestServer(), Impositions.none(), execController, serverConfig, r -> userRegistry.join(registryBuilder.build()));
    });
}
Also used : RatpackServer(ratpack.server.RatpackServer) HttpVersion(io.netty.handler.codec.http.HttpVersion) ClientErrorHandler(ratpack.error.ClientErrorHandler) RequestFixture(ratpack.test.handling.RequestFixture) RootPathBinding(ratpack.path.internal.RootPathBinding) HandlerTimeoutException(ratpack.test.handling.HandlerTimeoutException) Unpooled.unreleasableBuffer(io.netty.buffer.Unpooled.unreleasableBuffer) ServerRegistry(ratpack.server.internal.ServerRegistry) ByteBuf(io.netty.buffer.ByteBuf) MutableHeaders(ratpack.http.MutableHeaders) PathBindingStorage(ratpack.path.internal.PathBindingStorage) RequestBodyReader(ratpack.server.internal.RequestBodyReader) ServerConfig(ratpack.server.ServerConfig) ServerConfigBuilder(ratpack.server.ServerConfigBuilder) Registry(ratpack.registry.Registry) Map(java.util.Map) CharsetUtil(io.netty.util.CharsetUtil) DefaultPathBinding(ratpack.path.internal.DefaultPathBinding) DefaultRequest(ratpack.http.internal.DefaultRequest) Unpooled.buffer(io.netty.buffer.Unpooled.buffer) DefaultExecController(ratpack.exec.internal.DefaultExecController) Streams(ratpack.stream.Streams) RegistryBuilder(ratpack.registry.RegistryBuilder) ServerErrorHandler(ratpack.error.ServerErrorHandler) ImmutableMap(com.google.common.collect.ImmutableMap) HttpMethod(io.netty.handler.codec.http.HttpMethod) Promise(ratpack.exec.Promise) Block(ratpack.func.Block) Instant(java.time.Instant) HostAndPort(com.google.common.net.HostAndPort) InetSocketAddress(java.net.InetSocketAddress) Chain(ratpack.handling.Chain) RegistrySpec(ratpack.registry.RegistrySpec) Impositions(ratpack.impose.Impositions) DefaultHttpHeaders(io.netty.handler.codec.http.DefaultHttpHeaders) HandlingResult(ratpack.test.handling.HandlingResult) Action(ratpack.func.Action) Handler(ratpack.handling.Handler) Exceptions(ratpack.util.Exceptions) TransformablePublisher(ratpack.stream.TransformablePublisher) HttpHeaderNames(io.netty.handler.codec.http.HttpHeaderNames) Handlers(ratpack.handling.Handlers) NettyHeadersBackedMutableHeaders(ratpack.http.internal.NettyHeadersBackedMutableHeaders) ExecController(ratpack.exec.ExecController) ServerErrorHandler(ratpack.error.ServerErrorHandler) ServerConfig(ratpack.server.ServerConfig) ClientErrorHandler(ratpack.error.ClientErrorHandler) DefaultExecController(ratpack.exec.internal.DefaultExecController) ServerRegistry(ratpack.server.internal.ServerRegistry) Registry(ratpack.registry.Registry)

Aggregations

DefaultExecController (ratpack.exec.internal.DefaultExecController)2 ServerConfig (ratpack.server.ServerConfig)2 ImmutableMap (com.google.common.collect.ImmutableMap)1 HostAndPort (com.google.common.net.HostAndPort)1 ByteBuf (io.netty.buffer.ByteBuf)1 Unpooled.buffer (io.netty.buffer.Unpooled.buffer)1 Unpooled.unreleasableBuffer (io.netty.buffer.Unpooled.unreleasableBuffer)1 DefaultHttpHeaders (io.netty.handler.codec.http.DefaultHttpHeaders)1 HttpHeaderNames (io.netty.handler.codec.http.HttpHeaderNames)1 HttpMethod (io.netty.handler.codec.http.HttpMethod)1 HttpVersion (io.netty.handler.codec.http.HttpVersion)1 CharsetUtil (io.netty.util.CharsetUtil)1 InetSocketAddress (java.net.InetSocketAddress)1 Instant (java.time.Instant)1 Map (java.util.Map)1 ClientErrorHandler (ratpack.error.ClientErrorHandler)1 ServerErrorHandler (ratpack.error.ServerErrorHandler)1 ExecController (ratpack.exec.ExecController)1 Promise (ratpack.exec.Promise)1 Action (ratpack.func.Action)1