---
apiVersion: v1
kind: List
items:
- apiVersion: v1
  kind: ConfigMap
  metadata:
    labels:
      funktion.fabric8.io/kind: Connector
      provider: fabric8
      project: connector-chunk
      version: 1.1.24
      group: io.fabric8.funktion.connector
    name: chunk
  data:
    deployment.yml: |
      ---
      apiVersion: extensions/v1beta1
      kind: Deployment
      metadata:
        labels:
          funktion.fabric8.io/kind: Subscription
          connector: chunk
      spec:
        replicas: 1
        template:
          metadata:
            labels:
              funktion.fabric8.io/kind: Subscription
              connector: chunk
          spec:
            containers:
            - image: fabric8/connector-chunk:1.1.24
              name: connector
    schema.yml: |
      ---
      component:
        kind: component
        scheme: chunk
        syntax: chunk:resourceUri
        title: Chunk
        description: Transforms the message using a Chunk template.
        label: transformation
        deprecated: false
        async: false
        producerOnly: true
        javaType: org.apache.camel.component.chunk.ChunkComponent
        groupId: org.apache.camel
        artifactId: camel-chunk
        version: 2.18.1
      componentProperties: {}
      properties:
        resourceUri:
          kind: path
          group: producer
          required: true
          type: string
          javaType: java.lang.String
          deprecated: false
          secret: false
          description: Path to the resource or a reference to lookup a bean in the Registry to use as the resource
        contentCache:
          kind: parameter
          group: producer
          type: boolean
          javaType: boolean
          deprecated: false
          secret: false
          defaultValue: false
          description: Sets whether to use resource content cache or not
        encoding:
          kind: parameter
          group: producer
          type: string
          javaType: java.lang.String
          deprecated: false
          secret: false
          description: Define the encoding of the body
        extension:
          kind: parameter
          group: producer
          type: string
          javaType: java.lang.String
          deprecated: false
          secret: false
          description: Define the file extension of the template
        themeFolder:
          kind: parameter
          group: producer
          type: string
          javaType: java.lang.String
          deprecated: false
          secret: false
          description: Define the themes folder to scan
        themeLayer:
          kind: parameter
          group: producer
          type: string
          javaType: java.lang.String
          deprecated: false
          secret: false
          description: Define the theme layer to elaborate
        themeSubfolder:
          kind: parameter
          group: producer
          type: string
          javaType: java.lang.String
          deprecated: false
          secret: false
          description: Define the themes subfolder to scan
        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).
    documentation.adoc: |+
      [[Chunk-Chunk]]
      Chunk
      ~~~~~

      *Available as of Camel 2.15*

      The *chunk:*??component allows for processing a message using a
      http://www.x5software.com/chunk/examples/ChunkExample?loc=en_US[Chunk]??template.
      This can be ideal when using??link:templating.html[Templating]??to
      generate responses for requests.

      Maven users will need to add the following dependency to
      their??`pom.xml`??for this component:

      [source,xml]
      ---------------------------------------------------------------------------------
      <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-chunk</artifactId>
      <version>x.x.x</version> <!-- use the same version as your Camel core version -->
      </dependency>
      ---------------------------------------------------------------------------------

      [[Chunk-URIformat]]
      URI format
      ^^^^^^^^^^

      [source,java]
      ----------------------------
      chunk:templateName[?options]
      ----------------------------

      Where??*templateName*??is the classpath-local URI of the template to
      invoke.

      You can append query options to the URI in the following
      format,??`?option=value&option=value&...`

      [[Chunk-Options]]
      Options
      ^^^^^^^


      // component options: START
      The Chunk component has no options.
      // component options: END



      // endpoint options: START
      The Chunk component supports 8 endpoint options which are listed below:

      {% raw %}
      [width="100%",cols="2,1,1m,1m,5",options="header"]
      |=======================================================================
      | Name | Group | Default | Java Type | Description
      | resourceUri | producer |  | String | *Required* Path to the resource or a reference to lookup a bean in the Registry to use as the resource
      | contentCache | producer | false | boolean | Sets whether to use resource content cache or not
      | encoding | producer |  | String | Define the encoding of the body
      | extension | producer |  | String | Define the file extension of the template
      | themeFolder | producer |  | String | Define the themes folder to scan
      | themeLayer | producer |  | String | Define the theme layer to elaborate
      | themeSubfolder | producer |  | String | Define the themes subfolder to scan
      | synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).
      |=======================================================================
      {% endraw %}
      // endpoint options: END


      Chunk component will look for a specific template in _themes_ folder
      with extensions _.chtml_ or _.cxml.??_If you need to specify a different
      folder or extensions, you will need to use the specific options listed
      above.

      [[Chunk-ChunkContext]]
      Chunk Context
      ^^^^^^^^^^^^^

      Camel will provide exchange information in the Chunk context (just
      a??`Map`). The??`Exchange`??is transferred as:

      ??
      [width="100%",cols="20%,80%",options="header",]
      |=======================================================================
      |key |value

      |`exchange` |The `Exchange` itself.

      |`exchange.properties` |The `Exchange` properties.

      |`headers` |The headers of the In message.

      |`camelContext` |The Camel Context.

      |`request` |The In message.

      |`body` |The In message body.

      |`response` |The Out message (only for InOut message exchange pattern).
      |=======================================================================

      [[Chunk-Dynamictemplates]]
      Dynamic templates
      ^^^^^^^^^^^^^^^^^

      Camel provides two headers by which you can define a different resource
      location for a template or the template content itself. If any of these
      headers is set then Camel uses this over the endpoint configured
      resource. This allows you to provide a dynamic template at runtime.

      [width="100%",cols="20%,10%,10%,60%",options="header",]
      |=======================================================================
      |Header |Type |Description |Support Version

      |ChunkConstants.CHUNK_RESOURCE_URI |String |A URI for the template resource to use instead of the endpoint
      configured. |

      |ChunkConstants.CHUNK_TEMPLATE |String |The template to use instead of the endpoint configured. |
      |=======================================================================

      [[Chunk-Samples]]
      Samples
      ^^^^^^^

      For example you could use something like:

      [source,java]
      --------------------------
      from("activemq:My.Queue").
      to("chunk:template");
      --------------------------

      To use a Chunk template to formulate a response for a message for InOut
      message exchanges (where there is a??`JMSReplyTo`??header).

      If you want to use InOnly and consume the message and send it to another
      destination you could use:

      [source,java]
      -----------------------------
      from("activemq:My.Queue").
      to("chunk:template").
      to("activemq:Another.Queue");
      -----------------------------

      It's possible to specify what template the component should use
      dynamically via a header, so for example:

      [source,java]
      ------------------------------------------------------------------
      from("direct:in").
      setHeader(ChunkConstants.CHUNK_RESOURCE_URI).constant("template").
      to("chunk:dummy");
      ------------------------------------------------------------------

      An example of Chunk component options use:

      [source,java]
      ---------------------------------------------------------------------------------------
      from("direct:in").
      to("chunk:file_example?themeFolder=template&themeSubfolder=subfolder&extension=chunk");
      ---------------------------------------------------------------------------------------

      In this example Chunk component will look for the file
      _file_example.chunk_ in the folder _template/subfolder._

      [[Chunk-TheEmailSample]]
      The Email Sample
      ^^^^^^^^^^^^^^^^

      In this sample we want to use Chunk templating for an order confirmation
      email. The email template is laid out in Chunk as:

      [source,java]
      ----------------------------------------------
      ??
      Dear {$headers.lastName}, {$headers.firstName}

      Thanks for the order of {$headers.item}.

      Regards Camel Riders Bookstore
      {$body}
      ----------------------------------------------

      [[Chunk-SeeAlso]]
      See Also
      ^^^^^^^^

      * link:configuring-camel.html[Configuring Camel]
      * link:component.html[Component]
      * link:endpoint.html[Endpoint]
      * link:getting-started.html[Getting Started]

