---
apiVersion: v1
kind: List
items:
- apiVersion: v1
  kind: ConfigMap
  metadata:
    labels:
      funktion.fabric8.io/kind: Connector
      provider: fabric8
      project: connector-jolt
      version: 1.1.24
      group: io.fabric8.funktion.connector
    name: jolt
  data:
    deployment.yml: |
      ---
      apiVersion: extensions/v1beta1
      kind: Deployment
      metadata:
        labels:
          funktion.fabric8.io/kind: Subscription
          connector: jolt
      spec:
        replicas: 1
        template:
          metadata:
            labels:
              funktion.fabric8.io/kind: Subscription
              connector: jolt
          spec:
            containers:
            - image: fabric8/connector-jolt:1.1.24
              name: connector
    schema.yml: |
      ---
      component:
        kind: component
        scheme: jolt
        syntax: jolt:resourceUri
        title: JOLT
        description: The jolt component allows you to process a JSON messages using an JOLT specification (such as JSON-JSON transformation).
        label: transformation
        deprecated: false
        async: false
        producerOnly: true
        javaType: org.apache.camel.component.jolt.JoltComponent
        groupId: org.apache.camel
        artifactId: camel-jolt
        version: 2.18.1
      componentProperties:
        transform:
          kind: property
          type: object
          javaType: com.bazaarvoice.jolt.Transform
          deprecated: false
          secret: false
          description: Explicitly sets the Transform to use. If not set a Transform specified by the transformDsl will be created
      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
        inputType:
          kind: parameter
          group: producer
          type: string
          javaType: org.apache.camel.component.jolt.JoltInputOutputType
          enum:
          - Hydrated
          - JsonString
          deprecated: false
          secret: false
          defaultValue: Hydrated
          description: Specifies if the input is hydrated JSON or a JSON String.
        outputType:
          kind: parameter
          group: producer
          type: string
          javaType: org.apache.camel.component.jolt.JoltInputOutputType
          enum:
          - Hydrated
          - JsonString
          deprecated: false
          secret: false
          defaultValue: Hydrated
          description: Specifies if the output should be hydrated JSON or a JSON String.
        transformDsl:
          kind: parameter
          group: producer
          type: string
          javaType: org.apache.camel.component.jolt.JoltTransformType
          enum:
          - Chainr
          - Shiftr
          - Defaultr
          - Removr
          - Sortr
          deprecated: false
          secret: false
          defaultValue: Chainr
          description: Specifies the Transform DSL of the endpoint resource. If none is specified Chainr will be used.
        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: |+
      [[JOLT-JOLTComponent]]
      JOLT Component
      ~~~~~~~~~~~~~~

      *Available as of Camel 2.16*

      The??*jolt:*??component allows you to process a JSON messages using an
      http://bazaarvoice.github.io/jolt/[JOLT] specification. This can be
      ideal when doing JSON to JSON transformation.

      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-jolt</artifactId>
          <version>x.x.x</version>
          <!-- use the same version as your Camel core version -->
      </dependency>
      ------------------------------------------------------------

      ??

      [[JOLT-URIformat]]
      URI format
      ^^^^^^^^^^

      [source,java]
      -----------------------
      jolt:specName[?options]
      -----------------------

      Where??*specName*??is the classpath-local URI of the specification to
      invoke; or the complete URL of the remote specification
      (eg:??file://folder/myfile.vm[file://folder/myfile.json]).

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

      [[JOLT-Options]]
      Options
      ^^^^^^^




      // component options: START
      The JOLT component supports 1 options which are listed below.



      {% raw %}
      [width="100%",cols="2,1m,7",options="header"]
      |=======================================================================
      | Name | Java Type | Description
      | transform | Transform | Explicitly sets the Transform to use. If not set a Transform specified by the transformDsl will be created
      |=======================================================================
      {% endraw %}
      // component options: END






      // endpoint options: START
      The JOLT component supports 6 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
      | inputType | producer | Hydrated | JoltInputOutputType | Specifies if the input is hydrated JSON or a JSON String.
      | outputType | producer | Hydrated | JoltInputOutputType | Specifies if the output should be hydrated JSON or a JSON String.
      | transformDsl | producer | Chainr | JoltTransformType | Specifies the Transform DSL of the endpoint resource. If none is specified Chainr will be used.
      | 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



      [[JOLT-Samples]]
      Samples
      ^^^^^^^

      For example you could use something like

      [source,java]
      --------------------------------------
      from("activemq:My.Queue").
        to("jolt:com/acme/MyResponse.json");
      --------------------------------------

      And a file based resource:

      [source,java]
      ---------------------------------------------------------------
      from("activemq:My.Queue").
        to("jolt:file://myfolder/MyResponse.json?contentCache=true").
        to("activemq:Another.Queue");
      ---------------------------------------------------------------

      You can also specify what specification the component should use
      dynamically via a header, so for example:

      [source,java]
      ---------------------------------------------------------------------
      from("direct:in").
        setHeader("CamelJoltResourceUri").constant("path/to/my/spec.json").
        to("jolt:dummy");
      ---------------------------------------------------------------------

      ??

      [[JOLT-SeeAlso]]
      See Also
      ^^^^^^^^

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

