Interface CxfClientConfig


public interface CxfClientConfig
A class that provides configurable options of a CXF client.
  • Method Details

    • wsdlPath

      @WithName("wsdl") Optional<String> wsdlPath()
      A URL, resource path or local filesystem path pointing to a WSDL document to use when generating the service proxy of this client.
      Since:
      1.0.0
    • soapBinding

      Optional<String> soapBinding()
      The URL of the SOAP Binding, should be one of four values: * `+http://schemas.xmlsoap.org/wsdl/soap/http+` for SOAP11HTTP_BINDING * `+http://schemas.xmlsoap.org/wsdl/soap/http?mtom=true+` for SOAP11HTTP_MTOM_BINDING * `+http://www.w3.org/2003/05/soap/bindings/HTTP/+` for SOAP12HTTP_BINDING * `+http://www.w3.org/2003/05/soap/bindings/HTTP/?mtom=true+` for SOAP12HTTP_MTOM_BINDING
      Since:
      1.0.0
    • clientEndpointUrl

      Optional<String> clientEndpointUrl()
      The client endpoint URL
      Since:
      1.0.0
    • endpointNamespace

      Optional<String> endpointNamespace()
      The client endpoint namespace
      Since:
      1.0.0
    • endpointName

      Optional<String> endpointName()
      The client endpoint name
      Since:
      1.0.0
    • username

      Optional<String> username()
      The username for HTTP Basic authentication
      Since:
      1.0.0
    • password

      Optional<String> password()
      The password for HTTP Basic authentication
      Since:
      1.0.0
    • secureWsdlAccess

      @WithDefault("false") boolean secureWsdlAccess()
      If `true`, then the `Authentication` header will be sent preemptively when requesting the WSDL, as long as the `username` is set; otherwise the WSDL will be requested anonymously.
      Since:
      2.7.0
    • logging

      Logging related configuration
    • features

      Optional<List<String>> features()
      A comma-separated list of fully qualified CXF Feature class names. Example: [source,properties] ---- quarkus.cxf.endpoint."/my-endpoint".features = org.apache.cxf.ext.logging.LoggingFeature ----
      Since:
      1.0.0
    • handlers

      Optional<List<String>> handlers()
      The comma-separated list of Handler classes
      Since:
      1.0.0
    • inInterceptors

      Optional<List<String>> inInterceptors()
      The comma-separated list of InInterceptor classes
      Since:
      1.0.0
    • outInterceptors

      Optional<List<String>> outInterceptors()
      The comma-separated list of OutInterceptor classes
      Since:
      1.0.0
    • outFaultInterceptors

      Optional<List<String>> outFaultInterceptors()
      The comma-separated list of OutFaultInterceptor classes
      Since:
      1.0.0
    • inFaultInterceptors

      Optional<List<String>> inFaultInterceptors()
      The comma-separated list of InFaultInterceptor classes
      Since:
      1.0.0
    • connectionTimeout

      @WithDefault("30000") long connectionTimeout()
      Specifies the amount of time, in milliseconds, that the consumer will attempt to establish a connection before it times out. 0 is infinite.
      Since:
      2.2.3
    • receiveTimeout

      @WithDefault("60000") long receiveTimeout()
      Specifies the amount of time, in milliseconds, that the consumer will wait for a response before it times out. 0 is infinite.
      Since:
      2.2.3
    • connectionRequestTimeout

      @WithDefault("60000") long connectionRequestTimeout()
      Specifies the amount of time, in milliseconds, used when requesting a connection from the connection manager(if appliable). 0 is infinite.
      Since:
      2.2.3
    • autoRedirect

      @WithDefault("false") boolean autoRedirect()
      If `true` this CXF client will follow HTTP redirects (HTTP status codes 301, 302, 303 and 307 with `Location` response header); otherwise HTTP redirects will not be followed. See also: * `xref:reference/extensions/quarkus-cxf.adoc#quarkus-cxf_quarkus-cxf-client-client-name-redirect-relative-uri[quarkus.cxf.client."client-name".redirect-relative-uri]` * `xref:reference/extensions/quarkus-cxf.adoc#quarkus-cxf_quarkus-cxf-client-client-name-max-retransmits[quarkus.cxf.client."client-name".max-retransmits]` * `xref:reference/extensions/quarkus-cxf.adoc#quarkus-cxf_quarkus-cxf-client-client-name-max-same-uri[quarkus.cxf.client."client-name".max-same-uri]` [IMPORTANT] ==== If `auto-redirect` is enabled, the body of every request is cached until a non-redirect response is received. The request bodies are stored in memory, if their size is less than `xref:reference/extensions/quarkus-cxf.adoc#quarkus-cxf_quarkus-cxf-retransmit-cache-threshold[quarkus.cxf.retransmit-cache.threshold]`. Otherwise they are stored in a configurable xref:reference/extensions/quarkus-cxf.adoc#quarkus-cxf_quarkus-cxf-retransmit-cache-directory[directory] on disk. ====
      Since:
      2.2.3
    • redirectRelativeUri

      @WithDefault("false") boolean redirectRelativeUri()
      If `true` relative URIs, such as `/folder/service` received via `Location` response header will be honored when redirecting; otherwise only absolute URIs will be honored and an exception will be thrown for relative redirects. This is equivalent to setting `http.redirect.relative.uri` property to `true` on the CXF client request context. See also: * `xref:reference/extensions/quarkus-cxf.adoc#quarkus-cxf_quarkus-cxf-client-client-name-auto-redirect[quarkus.cxf.client."client-name".auto-redirect]`
      Since:
      3.17.0
    • maxRetransmits

      @WithDefault("-1") int maxRetransmits()
      Specifies the maximum allowed number of retransmits when following redirects. Retransmits for authorization are included in the retransmit count. Each 401 UNAUTHORIZED response may cause a new retransmit. A negative value indicates unlimited retransmits, but even in that case redirect loop protection is provided. See also: * `xref:reference/extensions/quarkus-cxf.adoc#quarkus-cxf_quarkus-cxf-client-client-name-auto-redirect[quarkus.cxf.client."client-name".auto-redirect]`
      Since:
      2.2.3
    • maxSameUri

      @WithDefault("0") int maxSameUri()
      Specifies the maximum allowed number of retransmits to the same URI when following HTTP redirects. The default behavior is to allow a no retransmits to the same URI. See also: * `xref:reference/extensions/quarkus-cxf.adoc#quarkus-cxf_quarkus-cxf-client-client-name-auto-redirect[quarkus.cxf.client."client-name".auto-redirect]`
      Since:
      3.18.0
    • allowChunking

      @WithDefault("true") boolean allowChunking()
      If true, the client is free to use chunking streams if it wants, but it is not required to use chunking streams. If false, the client must use regular, non-chunked requests in all cases.
      Since:
      2.2.3
    • chunkingThreshold

      @WithDefault("4096") int chunkingThreshold()
      If AllowChunking is true, this sets the threshold at which messages start getting chunked. Messages under this limit do not get chunked.
      Since:
      2.2.3
    • chunkLength

      @WithDefault("-1") int chunkLength()
      Specifies the chunk length for a HttpURLConnection. This value is used in java.net.HttpURLConnection.setChunkedStreamingMode(int chunklen). chunklen indicates the number of bytes to write in each chunk. If chunklen is less than or equal to zero, a default value will be used.
      Since:
      2.2.3
    • accept

      Optional<String> accept()
      Specifies the MIME types the client is prepared to handle (e.g., HTML, JPEG, GIF, etc.)
      Since:
      2.2.3
    • acceptLanguage

      Optional<String> acceptLanguage()
      Specifies the language the client desires (e.g., English, French, etc.)
      Since:
      2.2.3
    • acceptEncoding

      Optional<String> acceptEncoding()
      Specifies the encoding the client is prepared to handle (e.g., gzip)
      Since:
      2.2.3
    • contentType

      Optional<String> contentType()
      Specifies the content type of the stream being sent in a post request. (this should be text/xml for web services, or can be set to application/x-www-form-urlencoded if the client is sending form data).
      Since:
      2.2.3
    • host

      Optional<String> host()
      Specifies the Internet host and port number of the resource on which the request is being invoked. This is sent by default based upon the URL. Certain DNS scenarios or application designs may request you to set this, but typically it is not required.
      Since:
      2.2.3
    • connection

      @WithDefault("keep-alive") @WithConverter(ConnectionTypeConverter.class) @ConfigDocEnum(enforceHyphenateValues=true) @WithConverter(ConnectionTypeConverter.class) org.apache.cxf.transports.http.configuration.ConnectionType connection()
      The connection disposition. If close the connection to the server is closed after each request/response dialog. If Keep-Alive the client requests the server to keep the connection open, and if the server honors the keep alive request, the connection is reused. Many servers and proxies do not honor keep-alive requests.
      Since:
      2.2.3
    • cacheControl

      Optional<String> cacheControl()
      Most commonly used to specify no-cache, however the standard supports a dozen or so caching related directives for requests
      Since:
      2.2.3
    • version

      @WithDefault("auto") String version()
      HTTP Version used for the connection. The default value `auto` will use whatever the default is for the `HTTPConduit` implementation defined via `quarkus.cxf.client."client-name".http-conduit-factory`. Other possible values: `1.1`, `2`. Some of these values might be unsupported by some `HTTPConduit` implementations.
      Since:
      2.2.3
    • browserType

      Optional<String> browserType()
      The value of the `User-Agent` HTTP header.
      Since:
      2.2.3
    • decoupledEndpoint

      Optional<String> decoupledEndpoint()
      An URI path (starting with `/`) or a full URI for the receipt of responses over a separate provider -> consumer connection. If the value starts with `/`, then it is prefixed with the base URI configured via `quarkus.cxf.client."client-name".decoupled-endpoint-base` before being used as a value for the WS-Addressing `ReplyTo` message header.
      Since:
      2.2.3
    • proxyServer

      Optional<String> proxyServer()
      Specifies the address of proxy server if one is used.
      Since:
      2.2.3
    • proxyServerPort

      Optional<Integer> proxyServerPort()
      Specifies the port number used by the proxy server.
      Since:
      2.2.3
    • nonProxyHosts

      Optional<String> nonProxyHosts()
      Specifies the list of hostnames that will not use the proxy configuration. Examples: - `localhost` - a single hostname - `localhost++\|++www.google.com` - two hostnames that will not use the proxy configuration - `localhost++\|++www.google.++*\|*++.apache.org` - hostname patterns
      Since:
      2.2.3
    • proxyServerType

      @WithDefault("HTTP") org.apache.cxf.transports.http.configuration.ProxyServerType proxyServerType()
      Specifies the type of the proxy server. Can be either HTTP or SOCKS.
      Since:
      2.2.3
    • proxyUsername

      Optional<String> proxyUsername()
      Username for the proxy authentication
      Since:
      2.2.3
    • proxyPassword

      Optional<String> proxyPassword()
      Password for the proxy authentication
      Since:
      2.2.3
    • httpConduitFactory

      Optional<HTTPConduitImpl> httpConduitFactory()
      Select the `HTTPConduitFactory` implementation for this client. - `QuarkusCXFDefault` (default): if `io.quarkiverse.cxf:quarkus-cxf-rt-transports-http-hc5` is present in class path, then its `HTTPConduitFactory` implementation will be used; otherwise, since 3.16.0, this value is equivalent with `VertxHttpClientHTTPConduitFactory`. Before 3.16.0, the effective default was `URLConnectionHTTPConduitFactory`. - `CXFDefault`: the selection of `HTTPConduitFactory` implementation is left to CXF - `VertxHttpClientHTTPConduitFactory`: the `HTTPConduitFactory` for this client will be set to an implementation always returning `io.quarkiverse.cxf.vertx.http.client.VertxHttpClientHTTPConduit`. This will use `io.vertx.core.http.HttpClient` as the underlying HTTP client. Since {quarkus-cxf-project-name} 3.13.0. - `HttpClientHTTPConduitFactory`: the `HTTPConduitFactory` for this client will be set to an implementation always returning `org.apache.cxf.transport.http.HttpClientHTTPConduit`. This will use `java.net.http.HttpClient` as the underlying HTTP client. + *Deprecated since xref:release-notes/3.18.0.adoc#_1633_httpclienthttpconduitfactory_value_of_http_conduit_factory_deprecated[3.18.0]* +++-+++ use other `HTTPConduitFactory` implementations, preferably `QuarkusCXFDefault`. - `URLConnectionHTTPConduitFactory`: the `HTTPConduitFactory` for this client will be set to an implementation always returning `org.apache.cxf.transport.http.URLConnectionHTTPConduit`. This will use `java.net.HttpURLConnection` as the underlying HTTP client.
      Since:
      2.3.0
    • tlsConfigurationName

      Optional<String> tlsConfigurationName()
      The name of the TLS configuration to use for setting up trust store and keystore for this SOAP client. If not set and `.trust-store` or `.key-store` is configured then that the configuration from `.trust-store*` and `.key-store*` family of options will be used. If a name is configured, it uses the configuration from `quarkus.tls..*` If a name is configured, but no TLS configuration is found with that name then an error will be thrown at runtime. Setting `.tls-configuration-name` and any of `.trust-store` or `.key-store` leads to an exception at runtime.
      Since:
      3.15.0
    • keyStore

      Deprecated.
      The key store location for this client. The resource is first looked up in the classpath, then in the file system. *Deprecated* - use `xref:reference/extensions/quarkus-cxf.adoc#quarkus-cxf_quarkus-cxf-client-client-name-tls-configuration-name[quarkus.cxf.client."client-name".tls-configuration-name]` instead.
      Since:
      3.8.1
    • keyStorePassword

      @Deprecated Optional<String> keyStorePassword()
      Deprecated.
      The key store password. *Deprecated* - use `xref:reference/extensions/quarkus-cxf.adoc#quarkus-cxf_quarkus-cxf-client-client-name-tls-configuration-name[quarkus.cxf.client."client-name".tls-configuration-name]` instead.
      Since:
      3.8.1
    • keyStoreType

      @WithDefault("JKS") @Deprecated String keyStoreType()
      Deprecated.
      The type of the key store. *Deprecated* - use `xref:reference/extensions/quarkus-cxf.adoc#quarkus-cxf_quarkus-cxf-client-client-name-tls-configuration-name[quarkus.cxf.client."client-name".tls-configuration-name]` instead.
      Since:
      3.8.1
    • keyPassword

      @Deprecated Optional<String> keyPassword()
      Deprecated.
      The key password. *Deprecated* - use `xref:reference/extensions/quarkus-cxf.adoc#quarkus-cxf_quarkus-cxf-client-client-name-tls-configuration-name[quarkus.cxf.client."client-name".tls-configuration-name]` instead.
      Since:
      3.8.1
    • trustStore

      @Deprecated Optional<String> trustStore()
      Deprecated.
      The trust store location for this client. The resource is first looked up in the classpath, then in the file system. *Deprecated* - use `xref:reference/extensions/quarkus-cxf.adoc#quarkus-cxf_quarkus-cxf-client-client-name-tls-configuration-name[quarkus.cxf.client."client-name".tls-configuration-name]` instead.
      Since:
      2.5.0
    • trustStorePassword

      @Deprecated Optional<String> trustStorePassword()
      Deprecated.
      The trust store password. *Deprecated* - use `xref:reference/extensions/quarkus-cxf.adoc#quarkus-cxf_quarkus-cxf-client-client-name-tls-configuration-name[quarkus.cxf.client."client-name".tls-configuration-name]` instead.
      Since:
      2.5.0
    • trustStoreType

      @WithDefault("JKS") @Deprecated String trustStoreType()
      Deprecated.
      The type of the trust store. *Deprecated* - use `xref:reference/extensions/quarkus-cxf.adoc#quarkus-cxf_quarkus-cxf-client-client-name-tls-configuration-name[quarkus.cxf.client."client-name".tls-configuration-name]` instead.
      Since:
      2.5.0
    • hostnameVerifier

      Optional<String> hostnameVerifier()
      Can be one of the following: - One of the well known values: `AllowAllHostnameVerifier`, `HttpsURLConnectionDefaultHostnameVerifier` - A fully qualified class name implementing `javax.net.ssl.HostnameVerifier` to look up in the CDI container. - A bean name prefixed with `++#++` that will be looked up in the CDI container; example: `++#++myHostnameVerifier` If not specified, then the creation of the `HostnameVerifier` is delegated to CXF, which boils down to `org.apache.cxf.transport.https.httpclient.DefaultHostnameVerifier` with the default `org.apache.cxf.transport.https.httpclient.PublicSuffixMatcherLoader` as returned from `PublicSuffixMatcherLoader.getDefault()`. [IMPORTANT] ==== Setting this option when the conduit factory of this client is set to `VertxHttpClientHTTPConduitFactory` (default since {quarkus-cxf-project-name} 3.16.0) leads to an exception at runtime. The `AllowAllHostnameVerifier` value of this option can be replaced by using a xref:reference/extensions/quarkus-cxf.adoc#quarkus-cxf_quarkus-cxf-client-client-name-tls-configuration-name[named TLS configuration] with `{link-quarkus-docs-base}/tls-registry-reference#trusting-all-certificates-and-hostname-verification[hostname-verification-algorithm]` set to `NONE`. Otherwise, there is no way to implement custom hostname verification for Vert.x HTTP client. ==== [IMPORTANT] ==== Since {quarkus-cxf-project-name} 3.18.0, setting this option when the conduit factory of this client is set to `HttpClientHTTPConduitFactory` is not supported and leads to an exception at runtime. See https://github.com/quarkiverse/quarkus-cxf/issues/1687[#1687]. ====
      Since:
      2.5.0
    • schemaValidationEnabledFor

      @WithName("schema-validation.enabled-for") Optional<org.apache.cxf.annotations.SchemaValidation.SchemaValidationType> schemaValidationEnabledFor()
      Select for which messages XML Schema validation should be enabled. If not specified, no XML Schema validation will be enforced unless it is enabled by other means, such as `@org.apache.cxf.annotations.SchemaValidation` or `@org.apache.cxf.annotations.EndpointProperty(key = "schema-validation-enabled", value = "true")` annotations.
      Since:
      2.7.0