/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.camel.component.netty.http; import org.apache.camel.Service; import org.apache.camel.component.netty.NettyServerBootstrapConfiguration; import org.apache.camel.component.netty.NettyServerBootstrapFactory; import org.apache.camel.spi.ClassResolver; /** * A single interface to easily configure and setup a shared Netty HTTP server * to be re-used among other Camel applications. * <p/> * To use this, just define a {@link NettyServerBootstrapConfiguration} configuration, and * set this using {@link #setNettyServerBootstrapConfiguration(NettySharedHttpServerBootstrapConfiguration)}. * Then call the {@link #start()} to initialize this shared server. */ public interface NettySharedHttpServer extends Service { /** * Sets the bootstrap configuration to use by this shared Netty HTTP server. */ void setNettyServerBootstrapConfiguration(NettySharedHttpServerBootstrapConfiguration configuration); /** * To use a custom {@link ClassResolver} for loading resource on the classpath. */ void setClassResolver(ClassResolver classResolver); /** * Whether to start the Netty HTTP server eager and bind to the port, or wait on first demand */ void setStartServer(boolean startServer); /** * Sets a custom thread name pattern to be used for naming the Netty HTTP server threads. */ void setThreadNamePattern(String pattern); /** * Gets the port number this Netty HTTP server uses. */ int getPort(); /** * Gets the {@link HttpServerConsumerChannelFactory} to use. */ HttpServerConsumerChannelFactory getConsumerChannelFactory(); /** * Gets the {@link NettyServerBootstrapFactory} to use. */ NettyServerBootstrapFactory getServerBootstrapFactory(); /** * Number of consumers using this shared Netty HTTP server. */ int getConsumersSize(); }