public abstract class JettyHttpComponent
extends org.apache.camel.http.common.HttpCommonComponent
implements org.apache.camel.spi.RestConsumerFactory, org.apache.camel.spi.RestApiConsumerFactory
Modifier and Type | Field and Description |
---|---|
protected static HashMap<String,org.apache.camel.component.jetty.JettyHttpComponent.ConnectorRef> |
CONNECTORS |
protected Long |
continuationTimeout |
protected boolean |
enableJmx |
protected org.eclipse.jetty.server.handler.ErrorHandler |
errorHandler |
protected Integer |
httpClientMaxThreads |
protected Integer |
httpClientMinThreads |
protected JettyHttpBinding |
jettyHttpBinding |
protected Integer |
maxThreads |
protected org.eclipse.jetty.jmx.MBeanContainer |
mbContainer |
protected Integer |
minThreads |
protected String |
proxyHost |
protected Integer |
requestBufferSize |
protected Integer |
requestHeaderSize |
protected Integer |
responseBufferSize |
protected Integer |
responseHeaderSize |
protected Map<String,Object> |
socketConnectorProperties |
protected Map<Integer,org.eclipse.jetty.server.Connector> |
socketConnectors |
protected org.apache.camel.util.jsse.SSLContextParameters |
sslContextParameters |
protected String |
sslKeyPassword |
protected String |
sslKeystore |
protected String |
sslPassword |
protected Map<String,Object> |
sslSocketConnectorProperties |
protected Map<Integer,org.eclipse.jetty.server.Connector> |
sslSocketConnectors |
protected org.eclipse.jetty.util.thread.ThreadPool |
threadPool |
static String |
TMP_DIR |
protected boolean |
useContinuation |
Constructor and Description |
---|
JettyHttpComponent() |
Modifier and Type | Method and Description |
---|---|
protected void |
addJettyHandlers(org.eclipse.jetty.server.Server server,
List<org.eclipse.jetty.server.Handler> handlers) |
void |
addSocketConnectorProperty(String key,
Object value) |
void |
addSslSocketConnectorProperty(String key,
Object value) |
boolean |
canConnect(org.apache.camel.http.common.HttpConsumer consumer) |
protected boolean |
checkSSLContextFactoryConfig(Object instance) |
void |
connect(org.apache.camel.http.common.HttpConsumer consumer)
Connects the URL specified on the endpoint to the specified processor.
|
org.apache.camel.Consumer |
createApiConsumer(org.apache.camel.CamelContext camelContext,
org.apache.camel.Processor processor,
String contextPath,
org.apache.camel.spi.RestConfiguration configuration,
Map<String,Object> parameters) |
protected abstract CamelHttpClient |
createCamelHttpClient(org.eclipse.jetty.util.ssl.SslContextFactory sslContextFactory) |
protected org.eclipse.jetty.server.Connector |
createConnector(org.eclipse.jetty.server.Server server,
JettyHttpEndpoint endpoint) |
protected abstract org.eclipse.jetty.server.AbstractConnector |
createConnectorJettyInternal(org.eclipse.jetty.server.Server server,
JettyHttpEndpoint endpoint,
org.eclipse.jetty.util.ssl.SslContextFactory sslcf) |
org.apache.camel.Consumer |
createConsumer(org.apache.camel.CamelContext camelContext,
org.apache.camel.Processor processor,
String verb,
String basePath,
String uriTemplate,
String consumes,
String produces,
org.apache.camel.spi.RestConfiguration configuration,
Map<String,Object> parameters) |
protected org.apache.camel.Endpoint |
createEndpoint(String uri,
String remaining,
Map<String,Object> parameters) |
protected abstract JettyHttpEndpoint |
createEndpoint(URI endpointUri,
URI httpUri) |
CamelHttpClient |
createHttpClient(JettyHttpEndpoint endpoint,
Integer minThreads,
Integer maxThreads,
org.apache.camel.util.jsse.SSLContextParameters ssl)
Creates a new
HttpClient and configures its proxy/thread pool and SSL based on this
component settings. |
protected org.eclipse.jetty.server.Server |
createServer() |
protected org.apache.camel.http.common.CamelServlet |
createServletForConnector(org.eclipse.jetty.server.Server server,
org.eclipse.jetty.server.Connector connector,
List<org.eclipse.jetty.server.Handler> handlers,
JettyHttpEndpoint endpoint) |
void |
disconnect(org.apache.camel.http.common.HttpConsumer consumer)
Disconnects the URL specified on the endpoint from the specified processor.
|
protected void |
doStart() |
protected void |
doStop() |
protected org.eclipse.jetty.server.Connector |
getConnector(org.eclipse.jetty.server.Server server,
JettyHttpEndpoint endpoint) |
Long |
getContinuationTimeout() |
org.eclipse.jetty.server.handler.ErrorHandler |
getErrorHandler() |
Integer |
getHttpClientMaxThreads() |
Integer |
getHttpClientMinThreads() |
JettyHttpBinding |
getJettyHttpBinding() |
String |
getKeystore() |
Integer |
getMaxThreads() |
org.eclipse.jetty.jmx.MBeanContainer |
getMbContainer() |
Integer |
getMinThreads() |
String |
getProxyHost() |
Integer |
getProxyPort() |
Integer |
getRequestBufferSize() |
Integer |
getRequestHeaderSize() |
Integer |
getResponseBufferSize() |
Integer |
getResponseHeaderSize() |
protected org.eclipse.jetty.server.Connector |
getSocketConnector(org.eclipse.jetty.server.Server server,
JettyHttpEndpoint endpoint) |
Map<String,Object> |
getSocketConnectorProperties() |
org.apache.camel.util.jsse.SSLContextParameters |
getSslContextParameters() |
String |
getSslKeyPassword() |
String |
getSslPassword() |
protected org.eclipse.jetty.server.Connector |
getSslSocketConnector(org.eclipse.jetty.server.Server server,
JettyHttpEndpoint endpoint) |
Map<String,Object> |
getSslSocketConnectorProperties() |
Map<Integer,org.eclipse.jetty.server.Connector> |
getSslSocketConnectors() |
org.eclipse.jetty.util.thread.ThreadPool |
getThreadPool() |
boolean |
isEnableJmx() |
protected boolean |
isHandlerInChain(org.eclipse.jetty.server.Handler current,
org.eclipse.jetty.server.Handler handler) |
boolean |
isUseContinuation() |
void |
setContinuationTimeout(Long continuationTimeout)
Allows to set a timeout in millis when using Jetty as consumer (server).
|
void |
setEnableJmx(boolean enableJmx)
If this option is true, Jetty JMX support will be enabled for this endpoint.
|
void |
setErrorHandler(org.eclipse.jetty.server.handler.ErrorHandler errorHandler)
This option is used to set the ErrorHandler that Jetty server uses.
|
void |
setHttpBinding(org.apache.camel.http.common.HttpBinding httpBinding)
Not to be used - use JettyHttpBinding instead.
|
void |
setHttpClientMaxThreads(Integer httpClientMaxThreads)
To set a value for maximum number of threads in HttpClient thread pool.
|
void |
setHttpClientMinThreads(Integer httpClientMinThreads)
To set a value for minimum number of threads in HttpClient thread pool.
|
void |
setHttpConfiguration(org.apache.camel.http.common.HttpConfiguration httpConfiguration)
Jetty component does not use HttpConfiguration.
|
void |
setJettyHttpBinding(JettyHttpBinding jettyHttpBinding)
To use a custom org.apache.camel.component.jetty.JettyHttpBinding, which are used to customize how a response should be written for the producer.
|
void |
setKeystore(String sslKeystore)
Specifies the location of the Java keystore file, which contains the Jetty server's own X.509 certificate in a key entry.
|
void |
setMaxThreads(Integer maxThreads)
To set a value for maximum number of threads in server thread pool.
|
void |
setMbContainer(org.eclipse.jetty.jmx.MBeanContainer mbContainer)
To use a existing configured org.eclipse.jetty.jmx.MBeanContainer if JMX is enabled that Jetty uses for registering mbeans.
|
void |
setMinThreads(Integer minThreads)
To set a value for minimum number of threads in server thread pool.
|
void |
setProxyHost(String proxyHost)
To use a http proxy to configure the hostname.
|
void |
setProxyPort(Integer proxyPort)
To use a http proxy to configure the port number.
|
void |
setRequestBufferSize(Integer requestBufferSize)
Allows to configure a custom value of the request buffer size on the Jetty connectors.
|
void |
setRequestHeaderSize(Integer requestHeaderSize)
Allows to configure a custom value of the request header size on the Jetty connectors.
|
void |
setResponseBufferSize(Integer responseBufferSize)
Allows to configure a custom value of the response buffer size on the Jetty connectors.
|
void |
setResponseHeaderSize(Integer responseHeaderSize)
Allows to configure a custom value of the response header size on the Jetty connectors.
|
void |
setSocketConnectorProperties(Map<String,Object> socketConnectorProperties)
A map which contains general HTTP connector properties.
|
void |
setSocketConnectors(Map<Integer,org.eclipse.jetty.server.Connector> socketConnectors)
A map which contains per port number specific HTTP connectors.
|
void |
setSslContextParameters(org.apache.camel.util.jsse.SSLContextParameters sslContextParameters)
To configure security using SSLContextParameters
|
void |
setSslKeyPassword(String sslKeyPassword)
The key password, which is used to access the certificate's key entry in the keystore (this is the same password that is supplied to the keystore command's -keypass option).
|
void |
setSslPassword(String sslPassword)
The ssl password, which is required to access the keystore file (this is the same password that is supplied to the keystore command's -storepass option).
|
void |
setSslSocketConnectorProperties(Map<String,Object> sslSocketConnectorProperties)
A map which contains general SSL connector properties.
|
void |
setSslSocketConnectors(Map<Integer,org.eclipse.jetty.server.Connector> connectors)
A map which contains per port number specific SSL connectors.
|
void |
setThreadPool(org.eclipse.jetty.util.thread.ThreadPool threadPool)
To use a custom thread pool for the server.
|
void |
setUseContinuation(boolean useContinuation)
Whether or not to use Jetty continuations for the Jetty Server.
|
protected void |
startMbContainer()
Starts
mbContainer and registers the container with itself as a managed bean
logging an error if there is a problem starting the container. |
getHttpBinding, getHttpConfiguration, isAllowJavaSerializedObject, setAllowJavaSerializedObject, useIntrospectionOnEndpoint
getHeaderFilterStrategy, setEndpointHeaderFilterStrategy, setHeaderFilterStrategy
createComponentConfiguration, createParameterConfigurationMap, getEndpointClass, getParameterConfigurationMap, populateParameterConfigurationMap, setEndpointClass
afterConfiguration, createConfiguration, createEndpoint, getAndRemoveOrResolveReferenceParameter, getAndRemoveOrResolveReferenceParameter, getAndRemoveParameter, getAndRemoveParameter, getCamelContext, ifStartsWithReturnRemainder, preProcessUri, resolveAndRemoveReferenceListParameter, resolveAndRemoveReferenceListParameter, resolveAndRemoveReferenceParameter, resolveAndRemoveReferenceParameter, setCamelContext, setProperties, setProperties, useRawUri, validateParameters, validateURI
public static final String TMP_DIR
protected static final HashMap<String,org.apache.camel.component.jetty.JettyHttpComponent.ConnectorRef> CONNECTORS
protected String sslKeyPassword
protected String sslPassword
protected String sslKeystore
protected Integer httpClientMinThreads
protected Integer httpClientMaxThreads
protected Integer minThreads
protected Integer maxThreads
protected org.eclipse.jetty.util.thread.ThreadPool threadPool
protected org.eclipse.jetty.jmx.MBeanContainer mbContainer
protected boolean enableJmx
protected JettyHttpBinding jettyHttpBinding
protected Long continuationTimeout
protected boolean useContinuation
protected org.apache.camel.util.jsse.SSLContextParameters sslContextParameters
protected Integer requestBufferSize
protected Integer requestHeaderSize
protected Integer responseBufferSize
protected Integer responseHeaderSize
protected String proxyHost
protected org.eclipse.jetty.server.handler.ErrorHandler errorHandler
protected org.apache.camel.Endpoint createEndpoint(String uri, String remaining, Map<String,Object> parameters) throws Exception
createEndpoint
in class org.apache.camel.impl.DefaultComponent
Exception
protected abstract JettyHttpEndpoint createEndpoint(URI endpointUri, URI httpUri) throws URISyntaxException
URISyntaxException
public boolean canConnect(org.apache.camel.http.common.HttpConsumer consumer) throws Exception
canConnect
in class org.apache.camel.http.common.HttpCommonComponent
Exception
public void connect(org.apache.camel.http.common.HttpConsumer consumer) throws Exception
connect
in class org.apache.camel.http.common.HttpCommonComponent
Exception
public void disconnect(org.apache.camel.http.common.HttpConsumer consumer) throws Exception
disconnect
in class org.apache.camel.http.common.HttpCommonComponent
Exception
public String getSslKeyPassword()
@Metadata(description="The key password, which is used to access the certificate\'s key entry in the keystore (this is the same password that is supplied to the keystore command\'s -keypass option).") public void setSslKeyPassword(String sslKeyPassword)
public String getSslPassword()
@Metadata(description="The ssl password, which is required to access the keystore file (this is the same password that is supplied to the keystore command\'s -storepass option).") public void setSslPassword(String sslPassword)
@Metadata(description="Specifies the location of the Java keystore file, which contains the Jetty server\'s own X.509 certificate in a key entry.") public void setKeystore(String sslKeystore)
public String getKeystore()
public org.eclipse.jetty.server.handler.ErrorHandler getErrorHandler()
@Metadata(description="This option is used to set the ErrorHandler that Jetty server uses.") public void setErrorHandler(org.eclipse.jetty.server.handler.ErrorHandler errorHandler)
protected org.eclipse.jetty.server.Connector getConnector(org.eclipse.jetty.server.Server server, JettyHttpEndpoint endpoint)
protected org.eclipse.jetty.server.Connector getSocketConnector(org.eclipse.jetty.server.Server server, JettyHttpEndpoint endpoint)
protected org.eclipse.jetty.server.Connector getSslSocketConnector(org.eclipse.jetty.server.Server server, JettyHttpEndpoint endpoint)
protected org.eclipse.jetty.server.Connector createConnector(org.eclipse.jetty.server.Server server, JettyHttpEndpoint endpoint)
protected abstract org.eclipse.jetty.server.AbstractConnector createConnectorJettyInternal(org.eclipse.jetty.server.Server server, JettyHttpEndpoint endpoint, org.eclipse.jetty.util.ssl.SslContextFactory sslcf)
protected boolean checkSSLContextFactoryConfig(Object instance)
public Map<Integer,org.eclipse.jetty.server.Connector> getSslSocketConnectors()
@Metadata(description="A map which contains per port number specific SSL connectors.") public void setSslSocketConnectors(Map<Integer,org.eclipse.jetty.server.Connector> connectors)
@Metadata(description="A map which contains per port number specific HTTP connectors. Uses the same principle as sslSocketConnectors.") public void setSocketConnectors(Map<Integer,org.eclipse.jetty.server.Connector> socketConnectors)
public CamelHttpClient createHttpClient(JettyHttpEndpoint endpoint, Integer minThreads, Integer maxThreads, org.apache.camel.util.jsse.SSLContextParameters ssl) throws Exception
HttpClient
and configures its proxy/thread pool and SSL based on this
component settings.endpoint
- the instance of JettyHttpEndpointminThreads
- optional minimum number of threads in client thread poolmaxThreads
- optional maximum number of threads in client thread poolssl
- option SSL parametersException
protected abstract CamelHttpClient createCamelHttpClient(org.eclipse.jetty.util.ssl.SslContextFactory sslContextFactory)
public Integer getHttpClientMinThreads()
@Metadata(description="To set a value for minimum number of threads in HttpClient thread pool. Notice that both a min and max size must be configured.") public void setHttpClientMinThreads(Integer httpClientMinThreads)
public Integer getHttpClientMaxThreads()
@Metadata(description="To set a value for maximum number of threads in HttpClient thread pool. Notice that both a min and max size must be configured.") public void setHttpClientMaxThreads(Integer httpClientMaxThreads)
public Integer getMinThreads()
@Metadata(description="To set a value for minimum number of threads in server thread pool. Notice that both a min and max size must be configured.") public void setMinThreads(Integer minThreads)
public Integer getMaxThreads()
@Metadata(description="To set a value for maximum number of threads in server thread pool. Notice that both a min and max size must be configured.") public void setMaxThreads(Integer maxThreads)
public org.eclipse.jetty.util.thread.ThreadPool getThreadPool()
@Metadata(description="To use a custom thread pool for the server. This option should only be used in special circumstances.") public void setThreadPool(org.eclipse.jetty.util.thread.ThreadPool threadPool)
public boolean isEnableJmx()
@Metadata(description="If this option is true, Jetty JMX support will be enabled for this endpoint.") public void setEnableJmx(boolean enableJmx)
public JettyHttpBinding getJettyHttpBinding()
@Metadata(description="To use a custom org.apache.camel.component.jetty.JettyHttpBinding, which are used to customize how a response should be written for the producer.") public void setJettyHttpBinding(JettyHttpBinding jettyHttpBinding)
@Metadata(description="Not to be used - use JettyHttpBinding instead.") public void setHttpBinding(org.apache.camel.http.common.HttpBinding httpBinding)
setHttpBinding
in class org.apache.camel.http.common.HttpCommonComponent
@Metadata(description="Jetty component does not use HttpConfiguration.") public void setHttpConfiguration(org.apache.camel.http.common.HttpConfiguration httpConfiguration)
setHttpConfiguration
in class org.apache.camel.http.common.HttpCommonComponent
public org.eclipse.jetty.jmx.MBeanContainer getMbContainer()
@Metadata(description="To use a existing configured org.eclipse.jetty.jmx.MBeanContainer if JMX is enabled that Jetty uses for registering mbeans.") public void setMbContainer(org.eclipse.jetty.jmx.MBeanContainer mbContainer)
@Metadata(description="A map which contains general SSL connector properties.") public void setSslSocketConnectorProperties(Map<String,Object> sslSocketConnectorProperties)
@Metadata(description="A map which contains general HTTP connector properties. Uses the same principle as sslSocketConnectorProperties.") public void setSocketConnectorProperties(Map<String,Object> socketConnectorProperties)
public Long getContinuationTimeout()
@Metadata(description="Allows to set a timeout in millis when using Jetty as consumer (server). By default Jetty uses 30000. You can use a value of <= 0 to never expire. If a timeout occurs then the request will be expired and Jetty will return back a http error 503 to the client. This option is only in use when using Jetty with the Asynchronous Routing Engine.") public void setContinuationTimeout(Long continuationTimeout)
public boolean isUseContinuation()
@Metadata(description="Whether or not to use Jetty continuations for the Jetty Server.") public void setUseContinuation(boolean useContinuation)
public org.apache.camel.util.jsse.SSLContextParameters getSslContextParameters()
@Metadata(description="To configure security using SSLContextParameters") public void setSslContextParameters(org.apache.camel.util.jsse.SSLContextParameters sslContextParameters)
public Integer getResponseBufferSize()
@Metadata(description="Allows to configure a custom value of the response buffer size on the Jetty connectors.") public void setResponseBufferSize(Integer responseBufferSize)
public Integer getRequestBufferSize()
@Metadata(description="Allows to configure a custom value of the request buffer size on the Jetty connectors.") public void setRequestBufferSize(Integer requestBufferSize)
public Integer getRequestHeaderSize()
@Metadata(description="Allows to configure a custom value of the request header size on the Jetty connectors.") public void setRequestHeaderSize(Integer requestHeaderSize)
public Integer getResponseHeaderSize()
@Metadata(description="Allows to configure a custom value of the response header size on the Jetty connectors.") public void setResponseHeaderSize(Integer responseHeaderSize)
public String getProxyHost()
@Metadata(description="To use a http proxy to configure the hostname.") public void setProxyHost(String proxyHost)
public Integer getProxyPort()
@Metadata(description="To use a http proxy to configure the port number.") public void setProxyPort(Integer proxyPort)
public org.apache.camel.Consumer createConsumer(org.apache.camel.CamelContext camelContext, org.apache.camel.Processor processor, String verb, String basePath, String uriTemplate, String consumes, String produces, org.apache.camel.spi.RestConfiguration configuration, Map<String,Object> parameters) throws Exception
createConsumer
in interface org.apache.camel.spi.RestConsumerFactory
Exception
public org.apache.camel.Consumer createApiConsumer(org.apache.camel.CamelContext camelContext, org.apache.camel.Processor processor, String contextPath, org.apache.camel.spi.RestConfiguration configuration, Map<String,Object> parameters) throws Exception
createApiConsumer
in interface org.apache.camel.spi.RestApiConsumerFactory
Exception
protected org.apache.camel.http.common.CamelServlet createServletForConnector(org.eclipse.jetty.server.Server server, org.eclipse.jetty.server.Connector connector, List<org.eclipse.jetty.server.Handler> handlers, JettyHttpEndpoint endpoint) throws Exception
Exception
protected void addJettyHandlers(org.eclipse.jetty.server.Server server, List<org.eclipse.jetty.server.Handler> handlers)
protected boolean isHandlerInChain(org.eclipse.jetty.server.Handler current, org.eclipse.jetty.server.Handler handler)
protected org.eclipse.jetty.server.Server createServer()
protected void startMbContainer()
mbContainer
and registers the container with itself as a managed bean
logging an error if there is a problem starting the container.
Does nothing if mbContainer
is null
.protected void doStart() throws Exception
doStart
in class org.apache.camel.impl.DefaultComponent
Exception
Apache Camel