---
apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    funktion.fabric8.io/kind: Connector
  name: cxfrs
data:
  deployment.yml: |
    ---
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      labels:
        funktion.fabric8.io/kind: Subscription
        connector: cxfrs
    spec:
      replicas: 1
      template:
        metadata:
          labels:
            funktion.fabric8.io/kind: Subscription
            connector: cxfrs
        spec:
          containers:
          - image: funktion/connector-cxfrs:${project.version}
            name: connector
  schema.yml: |
    ---
    component:
      kind: component
      scheme: cxfrs
      syntax: cxfrs:beanId:address
      title: CXF-RS
      description: The cxfrs component is used for JAX-RS REST services using Apache CXF.
      label: rest
      deprecated: false
      async: false
      lenientProperties: true
      javaType: org.apache.camel.component.cxf.jaxrs.CxfRsComponent
      groupId: org.apache.camel
      artifactId: camel-cxf
      version: 2.18.3
    componentProperties:
      headerFilterStrategy:
        kind: property
        type: object
        javaType: org.apache.camel.spi.HeaderFilterStrategy
        deprecated: false
        secret: false
        description: To use a custom HeaderFilterStrategy to filter header to and from Camel message.
        order: 0
    properties:
      beanId:
        kind: path
        group: common
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: 'To lookup an existing configured CxfRsEndpoint. Must used bean:
          as prefix.'
        order: 0
      address:
        kind: path
        group: common
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: The service publish address.
        order: 1
      features:
        kind: parameter
        group: common
        type: array
        javaType: java.util.List<org.apache.cxf.feature.Feature>
        deprecated: false
        secret: false
        description: Set the feature list to the CxfRs endpoint.
        order: 2
      loggingFeatureEnabled:
        kind: parameter
        group: common
        type: boolean
        javaType: boolean
        deprecated: false
        secret: false
        defaultValue: false
        description: This option enables CXF Logging Feature which writes inbound and outbound REST messages to log.
        order: 3
      loggingSizeLimit:
        kind: parameter
        group: common
        type: integer
        javaType: int
        deprecated: false
        secret: false
        description: To limit the total size of number of bytes the logger will output when logging feature has been enabled.
        order: 4
      modelRef:
        kind: parameter
        group: common
        type: string
        javaType: java.lang.String
        deprecated: 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
        order: 5
      providers:
        kind: parameter
        group: common
        type: string
        javaType: java.lang.String
        deprecated: 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.
        order: 6
      resourceClasses:
        kind: parameter
        group: common
        type: array
        javaType: java.util.List<java.lang.Class<?>>
        deprecated: false
        secret: false
        description: The resource classes which you want to export as REST service. Multiple classes can be separated by comma.
        order: 7
      schemaLocations:
        kind: parameter
        group: common
        type: array
        javaType: java.util.List<java.lang.String>
        deprecated: false
        secret: false
        description: Sets the locations of the schema(s) which can be used to validate the incoming XML or JAXB-driven JSON.
        order: 8
      skipFaultLogging:
        kind: parameter
        group: common
        type: boolean
        javaType: boolean
        deprecated: false
        secret: false
        defaultValue: false
        description: This option controls whether the PhaseInterceptorChain skips logging the Fault that it catches.
        order: 9
      bindingStyle:
        kind: parameter
        group: consumer
        label: consumer
        type: string
        javaType: org.apache.camel.component.cxf.jaxrs.BindingStyle
        enum:
        - SimpleConsumer
        - Default
        - Custom
        deprecated: 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.'
        order: 10
      bridgeErrorHandler:
        kind: parameter
        group: consumer
        label: consumer
        type: boolean
        javaType: boolean
        optionalPrefix: consumer.
        deprecated: 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/ERROR level and ignored.
        order: 11
      exceptionHandler:
        kind: parameter
        group: consumer (advanced)
        label: consumer,advanced
        type: object
        javaType: org.apache.camel.spi.ExceptionHandler
        optionalPrefix: consumer.
        deprecated: false
        secret: false
        description: To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions that will be logged at WARN/ERROR level and ignored.
        order: 12
      exchangePattern:
        kind: parameter
        group: consumer (advanced)
        label: consumer,advanced
        type: string
        javaType: org.apache.camel.ExchangePattern
        enum:
        - InOnly
        - RobustInOnly
        - InOut
        - InOptionalOut
        - OutOnly
        - RobustOutOnly
        - OutIn
        - OutOptionalIn
        deprecated: false
        secret: false
        description: Sets the exchange pattern when the consumer creates an exchange.
        order: 13
      hostnameVerifier:
        kind: parameter
        group: producer
        label: producer
        type: object
        javaType: javax.net.ssl.HostnameVerifier
        deprecated: false
        secret: false
        description: The hostname verifier to be used. Use the notation to reference a HostnameVerifier from the registry.
        order: 14
      sslContextParameters:
        kind: parameter
        group: producer
        label: producer
        type: object
        javaType: org.apache.camel.util.jsse.SSLContextParameters
        deprecated: false
        secret: false
        description: The Camel SSL setting reference. Use the notation to reference the SSL Context.
        order: 15
      throwExceptionOnFailure:
        kind: parameter
        group: producer
        label: producer
        type: boolean
        javaType: boolean
        deprecated: 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.
        order: 16
      httpClientAPI:
        kind: parameter
        group: producer (advanced)
        label: producer,advanced
        type: boolean
        javaType: boolean
        deprecated: 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
        order: 17
      ignoreDeleteMethodMessageBody:
        kind: parameter
        group: producer (advanced)
        label: producer,advanced
        type: boolean
        javaType: boolean
        deprecated: 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.
        order: 18
      maxClientCacheSize:
        kind: parameter
        group: producer (advanced)
        label: producer,advanced
        type: integer
        javaType: int
        deprecated: 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.
        order: 19
      binding:
        kind: parameter
        group: advanced
        label: advanced
        type: object
        javaType: org.apache.camel.component.cxf.jaxrs.CxfRsBinding
        deprecated: false
        secret: false
        description: To use a custom CxfBinding to control the binding between Camel Message and CXF Message.
        order: 20
      bus:
        kind: parameter
        group: advanced
        label: advanced
        type: object
        javaType: org.apache.cxf.Bus
        deprecated: false
        secret: false
        description: To use a custom configured CXF Bus.
        order: 21
      continuationTimeout:
        kind: parameter
        group: advanced
        label: advanced
        type: integer
        javaType: long
        deprecated: 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.
        order: 22
      cxfRsEndpointConfigurer:
        kind: parameter
        group: advanced
        label: advanced
        type: object
        javaType: org.apache.camel.component.cxf.jaxrs.CxfRsEndpointConfigurer
        deprecated: 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 configureServer/Client method of CxfEndpointConfigurer.
        order: 23
      defaultBus:
        kind: parameter
        group: advanced
        label: advanced
        type: boolean
        javaType: boolean
        deprecated: false
        secret: false
        defaultValue: false
        description: Will set the default bus when CXF endpoint create a bus by itself
        order: 24
      headerFilterStrategy:
        kind: parameter
        group: advanced
        label: advanced
        type: object
        javaType: org.apache.camel.spi.HeaderFilterStrategy
        deprecated: false
        secret: false
        description: To use a custom HeaderFilterStrategy to filter header to and from Camel message.
        order: 25
      performInvocation:
        kind: parameter
        group: advanced
        label: advanced
        type: boolean
        javaType: boolean
        deprecated: 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.
        order: 26
      propagateContexts:
        kind: parameter
        group: advanced
        label: advanced
        type: boolean
        javaType: boolean
        deprecated: 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.
        order: 27
      synchronous:
        kind: parameter
        group: advanced
        label: advanced
        type: boolean
        javaType: boolean
        deprecated: false
        secret: false
        defaultValue: false
        description: Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).
        order: 28
  documentation.adoc: "[[CXFRS-CXFRSComponent]]\nCXFRS Component\n~~~~~~~~~~~~~~~\n\
    \n[Note]\n====\n\n\nWhen using CXF as a consumer, the link:cxf-bean-component.html[CXF\
    \ Bean\nComponent] allows you to factor out how message payloads are received\n\
    from their processing as a RESTful or SOAP web service. This has the\npotential\
    \ of using a multitude of transports to consume web services.\nThe bean component's\
    \ configuration is also simpler and provides the\nfastest method to implement\
    \ web services using Camel and CXF.\n\n====\n\nThe *cxfrs:* component provides\
    \ integration with\nhttp://cxf.apache.org[Apache CXF] for connecting to JAX-RS\
    \ 1.1 and 2.0\nservices hosted in CXF.\n\nMaven users will need to add the following\
    \ dependency to their pom.xml\nfor this component:\n\n[source,xml]\n-------------------------------------------------------------------------------------\n\
    <dependency>\n   <groupId>org.apache.camel</groupId>\n   <artifactId>camel-cxf</artifactId>\n\
    \   <version>x.x.x</version>  <!-- use the same version as your Camel core version\
    \ -->\n</dependency>\n-------------------------------------------------------------------------------------\n\
    \n[[CXFRS-URIformat]]\nURI format\n^^^^^^^^^^\n\n[source,java]\n-----------------------\n\
    cxfrs://address?options\n-----------------------\n\nWhere *address* represents\
    \ the CXF endpoint's address\n\n[source,java]\n---------------------\ncxfrs:bean:rsEndpoint\n\
    ---------------------\n\nWhere *rsEndpoint* represents the spring bean's name\
    \ which presents the\nCXFRS client or server\n\nFor either style above, you can\
    \ append options to the URI as follows:\n\n[source,java]\n------------------------------------------------------------------\n\
    cxfrs:bean:cxfEndpoint?resourceClasses=org.apache.camel.rs.Example\n------------------------------------------------------------------\n\
    \n[[CXFRS-Options]]\nOptions\n^^^^^^^\n\n\n\n// component options: START\nThe\
    \ CXF-RS component supports 1 options which are listed below.\n\n\n\n{% raw %}\n\
    [width=\"100%\",cols=\"2,1m,7\",options=\"header\"]\n|=======================================================================\n\
    | Name | Java Type | Description\n| headerFilterStrategy | HeaderFilterStrategy\
    \ | To use a custom HeaderFilterStrategy to filter header to and from Camel message.\n\
    |=======================================================================\n{% endraw\
    \ %}\n// component options: END\n\n\n\n\n// endpoint options: START\nThe CXF-RS\
    \ component supports 29 endpoint options which are listed below:\n\n{% raw %}\n\
    [width=\"100%\",cols=\"2,1,1m,1m,5\",options=\"header\"]\n|=======================================================================\n\
    | Name | Group | Default | Java Type | Description\n| beanId | common |  | String\
    \ | To lookup an existing configured CxfRsEndpoint. Must used bean: as prefix.\n\
    | address | common |  | String | The service publish address.\n| features | common\
    \ |  | List | Set the feature list to the CxfRs endpoint.\n| loggingFeatureEnabled\
    \ | common | false | boolean | This option enables CXF Logging Feature which writes\
    \ inbound and outbound REST messages to log.\n| loggingSizeLimit | common |  |\
    \ int | To limit the total size of number of bytes the logger will output when\
    \ logging feature has been enabled.\n| modelRef | common |  | String | 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\n| providers | common |  | String | 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.\n| resourceClasses\
    \ | common |  | List | The resource classes which you want to export as REST service.\
    \ Multiple classes can be separated by comma.\n| schemaLocations | common |  |\
    \ List | Sets the locations of the schema(s) which can be used to validate the\
    \ incoming XML or JAXB-driven JSON.\n| skipFaultLogging | common | false | boolean\
    \ | This option controls whether the PhaseInterceptorChain skips logging the Fault\
    \ that it catches.\n| bindingStyle | consumer | Default | BindingStyle | 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.\n\
    | bridgeErrorHandler | consumer | false | boolean | 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/ERROR level and ignored.\n| exceptionHandler\
    \ | consumer (advanced) |  | ExceptionHandler | To let the consumer use a custom\
    \ ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this\
    \ options is not in use. By default the consumer will deal with exceptions that\
    \ will be logged at WARN/ERROR level and ignored.\n| exchangePattern | consumer\
    \ (advanced) |  | ExchangePattern | Sets the exchange pattern when the consumer\
    \ creates an exchange.\n| hostnameVerifier | producer |  | HostnameVerifier |\
    \ The hostname verifier to be used. Use the notation to reference a HostnameVerifier\
    \ from the registry.\n| sslContextParameters | producer |  | SSLContextParameters\
    \ | The Camel SSL setting reference. Use the notation to reference the SSL Context.\n\
    | throwExceptionOnFailure | producer | true | boolean | This option tells the\
    \ CxfRsProducer to inspect return codes and will generate an Exception if the\
    \ return code is larger than 207.\n| httpClientAPI | producer (advanced) | true\
    \ | boolean | 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\n| ignoreDeleteMethodMessageBody | producer (advanced) |\
    \ false | boolean | This option is used to tell CxfRsProducer to ignore the message\
    \ body of the DELETE method when using HTTP API.\n| maxClientCacheSize | producer\
    \ (advanced) | 10 | int | This option allows you to configure the maximum size\
    \ of the cache. The implementation caches CXF clients or ClientFactoryBean in\
    \ CxfProvider and CxfRsProvider.\n| binding | advanced |  | CxfRsBinding | To\
    \ use a custom CxfBinding to control the binding between Camel Message and CXF\
    \ Message.\n| bus | advanced |  | Bus | To use a custom configured CXF Bus.\n\
    | continuationTimeout | advanced | 30000 | long | 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.\n| cxfRsEndpointConfigurer\
    \ | advanced |  | CxfRsEndpointConfigurer | 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 configureServer/Client method of CxfEndpointConfigurer.\n\
    | defaultBus | advanced | false | boolean | Will set the default bus when CXF\
    \ endpoint create a bus by itself\n| headerFilterStrategy | advanced |  | HeaderFilterStrategy\
    \ | To use a custom HeaderFilterStrategy to filter header to and from Camel message.\n\
    | performInvocation | advanced | false | boolean | 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.\n| propagateContexts | advanced\
    \ | false | boolean | 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.\n| synchronous | advanced | false | boolean | Sets\
    \ whether synchronous processing should be strictly used or Camel is allowed to\
    \ use asynchronous processing (if supported).\n|=======================================================================\n\
    {% endraw %}\n// endpoint options: END\n\n\nYou can also configure the CXF REST\
    \ endpoint through the spring\nconfiguration. Since there are lots of difference\
    \ between the CXF REST\nclient and CXF REST Server, we provide different configuration\
    \ for\nthem. Please check out the\nhttp://svn.apache.org/repos/asf/camel/trunk/components/camel-cxf/src/main/resources/schema/cxfEndpoint.xsd[schema\n\
    file] and https://cwiki.apache.org/CXF20DOC/JAX-RS[CXF JAX-RS\ndocumentation]\
    \ for more information.\n\n[[CXFRS-HowtoconfiguretheRESTendpointinCamel]]\nHow\
    \ to configure the REST endpoint in Camel\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\
    \nIn\nhttp://svn.apache.org/repos/asf/camel/trunk/components/camel-cxf/src/main/resources/schema/cxfEndpoint.xsd[camel-cxf\n\
    schema file], there are two elements for the REST endpoint definition.\n*cxf:rsServer*\
    \ for REST consumer, *cxf:rsClient* for REST producer. +\n You can find a Camel\
    \ REST service route configuration example here.\n\n[[CXFRS-HowtooverridetheCXFproduceraddressfrommessageheader]]\n\
    How to override the CXF producer address from message header\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\
    \nThe\_`camel-cxfrs`\_producer supports to override the services address by\n\
    setting the message with the key of \"CamelDestinationOverrideUrl\".\n\n[source,java]\n\
    ----------------------------------------------------------------------------------------------\n\
    \ // set up the service address from the message header to override the setting\
    \ of CXF endpoint\n exchange.getIn().setHeader(Exchange.DESTINATION_OVERRIDE_URL,\
    \ constant(getServiceAddress()));\n----------------------------------------------------------------------------------------------\n\
    \n[[CXFRS-ConsumingaRESTRequest-SimpleBindingStyle]]\nConsuming a REST Request\
    \ - Simple Binding Style\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n\
    *Available as of Camel 2.11*\n\nThe `Default` binding style is rather low-level,\
    \ requiring the user to\nmanually process the `MessageContentsList` object coming\
    \ into the route.\nThus, it tightly couples the route logic with the method signature\
    \ and\nparameter indices of the JAX-RS operation. Somewhat inelegant, difficult\n\
    and error-prone.\n\nIn contrast, the `SimpleConsumer` binding style performs the\
    \ following\nmappings, in order to *make the request data more accessible* to\
    \ you\nwithin the Camel Message:\n\n* JAX-RS Parameters (@HeaderParam, @QueryParam,\
    \ etc.) are injected as IN\nmessage headers. The header name matches the value\
    \ of the annotation.\n* The request entity (POJO or other type) becomes the IN\
    \ message body.\nIf a single entity cannot be identified in the JAX-RS method\
    \ signature,\nit falls back to the original `MessageContentsList`.\n* Binary `@Multipart`\
    \ body parts become IN message attachments,\nsupporting `DataHandler`, `InputStream`,\
    \ `DataSource` and CXF's\n`Attachment` class.\n* Non-binary `@Multipart` body\
    \ parts are mapped as IN message headers.\nThe header name matches the Body Part\
    \ name.\n\nAdditionally, the following rules apply to the *Response mapping*:\n\
    \n* If the message body type is different to `javax.ws.rs.core.Response`\n(user-built\
    \ response), a new `Response` is created and the message body\nis set as the entity\
    \ (so long it's not null). The response status code\nis taken from the `Exchange.HTTP_RESPONSE_CODE`\
    \ header, or defaults to\n200 OK if not present.\n* If the message body type is\
    \ equal to `javax.ws.rs.core.Response`, it\nmeans that the user has built a custom\
    \ response, and therefore it is\nrespected and it becomes the final response.\n\
    * In all cases, Camel headers permitted by custom or default\n`HeaderFilterStrategy`\
    \ are added to the HTTP response.\n\n[[CXFRS-EnablingtheSimpleBindingStyle]]\n\
    Enabling the Simple Binding Style\n+++++++++++++++++++++++++++++++++\n\nThis binding\
    \ style can be activated by setting the `bindingStyle`\nparameter in the consumer\
    \ endpoint to value `SimpleConsumer`:\n\n[source,java]\n---------------------------------------------------------\n\
    \  from(\"cxfrs:bean:rsServer?bindingStyle=SimpleConsumer\")\n    .to(\"log:TEST?showAll=true\"\
    );\n---------------------------------------------------------\n\n[[CXFRS-Examplesofrequestbindingwithdifferentmethodsignatures]]\n\
    Examples of request binding with different method signatures\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\
    \nBelow is a list of method signatures along with the expected result from\nthe\
    \ Simple binding.\n\n*`public Response doAction(BusinessObject request);`* +\n\
    \ Request payload is placed in IN message body, replacing the original\nMessageContentsList.\n\
    \n*`public Response doAction(BusinessObject request, @HeaderParam(\"abcd\") String\
    \ abcd, @QueryParam(\"defg\") String defg);`* \n Request payload placed in IN\
    \ message body, replacing the original\nMessageContentsList. Both request params\
    \ mapped as IN message headers\nwith names abcd and defg.\n\n*`public Response\
    \ doAction(@HeaderParam(\"abcd\") String abcd, @QueryParam(\"defg\") String defg);`*\
    \ \n Both request params mapped as IN message headers with names abcd and\ndefg.\
    \ The original MessageContentsList is preserved, even though it only\ncontains\
    \ the 2 parameters.\n\n*`public Response doAction(@Multipart(value=\"body1\")\
    \ BusinessObject request, @Multipart(value=\"body2\") BusinessObject request2);`*\
    \ \n The first parameter is transferred as a header with name body1, and the\n\
    second one is mapped as header body2. The original MessageContentsList\nis preserved\
    \ as the IN message body.\n\n*`public Response doAction(InputStream abcd);`* \n\
    \ The InputStream is unwrapped from the MessageContentsList and preserved\nas\
    \ the IN message body.\n\n*`public Response doAction(DataHandler abcd);`* \n The\
    \ DataHandler is unwrapped from the MessageContentsList and preserved\nas the\
    \ IN message body.\n\n[[CXFRS-MoreexamplesoftheSimpleBindingStyle]]\nMore examples\
    \ of the Simple Binding Style\n+++++++++++++++++++++++++++++++++++++++++\n\nGiven\
    \ a JAX-RS resource class with this method:\n\n[source,java]\n------------------------------------------------------------------------------------------------------------------------------------------------\n\
    \    @POST @Path(\"/customers/{type}\")\n    public Response newCustomer(Customer\
    \ customer, @PathParam(\"type\") String type, @QueryParam(\"active\") @DefaultValue(\"\
    true\") boolean active) {\n        return null;\n    }\n------------------------------------------------------------------------------------------------------------------------------------------------\n\
    \nServiced by the following route:\n\n[source,java]\n--------------------------------------------------------------------------------------------\n\
    \    from(\"cxfrs:bean:rsServer?bindingStyle=SimpleConsumer\")\n        .recipientList(simple(\"\
    direct:${header.operationName}\"));\n\n    from(\"direct:newCustomer\")\n    \
    \    .log(\"Request: type=${header.type}, active=${header.active}, customerData=${body}\"\
    );\n--------------------------------------------------------------------------------------------\n\
    \nThe following HTTP request with XML payload (given that the Customer DTO\nis\
    \ JAXB-annotated):\n\n[source,xml]\n-------------------------------------\nPOST\
    \ /customers/gold?active=true\n\nPayload:\n<Customer>\n  <fullName>Raul Kripalani</fullName>\n\
    \  <country>Spain</country>\n  <project>Apache Camel</project>\n</Customer>\n\
    -------------------------------------\n\nWill print the message:\n\n[source,xml]\n\
    ----------------------------------------------------------------------------------\n\
    Request: type=gold, active=true, customerData=<Customer.toString() representation>\n\
    ----------------------------------------------------------------------------------\n\
    \nFor more examples on how to process requests and write responses can be\nfound\n\
    https://svn.apache.org/repos/asf/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/simplebinding/[here].\n\
    \n[[CXFRS-ConsumingaRESTRequest-DefaultBindingStyle]]\nConsuming a REST Request\
    \ - Default Binding Style\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n\
    The\_https://cwiki.apache.org/CXF20DOC/JAX-RS[CXF JAXRS front end]\nimplements\
    \ the https://jsr311.java.net/[JAX-RS (JSR-311) API], so we can\nexport the resources\
    \ classes as a REST service. And we leverage the\nhttp://cwiki.apache.org/confluence/display/CXF20DOC/Invokers[CXF\
    \ Invoker\nAPI] to turn a REST request into a normal Java object method\ninvocation.\
    \ +\n Unlike the link:restlet.html[Camel Restlet]\_component, you don't need\n\
    to specify the URI template within your endpoint, CXF takes care of the\nREST\
    \ request URI to resource class method mapping according to the\nJSR-311 specification.\
    \ All you need to do in Camel is delegate this\nmethod request to a right processor\
    \ or endpoint.\n\nHere is an example of a CXFRS route...\n\nAnd the corresponding\
    \ resource class used to configure the endpoint...\n\nINFO:*Note about resource\
    \ classes*\n\nBy default, JAX-RS resource classes are *only*used to configure\
    \ JAX-RS\nproperties. Methods will *not* be executed during routing of messages\
    \ to\nthe endpoint. Instead, it is the responsibility of the route to do all\n\
    processing.\n\nNote that starting from Camel 2.15 it is also sufficient to provide\
    \ an\ninterface only as opposed to a no-op service implementation class for\n\
    the default mode.\n\nStarting from Camel 2.15, if a *performInvocation* option\
    \ is enabled,\nthe service implementation will be invoked first, the response\
    \ will be\nset on the Camel exchange and the route execution will continue as\n\
    usual. This can be useful for integrating the existing JAX-RS implementations\
    \ into Camel routes and\nfor post-processing JAX-RS Responses in custom processors.\n\
    \n[[CXFRS-HowtoinvoketheRESTservicethroughcamel-cxfrsproducer]]\nHow to invoke\
    \ the REST service through camel-cxfrs producer\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\
    \nThe\_https://cwiki.apache.org/CXF20DOC/JAX-RS[CXF JAXRS front end]\nimplements\n\
    https://cwiki.apache.org/CXF20DOC/JAX-RS+Client+API#JAX-RSClientAPI-Proxy-basedAPI[a\n\
    proxy-based client API], with this API you can invoke the remote REST\nservice\
    \ through a proxy. The\_`camel-cxfrs` producer is based on this\nhttps://cwiki.apache.org/CXF20DOC/JAX-RS+Client+API#JAX-RSClientAPI-Proxy-basedAPI[proxy\n\
    API]. +\n You just need to specify the operation name in the message header and\n\
    prepare the parameter in the message body, the camel-cxfrs\_producer will\ngenerate\
    \ right REST request for you.\n\nHere is an example:\n\nThe\_https://cwiki.apache.org/CXF20DOC/JAX-RS[CXF\
    \ JAXRS front end] also\nprovides\nhttps://cwiki.apache.org/confluence/display/CXF20DOC/JAX-RS+Client+API#JAX-RSClientAPI-CXFWebClientAPI[a\n\
    http centric client API].\_You can also invoke this API from\n`camel-cxfrs` producer.\
    \ You need to specify the\nhttp://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Exchange.html#HTTP_PATH[HTTP_PATH]\n\
    and\nthe\_http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Exchange.html#HTTP_METHOD[HTTP_METHOD]\_\
    and\nlet the\_producer use the http centric client API by using the URI option\n\
    *httpClientAPI* or by setting the message header\nhttp://camel.apache.org/maven/current/camel-cxf/apidocs/org/apache/camel/component/cxf/CxfConstants.html#CAMEL_CXF_RS_USING_HTTP_API[CxfConstants.CAMEL_CXF_RS_USING_HTTP_API].\n\
    You can turn the response object to the type class specified with the\nmessage\n\
    header\_http://camel.apache.org/maven/current/camel-cxf/apidocs/org/apache/camel/component/cxf/CxfConstants.html#CAMEL_CXF_RS_RESPONSE_CLASS[CxfConstants.CAMEL_CXF_RS_RESPONSE_CLASS].\n\
    \nFrom Camel 2.1, we also support to specify the query parameters from\ncxfrs\
    \ URI for the CXFRS http centric client.\n\nError formatting macro: snippet: java.lang.IndexOutOfBoundsException:\n\
    Index: 20, Size: 20\n\nTo support the Dynamical routing, you can override the\
    \ URI's query\nparameters by using the CxfConstants.CAMEL_CXF_RS_QUERY_MAP header\
    \ to\nset the parameter map for it.\n"
