This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
commit f25a1073f49e2135a9b1b6c422c30bd082437e64 Author: Claus Ibsen <[email protected]> AuthorDate: Sat Oct 24 19:57:08 2026 +0200 CAMEL-24961: Catalog body types for docker, git, jmx, shell, lpr, zookeeper, master and three more ops components (#28414) Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> Signed-off-by: Claus Ibsen <[email protected]> --- .../apache/camel/catalog/components/docker.json | 5 + .../org/apache/camel/catalog/components/git.json | 5 + .../org/apache/camel/catalog/components/jmx.json | 3 + .../org/apache/camel/catalog/components/lpr.json | 4 + .../apache/camel/catalog/components/master.json | 3 + .../apache/camel/catalog/components/metrics.json | 4 + .../catalog/components/opentelemetry-metrics.json | 4 + .../org/apache/camel/catalog/components/shell.json | 4 + .../camel/catalog/components/zookeeper-master.json | 3 + .../apache/camel/catalog/components/zookeeper.json | 5 + .../org/apache/camel/component/docker/docker.json | 5 + .../camel/component/docker/DockerEndpoint.java | 106 +++++++++++++++++++++ .../org/apache/camel/component/git/git.json | 5 + .../apache/camel/component/git/GitEndpoint.java | 59 ++++++++++++ .../org/apache/camel/component/jmx/jmx.json | 3 + .../apache/camel/component/jmx/JMXEndpoint.java | 9 ++ .../org/apache/camel/component/master/master.json | 3 + .../camel/component/master/MasterEndpoint.java | 7 ++ .../apache/camel/component/metrics/metrics.json | 4 + .../camel/component/metrics/MetricsEndpoint.java | 7 ++ .../metrics/opentelemetry-metrics.json | 4 + .../metrics/OpenTelemetryEndpoint.java | 8 ++ .../org/apache/camel/component/printer/lpr.json | 4 + .../camel/component/printer/PrinterEndpoint.java | 8 ++ .../org/apache/camel/component/shell/shell.json | 4 + .../camel/component/shell/ShellEndpoint.java | 11 +++ .../zookeepermaster/zookeeper-master.json | 3 + .../component/zookeepermaster/MasterEndpoint.java | 7 ++ .../camel/component/zookeeper/zookeeper.json | 5 + .../component/zookeeper/ZooKeeperEndpoint.java | 21 ++++ 30 files changed, 323 insertions(+) diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/docker.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/docker.json index 77b8e34a9b2f..1c820359545b 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/docker.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/docker.json @@ -130,6 +130,11 @@ "CamelDockerDetach": { "index": 80, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "With detach flag", "constantName": "org.apache.camel.component.docker.DockerConstants#DOCKER_DETACH" }, "CamelDockerExecId": { "index": 81, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Exec ID", "constantName": "org.apache.camel.component.docker.DockerConstants#DOCKER_EXEC_ID" } }, + "bodyTypes": { + "consumerOut": { "carriers": [ "pojo" ], "byOption": [ { "option": "operation", "value": "events", "carriers": [ "pojo" ], "javaType": "com.github.dockerjava.api.model.Event" }, { "option": "operation", "value": "stats", "carriers": [ "pojo" ], "javaType": "com.github.dockerjava.api.model.Statistics" } ], "description": "The object of docker-java for each item of the stream: an Event of the daemon with events, the Statistics of the container in CamelDockerContainerId with stats" }, + "producerIn": { "carriers": [ "any" ], "byOption": [ { "option": "operation", "value": "imagecreate", "carriers": [ "stream", "bytes", "text", "file" ] }, { "option": "operation", "value": "imagebuild", "carriers": [ "stream", "file" ] } ], "description": "Not used by most operations, which take their input from the options and headers, such as the container in CamelDockerContainerId. imagecreate reads the image as a stream; imagebuild needs an InputStream or a java.io.File of the bu [...] + "producerOut": { "carriers": [ "pojo", "list", "text", "stream", "null", "unchanged" ], "byOption": [ { "option": "operation", "value": "auth", "carriers": [ "pojo" ], "javaType": "com.github.dockerjava.api.model.AuthResponse" }, { "option": "operation", "value": "info", "carriers": [ "pojo" ], "javaType": "com.github.dockerjava.api.model.Info" }, { "option": "operation", "value": "ping", "carriers": [ "unchanged" ] }, { "option": "operation", "value": "version", "carriers": [ "pojo" [...] + }, "properties": { "operation": { "index": 0, "kind": "path", "displayName": "Operation", "group": "common", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.docker.DockerOperation", "enum": [ "events", "stats", "auth", "info", "ping", "version", "imagebuild", "imagecreate", "imageinspect", "imagelist", "imagepull", "imagepush", "imageremove", "imagesearch", "imagetag", "containerattach", "containercommit", "containercopyfile", "containercreate", "containerdiff", " [...] "email": { "index": 1, "kind": "parameter", "displayName": "Email", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Email address associated with the user" }, diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/git.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/git.json index 518bc72d4f30..00797cf2da4d 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/git.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/git.json @@ -45,6 +45,11 @@ "CamelGitBranchLeaf": { "index": 11, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The leaf", "constantName": "org.apache.camel.component.git.GitConstants#GIT_BRANCH_LEAF" }, "CamelGitBranchObjectId": { "index": 12, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The object id", "constantName": "org.apache.camel.component.git.GitConstants#GIT_BRANCH_OBJECT_ID" } }, + "bodyTypes": { + "consumerOut": { "carriers": [ "text" ], "javaType": "java.lang.String", "description": "The full message of the commit with type=commit, the name of the ref, such as refs\/heads\/main or refs\/tags\/v1, with type=branch and tag. The commit id, author, committer and time, or the object id of the ref, are in headers" }, + "producerIn": { "carriers": [ "any" ], "description": "Not used: the operations take their input from the options and headers, such as the file in CamelGitFilename and the message in CamelGitCommitMessage" }, + "producerOut": { "carriers": [ "unchanged", "pojo", "list", "iterator", "map" ], "byOption": [ { "option": "operation", "value": "status", "carriers": [ "pojo" ], "javaType": "org.eclipse.jgit.api.Status" }, { "option": "operation", "value": "log", "carriers": [ "iterator" ], "javaType": "org.eclipse.jgit.revwalk.RevWalk" }, { "option": "operation", "value": "push", "carriers": [ "list" ] }, { "option": "operation", "value": "pushTag", "carriers": [ "list" ] }, { "option": "operation [...] + }, "properties": { "localPath": { "index": 0, "kind": "path", "displayName": "Local Path", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Local repository path" }, "branchName": { "index": 1, "kind": "parameter", "displayName": "Branch Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The branch name to work on" }, diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/jmx.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/jmx.json index f7ceacbb6d00..92d8d788c001 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/jmx.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/jmx.json @@ -30,6 +30,9 @@ "headers": { "jmx.handback": { "index": 0, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The handback.", "constantName": "org.apache.camel.component.jmx.JMXConstants#JMX_HANDBACK" } }, + "bodyTypes": { + "consumerOut": { "carriers": [ "text" ], "javaType": "java.lang.String", "format": "xml", "byOption": [ { "option": "format", "value": "raw", "carriers": [ "pojo" ], "javaType": "javax.management.Notification" } ], "description": "The notification as XML text, such as an AttributeChangeNotification or a MonitorNotification element; with format=raw the Notification object. The handback object is in the jmx.handback header" } + }, "properties": { "serverURL": { "index": 0, "kind": "path", "displayName": "Server URL", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Server url comes from the remaining endpoint. Use platform to connect to local JVM." }, "format": { "index": 1, "kind": "parameter", "displayName": "Format", "group": "consumer", "label": "", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "xml", "raw" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "xml", "description": "Format for the message body. Either xml or raw. If xml, the notification is serialized to xml. If raw, then the raw java object is set as the body." }, diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/lpr.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/lpr.json index fb174295943b..6c8879855c81 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/lpr.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/lpr.json @@ -30,6 +30,10 @@ "headers": { "PrinterJobName": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the job", "constantName": "org.apache.camel.component.printer.PrinterEndpoint#JOB_NAME" } }, + "bodyTypes": { + "producerIn": { "carriers": [ "text", "bytes", "stream", "file" ], "description": "The document to print, read as a stream: text, bytes, a stream or a file, in the format of the mimeType and flavor options. A Map, a POJO, a number or no body is not converted: the print job gets no data" }, + "producerOut": { "carriers": [ "unchanged" ] } + }, "properties": { "hostname": { "index": 0, "kind": "path", "displayName": "Hostname", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.printer.PrinterConfiguration", "configurationField": "config", "description": "Hostname of the printer" }, "port": { "index": 1, "kind": "path", "displayName": "Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.printer.PrinterConfiguration", "configurationField": "config", "description": "Port number of the printer" }, diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/master.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/master.json index 7449a926a169..a42453756774 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/master.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/master.json @@ -31,6 +31,9 @@ "service": { "index": 4, "kind": "property", "displayName": "Service", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.cluster.CamelClusterService", "deprecated": false, "autowired": false, "secret": false, "description": "Inject the service to use." }, "serviceSelector": { "index": 5, "kind": "property", "displayName": "Service Selector", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.cluster.CamelClusterService.Selector", "deprecated": false, "autowired": false, "secret": false, "description": "Inject the service selector used to lookup the CamelClusterService to use." } }, + "bodyTypes": { + "consumerOut": { "carriers": [ "unknown" ], "description": "The body the consumer of the delegate endpoint (delegateUri) makes, such as the file of a file consumer: only the node that holds the leadership of the namespace in the cluster service runs it" } + }, "properties": { "namespace": { "index": 0, "kind": "path", "displayName": "Namespace", "group": "consumer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cluster namespace to use" }, "delegateUri": { "index": 1, "kind": "path", "displayName": "Delegate Uri", "group": "consumer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The endpoint uri to use in master\/slave mode" }, diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/metrics.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/metrics.json index ce452f5c2e2e..fc8969072b83 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/metrics.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/metrics.json @@ -38,6 +38,10 @@ "CamelMetricsGaugeSubject": { "index": 5, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override subject value in URI", "constantName": "org.apache.camel.component.metrics.MetricsConstants#HEADER_GAUGE_SUBJECT" }, "CamelMetricsName": { "index": 6, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override name value in URI", "constantName": "org.apache.camel.component.metrics.MetricsConstants#HEADER_METRIC_NAME" } }, + "bodyTypes": { + "producerIn": { "carriers": [ "any" ], "description": "Not used: the values come from the options or the CamelMetrics headers, such as CamelMetricsCounterIncrement or CamelMetricsGaugeSubject" }, + "producerOut": { "carriers": [ "unchanged" ], "description": "Unchanged; the CamelMetrics headers are removed" } + }, "properties": { "metricsType": { "index": 0, "kind": "path", "displayName": "Metrics Type", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.metrics.MetricsType", "enum": [ "gauge", "counter", "histogram", "meter", "timer" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Type of metrics" }, "metricsName": { "index": 1, "kind": "path", "displayName": "Metrics Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of metrics" }, diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/opentelemetry-metrics.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/opentelemetry-metrics.json index 3cf7ea2565b0..3ae287b7bcfc 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/opentelemetry-metrics.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/opentelemetry-metrics.json @@ -37,6 +37,10 @@ "CamelMetricsDescription": { "index": 5, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override description value in URI", "constantName": "org.apache.camel.opentelemetry.metrics.OpenTelemetryConstants#HEADER_METRIC_DESCRIPTION" }, "CamelMetricsAttributes": { "index": 6, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "io.opentelemetry.api.common.Attributes", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To augment meter attributes defined as URI parameters", "constantName": "org.apache.camel.opentelemetry.metrics.OpenTelemetryConstants#HEADER_METRIC_ATTRIBUTES" } }, + "bodyTypes": { + "producerIn": { "carriers": [ "any" ], "description": "Not used, unless an option such as increment, decrement or value is a simple expression that reads it, which must then give a number. The CamelMetrics headers override the options" }, + "producerOut": { "carriers": [ "unchanged" ], "description": "Unchanged; the CamelMetrics headers are removed" } + }, "properties": { "metricType": { "index": 0, "kind": "path", "displayName": "Metric Type", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.opentelemetry.metrics.InstrumentType", "enum": [ "counter", "summary", "timer" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Type of metrics" }, "metricName": { "index": 1, "kind": "path", "displayName": "Metric Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "supportSimpleExpression": true, "description": "Name of metric" }, diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/shell.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/shell.json index e98010761a1e..2664c1377836 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/shell.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/shell.json @@ -29,6 +29,10 @@ "bannerResource": { "index": 2, "kind": "property", "displayName": "Banner Resource", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "camel-shell-banner.txt", "description": "Classpath resource path to a custom banner text file" }, "showBanner": { "index": 3, "kind": "property", "displayName": "Show Banner", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to print the Camel banner on startup" } }, + "bodyTypes": { + "consumerOut": { "carriers": [ "text" ], "javaType": "java.lang.String", "description": "The line the user typed at the prompt, as typed (an empty line too); exit or end of input stops the CamelContext" }, + "consumerReply": { "carriers": [ "text", "bytes", "stream", "value", "null" ], "description": "The body the route ends with, converted to text and printed to the terminal; null prints nothing, and a failed exchange prints the message of its exception. A Map or a List prints as its Java toString: marshal it first" } + }, "properties": { "prompt": { "index": 0, "kind": "path", "displayName": "Prompt", "group": "consumer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Shell prompt" }, "color": { "index": 1, "kind": "parameter", "displayName": "Color", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "cyan", "description": "Prompt color: black, red, green, yellow, blue, magenta, cyan, white" }, diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/zookeeper-master.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/zookeeper-master.json index 30983b92725e..5d1bee8e1cb1 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/zookeeper-master.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/zookeeper-master.json @@ -33,6 +33,9 @@ "curator": { "index": 6, "kind": "property", "displayName": "Curator", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.curator.framework.CuratorFramework", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom configured CuratorFramework as connection to zookeeper ensemble." }, "zooKeeperPassword": { "index": 7, "kind": "property", "displayName": "Zoo Keeper Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "security": "secret", "description": "The password to use when connecting to the zookeeper ensemble" } }, + "bodyTypes": { + "consumerOut": { "carriers": [ "unknown" ], "description": "The body the consumer of the delegate endpoint (consumerEndpointUri) makes, such as the file of a file consumer: only the node that holds the leadership of the group runs it" } + }, "properties": { "groupName": { "index": 0, "kind": "path", "displayName": "Group Name", "group": "consumer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cluster group to use" }, "consumerEndpointUri": { "index": 1, "kind": "path", "displayName": "Consumer Endpoint Uri", "group": "consumer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The consumer endpoint to use in master\/slave mode" }, diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/zookeeper.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/zookeeper.json index 9b5f89f00512..433a6fc5f69f 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/zookeeper.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/zookeeper.json @@ -45,6 +45,11 @@ "CamelZookeeperEventType": { "index": 5, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "org.apache.zookeeper.Watcher.Event.EventType", "enum": [ "None", "NodeCreated", "NodeDeleted", "NodeDataChanged", "NodeChildrenChanged", "DataWatchRemoved", "ChildWatchRemoved", "PersistentWatchRemoved" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The event type", "constantName": "org.apach [...] "CamelZookeeperOperation": { "index": 6, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation to perform", "constantName": "org.apache.camel.component.zookeeper.ZooKeeperMessage#ZOOKEEPER_OPERATION" } }, + "bodyTypes": { + "consumerOut": { "carriers": [ "bytes", "null" ], "dependsOn": [ "sendEmptyMessageOnDelete" ], "byOption": [ { "option": "listChildren", "value": "true", "carriers": [ "list" ] } ], "description": "The data of the znode as bytes, and no body when the znode is deleted; with listChildren, the List of the names of its child znodes. The CamelZooKeeperNode and CamelZookeeperStatistics headers say which znode and its version" }, + "producerIn": { "carriers": [ "text", "bytes", "stream", "file" ], "description": "The data to store in the znode, converted to bytes. A Map, a POJO or a number is not converted and stores no data; with the CamelZookeeperOperation header set to DELETE the body is not read" }, + "producerOut": { "carriers": [ "unchanged", "bytes", "text", "value" ], "byOption": [ { "option": "listChildren", "value": "true", "carriers": [ "list", "unchanged" ] } ], "description": "InOnly writes without waiting and leaves the body unchanged. InOut waits and sets the bytes written, the path of the znode as text when it was created, or true for a DELETE; with listChildren, the List of the names of the child znodes of the path" } + }, "properties": { "serverUrls": { "index": 0, "kind": "path", "displayName": "Server Urls", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.zookeeper.ZooKeeperConfiguration", "configurationField": "configuration", "description": "The zookeeper server hosts (multiple servers can be separated by comma)" }, "path": { "index": 1, "kind": "path", "displayName": "Path", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.zookeeper.ZooKeeperConfiguration", "configurationField": "configuration", "description": "The node in the ZooKeeper server (aka znode)" }, diff --git a/components/camel-docker/src/generated/resources/META-INF/org/apache/camel/component/docker/docker.json b/components/camel-docker/src/generated/resources/META-INF/org/apache/camel/component/docker/docker.json index 77b8e34a9b2f..1c820359545b 100644 --- a/components/camel-docker/src/generated/resources/META-INF/org/apache/camel/component/docker/docker.json +++ b/components/camel-docker/src/generated/resources/META-INF/org/apache/camel/component/docker/docker.json @@ -130,6 +130,11 @@ "CamelDockerDetach": { "index": 80, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "With detach flag", "constantName": "org.apache.camel.component.docker.DockerConstants#DOCKER_DETACH" }, "CamelDockerExecId": { "index": 81, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Exec ID", "constantName": "org.apache.camel.component.docker.DockerConstants#DOCKER_EXEC_ID" } }, + "bodyTypes": { + "consumerOut": { "carriers": [ "pojo" ], "byOption": [ { "option": "operation", "value": "events", "carriers": [ "pojo" ], "javaType": "com.github.dockerjava.api.model.Event" }, { "option": "operation", "value": "stats", "carriers": [ "pojo" ], "javaType": "com.github.dockerjava.api.model.Statistics" } ], "description": "The object of docker-java for each item of the stream: an Event of the daemon with events, the Statistics of the container in CamelDockerContainerId with stats" }, + "producerIn": { "carriers": [ "any" ], "byOption": [ { "option": "operation", "value": "imagecreate", "carriers": [ "stream", "bytes", "text", "file" ] }, { "option": "operation", "value": "imagebuild", "carriers": [ "stream", "file" ] } ], "description": "Not used by most operations, which take their input from the options and headers, such as the container in CamelDockerContainerId. imagecreate reads the image as a stream; imagebuild needs an InputStream or a java.io.File of the bu [...] + "producerOut": { "carriers": [ "pojo", "list", "text", "stream", "null", "unchanged" ], "byOption": [ { "option": "operation", "value": "auth", "carriers": [ "pojo" ], "javaType": "com.github.dockerjava.api.model.AuthResponse" }, { "option": "operation", "value": "info", "carriers": [ "pojo" ], "javaType": "com.github.dockerjava.api.model.Info" }, { "option": "operation", "value": "ping", "carriers": [ "unchanged" ] }, { "option": "operation", "value": "version", "carriers": [ "pojo" [...] + }, "properties": { "operation": { "index": 0, "kind": "path", "displayName": "Operation", "group": "common", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.docker.DockerOperation", "enum": [ "events", "stats", "auth", "info", "ping", "version", "imagebuild", "imagecreate", "imageinspect", "imagelist", "imagepull", "imagepush", "imageremove", "imagesearch", "imagetag", "containerattach", "containercommit", "containercopyfile", "containercreate", "containerdiff", " [...] "email": { "index": 1, "kind": "parameter", "displayName": "Email", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Email address associated with the user" }, diff --git a/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerEndpoint.java b/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerEndpoint.java index b86840289c49..48981f10659d 100644 --- a/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerEndpoint.java +++ b/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerEndpoint.java @@ -27,6 +27,9 @@ import org.apache.camel.component.docker.consumer.DockerStatsConsumer; import org.apache.camel.component.docker.exception.DockerException; import org.apache.camel.component.docker.producer.AsyncDockerProducer; import org.apache.camel.component.docker.producer.DockerProducer; +import org.apache.camel.spi.BodyType; +import org.apache.camel.spi.BodyType.Carrier; +import org.apache.camel.spi.BodyTypes; import org.apache.camel.spi.EndpointServiceLocation; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; @@ -38,6 +41,109 @@ import org.apache.camel.support.DefaultEndpoint; @UriEndpoint(firstVersion = "2.15.0", scheme = "docker", title = "Docker", syntax = "docker:operation", category = { Category.CLOUD, Category.CONTAINER }, lenientProperties = true, headersClass = DockerConstants.class) +@BodyTypes(consumerOut = @BodyType(value = Carrier.POJO, + byOption = { + @BodyType.When(option = "operation", value = "events", carriers = Carrier.POJO, + javaType = "com.github.dockerjava.api.model.Event"), + @BodyType.When(option = "operation", value = "stats", carriers = Carrier.POJO, + javaType = "com.github.dockerjava.api.model.Statistics") }, + description = "The object of docker-java for each item of the stream: an Event of the" + + " daemon with events, the Statistics of the container in" + + " CamelDockerContainerId with stats"), + producerIn = @BodyType(value = Carrier.ANY, + byOption = { + @BodyType.When(option = "operation", value = "imagecreate", + carriers = { + Carrier.STREAM, Carrier.BYTES, Carrier.TEXT, Carrier.FILE }), + @BodyType.When(option = "operation", value = "imagebuild", + carriers = { Carrier.STREAM, Carrier.FILE }) }, + description = "Not used by most operations, which take their input from the options and" + + " headers, such as the container in CamelDockerContainerId. imagecreate" + + " reads the image as a stream; imagebuild needs an InputStream or a" + + " java.io.File of the build context, and another body is logged as an" + + " error"), + producerOut = @BodyType(value = { + Carrier.POJO, Carrier.LIST, Carrier.TEXT, Carrier.STREAM, Carrier.NULL, + Carrier.UNCHANGED }, + byOption = { + @BodyType.When(option = "operation", value = "auth", carriers = Carrier.POJO, + javaType = "com.github.dockerjava.api.model.AuthResponse"), + @BodyType.When(option = "operation", value = "info", carriers = Carrier.POJO, + javaType = "com.github.dockerjava.api.model.Info"), + @BodyType.When(option = "operation", value = "ping", carriers = Carrier.UNCHANGED), + @BodyType.When(option = "operation", value = "version", carriers = Carrier.POJO, + javaType = "com.github.dockerjava.api.model.Version"), + @BodyType.When(option = "operation", value = "imagebuild", + carriers = { Carrier.TEXT, Carrier.NULL }), + @BodyType.When(option = "operation", value = "imagecreate", carriers = Carrier.POJO, + javaType = "com.github.dockerjava.api.command.CreateImageResponse"), + @BodyType.When(option = "operation", value = "imageinspect", carriers = Carrier.POJO, + javaType = "com.github.dockerjava.api.command.InspectImageResponse"), + @BodyType.When(option = "operation", value = "imagelist", carriers = Carrier.LIST), + @BodyType.When(option = "operation", value = "imagepull", carriers = Carrier.POJO, + javaType = "com.github.dockerjava.api.command.PullImageResultCallback"), + @BodyType.When(option = "operation", value = "imagepush", carriers = Carrier.POJO), + @BodyType.When(option = "operation", value = "imageremove", + carriers = Carrier.UNCHANGED), + @BodyType.When(option = "operation", value = "imagesearch", carriers = Carrier.LIST), + @BodyType.When(option = "operation", value = "imagetag", + carriers = Carrier.UNCHANGED), + @BodyType.When(option = "operation", value = "containerattach", + carriers = Carrier.POJO), + @BodyType.When(option = "operation", value = "containercommit", + carriers = Carrier.TEXT, + javaType = "java.lang.String"), + @BodyType.When(option = "operation", value = "containercopyfile", + carriers = Carrier.STREAM), + @BodyType.When(option = "operation", value = "containercreate", + carriers = Carrier.POJO, + javaType = "com.github.dockerjava.api.command.CreateContainerResponse"), + @BodyType.When(option = "operation", value = "containerdiff", + carriers = Carrier.LIST), + @BodyType.When(option = "operation", value = "inspectcontainer", + carriers = Carrier.POJO, + javaType = "com.github.dockerjava.api.command.InspectContainerResponse"), + @BodyType.When(option = "operation", value = "containerkill", + carriers = Carrier.UNCHANGED), + @BodyType.When(option = "operation", value = "containerlist", + carriers = Carrier.LIST), + @BodyType.When(option = "operation", value = "containerlog", + carriers = Carrier.POJO), + @BodyType.When(option = "operation", value = "containerpause", + carriers = Carrier.UNCHANGED), + @BodyType.When(option = "operation", value = "containerrestart", + carriers = Carrier.UNCHANGED), + @BodyType.When(option = "operation", value = "containerremove", + carriers = Carrier.UNCHANGED), + @BodyType.When(option = "operation", value = "containerstart", + carriers = Carrier.UNCHANGED), + @BodyType.When(option = "operation", value = "containerstop", + carriers = Carrier.UNCHANGED), + @BodyType.When(option = "operation", value = "containertop", carriers = Carrier.POJO, + javaType = "com.github.dockerjava.api.command.TopContainerResponse"), + @BodyType.When(option = "operation", value = "containerunpause", + carriers = Carrier.UNCHANGED), + @BodyType.When(option = "operation", value = "containerwait", + carriers = Carrier.POJO, + javaType = "com.github.dockerjava.api.command.WaitContainerResultCallback"), + @BodyType.When(option = "operation", value = "execcreate", carriers = Carrier.POJO, + javaType = "com.github.dockerjava.api.command.ExecCreateCmdResponse"), + @BodyType.When(option = "operation", value = "execstart", carriers = Carrier.POJO), + @BodyType.When(option = "operation", value = "networkconnect", + carriers = Carrier.UNCHANGED), + @BodyType.When(option = "operation", value = "networkcreate", + carriers = Carrier.POJO, + javaType = "com.github.dockerjava.api.command.CreateNetworkResponse"), + @BodyType.When(option = "operation", value = "networkremove", + carriers = Carrier.UNCHANGED) }, + description = "The response of docker-java for the operation, such as the Version of" + + " version and a List of Containers for containerlist; the operations" + + " without a response, such as ping and containerstart, keep the body." + + " The streaming operations (imagepull, imagepush, containerattach," + + " containerlog, containerwait, execstart) give the docker-java callback" + + " once the stream is done, not its frames; imagebuild gives the image id" + + " of the last line of the output, null when it is not the" + + " Successfully built line")) public class DockerEndpoint extends DefaultEndpoint implements EndpointServiceLocation { @UriParam diff --git a/components/camel-git/src/generated/resources/META-INF/org/apache/camel/component/git/git.json b/components/camel-git/src/generated/resources/META-INF/org/apache/camel/component/git/git.json index 518bc72d4f30..00797cf2da4d 100644 --- a/components/camel-git/src/generated/resources/META-INF/org/apache/camel/component/git/git.json +++ b/components/camel-git/src/generated/resources/META-INF/org/apache/camel/component/git/git.json @@ -45,6 +45,11 @@ "CamelGitBranchLeaf": { "index": 11, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The leaf", "constantName": "org.apache.camel.component.git.GitConstants#GIT_BRANCH_LEAF" }, "CamelGitBranchObjectId": { "index": 12, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The object id", "constantName": "org.apache.camel.component.git.GitConstants#GIT_BRANCH_OBJECT_ID" } }, + "bodyTypes": { + "consumerOut": { "carriers": [ "text" ], "javaType": "java.lang.String", "description": "The full message of the commit with type=commit, the name of the ref, such as refs\/heads\/main or refs\/tags\/v1, with type=branch and tag. The commit id, author, committer and time, or the object id of the ref, are in headers" }, + "producerIn": { "carriers": [ "any" ], "description": "Not used: the operations take their input from the options and headers, such as the file in CamelGitFilename and the message in CamelGitCommitMessage" }, + "producerOut": { "carriers": [ "unchanged", "pojo", "list", "iterator", "map" ], "byOption": [ { "option": "operation", "value": "status", "carriers": [ "pojo" ], "javaType": "org.eclipse.jgit.api.Status" }, { "option": "operation", "value": "log", "carriers": [ "iterator" ], "javaType": "org.eclipse.jgit.revwalk.RevWalk" }, { "option": "operation", "value": "push", "carriers": [ "list" ] }, { "option": "operation", "value": "pushTag", "carriers": [ "list" ] }, { "option": "operation [...] + }, "properties": { "localPath": { "index": 0, "kind": "path", "displayName": "Local Path", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Local repository path" }, "branchName": { "index": 1, "kind": "parameter", "displayName": "Branch Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The branch name to work on" }, diff --git a/components/camel-git/src/main/java/org/apache/camel/component/git/GitEndpoint.java b/components/camel-git/src/main/java/org/apache/camel/component/git/GitEndpoint.java index b35d55cc304c..6f2e98bfffb9 100644 --- a/components/camel-git/src/main/java/org/apache/camel/component/git/GitEndpoint.java +++ b/components/camel-git/src/main/java/org/apache/camel/component/git/GitEndpoint.java @@ -25,6 +25,9 @@ import org.apache.camel.component.git.consumer.GitCommitConsumer; import org.apache.camel.component.git.consumer.GitTagConsumer; import org.apache.camel.component.git.consumer.GitType; import org.apache.camel.component.git.producer.GitProducer; +import org.apache.camel.spi.BodyType; +import org.apache.camel.spi.BodyType.Carrier; +import org.apache.camel.spi.BodyTypes; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; @@ -36,6 +39,62 @@ import org.apache.camel.support.ScheduledPollEndpoint; */ @UriEndpoint(firstVersion = "2.16.0", scheme = "git", title = "Git", syntax = "git:localPath", category = { Category.FILE }, headersClass = GitConstants.class) +@BodyTypes(consumerOut = @BodyType(value = Carrier.TEXT, javaType = "java.lang.String", + description = "The full message of the commit with type=commit, the name of the ref," + + " such as refs/heads/main or refs/tags/v1, with type=branch and tag. The" + + " commit id, author, committer and time, or the object id of the ref, are" + + " in headers"), + producerIn = @BodyType(value = Carrier.ANY, + description = "Not used: the operations take their input from the options and headers," + + " such as the file in CamelGitFilename and the message in" + + " CamelGitCommitMessage"), + producerOut = @BodyType(value = { Carrier.UNCHANGED, Carrier.POJO, Carrier.LIST, Carrier.ITERATOR, Carrier.MAP }, + byOption = { + @BodyType.When(option = "operation", value = "status", carriers = Carrier.POJO, + javaType = "org.eclipse.jgit.api.Status"), + @BodyType.When(option = "operation", value = "log", carriers = Carrier.ITERATOR, + javaType = "org.eclipse.jgit.revwalk.RevWalk"), + @BodyType.When(option = "operation", value = "push", carriers = Carrier.LIST), + @BodyType.When(option = "operation", value = "pushTag", carriers = Carrier.LIST), + @BodyType.When(option = "operation", value = "pull", carriers = Carrier.POJO, + javaType = "org.eclipse.jgit.api.PullResult"), + @BodyType.When(option = "operation", value = "merge", carriers = Carrier.POJO, + javaType = "org.eclipse.jgit.api.MergeResult"), + @BodyType.When(option = "operation", value = "cherryPick", carriers = Carrier.POJO, + javaType = "org.eclipse.jgit.api.CherryPickResult"), + @BodyType.When(option = "operation", value = "showBranches", + carriers = Carrier.LIST), + @BodyType.When(option = "operation", value = "showTags", carriers = Carrier.LIST), + @BodyType.When(option = "operation", value = "clean", carriers = Carrier.LIST), + @BodyType.When(option = "operation", value = "gc", carriers = Carrier.MAP, + javaType = "java.util.Properties"), + @BodyType.When(option = "operation", value = "remoteAdd", carriers = Carrier.POJO, + javaType = "org.eclipse.jgit.transport.RemoteConfig"), + @BodyType.When(option = "operation", value = "remoteList", carriers = Carrier.LIST), + @BodyType.When(option = "operation", value = "add", carriers = Carrier.UNCHANGED), + @BodyType.When(option = "operation", value = "checkout", + carriers = Carrier.UNCHANGED), + @BodyType.When(option = "operation", value = "clone", carriers = Carrier.UNCHANGED), + @BodyType.When(option = "operation", value = "commit", carriers = Carrier.UNCHANGED), + @BodyType.When(option = "operation", value = "commitAll", + carriers = Carrier.UNCHANGED), + @BodyType.When(option = "operation", value = "createBranch", + carriers = Carrier.UNCHANGED), + @BodyType.When(option = "operation", value = "createTag", + carriers = Carrier.UNCHANGED), + @BodyType.When(option = "operation", value = "deleteBranch", + carriers = Carrier.UNCHANGED), + @BodyType.When(option = "operation", value = "deleteTag", + carriers = Carrier.UNCHANGED), + @BodyType.When(option = "operation", value = "init", carriers = Carrier.UNCHANGED), + @BodyType.When(option = "operation", value = "remove", + carriers = Carrier.UNCHANGED) }, + description = "The result of JGit for the operation: the Status of status, the commits of" + + " log as a RevWalk read once, a List of Refs for showBranches and" + + " showTags, the PushResults of push, the Properties of the statistics of" + + " gc. The operations that change the repository, such as add and commit," + + " keep the body. Without the operation option the operation is taken" + + " from the CamelGitOperation header")) public class GitEndpoint extends ScheduledPollEndpoint { @UriPath diff --git a/components/camel-jmx/src/generated/resources/META-INF/org/apache/camel/component/jmx/jmx.json b/components/camel-jmx/src/generated/resources/META-INF/org/apache/camel/component/jmx/jmx.json index f7ceacbb6d00..92d8d788c001 100644 --- a/components/camel-jmx/src/generated/resources/META-INF/org/apache/camel/component/jmx/jmx.json +++ b/components/camel-jmx/src/generated/resources/META-INF/org/apache/camel/component/jmx/jmx.json @@ -30,6 +30,9 @@ "headers": { "jmx.handback": { "index": 0, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The handback.", "constantName": "org.apache.camel.component.jmx.JMXConstants#JMX_HANDBACK" } }, + "bodyTypes": { + "consumerOut": { "carriers": [ "text" ], "javaType": "java.lang.String", "format": "xml", "byOption": [ { "option": "format", "value": "raw", "carriers": [ "pojo" ], "javaType": "javax.management.Notification" } ], "description": "The notification as XML text, such as an AttributeChangeNotification or a MonitorNotification element; with format=raw the Notification object. The handback object is in the jmx.handback header" } + }, "properties": { "serverURL": { "index": 0, "kind": "path", "displayName": "Server URL", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Server url comes from the remaining endpoint. Use platform to connect to local JVM." }, "format": { "index": 1, "kind": "parameter", "displayName": "Format", "group": "consumer", "label": "", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "xml", "raw" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "xml", "description": "Format for the message body. Either xml or raw. If xml, the notification is serialized to xml. If raw, then the raw java object is set as the body." }, diff --git a/components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXEndpoint.java b/components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXEndpoint.java index 25c4556f4cd8..8b58608dede7 100644 --- a/components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXEndpoint.java +++ b/components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXEndpoint.java @@ -28,6 +28,9 @@ import org.apache.camel.Category; import org.apache.camel.Consumer; import org.apache.camel.Processor; import org.apache.camel.Producer; +import org.apache.camel.spi.BodyType; +import org.apache.camel.spi.BodyType.Carrier; +import org.apache.camel.spi.BodyTypes; import org.apache.camel.spi.EndpointServiceLocation; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriEndpoint; @@ -53,6 +56,12 @@ import org.apache.camel.util.ObjectHelper; */ @UriEndpoint(firstVersion = "2.6.0", scheme = "jmx", title = "JMX", syntax = "jmx:serverURL", consumerOnly = true, remote = false, category = { Category.MONITORING }, headersClass = JMXConstants.class) +@BodyTypes(consumerOut = @BodyType(value = Carrier.TEXT, javaType = "java.lang.String", format = "xml", + byOption = @BodyType.When(option = "format", value = "raw", carriers = Carrier.POJO, + javaType = "javax.management.Notification"), + description = "The notification as XML text, such as an AttributeChangeNotification" + + " or a MonitorNotification element; with format=raw the Notification" + + " object. The handback object is in the jmx.handback header")) public class JMXEndpoint extends DefaultEndpoint implements EndpointServiceLocation { // error messages as constants so they can be asserted on from unit tests diff --git a/components/camel-master/src/generated/resources/META-INF/org/apache/camel/component/master/master.json b/components/camel-master/src/generated/resources/META-INF/org/apache/camel/component/master/master.json index 7449a926a169..a42453756774 100644 --- a/components/camel-master/src/generated/resources/META-INF/org/apache/camel/component/master/master.json +++ b/components/camel-master/src/generated/resources/META-INF/org/apache/camel/component/master/master.json @@ -31,6 +31,9 @@ "service": { "index": 4, "kind": "property", "displayName": "Service", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.cluster.CamelClusterService", "deprecated": false, "autowired": false, "secret": false, "description": "Inject the service to use." }, "serviceSelector": { "index": 5, "kind": "property", "displayName": "Service Selector", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.cluster.CamelClusterService.Selector", "deprecated": false, "autowired": false, "secret": false, "description": "Inject the service selector used to lookup the CamelClusterService to use." } }, + "bodyTypes": { + "consumerOut": { "carriers": [ "unknown" ], "description": "The body the consumer of the delegate endpoint (delegateUri) makes, such as the file of a file consumer: only the node that holds the leadership of the namespace in the cluster service runs it" } + }, "properties": { "namespace": { "index": 0, "kind": "path", "displayName": "Namespace", "group": "consumer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cluster namespace to use" }, "delegateUri": { "index": 1, "kind": "path", "displayName": "Delegate Uri", "group": "consumer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The endpoint uri to use in master\/slave mode" }, diff --git a/components/camel-master/src/main/java/org/apache/camel/component/master/MasterEndpoint.java b/components/camel-master/src/main/java/org/apache/camel/component/master/MasterEndpoint.java index 64e22c5ae757..2d7850ffff01 100644 --- a/components/camel-master/src/main/java/org/apache/camel/component/master/MasterEndpoint.java +++ b/components/camel-master/src/main/java/org/apache/camel/component/master/MasterEndpoint.java @@ -25,6 +25,9 @@ import org.apache.camel.Producer; import org.apache.camel.api.management.ManagedAttribute; import org.apache.camel.api.management.ManagedResource; import org.apache.camel.cluster.CamelClusterService; +import org.apache.camel.spi.BodyType; +import org.apache.camel.spi.BodyType.Carrier; +import org.apache.camel.spi.BodyTypes; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriPath; @@ -36,6 +39,10 @@ import org.apache.camel.support.DefaultEndpoint; @ManagedResource(description = "Managed Master Endpoint") @UriEndpoint(firstVersion = "2.20.0", scheme = "master", syntax = "master:namespace:delegateUri", title = "Master", consumerOnly = true, lenientProperties = true, category = { Category.CLUSTERING }) +@BodyTypes(consumerOut = @BodyType(value = Carrier.UNKNOWN, + description = "The body the consumer of the delegate endpoint (delegateUri) makes, such as" + + " the file of a file consumer: only the node that holds the leadership of" + + " the namespace in the cluster service runs it")) public class MasterEndpoint extends DefaultEndpoint implements DelegateEndpoint { private final Endpoint delegateEndpoint; diff --git a/components/camel-metrics/src/generated/resources/META-INF/org/apache/camel/component/metrics/metrics.json b/components/camel-metrics/src/generated/resources/META-INF/org/apache/camel/component/metrics/metrics.json index ce452f5c2e2e..fc8969072b83 100644 --- a/components/camel-metrics/src/generated/resources/META-INF/org/apache/camel/component/metrics/metrics.json +++ b/components/camel-metrics/src/generated/resources/META-INF/org/apache/camel/component/metrics/metrics.json @@ -38,6 +38,10 @@ "CamelMetricsGaugeSubject": { "index": 5, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Object", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override subject value in URI", "constantName": "org.apache.camel.component.metrics.MetricsConstants#HEADER_GAUGE_SUBJECT" }, "CamelMetricsName": { "index": 6, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override name value in URI", "constantName": "org.apache.camel.component.metrics.MetricsConstants#HEADER_METRIC_NAME" } }, + "bodyTypes": { + "producerIn": { "carriers": [ "any" ], "description": "Not used: the values come from the options or the CamelMetrics headers, such as CamelMetricsCounterIncrement or CamelMetricsGaugeSubject" }, + "producerOut": { "carriers": [ "unchanged" ], "description": "Unchanged; the CamelMetrics headers are removed" } + }, "properties": { "metricsType": { "index": 0, "kind": "path", "displayName": "Metrics Type", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.metrics.MetricsType", "enum": [ "gauge", "counter", "histogram", "meter", "timer" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Type of metrics" }, "metricsName": { "index": 1, "kind": "path", "displayName": "Metrics Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of metrics" }, diff --git a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsEndpoint.java b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsEndpoint.java index d8987cf49d47..f83b3b799365 100644 --- a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsEndpoint.java +++ b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsEndpoint.java @@ -23,6 +23,9 @@ import org.apache.camel.Consumer; import org.apache.camel.Processor; import org.apache.camel.Producer; import org.apache.camel.RuntimeCamelException; +import org.apache.camel.spi.BodyType; +import org.apache.camel.spi.BodyType.Carrier; +import org.apache.camel.spi.BodyTypes; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; @@ -35,6 +38,10 @@ import org.apache.camel.support.DefaultEndpoint; @UriEndpoint(firstVersion = "2.14.0", scheme = "metrics", title = "Metrics", syntax = "metrics:metricsType:metricsName", remote = false, internal = true, producerOnly = true, category = { Category.MONITORING }, headersClass = MetricsConstants.class) +@BodyTypes(producerIn = @BodyType(value = Carrier.ANY, + description = "Not used: the values come from the options or the CamelMetrics headers," + + " such as CamelMetricsCounterIncrement or CamelMetricsGaugeSubject"), + producerOut = @BodyType(value = Carrier.UNCHANGED, description = "Unchanged; the CamelMetrics headers are removed")) public class MetricsEndpoint extends DefaultEndpoint { protected final MetricRegistry registry; diff --git a/components/camel-opentelemetry-metrics/src/generated/resources/META-INF/org/apache/camel/opentelemetry/metrics/opentelemetry-metrics.json b/components/camel-opentelemetry-metrics/src/generated/resources/META-INF/org/apache/camel/opentelemetry/metrics/opentelemetry-metrics.json index 3cf7ea2565b0..3ae287b7bcfc 100644 --- a/components/camel-opentelemetry-metrics/src/generated/resources/META-INF/org/apache/camel/opentelemetry/metrics/opentelemetry-metrics.json +++ b/components/camel-opentelemetry-metrics/src/generated/resources/META-INF/org/apache/camel/opentelemetry/metrics/opentelemetry-metrics.json @@ -37,6 +37,10 @@ "CamelMetricsDescription": { "index": 5, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Override description value in URI", "constantName": "org.apache.camel.opentelemetry.metrics.OpenTelemetryConstants#HEADER_METRIC_DESCRIPTION" }, "CamelMetricsAttributes": { "index": 6, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "io.opentelemetry.api.common.Attributes", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To augment meter attributes defined as URI parameters", "constantName": "org.apache.camel.opentelemetry.metrics.OpenTelemetryConstants#HEADER_METRIC_ATTRIBUTES" } }, + "bodyTypes": { + "producerIn": { "carriers": [ "any" ], "description": "Not used, unless an option such as increment, decrement or value is a simple expression that reads it, which must then give a number. The CamelMetrics headers override the options" }, + "producerOut": { "carriers": [ "unchanged" ], "description": "Unchanged; the CamelMetrics headers are removed" } + }, "properties": { "metricType": { "index": 0, "kind": "path", "displayName": "Metric Type", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.opentelemetry.metrics.InstrumentType", "enum": [ "counter", "summary", "timer" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Type of metrics" }, "metricName": { "index": 1, "kind": "path", "displayName": "Metric Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "supportSimpleExpression": true, "description": "Name of metric" }, diff --git a/components/camel-opentelemetry-metrics/src/main/java/org/apache/camel/opentelemetry/metrics/OpenTelemetryEndpoint.java b/components/camel-opentelemetry-metrics/src/main/java/org/apache/camel/opentelemetry/metrics/OpenTelemetryEndpoint.java index 8a297c8960b6..1359e0feb136 100644 --- a/components/camel-opentelemetry-metrics/src/main/java/org/apache/camel/opentelemetry/metrics/OpenTelemetryEndpoint.java +++ b/components/camel-opentelemetry-metrics/src/main/java/org/apache/camel/opentelemetry/metrics/OpenTelemetryEndpoint.java @@ -27,6 +27,9 @@ import org.apache.camel.Component; import org.apache.camel.Consumer; import org.apache.camel.Processor; import org.apache.camel.Producer; +import org.apache.camel.spi.BodyType; +import org.apache.camel.spi.BodyType.Carrier; +import org.apache.camel.spi.BodyTypes; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; @@ -37,6 +40,11 @@ import org.apache.camel.support.DefaultEndpoint; remote = false, syntax = "opentelemetry-metrics:metricType:metricName", producerOnly = true, category = { Category.MONITORING }, headersClass = OpenTelemetryConstants.class) +@BodyTypes(producerIn = @BodyType(value = Carrier.ANY, + description = "Not used, unless an option such as increment, decrement or value is a simple" + + " expression that reads it, which must then give a number. The CamelMetrics" + + " headers override the options"), + producerOut = @BodyType(value = Carrier.UNCHANGED, description = "Unchanged; the CamelMetrics headers are removed")) public class OpenTelemetryEndpoint extends DefaultEndpoint { protected Meter meter; diff --git a/components/camel-printer/src/generated/resources/META-INF/org/apache/camel/component/printer/lpr.json b/components/camel-printer/src/generated/resources/META-INF/org/apache/camel/component/printer/lpr.json index fb174295943b..6c8879855c81 100644 --- a/components/camel-printer/src/generated/resources/META-INF/org/apache/camel/component/printer/lpr.json +++ b/components/camel-printer/src/generated/resources/META-INF/org/apache/camel/component/printer/lpr.json @@ -30,6 +30,10 @@ "headers": { "PrinterJobName": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the job", "constantName": "org.apache.camel.component.printer.PrinterEndpoint#JOB_NAME" } }, + "bodyTypes": { + "producerIn": { "carriers": [ "text", "bytes", "stream", "file" ], "description": "The document to print, read as a stream: text, bytes, a stream or a file, in the format of the mimeType and flavor options. A Map, a POJO, a number or no body is not converted: the print job gets no data" }, + "producerOut": { "carriers": [ "unchanged" ] } + }, "properties": { "hostname": { "index": 0, "kind": "path", "displayName": "Hostname", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.printer.PrinterConfiguration", "configurationField": "config", "description": "Hostname of the printer" }, "port": { "index": 1, "kind": "path", "displayName": "Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.printer.PrinterConfiguration", "configurationField": "config", "description": "Port number of the printer" }, diff --git a/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterEndpoint.java b/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterEndpoint.java index f65e2d4e2e2a..00e47f9554f1 100644 --- a/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterEndpoint.java +++ b/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterEndpoint.java @@ -21,6 +21,9 @@ import org.apache.camel.Component; import org.apache.camel.Consumer; import org.apache.camel.Processor; import org.apache.camel.Producer; +import org.apache.camel.spi.BodyType; +import org.apache.camel.spi.BodyType.Carrier; +import org.apache.camel.spi.BodyTypes; import org.apache.camel.spi.EndpointServiceLocation; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriEndpoint; @@ -38,6 +41,11 @@ import org.apache.camel.support.DefaultEndpoint; */ @UriEndpoint(firstVersion = "2.1.0", scheme = "lpr", title = "Printer", syntax = "lpr:hostname:port/printername", producerOnly = true, category = { Category.DOCUMENT }, headersClass = PrinterEndpoint.class) +@BodyTypes(producerIn = @BodyType(value = { Carrier.TEXT, Carrier.BYTES, Carrier.STREAM, Carrier.FILE }, + description = "The document to print, read as a stream: text, bytes, a stream or a file," + + " in the format of the mimeType and flavor options. A Map, a POJO, a number" + + " or no body is not converted: the print job gets no data"), + producerOut = @BodyType(Carrier.UNCHANGED)) public class PrinterEndpoint extends DefaultEndpoint implements EndpointServiceLocation { @Metadata(label = "producer", description = "The name of the job", javaType = "String") diff --git a/components/camel-shell/src/generated/resources/META-INF/org/apache/camel/component/shell/shell.json b/components/camel-shell/src/generated/resources/META-INF/org/apache/camel/component/shell/shell.json index e98010761a1e..2664c1377836 100644 --- a/components/camel-shell/src/generated/resources/META-INF/org/apache/camel/component/shell/shell.json +++ b/components/camel-shell/src/generated/resources/META-INF/org/apache/camel/component/shell/shell.json @@ -29,6 +29,10 @@ "bannerResource": { "index": 2, "kind": "property", "displayName": "Banner Resource", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "camel-shell-banner.txt", "description": "Classpath resource path to a custom banner text file" }, "showBanner": { "index": 3, "kind": "property", "displayName": "Show Banner", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to print the Camel banner on startup" } }, + "bodyTypes": { + "consumerOut": { "carriers": [ "text" ], "javaType": "java.lang.String", "description": "The line the user typed at the prompt, as typed (an empty line too); exit or end of input stops the CamelContext" }, + "consumerReply": { "carriers": [ "text", "bytes", "stream", "value", "null" ], "description": "The body the route ends with, converted to text and printed to the terminal; null prints nothing, and a failed exchange prints the message of its exception. A Map or a List prints as its Java toString: marshal it first" } + }, "properties": { "prompt": { "index": 0, "kind": "path", "displayName": "Prompt", "group": "consumer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Shell prompt" }, "color": { "index": 1, "kind": "parameter", "displayName": "Color", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "cyan", "description": "Prompt color: black, red, green, yellow, blue, magenta, cyan, white" }, diff --git a/components/camel-shell/src/main/java/org/apache/camel/component/shell/ShellEndpoint.java b/components/camel-shell/src/main/java/org/apache/camel/component/shell/ShellEndpoint.java index 9748a36be6ad..d75e9461293f 100644 --- a/components/camel-shell/src/main/java/org/apache/camel/component/shell/ShellEndpoint.java +++ b/components/camel-shell/src/main/java/org/apache/camel/component/shell/ShellEndpoint.java @@ -20,6 +20,9 @@ import org.apache.camel.Category; import org.apache.camel.Consumer; import org.apache.camel.Processor; import org.apache.camel.Producer; +import org.apache.camel.spi.BodyType; +import org.apache.camel.spi.BodyType.Carrier; +import org.apache.camel.spi.BodyTypes; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; @@ -30,6 +33,14 @@ import org.jline.terminal.Terminal; @UriEndpoint(firstVersion = "4.21.0", category = { Category.API }, scheme = "shell", title = "Shell", syntax = "shell:prompt", consumerOnly = true, remote = false) +@BodyTypes(consumerOut = @BodyType(value = Carrier.TEXT, javaType = "java.lang.String", + description = "The line the user typed at the prompt, as typed (an empty line too);" + + " exit or end of input stops the CamelContext"), + consumerReply = @BodyType(value = { Carrier.TEXT, Carrier.BYTES, Carrier.STREAM, Carrier.VALUE, Carrier.NULL }, + description = "The body the route ends with, converted to text and printed to the" + + " terminal; null prints nothing, and a failed exchange prints the" + + " message of its exception. A Map or a List prints as its Java" + + " toString: marshal it first")) public class ShellEndpoint extends DefaultEndpoint { @UriPath diff --git a/components/camel-zookeeper-master/src/generated/resources/META-INF/org/apache/camel/component/zookeepermaster/zookeeper-master.json b/components/camel-zookeeper-master/src/generated/resources/META-INF/org/apache/camel/component/zookeepermaster/zookeeper-master.json index 30983b92725e..5d1bee8e1cb1 100644 --- a/components/camel-zookeeper-master/src/generated/resources/META-INF/org/apache/camel/component/zookeepermaster/zookeeper-master.json +++ b/components/camel-zookeeper-master/src/generated/resources/META-INF/org/apache/camel/component/zookeepermaster/zookeeper-master.json @@ -33,6 +33,9 @@ "curator": { "index": 6, "kind": "property", "displayName": "Curator", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.curator.framework.CuratorFramework", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom configured CuratorFramework as connection to zookeeper ensemble." }, "zooKeeperPassword": { "index": 7, "kind": "property", "displayName": "Zoo Keeper Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "security": "secret", "description": "The password to use when connecting to the zookeeper ensemble" } }, + "bodyTypes": { + "consumerOut": { "carriers": [ "unknown" ], "description": "The body the consumer of the delegate endpoint (consumerEndpointUri) makes, such as the file of a file consumer: only the node that holds the leadership of the group runs it" } + }, "properties": { "groupName": { "index": 0, "kind": "path", "displayName": "Group Name", "group": "consumer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cluster group to use" }, "consumerEndpointUri": { "index": 1, "kind": "path", "displayName": "Consumer Endpoint Uri", "group": "consumer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The consumer endpoint to use in master\/slave mode" }, diff --git a/components/camel-zookeeper-master/src/main/java/org/apache/camel/component/zookeepermaster/MasterEndpoint.java b/components/camel-zookeeper-master/src/main/java/org/apache/camel/component/zookeepermaster/MasterEndpoint.java index cfce36d2f6fc..c165380073e3 100644 --- a/components/camel-zookeeper-master/src/main/java/org/apache/camel/component/zookeepermaster/MasterEndpoint.java +++ b/components/camel-zookeeper-master/src/main/java/org/apache/camel/component/zookeepermaster/MasterEndpoint.java @@ -24,6 +24,9 @@ import org.apache.camel.Processor; import org.apache.camel.Producer; import org.apache.camel.api.management.ManagedAttribute; import org.apache.camel.api.management.ManagedResource; +import org.apache.camel.spi.BodyType; +import org.apache.camel.spi.BodyType.Carrier; +import org.apache.camel.spi.BodyTypes; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriPath; @@ -37,6 +40,10 @@ import org.apache.camel.support.DefaultEndpoint; consumerOnly = true, title = "ZooKeeper Master", lenientProperties = true, category = { Category.CLUSTERING, Category.MANAGEMENT, Category.BIGDATA }) +@BodyTypes(consumerOut = @BodyType(value = Carrier.UNKNOWN, + description = "The body the consumer of the delegate endpoint (consumerEndpointUri) makes," + + " such as the file of a file consumer: only the node that holds the" + + " leadership of the group runs it")) public class MasterEndpoint extends DefaultEndpoint implements DelegateEndpoint { private final MasterComponent component; diff --git a/components/camel-zookeeper/src/generated/resources/META-INF/org/apache/camel/component/zookeeper/zookeeper.json b/components/camel-zookeeper/src/generated/resources/META-INF/org/apache/camel/component/zookeeper/zookeeper.json index 9b5f89f00512..433a6fc5f69f 100644 --- a/components/camel-zookeeper/src/generated/resources/META-INF/org/apache/camel/component/zookeeper/zookeeper.json +++ b/components/camel-zookeeper/src/generated/resources/META-INF/org/apache/camel/component/zookeeper/zookeeper.json @@ -45,6 +45,11 @@ "CamelZookeeperEventType": { "index": 5, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "org.apache.zookeeper.Watcher.Event.EventType", "enum": [ "None", "NodeCreated", "NodeDeleted", "NodeDataChanged", "NodeChildrenChanged", "DataWatchRemoved", "ChildWatchRemoved", "PersistentWatchRemoved" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The event type", "constantName": "org.apach [...] "CamelZookeeperOperation": { "index": 6, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation to perform", "constantName": "org.apache.camel.component.zookeeper.ZooKeeperMessage#ZOOKEEPER_OPERATION" } }, + "bodyTypes": { + "consumerOut": { "carriers": [ "bytes", "null" ], "dependsOn": [ "sendEmptyMessageOnDelete" ], "byOption": [ { "option": "listChildren", "value": "true", "carriers": [ "list" ] } ], "description": "The data of the znode as bytes, and no body when the znode is deleted; with listChildren, the List of the names of its child znodes. The CamelZooKeeperNode and CamelZookeeperStatistics headers say which znode and its version" }, + "producerIn": { "carriers": [ "text", "bytes", "stream", "file" ], "description": "The data to store in the znode, converted to bytes. A Map, a POJO or a number is not converted and stores no data; with the CamelZookeeperOperation header set to DELETE the body is not read" }, + "producerOut": { "carriers": [ "unchanged", "bytes", "text", "value" ], "byOption": [ { "option": "listChildren", "value": "true", "carriers": [ "list", "unchanged" ] } ], "description": "InOnly writes without waiting and leaves the body unchanged. InOut waits and sets the bytes written, the path of the znode as text when it was created, or true for a DELETE; with listChildren, the List of the names of the child znodes of the path" } + }, "properties": { "serverUrls": { "index": 0, "kind": "path", "displayName": "Server Urls", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.zookeeper.ZooKeeperConfiguration", "configurationField": "configuration", "description": "The zookeeper server hosts (multiple servers can be separated by comma)" }, "path": { "index": 1, "kind": "path", "displayName": "Path", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.zookeeper.ZooKeeperConfiguration", "configurationField": "configuration", "description": "The node in the ZooKeeper server (aka znode)" }, diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperEndpoint.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperEndpoint.java index 4c50e67b21d0..97de9258c2eb 100644 --- a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperEndpoint.java +++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperEndpoint.java @@ -25,6 +25,9 @@ import org.apache.camel.Producer; import org.apache.camel.api.management.ManagedAttribute; import org.apache.camel.api.management.ManagedOperation; import org.apache.camel.api.management.ManagedResource; +import org.apache.camel.spi.BodyType; +import org.apache.camel.spi.BodyType.Carrier; +import org.apache.camel.spi.BodyTypes; import org.apache.camel.spi.EndpointServiceLocation; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; @@ -36,6 +39,24 @@ import org.apache.camel.support.DefaultEndpoint; @ManagedResource(description = "ZooKeeper Endpoint") @UriEndpoint(firstVersion = "2.9.0", scheme = "zookeeper", title = "ZooKeeper", syntax = "zookeeper:serverUrls/path", category = { Category.CLUSTERING, Category.MANAGEMENT, Category.BIGDATA }, headersClass = ZooKeeperMessage.class) +@BodyTypes(consumerOut = @BodyType(value = { Carrier.BYTES, Carrier.NULL }, dependsOn = "sendEmptyMessageOnDelete", + byOption = @BodyType.When(option = "listChildren", value = "true", + carriers = Carrier.LIST), + description = "The data of the znode as bytes, and no body when the znode is deleted;" + + " with listChildren, the List of the names of its child znodes. The" + + " CamelZooKeeperNode and CamelZookeeperStatistics headers say which znode" + + " and its version"), + producerIn = @BodyType(value = { Carrier.TEXT, Carrier.BYTES, Carrier.STREAM, Carrier.FILE }, + description = "The data to store in the znode, converted to bytes. A Map, a POJO or a" + + " number is not converted and stores no data; with the CamelZookeeperOperation" + + " header set to DELETE the body is not read"), + producerOut = @BodyType(value = { Carrier.UNCHANGED, Carrier.BYTES, Carrier.TEXT, Carrier.VALUE }, + byOption = @BodyType.When(option = "listChildren", value = "true", + carriers = { Carrier.LIST, Carrier.UNCHANGED }), + description = "InOnly writes without waiting and leaves the body unchanged. InOut waits and" + + " sets the bytes written, the path of the znode as text when it was created," + + " or true for a DELETE; with listChildren, the List of the names of the child" + + " znodes of the path")) public class ZooKeeperEndpoint extends DefaultEndpoint implements EndpointServiceLocation { @UriParam
