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
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected org.apache.http.conn.HttpClientConnectionManager createConnectionManager​(Map<String,​Object> parameters, org.apache.camel.support.jsse.SSLContextParameters sslContextParameters)  
      protected org.apache.http.conn.HttpClientConnectionManager createConnectionManager​(org.apache.http.config.Registry<org.apache.http.conn.socket.ConnectionSocketFactory> registry)  
      protected org.apache.http.conn.HttpClientConnectionManager createConnectionManager​(org.apache.http.config.Registry<org.apache.http.conn.socket.ConnectionSocketFactory> registry, int maxTotalConnections, int connectionsPerRoute)  
      protected org.apache.http.config.Registry<org.apache.http.conn.socket.ConnectionSocketFactory> createConnectionRegistry​(HostnameVerifier x509HostnameVerifier, org.apache.camel.support.jsse.SSLContextParameters sslContextParams)  
      protected org.apache.camel.Endpoint createEndpoint​(String uri, String remaining, Map<String,​Object> parameters)  
      protected org.apache.http.impl.client.HttpClientBuilder createHttpClientBuilder​(String uri, Map<String,​Object> parameters, Map<String,​Object> httpClientOptions)  
      protected HttpClientConfigurer createHttpClientConfigurer​(Map<String,​Object> parameters, boolean secure)
      Creates the HttpClientConfigurer based on the given parameters
      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)  
      void doStart()  
      void doStop()  
      org.apache.http.conn.HttpClientConnectionManager getClientConnectionManager()  
      int getConnectionRequestTimeout()  
      int getConnectionsPerRoute()  
      long getConnectionTimeToLive()  
      int getConnectTimeout()  
      org.apache.http.client.CookieStore getCookieStore()  
      HttpClientConfigurer getHttpClientConfigurer()  
      org.apache.http.protocol.HttpContext getHttpContext()  
      int getMaxTotalConnections()  
      int getSocketTimeout()  
      org.apache.camel.support.jsse.SSLContextParameters getSslContextParameters()  
      org.apache.camel.component.extension.ComponentVerifierExtension getVerifier()  
      HostnameVerifier getX509HostnameVerifier()  
      boolean isUseGlobalSslContextParameters()  
      void setClientConnectionManager​(org.apache.http.conn.HttpClientConnectionManager clientConnectionManager)
      To use a custom and shared HttpClientConnectionManager to manage connections.
      void setConnectionRequestTimeout​(int connectionRequestTimeout)
      The timeout in milliseconds used when requesting a connection from the connection manager.
      void setConnectionsPerRoute​(int connectionsPerRoute)
      The maximum number of connections per route.
      void setConnectionTimeToLive​(long connectionTimeToLive)
      The time for connection to live, the time unit is millisecond, the default value is always keep alive.
      void setConnectTimeout​(int connectTimeout)
      Determines the timeout in milliseconds until a connection is established.
      void setCookieStore​(org.apache.http.client.CookieStore cookieStore)
      To use a custom org.apache.http.client.CookieStore.
      void setHttpClientConfigurer​(HttpClientConfigurer httpClientConfigurer)
      To use the custom HttpClientConfigurer to perform configuration of the HttpClient that will be used.
      void setHttpContext​(org.apache.http.protocol.HttpContext httpContext)
      To use a custom org.apache.http.protocol.HttpContext when executing requests.
      void setMaxTotalConnections​(int maxTotalConnections)
      The maximum number of connections.
      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).
      void setSslContextParameters​(org.apache.camel.support.jsse.SSLContextParameters sslContextParameters)
      To configure security using SSLContextParameters.
      void setUseGlobalSslContextParameters​(boolean useGlobalSslContextParameters)
      Enable usage of global SSL context parameters.
      void setX509HostnameVerifier​(HostnameVerifier x509HostnameVerifier)
      To use a custom X509HostnameVerifier such as DefaultHostnameVerifier or NoopHostnameVerifier.
      protected boolean useIntrospectionOnEndpoint()  
      • Methods inherited from class org.apache.camel.http.common.HttpCommonComponent

        canConnect, connect, disconnect, getHttpBinding, getHttpConfiguration, getParameter, getParameter, isAllowJavaSerializedObject, setAllowJavaSerializedObject, setHttpBinding, setHttpConfiguration
      • Methods inherited from class org.apache.camel.support.HeaderFilterStrategyComponent

        getHeaderFilterStrategy, setEndpointHeaderFilterStrategy, setHeaderFilterStrategy
      • Methods inherited from class org.apache.camel.support.DefaultComponent

        afterConfiguration, createEndpoint, createEndpoint, doBuild, getAndRemoveOrResolveReferenceParameter, getAndRemoveOrResolveReferenceParameter, getAndRemoveParameter, getAndRemoveParameter, getCamelContext, getComponentPropertyConfigurer, getEndpointPropertyConfigurer, getExtension, getSupportedExtensions, ifStartsWithReturnRemainder, isBasicPropertyBinding, isBridgeErrorHandler, isLazyStartProducer, registerExtension, registerExtension, resolveAndRemoveReferenceListParameter, resolveAndRemoveReferenceListParameter, resolveAndRemoveReferenceParameter, resolveAndRemoveReferenceParameter, setBasicPropertyBinding, setBridgeErrorHandler, setCamelContext, setLazyStartProducer, setProperties, setProperties, setProperties, useRawUri, validateParameters, validateURI
      • Methods inherited from class org.apache.camel.support.service.BaseService

        build, doFail, doInit, doLifecycleChange, doResume, doShutdown, doSuspend, fail, getStatus, init, isBuild, isInit, isNew, isRunAllowed, isShutdown, isStarted, isStarting, isStartingOrStarted, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspend
      • Methods inherited from interface org.apache.camel.CamelContextAware

        getCamelContext, setCamelContext
      • Methods inherited from interface org.apache.camel.Service

        build, close, init, start, stop
      • Methods inherited from interface org.apache.camel.ShutdownableService

        shutdown
      • Methods inherited from interface org.apache.camel.SSLContextParametersAware

        retrieveGlobalSslContextParameters
      • Methods inherited from interface org.apache.camel.StatefulService

        getStatus, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspending
      • Methods inherited from interface org.apache.camel.SuspendableService

        isSuspended, resume, suspend
    • 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
      • 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

      • 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()