Class HttpComponent

  • All Implemented Interfaces:
    AutoCloseable, org.apache.camel.CamelContextAware, org.apache.camel.Component, org.apache.camel.Service, org.apache.camel.ShutdownableService, org.apache.camel.spi.HeaderFilterStrategyAware, org.apache.camel.spi.RestProducerFactory, org.apache.camel.SSLContextParametersAware, org.apache.camel.StatefulService, org.apache.camel.SuspendableService

    @Metadata(label="verifiers",
              enums="parameters,connectivity")
    @Component("http,https")
    public class HttpComponent
    extends org.apache.camel.http.common.HttpCommonComponent
    implements org.apache.camel.spi.RestProducerFactory, org.apache.camel.SSLContextParametersAware
    Defines the HTTP Component
    • Field Detail

      • httpClientConfigurer

        @Metadata(label="advanced",
                  description="To use the custom HttpClientConfigurer to perform configuration of the HttpClient that will be used.")
        protected HttpClientConfigurer httpClientConfigurer
      • clientConnectionManager

        @Metadata(label="advanced",
                  description="To use a custom and shared HttpClientConnectionManager to manage connections. If this has been configured then this is always used for all endpoints created by this component.")
        protected org.apache.http.conn.HttpClientConnectionManager clientConnectionManager
      • httpContext

        @Metadata(label="advanced",
                  description="To use a custom org.apache.http.protocol.HttpContext when executing requests.")
        protected org.apache.http.protocol.HttpContext httpContext
      • sslContextParameters

        @Metadata(label="security",
                  description="To configure security using SSLContextParameters. Important: Only one instance of org.apache.camel.support.jsse.SSLContextParameters is supported per HttpComponent. If you need to use 2 or more different instances, you need to define a new HttpComponent per instance you need.")
        protected org.apache.camel.support.jsse.SSLContextParameters sslContextParameters
      • x509HostnameVerifier

        @Metadata(label="security",
                  description="To use a custom X509HostnameVerifier such as DefaultHostnameVerifier or NoopHostnameVerifier.")
        protected HostnameVerifier x509HostnameVerifier
      • cookieStore

        @Metadata(label="producer",
                  description="To use a custom org.apache.http.client.CookieStore. By default the org.apache.http.impl.client.BasicCookieStore is used which is an in-memory only cookie store. Notice if bridgeEndpoint=true then the cookie store is forced to be a noop cookie store as cookie shouldn\'t be stored as we are just bridging (eg acting as a proxy).")
        protected org.apache.http.client.CookieStore cookieStore
      • connectionRequestTimeout

        @Metadata(label="timeout",
                  defaultValue="-1",
                  description="The timeout in milliseconds used when requesting a connection from the connection manager. A timeout value of zero is interpreted as an infinite timeout. A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).")
        protected int connectionRequestTimeout
      • connectTimeout

        @Metadata(label="timeout",
                  defaultValue="-1",
                  description="Determines the timeout in milliseconds until a connection is established. A timeout value of zero is interpreted as an infinite timeout. A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).")
        protected int connectTimeout
      • socketTimeout

        @Metadata(label="timeout",
                  defaultValue="-1",
                  description="Defines the socket timeout in milliseconds, which is the timeout for waiting for data  or, put differently, a maximum period inactivity between two consecutive data packets). A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).")
        protected int socketTimeout
      • proxyAuthScheme

        protected String proxyAuthScheme
      • proxyAuthMethod

        @Metadata(label="producer,proxy",
                  enums="Basic,Digest,NTLM",
                  description="Proxy authentication method to use")
        protected String proxyAuthMethod
      • proxyAuthUsername

        @Metadata(label="producer,proxy",
                  secret=true,
                  description="Proxy authentication username")
        protected String proxyAuthUsername
      • proxyAuthPassword

        @Metadata(label="producer,proxy",
                  secret=true,
                  description="Proxy authentication password")
        protected String proxyAuthPassword
      • proxyAuthHost

        @Metadata(label="producer,proxy",
                  description="Proxy authentication host")
        protected String proxyAuthHost
      • proxyAuthPort

        @Metadata(label="producer,proxy",
                  description="Proxy authentication port")
        protected Integer proxyAuthPort
      • proxyAuthDomain

        @Metadata(label="producer,proxy",
                  description="Proxy authentication domain to use")
        protected String proxyAuthDomain
      • proxyAuthNtHost

        @Metadata(label="producer,proxy",
                  description="Proxy authentication domain (workstation name) to use with NTML")
        protected String proxyAuthNtHost
      • maxTotalConnections

        @Metadata(label="advanced",
                  defaultValue="200",
                  description="The maximum number of connections.")
        protected int maxTotalConnections
      • connectionsPerRoute

        @Metadata(label="advanced",
                  defaultValue="20",
                  description="The maximum number of connections per route.")
        protected int connectionsPerRoute
      • connectionTimeToLive

        @Metadata(label="advanced",
                  description="The time for connection to live, the time unit is millisecond, the default value is always keep alive.")
        protected long connectionTimeToLive
    • Constructor Detail

      • HttpComponent

        public HttpComponent()
      • HttpComponent

        public HttpComponent​(Class<? extends HttpEndpoint> endpointClass)
    • Method Detail

      • createHttpClientConfigurer

        protected HttpClientConfigurer createHttpClientConfigurer​(Map<String,​Object> parameters,
                                                                  boolean secure)
                                                           throws Exception
        Creates the HttpClientConfigurer based on the given parameters
        Parameters:
        parameters - the map of parameters
        secure - whether the endpoint is secure (eg https)
        Returns:
        the configurer
        Throws:
        Exception - is thrown if error creating configurer
      • createEndpoint

        protected org.apache.camel.Endpoint createEndpoint​(String uri,
                                                           String remaining,
                                                           Map<String,​Object> parameters)
                                                    throws Exception
        Specified by:
        createEndpoint in class org.apache.camel.support.DefaultComponent
        Throws:
        Exception
      • createConnectionManager

        protected org.apache.http.conn.HttpClientConnectionManager createConnectionManager​(org.apache.http.config.Registry<org.apache.http.conn.socket.ConnectionSocketFactory> registry)
      • createConnectionManager

        protected org.apache.http.conn.HttpClientConnectionManager createConnectionManager​(org.apache.http.config.Registry<org.apache.http.conn.socket.ConnectionSocketFactory> registry,
                                                                                           int maxTotalConnections,
                                                                                           int connectionsPerRoute)
      • useIntrospectionOnEndpoint

        protected boolean useIntrospectionOnEndpoint()
        Overrides:
        useIntrospectionOnEndpoint in class org.apache.camel.http.common.HttpCommonComponent
      • createProducer

        public org.apache.camel.Producer createProducer​(org.apache.camel.CamelContext camelContext,
                                                        String host,
                                                        String verb,
                                                        String basePath,
                                                        String uriTemplate,
                                                        String queryParameters,
                                                        String consumes,
                                                        String produces,
                                                        org.apache.camel.spi.RestConfiguration configuration,
                                                        Map<String,​Object> parameters)
                                                 throws Exception
        Specified by:
        createProducer in interface org.apache.camel.spi.RestProducerFactory
        Throws:
        Exception
      • setHttpClientConfigurer

        public void setHttpClientConfigurer​(HttpClientConfigurer httpClientConfigurer)
        To use the custom HttpClientConfigurer to perform configuration of the HttpClient that will be used.
      • getClientConnectionManager

        public org.apache.http.conn.HttpClientConnectionManager getClientConnectionManager()
      • setClientConnectionManager

        public void setClientConnectionManager​(org.apache.http.conn.HttpClientConnectionManager clientConnectionManager)
        To use a custom and shared HttpClientConnectionManager to manage connections. If this has been configured then this is always used for all endpoints created by this component.
      • getHttpContext

        public org.apache.http.protocol.HttpContext getHttpContext()
      • setHttpContext

        public void setHttpContext​(org.apache.http.protocol.HttpContext httpContext)
        To use a custom org.apache.http.protocol.HttpContext when executing requests.
      • getSslContextParameters

        public org.apache.camel.support.jsse.SSLContextParameters getSslContextParameters()
      • setSslContextParameters

        public void setSslContextParameters​(org.apache.camel.support.jsse.SSLContextParameters sslContextParameters)
        To configure security using SSLContextParameters. Important: Only one instance of org.apache.camel.support.jsse.SSLContextParameters is supported per HttpComponent. If you need to use 2 or more different instances, you need to define a new HttpComponent per instance you need.
      • isUseGlobalSslContextParameters

        public boolean isUseGlobalSslContextParameters()
        Specified by:
        isUseGlobalSslContextParameters in interface org.apache.camel.SSLContextParametersAware
      • setUseGlobalSslContextParameters

        public void setUseGlobalSslContextParameters​(boolean useGlobalSslContextParameters)
        Enable usage of global SSL context parameters.
        Specified by:
        setUseGlobalSslContextParameters in interface org.apache.camel.SSLContextParametersAware
      • setX509HostnameVerifier

        public void setX509HostnameVerifier​(HostnameVerifier x509HostnameVerifier)
        To use a custom X509HostnameVerifier such as DefaultHostnameVerifier or NoopHostnameVerifier.
      • getMaxTotalConnections

        public int getMaxTotalConnections()
      • setMaxTotalConnections

        public void setMaxTotalConnections​(int maxTotalConnections)
        The maximum number of connections.
      • getConnectionsPerRoute

        public int getConnectionsPerRoute()
      • setConnectionsPerRoute

        public void setConnectionsPerRoute​(int connectionsPerRoute)
        The maximum number of connections per route.
      • getConnectionTimeToLive

        public long getConnectionTimeToLive()
      • setConnectionTimeToLive

        public void setConnectionTimeToLive​(long connectionTimeToLive)
        The time for connection to live, the time unit is millisecond, the default value is always keep alive.
      • getCookieStore

        public org.apache.http.client.CookieStore getCookieStore()
      • setCookieStore

        public void setCookieStore​(org.apache.http.client.CookieStore cookieStore)
        To use a custom org.apache.http.client.CookieStore. By default the org.apache.http.impl.client.BasicCookieStore is used which is an in-memory only cookie store. Notice if bridgeEndpoint=true then the cookie store is forced to be a noop cookie store as cookie shouldn't be stored as we are just bridging (eg acting as a proxy).
      • getConnectionRequestTimeout

        public int getConnectionRequestTimeout()
      • setConnectionRequestTimeout

        public void setConnectionRequestTimeout​(int connectionRequestTimeout)
        The timeout in milliseconds used when requesting a connection from the connection manager. A timeout value of zero is interpreted as an infinite timeout.

        A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).

        Default: -1

      • getConnectTimeout

        public int getConnectTimeout()
      • setConnectTimeout

        public void setConnectTimeout​(int connectTimeout)
        Determines the timeout in milliseconds until a connection is established. A timeout value of zero is interpreted as an infinite timeout.

        A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).

        Default: -1

      • getSocketTimeout

        public int getSocketTimeout()
      • setSocketTimeout

        public void setSocketTimeout​(int socketTimeout)
        Defines the socket timeout (SO_TIMEOUT) in milliseconds, which is the timeout for waiting for data or, put differently, a maximum period inactivity between two consecutive data packets).

        A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).

        Default: -1

      • getProxyAuthScheme

        public String getProxyAuthScheme()
      • setProxyAuthScheme

        public void setProxyAuthScheme​(String proxyAuthScheme)
      • getProxyAuthMethod

        public String getProxyAuthMethod()
      • setProxyAuthMethod

        public void setProxyAuthMethod​(String proxyAuthMethod)
      • getProxyAuthUsername

        public String getProxyAuthUsername()
      • setProxyAuthUsername

        public void setProxyAuthUsername​(String proxyAuthUsername)
      • getProxyAuthPassword

        public String getProxyAuthPassword()
      • setProxyAuthPassword

        public void setProxyAuthPassword​(String proxyAuthPassword)
      • getProxyAuthHost

        public String getProxyAuthHost()
      • setProxyAuthHost

        public void setProxyAuthHost​(String proxyAuthHost)
      • getProxyAuthPort

        public Integer getProxyAuthPort()
      • setProxyAuthPort

        public void setProxyAuthPort​(Integer proxyAuthPort)
      • getProxyAuthDomain

        public String getProxyAuthDomain()
      • setProxyAuthDomain

        public void setProxyAuthDomain​(String proxyAuthDomain)
      • getProxyAuthNtHost

        public String getProxyAuthNtHost()
      • setProxyAuthNtHost

        public void setProxyAuthNtHost​(String proxyAuthNtHost)
      • doStart

        public void doStart()
                     throws Exception
        Overrides:
        doStart in class org.apache.camel.support.DefaultComponent
        Throws:
        Exception
      • doStop

        public void doStop()
                    throws Exception
        Overrides:
        doStop in class org.apache.camel.support.DefaultComponent
        Throws:
        Exception
      • getVerifier

        public org.apache.camel.component.extension.ComponentVerifierExtension getVerifier()