--- apiVersion: v1 kind: List items: - apiVersion: v1 kind: ConfigMap metadata: labels: funktion.fabric8.io/kind: Connector provider: fabric8 project: connector-jolt version: 1.1.20 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.20 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] ------------------------------------------------------------ org.apache.camel camel-jolt x.x.x ------------------------------------------------------------ ?? [[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]