{
  "component": {
    "kind": "component",
    "name": "cxfrs",
    "title": "CXF-RS",
    "description": "Expose JAX-RS REST services using Apache CXF or connect to external REST services using CXF REST client.",
    "deprecated": false,
    "firstVersion": "2.0.0",
    "label": "rest",
    "javaType": "org.apache.camel.component.cxf.jaxrs.CxfRsComponent",
    "supportLevel": "Stable",
    "groupId": "org.apache.camel",
    "artifactId": "camel-cxf-rest",
    "version": "4.0.5",
    "scheme": "cxfrs",
    "extendsScheme": "",
    "syntax": "cxfrs:beanId:address",
    "async": false,
    "api": false,
    "consumerOnly": false,
    "producerOnly": false,
    "lenientProperties": true
  },
  "componentProperties": {
    "bridgeErrorHandler": { "index": 0, "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored." },
    "lazyStartProducer": { "index": 1, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing." },
    "autowiredEnabled": { "index": 2, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc." },
    "headerFilterStrategy": { "index": 3, "kind": "property", "displayName": "Header Filter Strategy", "group": "filter", "label": "filter", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message." },
    "useGlobalSslContextParameters": { "index": 4, "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." }
  },
  "headers": {
    "operationName": { "index": 0, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the operation.", "constantName": "org.apache.camel.component.cxf.common.message.CxfConstants#OPERATION_NAME" },
    "CamelAuthentication": { "index": 1, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "javax.security.auth.Subject", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The authentication", "constantName": "org.apache.camel.component.cxf.common.message.CxfConstants#AUTHENTICATION" },
    "CamelHttpMethod": { "index": 2, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The http method to use", "constantName": "org.apache.camel.component.cxf.common.message.CxfConstants#HTTP_METHOD" },
    "CamelHttpPath": { "index": 3, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The http path", "constantName": "org.apache.camel.component.cxf.common.message.CxfConstants#HTTP_PATH" },
    "Content-Type": { "index": 4, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content type", "constantName": "org.apache.camel.component.cxf.common.message.CxfConstants#CONTENT_TYPE" },
    "CamelHttpQuery": { "index": 5, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The http query", "constantName": "org.apache.camel.component.cxf.common.message.CxfConstants#HTTP_QUERY" },
    "CamelHttpResponseCode": { "index": 6, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The http response code", "constantName": "org.apache.camel.component.cxf.common.message.CxfConstants#HTTP_RESPONSE_CODE" },
    "Content-Encoding": { "index": 7, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content encoding", "constantName": "org.apache.camel.component.cxf.common.message.CxfConstants#CONTENT_ENCODING" },
    "org.apache.cxf.message.Message.PROTOCOL_HEADERS": { "index": 8, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Map", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The protocol headers", "constantName": "org.apache.camel.component.cxf.common.message.CxfConstants#PROTOCOL_HEADERS" },
    "CamelCxfMessage": { "index": 9, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "org.apache.cxf.message.Message", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The CXF message", "constantName": "org.apache.camel.component.cxf.common.message.CxfConstants#CAMEL_CXF_MESSAGE" },
    "CamelCxfRsUsingHttpAPI": { "index": 10, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "If it is true, the CxfRsProducer will use the HttpClientAPI to invoke the service. If it is false, the CxfRsProducer will use the ProxyClientAPI to invoke the service", "constantName": "org.apache.camel.component.cxf.common.message.CxfConstants#CAMEL_CXF_RS_USING_HTTP_API" },
    "CamelCxfRsVarValues": { "index": 11, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Object[]", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The path values", "constantName": "org.apache.camel.component.cxf.common.message.CxfConstants#CAMEL_CXF_RS_VAR_VALUES" },
    "CamelCxfRsResponseClass": { "index": 12, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Class", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The response class", "constantName": "org.apache.camel.component.cxf.common.message.CxfConstants#CAMEL_CXF_RS_RESPONSE_CLASS" },
    "CamelCxfRsResponseGenericType": { "index": 13, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Type", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The response generic type", "constantName": "org.apache.camel.component.cxf.common.message.CxfConstants#CAMEL_CXF_RS_RESPONSE_GENERIC_TYPE" },
    "CamelCxfRsQueryMap": { "index": 14, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Map<String, String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The query map", "constantName": "org.apache.camel.component.cxf.common.message.CxfConstants#CAMEL_CXF_RS_QUERY_MAP" },
    "CamelCxfRsOperationResourceInfoStack": { "index": 15, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "org.apache.cxf.jaxrs.model.OperationResourceInfoStack", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The stack of MethodInvocationInfo representing resources path when JAX-RS invocation looks for target.", "constantName": "org.apache.camel.component.cxf.common.message.CxfConstants#CAMEL_CXF_RS_OPERATION_RESOURCE_INFO_STACK" }
  },
  "properties": {
    "beanId": { "index": 0, "kind": "path", "displayName": "Bean Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To lookup an existing configured CxfRsEndpoint. Must used bean: as prefix." },
    "address": { "index": 1, "kind": "path", "displayName": "Address", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The service publish address." },
    "features": { "index": 2, "kind": "parameter", "displayName": "Features", "group": "common", "label": "", "required": false, "type": "array", "javaType": "java.util.List<org.apache.cxf.feature.Feature>", "deprecated": false, "autowired": false, "secret": false, "description": "Set the feature list to the CxfRs endpoint." },
    "loggingFeatureEnabled": { "index": 3, "kind": "parameter", "displayName": "Logging Feature Enabled", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "This option enables CXF Logging Feature which writes inbound and outbound REST messages to log." },
    "loggingSizeLimit": { "index": 4, "kind": "parameter", "displayName": "Logging Size Limit", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To limit the total size of number of bytes the logger will output when logging feature has been enabled." },
    "modelRef": { "index": 5, "kind": "parameter", "displayName": "Model Ref", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "This option is used to specify the model file which is useful for the resource class without annotation. When using this option, then the service class can be omitted, to emulate document-only endpoints" },
    "providers": { "index": 6, "kind": "parameter", "displayName": "Providers", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set custom JAX-RS provider(s) list to the CxfRs endpoint. You can specify a string with a list of providers to lookup in the registy separated by comma." },
    "resourceClasses": { "index": 7, "kind": "parameter", "displayName": "Resource Classes", "group": "common", "label": "", "required": false, "type": "array", "javaType": "java.util.List<java.lang.Class<java.lang.Object>>", "deprecated": false, "autowired": false, "secret": false, "description": "The resource classes which you want to export as REST service. Multiple classes can be separated by comma." },
    "schemaLocations": { "index": 8, "kind": "parameter", "displayName": "Schema Locations", "group": "common", "label": "", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the locations of the schema(s) which can be used to validate the incoming XML or JAXB-driven JSON." },
    "skipFaultLogging": { "index": 9, "kind": "parameter", "displayName": "Skip Fault Logging", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "This option controls whether the PhaseInterceptorChain skips logging the Fault that it catches." },
    "bindingStyle": { "index": 10, "kind": "parameter", "displayName": "Binding Style", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.cxf.jaxrs.BindingStyle", "enum": [ "SimpleConsumer", "Default", "Custom" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Default", "description": "Sets how requests and responses will be mapped to\/from Camel. Two values are possible: SimpleConsumer: This binding style processes request parameters, multiparts, etc. and maps them to IN headers, IN attachments and to the message body. It aims to eliminate low-level processing of org.apache.cxf.message.MessageContentsList. It also also adds more flexibility and simplicity to the response mapping. Only available for consumers. Default: The default style. For consumers this passes on a MessageContentsList to the route, requiring low-level processing in the route. This is the traditional binding style, which simply dumps the org.apache.cxf.message.MessageContentsList coming in from the CXF stack onto the IN message body. The user is then responsible for processing it according to the contract defined by the JAX-RS method signature. Custom: allows you to specify a custom binding through the binding option." },
    "publishedEndpointUrl": { "index": 11, "kind": "parameter", "displayName": "Published Endpoint Url", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "This option can override the endpointUrl that published from the WADL which can be accessed with resource address url plus _wadl" },
    "bridgeErrorHandler": { "index": 12, "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored." },
    "exceptionHandler": { "index": 13, "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored." },
    "exchangePattern": { "index": 14, "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
    "serviceBeans": { "index": 15, "kind": "parameter", "displayName": "Service Beans", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The service beans (the bean ids to lookup in the registry) which you want to export as REST service. Multiple beans can be separated by comma" },
    "cookieHandler": { "index": 16, "kind": "parameter", "displayName": "Cookie Handler", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.http.base.cookie.CookieHandler", "deprecated": false, "autowired": false, "secret": false, "description": "Configure a cookie handler to maintain a HTTP session" },
    "hostnameVerifier": { "index": 17, "kind": "parameter", "displayName": "Hostname Verifier", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", "deprecated": false, "autowired": false, "secret": false, "description": "The hostname verifier to be used. Use the # notation to reference a HostnameVerifier from the registry." },
    "sslContextParameters": { "index": 18, "kind": "parameter", "displayName": "Ssl Context Parameters", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "description": "The Camel SSL setting reference. Use the # notation to reference the SSL Context." },
    "throwExceptionOnFailure": { "index": 19, "kind": "parameter", "displayName": "Throw Exception On Failure", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "This option tells the CxfRsProducer to inspect return codes and will generate an Exception if the return code is larger than 207." },
    "httpClientAPI": { "index": 20, "kind": "parameter", "displayName": "Http Client API", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If it is true, the CxfRsProducer will use the HttpClientAPI to invoke the service. If it is false, the CxfRsProducer will use the ProxyClientAPI to invoke the service" },
    "ignoreDeleteMethodMessageBody": { "index": 21, "kind": "parameter", "displayName": "Ignore Delete Method Message Body", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "This option is used to tell CxfRsProducer to ignore the message body of the DELETE method when using HTTP API." },
    "lazyStartProducer": { "index": 22, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing." },
    "maxClientCacheSize": { "index": 23, "kind": "parameter", "displayName": "Max Client Cache Size", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10, "description": "This option allows you to configure the maximum size of the cache. The implementation caches CXF clients or ClientFactoryBean in CxfProvider and CxfRsProvider." },
    "synchronous": { "index": 24, "kind": "parameter", "displayName": "Synchronous", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether synchronous processing should be strictly used" },
    "binding": { "index": 25, "kind": "parameter", "displayName": "Binding", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.cxf.jaxrs.CxfRsBinding", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom CxfBinding to control the binding between Camel Message and CXF Message." },
    "bus": { "index": 26, "kind": "parameter", "displayName": "Bus", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.cxf.Bus", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom configured CXF Bus." },
    "continuationTimeout": { "index": 27, "kind": "parameter", "displayName": "Continuation Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "30000", "description": "This option is used to set the CXF continuation timeout which could be used in CxfConsumer by default when the CXF server is using Jetty or Servlet transport." },
    "cxfRsConfigurer": { "index": 28, "kind": "parameter", "displayName": "Cxf Rs Configurer", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.cxf.jaxrs.CxfRsConfigurer", "deprecated": false, "autowired": false, "secret": false, "description": "This option could apply the implementation of org.apache.camel.component.cxf.jaxrs.CxfRsEndpointConfigurer which supports to configure the CXF endpoint in programmatic way. User can configure the CXF server and client by implementing configure{Server\/Client} method of CxfEndpointConfigurer." },
    "defaultBus": { "index": 29, "kind": "parameter", "displayName": "Default Bus", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Will set the default bus when CXF endpoint create a bus by itself" },
    "headerFilterStrategy": { "index": 30, "kind": "parameter", "displayName": "Header Filter Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom HeaderFilterStrategy to filter header to and from Camel message." },
    "performInvocation": { "index": 31, "kind": "parameter", "displayName": "Perform Invocation", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "When the option is true, Camel will perform the invocation of the resource class instance and put the response object into the exchange for further processing." },
    "propagateContexts": { "index": 32, "kind": "parameter", "displayName": "Propagate Contexts", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "When the option is true, JAXRS UriInfo, HttpHeaders, Request and SecurityContext contexts will be available to custom CXFRS processors as typed Camel exchange properties. These contexts can be used to analyze the current requests using JAX-RS API." }
  }
}
