This is an automated email from the ASF dual-hosted git repository.
nfilotto pushed a commit to branch camel-karaf-3.18.x
in repository https://gitbox.apache.org/repos/asf/camel-karaf.git
The following commit(s) were added to refs/heads/camel-karaf-3.18.x by this
push:
new 1d6ef764 CAMEL-18344: Supporting camel "camel-google-pubsub" and
"camel-grpc" OSGi deployment (#180) (#185)
1d6ef764 is described below
commit 1d6ef764a1d3441bb774ac96d0cfd70112c4f465
Author: Nicolas Filotto <[email protected]>
AuthorDate: Sun Sep 4 12:48:28 2022 +0200
CAMEL-18344: Supporting camel "camel-google-pubsub" and "camel-grpc" OSGi
deployment (#180) (#185)
Fix for https://issues.apache.org/jira/browse/CAMEL-18344 (3.18.x)
## Motivation
The features camel-google-pubsub and camel-grpc have been removed from
camel-karaf due to some integrations issues but as some users need it, it is
important to put them back.
## Modifications:
* Re-add the features
* Use new servicemix-bundles that still need to be approved, merged, and
released
* Add camel-jira from
https://github.com/apache/camel-karaf/commit/0e63ec709cdcb1ce4ca48a29a2e8ca88d26abd31
* Fix camel-jira feature that is affected by the changes in the bundle
google-http-client
---
.../camel/catalog/karaf/components.properties | 3 +
.../catalog/karaf/components/google-pubsub.json | 61 ++++++++++++++
.../camel/catalog/karaf/components/grpc.json | 68 +++++++++++++++
.../camel/catalog/karaf/components/jira.json | 77 +++++++++++++++++
.../karaf/features/src/main/resources/features.xml | 96 +++++++++++++++++++++-
pom.xml | 15 ++++
6 files changed, 319 insertions(+), 1 deletion(-)
diff --git
a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components.properties
b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components.properties
index 0c6e9f81..de0e69ee 100644
---
a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components.properties
+++
b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components.properties
@@ -73,8 +73,10 @@ ftp
git
github
google-bigquery
+google-pubsub
grape
graphql
+grpc
guava-eventbus
http
influxdb
@@ -85,6 +87,7 @@ jcache
jcr
jdbc
jetty
+jira
jms
jmx
jolt
diff --git
a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/google-pubsub.json
b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/google-pubsub.json
new file mode 100644
index 00000000..55c6f303
--- /dev/null
+++
b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/google-pubsub.json
@@ -0,0 +1,61 @@
+{
+ "component": {
+ "kind": "component",
+ "name": "google-pubsub",
+ "title": "Google Pubsub",
+ "description": "Send and receive messages to\/from Google Cloud Platform
PubSub Service.",
+ "deprecated": false,
+ "firstVersion": "2.19.0",
+ "label": "cloud,messaging",
+ "javaType":
"org.apache.camel.component.google.pubsub.GooglePubsubComponent",
+ "supportLevel": "Stable",
+ "groupId": "org.apache.camel",
+ "artifactId": "camel-google-pubsub",
+ "version": "3.18.2-SNAPSHOT",
+ "scheme": "google-pubsub",
+ "extendsScheme": "",
+ "syntax": "google-pubsub:projectId:destinationName",
+ "async": false,
+ "api": false,
+ "consumerOnly": false,
+ "producerOnly": false,
+ "lenientProperties": false
+ },
+ "componentProperties": {
+ "authenticate": { "kind": "property", "displayName": "Authenticate",
"group": "common", "label": "common", "required": false, "type": "boolean",
"javaType": "boolean", "deprecated": false, "autowired": false, "secret":
false, "defaultValue": true, "description": "Use Credentials when interacting
with PubSub service (no authentication is required when using emulator)." },
+ "endpoint": { "kind": "property", "displayName": "Endpoint", "group":
"common", "label": "common", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "autowired": false, "secret": false,
"description": "Endpoint to use with local Pub\/Sub emulator." },
+ "serviceAccountKey": { "kind": "property", "displayName": "Service Account
Key", "group": "common", "label": "common", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "description": "The Service account key that can be
used as credentials for the PubSub publisher\/subscriber. It can be loaded by
default from classpath, but you can prefix with classpath:, file:, or http: to
load the resource from different [...]
+ "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error
Handler", "group": "consumer", "label": "consumer", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "Allows for bridging the
consumer to the Camel routing Error Handler, which mean any exceptions occurred
while the consumer is trying to pickup incoming messages, or the likes, will
now be processed as a me [...]
+ "synchronousPullRetryableCodes": { "kind": "property", "displayName":
"Synchronous Pull Retryable Codes", "group": "consumer", "label": "consumer",
"required": false, "type": "string", "javaType": "java.lang.String",
"deprecated": false, "autowired": false, "secret": false, "description":
"Comma-separated list of additional retryable error codes for synchronous pull.
By default the PubSub client library retries ABORTED, UNAVAILABLE, UNKNOWN" },
+ "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start
Producer", "group": "producer", "label": "producer", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "Whether the producer
should be started lazy (on the first message). By starting lazy you can use
this to allow CamelContext and routes to startup in situations where a producer
may otherwise fail during star [...]
+ "publisherCacheSize": { "kind": "property", "displayName": "Publisher
Cache Size", "group": "producer", "label": "producer", "required": false,
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false,
"secret": false, "description": "Maximum number of producers to cache. This
could be increased if you have producers for lots of different topics." },
+ "publisherCacheTimeout": { "kind": "property", "displayName": "Publisher
Cache Timeout", "group": "producer", "label": "producer", "required": false,
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false,
"secret": false, "description": "How many milliseconds should each producer
stay alive in the cache." },
+ "autowiredEnabled": { "kind": "property", "displayName": "Autowired
Enabled", "group": "advanced", "label": "advanced", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": true, "description": "Whether autowiring is
enabled. This is used for automatic autowiring options (the option must be
marked as autowired) by looking up in the registry to find if there is a single
instance of matching type, which t [...]
+ "publisherTerminationTimeout": { "kind": "property", "displayName":
"Publisher Termination Timeout", "group": "advanced", "label": "advanced",
"required": false, "type": "integer", "javaType": "int", "deprecated": false,
"autowired": false, "secret": false, "description": "How many milliseconds
should a producer be allowed to terminate." }
+ },
+ "headers": {
+ "CamelGooglePubsub.MessageId": { "kind": "header", "displayName": "",
"group": "common", "label": "", "required": false, "javaType": "String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The ID of the message, assigned by the server when the
message is published.", "constantName":
"org.apache.camel.component.google.pubsub.GooglePubsubConstants#MESSAGE_ID" },
+ "CamelGooglePubsub.MsgAckId": { "kind": "header", "displayName": "",
"group": "consumer", "label": "consumer", "required": false, "javaType":
"String", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "The ID used to acknowledge the received
message.", "constantName":
"org.apache.camel.component.google.pubsub.GooglePubsubConstants#ACK_ID" },
+ "CamelGooglePubsub.PublishTime": { "kind": "header", "displayName": "",
"group": "consumer", "label": "consumer", "required": false, "javaType":
"com.google.protobuf.Timestamp", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The time at which the
message was published", "constantName":
"org.apache.camel.component.google.pubsub.GooglePubsubConstants#PUBLISH_TIME" },
+ "CamelGooglePubsub.Attributes": { "kind": "header", "displayName": "",
"group": "common", "label": "", "required": false, "javaType": "Map<String,
String>", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "The attributes of the message.",
"constantName":
"org.apache.camel.component.google.pubsub.GooglePubsubConstants#ATTRIBUTES" },
+ "CamelGooglePubsub.OrderingKey": { "kind": "header", "displayName": "",
"group": "producer", "label": "producer", "required": false, "javaType":
"String", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "If non-empty, identifies related messages for
which publish order should be respected.", "constantName":
"org.apache.camel.component.google.pubsub.GooglePubsubConstants#ORDERING_KEY" }
+ },
+ "properties": {
+ "projectId": { "kind": "path", "displayName": "Project Id", "group":
"common", "label": "common", "required": true, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The Google Cloud PubSub Project Id" },
+ "destinationName": { "kind": "path", "displayName": "Destination Name",
"group": "common", "label": "common", "required": true, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "The Destination Name. For
the consumer this will be the subscription name, while for the producer this
will be the topic name." },
+ "authenticate": { "kind": "parameter", "displayName": "Authenticate",
"group": "common", "label": "common", "required": false, "type": "boolean",
"javaType": "boolean", "deprecated": false, "autowired": false, "secret":
false, "defaultValue": true, "description": "Use Credentials when interacting
with PubSub service (no authentication is required when using emulator)." },
+ "loggerId": { "kind": "parameter", "displayName": "Logger Id", "group":
"common", "label": "", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "autowired": false, "secret": false,
"description": "Logger ID to use when a match to the parent route required" },
+ "serviceAccountKey": { "kind": "parameter", "displayName": "Service
Account Key", "group": "common", "label": "common", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "description": "The Service account key that can be
used as credentials for the PubSub publisher\/subscriber. It can be loaded by
default from classpath, but you can prefix with classpath:, file:, or http: to
load the resource from different [...]
+ "ackMode": { "kind": "parameter", "displayName": "Ack Mode", "group":
"consumer", "label": "consumer", "required": false, "type": "object",
"javaType":
"org.apache.camel.component.google.pubsub.GooglePubsubConstants.AckMode",
"enum": [ "AUTO", "NONE" ], "deprecated": false, "autowired": false, "secret":
false, "defaultValue": "AUTO", "description": "AUTO = exchange gets
ack'ed\/nack'ed on completion. NONE = downstream process has to ack\/nack
explicitly" },
+ "concurrentConsumers": { "kind": "parameter", "displayName": "Concurrent
Consumers", "group": "consumer", "label": "consumer", "required": false,
"type": "integer", "javaType": "java.lang.Integer", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": "1", "description": "The
number of parallel streams consuming from the subscription" },
+ "maxMessagesPerPoll": { "kind": "parameter", "displayName": "Max Messages
Per Poll", "group": "consumer", "label": "consumer", "required": false, "type":
"integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": "1", "description": "The max number of
messages to receive from the server in a single API call" },
+ "synchronousPull": { "kind": "parameter", "displayName": "Synchronous
Pull", "group": "consumer", "label": "consumer", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "Synchronously pull
batches of messages" },
+ "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error
Handler", "group": "consumer (advanced)", "label": "consumer,advanced",
"required": false, "type": "boolean", "javaType": "boolean", "deprecated":
false, "autowired": false, "secret": false, "defaultValue": false,
"description": "Allows for bridging the consumer to the Camel routing Error
Handler, which mean any exceptions occurred while the consumer is trying to
pickup incoming messages, or the likes, will now [...]
+ "exceptionHandler": { "kind": "parameter", "displayName": "Exception
Handler", "group": "consumer (advanced)", "label": "consumer,advanced",
"required": false, "type": "object", "javaType":
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.",
"deprecated": false, "autowired": false, "secret": false, "description": "To
let the consumer use a custom ExceptionHandler. Notice if the option
bridgeErrorHandler is enabled then this option is not in use. By default the
con [...]
+ "exchangePattern": { "kind": "parameter", "displayName": "Exchange
Pattern", "group": "consumer (advanced)", "label": "consumer,advanced",
"required": false, "type": "object", "javaType":
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut",
"InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false,
"description": "Sets the exchange pattern when the consumer creates an
exchange." },
+ "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start
Producer", "group": "producer (advanced)", "label": "producer,advanced",
"required": false, "type": "boolean", "javaType": "boolean", "deprecated":
false, "autowired": false, "secret": false, "defaultValue": false,
"description": "Whether the producer should be started lazy (on the first
message). By starting lazy you can use this to allow CamelContext and routes to
startup in situations where a producer may other [...]
+ "messageOrderingEnabled": { "kind": "parameter", "displayName": "Message
Ordering Enabled", "group": "producer (advanced)", "label":
"producer,advanced", "required": false, "type": "boolean", "javaType":
"boolean", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": false, "description": "Should message ordering be enabled" },
+ "pubsubEndpoint": { "kind": "parameter", "displayName": "Pubsub Endpoint",
"group": "producer (advanced)", "label": "producer,advanced", "required":
false, "type": "string", "javaType": "java.lang.String", "deprecated": false,
"autowired": false, "secret": false, "description": "Pub\/Sub endpoint to use.
Required when using message ordering, and ensures that messages are received in
order even when multiple publishers are used" },
+ "serializer": { "kind": "parameter", "displayName": "Serializer", "group":
"producer (advanced)", "label": "producer,advanced", "required": false, "type":
"object", "javaType":
"org.apache.camel.component.google.pubsub.serializer.GooglePubsubSerializer",
"deprecated": false, "deprecationNote": "", "autowired": true, "secret": false,
"description": "A custom GooglePubsubSerializer to use for serializing message
payloads in the producer" }
+ }
+}
diff --git
a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/grpc.json
b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/grpc.json
new file mode 100644
index 00000000..18f3c41e
--- /dev/null
+++
b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/grpc.json
@@ -0,0 +1,68 @@
+{
+ "component": {
+ "kind": "component",
+ "name": "grpc",
+ "title": "gRPC",
+ "description": "Expose gRPC endpoints and access external gRPC endpoints.",
+ "deprecated": false,
+ "firstVersion": "2.19.0",
+ "label": "rpc",
+ "javaType": "org.apache.camel.component.grpc.GrpcComponent",
+ "supportLevel": "Stable",
+ "groupId": "org.apache.camel",
+ "artifactId": "camel-grpc",
+ "version": "3.18.2-SNAPSHOT",
+ "scheme": "grpc",
+ "extendsScheme": "",
+ "syntax": "grpc:host:port\/service",
+ "async": false,
+ "api": false,
+ "consumerOnly": false,
+ "producerOnly": false,
+ "lenientProperties": false
+ },
+ "componentProperties": {
+ "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error
Handler", "group": "consumer", "label": "consumer", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "Allows for bridging the
consumer to the Camel routing Error Handler, which mean any exceptions occurred
while the consumer is trying to pickup incoming messages, or the likes, will
now be processed as a me [...]
+ "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start
Producer", "group": "producer", "label": "producer", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "Whether the producer
should be started lazy (on the first message). By starting lazy you can use
this to allow CamelContext and routes to startup in situations where a producer
may otherwise fail during star [...]
+ "autowiredEnabled": { "kind": "property", "displayName": "Autowired
Enabled", "group": "advanced", "label": "advanced", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": true, "description": "Whether autowiring is
enabled. This is used for automatic autowiring options (the option must be
marked as autowired) by looking up in the registry to find if there is a single
instance of matching type, which t [...]
+ },
+ "headers": {
+ "CamelGrpcMethodName": { "kind": "header", "displayName": "", "group":
"consumer", "label": "consumer", "required": false, "javaType": "String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "Method name handled by the consumer service",
"constantName":
"org.apache.camel.component.grpc.GrpcConstants#GRPC_METHOD_NAME_HEADER" },
+ "CamelGrpcUserAgent": { "kind": "header", "displayName": "", "group":
"consumer", "label": "consumer", "required": false, "javaType": "String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "If provided, the given agent will prepend the gRPC
library's user agent information", "constantName":
"org.apache.camel.component.grpc.GrpcConstants#GRPC_USER_AGENT_HEADER" },
+ "CamelGrpcEventType": { "kind": "header", "displayName": "", "group":
"consumer", "label": "consumer", "required": false, "javaType": "String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "Received event type from the sent request. Possible
values: onNext onCompleted onError", "constantName":
"org.apache.camel.component.grpc.GrpcConstants#GRPC_EVENT_TYPE_HEADER" }
+ },
+ "properties": {
+ "host": { "kind": "path", "displayName": "Host", "group": "common",
"label": "", "required": true, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "The gRPC server host name. This is localhost
or 0.0.0.0 when being a consumer or remote server host name when using
producer." },
+ "port": { "kind": "path", "displayName": "Port", "group": "common",
"label": "", "required": true, "type": "integer", "javaType": "int",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "The gRPC local or remote server port" },
+ "service": { "kind": "path", "displayName": "Service", "group": "common",
"label": "", "required": true, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Fully qualified service name from the protocol
buffer descriptor file (package dot service definition name)" },
+ "flowControlWindow": { "kind": "parameter", "displayName": "Flow Control
Window", "group": "common", "label": "", "required": false, "type": "integer",
"javaType": "int", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": 1048576, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "The HTTP\/2 flow control window size (MiB)" },
+ "maxMessageSize": { "kind": "parameter", "displayName": "Max Message
Size", "group": "common", "label": "", "required": false, "type": "integer",
"javaType": "int", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": 4194304, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "The maximum message size allowed to be
received\/sent (MiB)" },
+ "autoDiscoverServerInterceptors": { "kind": "parameter", "displayName":
"Auto Discover Server Interceptors", "group": "consumer", "label": "consumer",
"required": false, "type": "boolean", "javaType": "boolean", "deprecated":
false, "autowired": false, "secret": false, "defaultValue": true,
"configurationClass": "org.apache.camel.component.grpc.GrpcConfiguration",
"configurationField": "configuration", "description": "Setting the
autoDiscoverServerInterceptors mechanism, if true, the [...]
+ "consumerStrategy": { "kind": "parameter", "displayName": "Consumer
Strategy", "group": "consumer", "label": "consumer", "required": false, "type":
"object", "javaType": "org.apache.camel.component.grpc.GrpcConsumerStrategy",
"enum": [ "AGGREGATION", "PROPAGATION" ], "deprecated": false, "autowired":
false, "secret": false, "defaultValue": "PROPAGATION", "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "T [...]
+ "forwardOnCompleted": { "kind": "parameter", "displayName": "Forward On
Completed", "group": "consumer", "label": "consumer", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Determines if onCompleted events should be
pushed to the Camel route." },
+ "forwardOnError": { "kind": "parameter", "displayName": "Forward On
Error", "group": "consumer", "label": "consumer", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Determines if onError events should be pushed
to the Camel route. Exceptions will be set as messag [...]
+ "maxConcurrentCallsPerConnection": { "kind": "parameter", "displayName":
"Max Concurrent Calls Per Connection", "group": "consumer", "label":
"consumer", "required": false, "type": "integer", "javaType": "int",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
2147483647, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "The maximum number of concurrent calls
permitted for each inc [...]
+ "routeControlledStreamObserver": { "kind": "parameter", "displayName":
"Route Controlled Stream Observer", "group": "consumer", "label": "consumer",
"required": false, "type": "boolean", "javaType": "boolean", "deprecated":
false, "autowired": false, "secret": false, "defaultValue": false,
"configurationClass": "org.apache.camel.component.grpc.GrpcConfiguration",
"configurationField": "configuration", "description": "Lets the route to take
control over stream observer. If this value [...]
+ "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error
Handler", "group": "consumer (advanced)", "label": "consumer,advanced",
"required": false, "type": "boolean", "javaType": "boolean", "deprecated":
false, "autowired": false, "secret": false, "defaultValue": false,
"description": "Allows for bridging the consumer to the Camel routing Error
Handler, which mean any exceptions occurred while the consumer is trying to
pickup incoming messages, or the likes, will now [...]
+ "exceptionHandler": { "kind": "parameter", "displayName": "Exception
Handler", "group": "consumer (advanced)", "label": "consumer,advanced",
"required": false, "type": "object", "javaType":
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.",
"deprecated": false, "autowired": false, "secret": false, "description": "To
let the consumer use a custom ExceptionHandler. Notice if the option
bridgeErrorHandler is enabled then this option is not in use. By default the
con [...]
+ "exchangePattern": { "kind": "parameter", "displayName": "Exchange
Pattern", "group": "consumer (advanced)", "label": "consumer,advanced",
"required": false, "type": "object", "javaType":
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut",
"InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false,
"description": "Sets the exchange pattern when the consumer creates an
exchange." },
+ "autoDiscoverClientInterceptors": { "kind": "parameter", "displayName":
"Auto Discover Client Interceptors", "group": "producer", "label": "producer",
"required": false, "type": "boolean", "javaType": "boolean", "deprecated":
false, "autowired": false, "secret": false, "defaultValue": true,
"configurationClass": "org.apache.camel.component.grpc.GrpcConfiguration",
"configurationField": "configuration", "description": "Setting the
autoDiscoverClientInterceptors mechanism, if true, the [...]
+ "method": { "kind": "parameter", "displayName": "Method", "group":
"producer", "label": "producer", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "gRPC method name" },
+ "producerStrategy": { "kind": "parameter", "displayName": "Producer
Strategy", "group": "producer", "label": "producer", "required": false, "type":
"object", "javaType": "org.apache.camel.component.grpc.GrpcProducerStrategy",
"enum": [ "SIMPLE", "STREAMING" ], "deprecated": false, "autowired": false,
"secret": false, "defaultValue": "SIMPLE", "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "The mode used [...]
+ "streamRepliesTo": { "kind": "parameter", "displayName": "Stream Replies
To", "group": "producer", "label": "producer", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "When using STREAMING client mode, it indicates
the endpoint where responses should be forwarded." },
+ "userAgent": { "kind": "parameter", "displayName": "User Agent", "group":
"producer", "label": "producer", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "The user agent header passed to the server" },
+ "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start
Producer", "group": "producer (advanced)", "label": "producer,advanced",
"required": false, "type": "boolean", "javaType": "boolean", "deprecated":
false, "autowired": false, "secret": false, "defaultValue": false,
"description": "Whether the producer should be started lazy (on the first
message). By starting lazy you can use this to allow CamelContext and routes to
startup in situations where a producer may other [...]
+ "synchronous": { "kind": "parameter", "displayName": "Synchronous",
"group": "advanced", "label": "advanced", "required": false, "type": "boolean",
"javaType": "boolean", "deprecated": false, "autowired": false, "secret":
false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Sets whether synchronous processing should be
strictly used" },
+ "authenticationType": { "kind": "parameter", "displayName":
"Authentication Type", "group": "security", "label": "security", "required":
false, "type": "object", "javaType":
"org.apache.camel.component.grpc.GrpcAuthType", "enum": [ "NONE", "GOOGLE",
"JWT" ], "deprecated": false, "autowired": false, "secret": false,
"defaultValue": "NONE", "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Authentication me [...]
+ "jwtAlgorithm": { "kind": "parameter", "displayName": "Jwt Algorithm",
"group": "security", "label": "security", "required": false, "type": "object",
"javaType": "org.apache.camel.component.grpc.auth.jwt.JwtAlgorithm", "enum": [
"HMAC256", "HMAC384", "HMAC512" ], "deprecated": false, "autowired": false,
"secret": false, "defaultValue": "HMAC256", "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "JSON Web [...]
+ "jwtIssuer": { "kind": "parameter", "displayName": "Jwt Issuer", "group":
"security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "JSON Web Token issuer" },
+ "jwtSecret": { "kind": "parameter", "displayName": "Jwt Secret", "group":
"security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": true, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "JSON Web Token secret" },
+ "jwtSubject": { "kind": "parameter", "displayName": "Jwt Subject",
"group": "security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "JSON Web Token subject" },
+ "keyCertChainResource": { "kind": "parameter", "displayName": "Key Cert
Chain Resource", "group": "security", "label": "security", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "The X.509 certificate chain file resource in
PEM format link" },
+ "keyPassword": { "kind": "parameter", "displayName": "Key Password",
"group": "security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": true, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "The PKCS#8 private key file password" },
+ "keyResource": { "kind": "parameter", "displayName": "Key Resource",
"group": "security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "The PKCS#8 private key file resource in PEM
format link" },
+ "negotiationType": { "kind": "parameter", "displayName": "Negotiation
Type", "group": "security", "label": "security", "required": false, "type":
"object", "javaType": "io.grpc.netty.NegotiationType", "enum": [ "TLS",
"PLAINTEXT_UPGRADE", "PLAINTEXT" ], "deprecated": false, "autowired": false,
"secret": false, "defaultValue": "PLAINTEXT", "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Identifies the se [...]
+ "serviceAccountResource": { "kind": "parameter", "displayName": "Service
Account Resource", "group": "security", "label": "security", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Service Account key file in JSON format
resource link supported by the Google Cloud SDK" },
+ "trustCertCollectionResource": { "kind": "parameter", "displayName":
"Trust Cert Collection Resource", "group": "security", "label": "security",
"required": false, "type": "string", "javaType": "java.lang.String",
"deprecated": false, "autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "The trusted certificates collection file
resource in PEM format for verifying the remo [...]
+ }
+}
diff --git
a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jira.json
b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jira.json
new file mode 100644
index 00000000..dcaf3327
--- /dev/null
+++
b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jira.json
@@ -0,0 +1,77 @@
+{
+ "component": {
+ "kind": "component",
+ "name": "jira",
+ "title": "Jira",
+ "description": "Interact with JIRA issue tracker.",
+ "deprecated": false,
+ "firstVersion": "3.0",
+ "label": "api,reporting",
+ "javaType": "org.apache.camel.component.jira.JiraComponent",
+ "supportLevel": "Stable",
+ "groupId": "org.apache.camel",
+ "artifactId": "camel-jira",
+ "version": "3.18.2-SNAPSHOT",
+ "scheme": "jira",
+ "extendsScheme": "",
+ "syntax": "jira:type",
+ "async": false,
+ "api": false,
+ "consumerOnly": false,
+ "producerOnly": false,
+ "lenientProperties": false
+ },
+ "componentProperties": {
+ "delay": { "kind": "property", "displayName": "Delay", "group": "common",
"label": "", "required": false, "type": "integer", "javaType":
"java.lang.Integer", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": "6000", "configurationClass":
"org.apache.camel.component.jira.JiraConfiguration", "configurationField":
"configuration", "description": "Time in milliseconds to elapse for the next
poll." },
+ "jiraUrl": { "kind": "property", "displayName": "Jira Url", "group":
"common", "label": "", "required": true, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.jira.JiraConfiguration", "configurationField":
"configuration", "description": "The Jira server url, example:
http:\/\/my_jira.com:8081" },
+ "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error
Handler", "group": "consumer", "label": "consumer", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "Allows for bridging the
consumer to the Camel routing Error Handler, which mean any exceptions occurred
while the consumer is trying to pickup incoming messages, or the likes, will
now be processed as a me [...]
+ "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start
Producer", "group": "producer", "label": "producer", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "Whether the producer
should be started lazy (on the first message). By starting lazy you can use
this to allow CamelContext and routes to startup in situations where a producer
may otherwise fail during star [...]
+ "autowiredEnabled": { "kind": "property", "displayName": "Autowired
Enabled", "group": "advanced", "label": "advanced", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": true, "description": "Whether autowiring is
enabled. This is used for automatic autowiring options (the option must be
marked as autowired) by looking up in the registry to find if there is a single
instance of matching type, which t [...]
+ "configuration": { "kind": "property", "displayName": "Configuration",
"group": "advanced", "label": "advanced", "required": false, "type": "object",
"javaType": "org.apache.camel.component.jira.JiraConfiguration", "deprecated":
false, "autowired": false, "secret": false, "description": "To use a shared
base jira configuration." },
+ "accessToken": { "kind": "property", "displayName": "Access Token",
"group": "security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": true, "configurationClass":
"org.apache.camel.component.jira.JiraConfiguration", "configurationField":
"configuration", "description": "(OAuth or Personal Access Token
authentication) The access token generated by the Jira server." },
+ "consumerKey": { "kind": "property", "displayName": "Consumer Key",
"group": "security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": true, "configurationClass":
"org.apache.camel.component.jira.JiraConfiguration", "configurationField":
"configuration", "description": "(OAuth only) The consumer key from Jira
settings." },
+ "password": { "kind": "property", "displayName": "Password", "group":
"security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": true, "configurationClass":
"org.apache.camel.component.jira.JiraConfiguration", "configurationField":
"configuration", "description": "(Basic authentication only) The password or
the API Token to authenticate to the Jira server. Use only if username basic
authenti [...]
+ "privateKey": { "kind": "property", "displayName": "Private Key", "group":
"security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": true, "configurationClass":
"org.apache.camel.component.jira.JiraConfiguration", "configurationField":
"configuration", "description": "(OAuth only) The private key generated by the
client to encrypt the conversation to the server." },
+ "username": { "kind": "property", "displayName": "Username", "group":
"security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": true, "configurationClass":
"org.apache.camel.component.jira.JiraConfiguration", "configurationField":
"configuration", "description": "(Basic authentication only) The username to
authenticate to the Jira server. Use only if OAuth is not enabled on the Jira
server. [...]
+ "verificationCode": { "kind": "property", "displayName": "Verification
Code", "group": "security", "label": "security", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": true, "configurationClass":
"org.apache.camel.component.jira.JiraConfiguration", "configurationField":
"configuration", "description": "(OAuth only) The verification code from Jira
generated in the first step of the authorization proccess." }
+ },
+ "headers": {
+ "IssueAssignee": { "kind": "header", "displayName": "", "group":
"producer", "label": "producer", "required": false, "javaType": "String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The assignee's name of the issue", "constantName":
"org.apache.camel.component.jira.JiraConstants#ISSUE_ASSIGNEE" },
+ "IssueComponents": { "kind": "header", "displayName": "", "group":
"producer", "label": "producer", "required": false, "javaType": "String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The comma separated list of the issue's components",
"constantName":
"org.apache.camel.component.jira.JiraConstants#ISSUE_COMPONENTS" },
+ "IssueChanged": { "kind": "header", "displayName": "", "group":
"consumer", "label": "consumer", "required": false, "javaType": "String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The name of the updated field (i.e Status)",
"constantName": "org.apache.camel.component.jira.JiraConstants#ISSUE_CHANGED" },
+ "IssueKey": { "kind": "header", "displayName": "", "group": "common",
"label": "", "required": false, "javaType": "String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
id of the issue", "constantName":
"org.apache.camel.component.jira.JiraConstants#ISSUE_KEY" },
+ "IssuePriorityId": { "kind": "header", "displayName": "", "group":
"producer", "label": "producer", "required": false, "javaType": "Long",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The priority's id of the issue", "constantName":
"org.apache.camel.component.jira.JiraConstants#ISSUE_PRIORITY_ID" },
+ "IssuePriorityName": { "kind": "header", "displayName": "", "group":
"producer", "label": "producer", "required": false, "javaType": "String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The priority's name of the issue", "constantName":
"org.apache.camel.component.jira.JiraConstants#ISSUE_PRIORITY_NAME" },
+ "ProjectKey": { "kind": "header", "displayName": "", "group": "producer",
"label": "producer", "required": false, "javaType": "String", "deprecated":
false, "deprecationNote": "", "autowired": false, "secret": false,
"description": "The project's id of the issue", "constantName":
"org.apache.camel.component.jira.JiraConstants#ISSUE_PROJECT_KEY" },
+ "IssueSummary": { "kind": "header", "displayName": "", "group":
"producer", "label": "producer", "required": false, "javaType": "String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The summary of the issue", "constantName":
"org.apache.camel.component.jira.JiraConstants#ISSUE_SUMMARY" },
+ "IssueTransitionId": { "kind": "header", "displayName": "", "group":
"producer", "label": "producer", "required": false, "javaType": "Integer",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The transition id", "constantName":
"org.apache.camel.component.jira.JiraConstants#ISSUE_TRANSITION_ID" },
+ "IssueTypeId": { "kind": "header", "displayName": "", "group": "producer",
"label": "producer", "required": false, "javaType": "Long", "deprecated":
false, "deprecationNote": "", "autowired": false, "secret": false,
"description": "The type's id of the issue", "constantName":
"org.apache.camel.component.jira.JiraConstants#ISSUE_TYPE_ID" },
+ "IssueTypeName": { "kind": "header", "displayName": "", "group":
"producer", "label": "producer", "required": false, "javaType": "String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The type's name of the issue", "constantName":
"org.apache.camel.component.jira.JiraConstants#ISSUE_TYPE_NAME" },
+ "IssueWatchedIssues": { "kind": "header", "displayName": "", "group":
"consumer", "label": "consumer", "required": false, "javaType": "String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The list of all issue keys that are watched in the time
of update", "constantName":
"org.apache.camel.component.jira.JiraConstants#ISSUE_WATCHED_ISSUES" },
+ "IssueWatchersAdd": { "kind": "header", "displayName": "", "group":
"producer", "label": "producer", "required": false, "javaType": "String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The comma separated list of watchers to add to the
issue", "constantName":
"org.apache.camel.component.jira.JiraConstants#ISSUE_WATCHERS_ADD" },
+ "IssueWatchersRemove": { "kind": "header", "displayName": "", "group":
"producer", "label": "producer", "required": false, "javaType": "String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The watchers of the issue to remove", "constantName":
"org.apache.camel.component.jira.JiraConstants#ISSUE_WATCHERS_REMOVE" },
+ "ParentIssueKey": { "kind": "header", "displayName": "", "group":
"producer", "label": "producer", "required": false, "javaType": "String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The id of the parent issue", "constantName":
"org.apache.camel.component.jira.JiraConstants#PARENT_ISSUE_KEY" },
+ "ChildIssueKey": { "kind": "header", "displayName": "", "group":
"producer", "label": "producer", "required": false, "javaType": "String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "description": "The id of the child issue", "constantName":
"org.apache.camel.component.jira.JiraConstants#CHILD_ISSUE_KEY" },
+ "linkType": { "kind": "header", "displayName": "", "group": "producer",
"label": "producer", "required": false, "javaType": "String", "deprecated":
false, "deprecationNote": "", "autowired": false, "secret": false,
"description": "The type of link", "constantName":
"org.apache.camel.component.jira.JiraConstants#LINK_TYPE" },
+ "minutesSpent": { "kind": "header", "displayName": "", "group":
"producer", "label": "producer", "required": false, "javaType": "int",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "defaultValue": "-1", "description": "The minutes spent",
"constantName": "org.apache.camel.component.jira.JiraConstants#MINUTES_SPENT" }
+ },
+ "properties": {
+ "type": { "kind": "path", "displayName": "Type", "group": "common",
"label": "", "required": true, "type": "object", "javaType":
"org.apache.camel.component.jira.JiraType", "enum": [ "ADDCOMMENT", "ADDISSUE",
"ATTACH", "DELETEISSUE", "NEWISSUES", "NEWCOMMENTS", "WATCHUPDATES",
"UPDATEISSUE", "TRANSITIONISSUE", "WATCHERS", "ADDISSUELINK", "ADDWORKLOG",
"FETCHISSUE", "FETCHCOMMENTS" ], "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "description": "Oper [...]
+ "delay": { "kind": "parameter", "displayName": "Delay", "group": "common",
"label": "", "required": false, "type": "integer", "javaType":
"java.lang.Integer", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": "6000", "configurationClass":
"org.apache.camel.component.jira.JiraConfiguration", "configurationField":
"configuration", "description": "Time in milliseconds to elapse for the next
poll." },
+ "jiraUrl": { "kind": "parameter", "displayName": "Jira Url", "group":
"common", "label": "", "required": true, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.jira.JiraConfiguration", "configurationField":
"configuration", "description": "The Jira server url, example:
http:\/\/my_jira.com:8081" },
+ "jql": { "kind": "parameter", "displayName": "Jql", "group": "consumer",
"label": "consumer", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "autowired": false, "secret": false,
"description": "JQL is the query language from JIRA which allows you to
retrieve the data you want. For example jql=project=MyProject Where MyProject
is the product key in Jira. It is important to use the RAW() and set the JQL
inside it to prevent camel parsing it, e [...]
+ "maxResults": { "kind": "parameter", "displayName": "Max Results",
"group": "consumer", "label": "consumer", "required": false, "type": "integer",
"javaType": "java.lang.Integer", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": "50", "description": "Max number of issues to
search for" },
+ "sendOnlyUpdatedField": { "kind": "parameter", "displayName": "Send Only
Updated Field", "group": "consumer", "label": "consumer", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": true, "description": "Indicator for
sending only changed fields in exchange body or issue object. By default
consumer sends only changed fields." },
+ "watchedFields": { "kind": "parameter", "displayName": "Watched Fields",
"group": "consumer", "label": "consumer", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": "Status,Priority", "description": "Comma
separated list of fields to watch for changes. Status,Priority are the
defaults." },
+ "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error
Handler", "group": "consumer (advanced)", "label": "consumer,advanced",
"required": false, "type": "boolean", "javaType": "boolean", "deprecated":
false, "autowired": false, "secret": false, "defaultValue": false,
"description": "Allows for bridging the consumer to the Camel routing Error
Handler, which mean any exceptions occurred while the consumer is trying to
pickup incoming messages, or the likes, will now [...]
+ "exceptionHandler": { "kind": "parameter", "displayName": "Exception
Handler", "group": "consumer (advanced)", "label": "consumer,advanced",
"required": false, "type": "object", "javaType":
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.",
"deprecated": false, "autowired": false, "secret": false, "description": "To
let the consumer use a custom ExceptionHandler. Notice if the option
bridgeErrorHandler is enabled then this option is not in use. By default the
con [...]
+ "exchangePattern": { "kind": "parameter", "displayName": "Exchange
Pattern", "group": "consumer (advanced)", "label": "consumer,advanced",
"required": false, "type": "object", "javaType":
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut",
"InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false,
"description": "Sets the exchange pattern when the consumer creates an
exchange." },
+ "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start
Producer", "group": "producer (advanced)", "label": "producer,advanced",
"required": false, "type": "boolean", "javaType": "boolean", "deprecated":
false, "autowired": false, "secret": false, "defaultValue": false,
"description": "Whether the producer should be started lazy (on the first
message). By starting lazy you can use this to allow CamelContext and routes to
startup in situations where a producer may other [...]
+ "accessToken": { "kind": "parameter", "displayName": "Access Token",
"group": "security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": true, "configurationClass":
"org.apache.camel.component.jira.JiraConfiguration", "configurationField":
"configuration", "description": "(OAuth or Personal Access Token
authentication) The access token generated by the Jira server." },
+ "consumerKey": { "kind": "parameter", "displayName": "Consumer Key",
"group": "security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": true, "configurationClass":
"org.apache.camel.component.jira.JiraConfiguration", "configurationField":
"configuration", "description": "(OAuth only) The consumer key from Jira
settings." },
+ "password": { "kind": "parameter", "displayName": "Password", "group":
"security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": true, "configurationClass":
"org.apache.camel.component.jira.JiraConfiguration", "configurationField":
"configuration", "description": "(Basic authentication only) The password or
the API Token to authenticate to the Jira server. Use only if username basic
authent [...]
+ "privateKey": { "kind": "parameter", "displayName": "Private Key",
"group": "security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": true, "configurationClass":
"org.apache.camel.component.jira.JiraConfiguration", "configurationField":
"configuration", "description": "(OAuth only) The private key generated by the
client to encrypt the conversation to the server." },
+ "username": { "kind": "parameter", "displayName": "Username", "group":
"security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": true, "configurationClass":
"org.apache.camel.component.jira.JiraConfiguration", "configurationField":
"configuration", "description": "(Basic authentication only) The username to
authenticate to the Jira server. Use only if OAuth is not enabled on the Jira
server [...]
+ "verificationCode": { "kind": "parameter", "displayName": "Verification
Code", "group": "security", "label": "security", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": true, "configurationClass":
"org.apache.camel.component.jira.JiraConfiguration", "configurationField":
"configuration", "description": "(OAuth only) The verification code from Jira
generated in the first step of the authorization proccess." }
+ }
+}
diff --git a/platforms/karaf/features/src/main/resources/features.xml
b/platforms/karaf/features/src/main/resources/features.xml
index 3af92fc3..c98ecaf1 100644
--- a/platforms/karaf/features/src/main/resources/features.xml
+++ b/platforms/karaf/features/src/main/resources/features.xml
@@ -994,6 +994,48 @@
<bundle
dependency='true'>wrap:mvn:org.threeten/threetenbp/${google-cloud-threetenbp-version}</bundle>
<bundle>mvn:org.apache.camel/camel-google-bigquery/${project.version}</bundle>
</feature>
+ <feature name='camel-google-pubsub' version='${project.version}'
start-level='50'>
+ <feature version='${project.version}'>camel-core</feature>
+ <bundle
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.google-cloud-pubsub/${google-cloud-pubsub-bundle-version}</bundle>
+ <bundle
dependency='true'>wrap:mvn:com.google.api/api-common/${google-cloud-api-common-version}</bundle>
+ <bundle
dependency='true'>mvn:com.google.protobuf/protobuf-java/${protobuf-version}</bundle>
+ <bundle
dependency='true'>wrap:mvn:com.google.api.grpc/proto-google-common-protos/${google-cloud-common-protos-version}</bundle>
+ <bundle
dependency='true'>wrap:mvn:com.google.api.grpc/proto-google-iam-v1/${google-proto-iam-version}</bundle>
+ <bundle
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.guava/${google-cloud-guava-bundle-version}</bundle>
+ <bundle
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.google-gax-grpc/${google-gax-bundle-version}</bundle>
+ <bundle
dependency='true'>wrap:mvn:com.google.auth/google-auth-library-oauth2-http/${grpc-google-auth-library-version}</bundle>
+ <bundle
dependency='true'>wrap:mvn:com.google.auth/google-auth-library-credentials/${grpc-google-auth-library-version}</bundle>
+ <bundle
dependency='true'>wrap:mvn:org.threeten/threetenbp/${google-cloud-threetenbp-version}</bundle>
+ <bundle
dependency='true'>wrap:mvn:io.opencensus/opencensus-api/${google-http-client-opencensus-api-version}</bundle>
+ <bundle
dependency='true'>wrap:mvn:com.google.code.gson/gson/${gson-version}</bundle>
+ <bundle
dependency='true'>wrap:mvn:io.perfmark/perfmark-api/${google-cloud-perfmark-version}</bundle>
+ <bundle
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.google-http-client/${google-http-client-bundle-version}</bundle>
+ <bundle
dependency='true'>wrap:mvn:io.opencensus/opencensus-contrib-http-util/${google-http-client-opencensus-api-version}</bundle>
+ <bundle
dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+ <bundle
dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+ <bundle
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.grpc/${google-cloud-grpc-bundle-version}</bundle>
+ <bundle
dependency='true'>wrap:mvn:com.google.re2j/re2j/${re2j-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-common/${netty-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-codec/${netty-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-codec-http/${netty-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-codec-http2/${netty-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-codec-socks/${netty-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-resolver/${netty-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-transport/${netty-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-buffer/${netty-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-transport-classes-epoll/${netty-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-transport-native-unix-common/${netty-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-handler/${netty-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-handler-proxy/${netty-version}</bundle>
+ <bundle
dependency='true'>wrap:mvn:io.opencensus/opencensus-proto/${opencensus-proto-version}</bundle>
+ <bundle
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okhttp/${squareup-okhttp-bundle-version}</bundle>
+ <bundle
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okio/${squareup-okio-bundle-version}</bundle>
+ <bundle
dependency='true'>mvn:org.bouncycastle/bcpkix-jdk18on/${bouncycastle-version}</bundle>
+ <bundle
dependency='true'>mvn:org.bouncycastle/bctls-jdk18on/${bouncycastle-version}</bundle>
+ <bundle
dependency='true'>mvn:org.bouncycastle/bcprov-jdk18on/${bouncycastle-version}</bundle>
+ <bundle
dependency='true'>mvn:org.bouncycastle/bcutil-jdk18on/${bouncycastle-version}</bundle>
+
<bundle>mvn:org.apache.camel/camel-google-pubsub/${project.version}</bundle>
+ </feature>
<feature name='camel-grape' version='${project.version}' start-level='50'>
<feature version='${project.version}'>camel-core</feature>
<bundle
dependency='true'>mvn:org.codehaus.groovy/groovy/${groovy-version}</bundle>
@@ -1018,7 +1060,42 @@
<bundle
dependency='true'>wrap:mvn:io.krakens/java-grok/${java-grok-version}</bundle>
<bundle>mvn:org.apache.camel/camel-grok/${project.version}</bundle>
</feature>
-
+ <feature name='camel-grpc' version='${project.version}' start-level='50'>
+ <feature version='${project.version}'>camel-core</feature>
+ <bundle
dependency='true'>wrap:mvn:com.auth0/java-jwt/${grpc-java-jwt-version}</bundle>
+ <bundle
dependency='true'>wrap:mvn:com.google.auth/google-auth-library-oauth2-http/${grpc-google-auth-library-version}</bundle>
+ <bundle
dependency='true'>wrap:mvn:com.google.auth/google-auth-library-credentials/${grpc-google-auth-library-version}</bundle>
+ <bundle
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.grpc/${google-cloud-grpc-bundle-version}</bundle>
+ <bundle
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.guava/${google-cloud-guava-bundle-version}</bundle>
+ <bundle
dependency='true'>wrap:mvn:com.google.api.grpc/proto-google-common-protos/${google-cloud-common-protos-version}</bundle>
+ <bundle
dependency='true'>wrap:mvn:com.google.code.gson/gson/${gson-version}</bundle>
+ <bundle
dependency='true'>wrap:mvn:com.google.re2j/re2j/${re2j-version}</bundle>
+ <bundle
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okhttp/${squareup-okhttp-bundle-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-transport/${netty-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-buffer/${netty-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-common/${netty-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-resolver/${netty-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-transport-classes-epoll/${netty-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-transport-native-unix-common/${netty-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-codec/${netty-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-codec-http/${netty-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-codec-http2/${netty-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-handler/${netty-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-handler-proxy/${netty-version}</bundle>
+ <bundle
dependency='true'>mvn:io.netty/netty-codec-socks/${netty-version}</bundle>
+ <bundle
dependency='true'>wrap:mvn:io.opencensus/opencensus-api/${google-http-client-opencensus-api-version}</bundle>
+ <bundle
dependency='true'>wrap:mvn:io.opencensus/opencensus-proto/${opencensus-proto-version}</bundle>
+ <bundle
dependency='true'>wrap:mvn:io.perfmark/perfmark-api/${google-cloud-perfmark-version}</bundle>
+ <bundle
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okio/${squareup-okio-bundle-version}</bundle>
+ <bundle
dependency='true'>mvn:org.bouncycastle/bcprov-jdk18on/${bouncycastle-version}</bundle>
+ <bundle
dependency='true'>mvn:org.bouncycastle/bcpkix-jdk18on/${bouncycastle-version}</bundle>
+ <bundle
dependency='true'>mvn:org.bouncycastle/bcutil-jdk18on/${bouncycastle-version}</bundle>
+ <bundle
dependency='true'>mvn:org.bouncycastle/bctls-jdk18on/${bouncycastle-version}</bundle>
+ <bundle
dependency='true'>mvn:org.javassist/javassist/${javassist-version}</bundle>
+ <bundle
dependency='true'>mvn:com.google.protobuf/protobuf-java/${protobuf-version}</bundle>
+ <bundle
dependency='true'>mvn:com.google.protobuf/protobuf-java-util/${protobuf-version}</bundle>
+ <bundle>mvn:org.apache.camel/camel-grpc/${project.version}</bundle>
+ </feature>
<feature name='camel-gson' version='${project.version}' start-level='50'>
<feature version='${project.version}'>camel-core</feature>
@@ -1180,6 +1257,23 @@
<feature version='${project.version}'>camel-core</feature>
<bundle>mvn:org.apache.camel/camel-jdbc/${project.version}</bundle>
</feature>
+ <feature name='camel-jira' version='${project.version}' start-level='50'>
+ <feature version='${project.version}'>camel-core</feature>
+ <bundle
dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+ <bundle
dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+ <bundle
dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+ <bundle
dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+ <bundle
dependency='true'>mvn:org.apache.httpcomponents/httpasyncclient-osgi/${httpasyncclient-version}</bundle>
+ <bundle
dependency='true'>mvn:org.codehaus.jettison/jettison/${jettison-version}</bundle>
+ <bundle
dependency='true'>mvn:joda-time/joda-time/${jodatime2-version}</bundle>
+ <bundle
dependency='true'>wrap:mvn:com.google.code.gson/gson/${gson-version}</bundle>
+ <bundle
dependency='true'>wrap:mvn:io.opencensus/opencensus-api/${google-http-client-opencensus-api-version}</bundle>
+ <bundle
dependency='true'>wrap:mvn:io.opencensus/opencensus-contrib-http-util/${google-http-client-opencensus-api-version}</bundle>
+ <bundle
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.google-http-client/${google-http-client-bundle-version}</bundle>
+ <bundle
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.guava/${jira-guava-bundle-version}</bundle>
+ <bundle
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.atlassian-jira-client/${atlassian-jira-client-bundle-version}</bundle>
+ <bundle>mvn:org.apache.camel/camel-jira/${project.version}</bundle>
+ </feature>
<feature name='camel-jetty' version='${project.version}' start-level='50'>
<feature>jetty</feature>
<feature version='${project.version}'>camel-core</feature>
diff --git a/pom.xml b/pom.xml
index 777c86c7..429ff65f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -121,6 +121,7 @@
<aries-spifly.bundle.version>1.3.0</aries-spifly.bundle.version>
<asm.bundle.version>8.0.1</asm.bundle.version>
<asterisk-java-bundle-version>1.0.0-final_1</asterisk-java-bundle-version>
+
<atlassian-jira-client-bundle-version>5.2.4_2</atlassian-jira-client-bundle-version>
<automaton-bundle-version>1.11-8_1</automaton-bundle-version>
<avalon-bundle-version>4.3.1_1</avalon-bundle-version>
<avro-java-commons-compress-version>1.21</avro-java-commons-compress-version>
@@ -177,17 +178,27 @@
<google-cloud-core-version>2.7.1</google-cloud-core-version>
<google-cloud-gax-version>2.18.1</google-cloud-gax-version>
<google-cloud-gax-httpjson-version>0.103.1</google-cloud-gax-httpjson-version>
+
<google-cloud-grpc-bundle-version>1.48.1_2</google-cloud-grpc-bundle-version>
+
<google-cloud-guava-bundle-version>31.1_1</google-cloud-guava-bundle-version>
<google-cloud-http-client-version>1.41.8</google-cloud-http-client-version>
<google-cloud-oauth-client-version>1.33.3</google-cloud-oauth-client-version>
<google-cloud-common-protos-version>2.8.3</google-cloud-common-protos-version>
+ <google-cloud-perfmark-version>0.25.0</google-cloud-perfmark-version>
+
<google-cloud-pubsub-bundle-version>1.119.0_1</google-cloud-pubsub-bundle-version>
<google-cloud-iam-version>1.3.4</google-cloud-iam-version>
<google-cloud-threetenbp-version>1.6.0</google-cloud-threetenbp-version>
<google-findbugs-jsr305-version>3.0.2</google-findbugs-jsr305-version>
<google-findbugs-annotations2-version>2.0.3</google-findbugs-annotations2-version>
+
<google-http-client-bundle-version>1.41.8_1</google-http-client-bundle-version>
+ <google-gax-bundle-version>2.18.1_1</google-gax-bundle-version>
+
<google-http-client-bundle-version>1.41.8_2</google-http-client-bundle-version>
+
<google-http-client-opencensus-api-version>0.31.1</google-http-client-opencensus-api-version>
+ <google-proto-iam-version>1.3.4</google-proto-iam-version>
<google-truth-version>0.30</google-truth-version>
<groovy-version>3.0.8</groovy-version>
<grpc-bundle-version>1.44.1_1</grpc-bundle-version>
<grpc-errorprone-version>2.3.4</grpc-errorprone-version>
+
<grpc-google-auth-library-version>1.7.0</grpc-google-auth-library-version>
<guice-bundle-version>3.0_1</guice-bundle-version>
<hikaricp-version>2.4.13</hikaricp-version>
<hk2-osgi-resource-version>1.0.1</hk2-osgi-resource-version>
@@ -209,6 +220,7 @@
<jaxb-bundle-version>2.3.1_1</jaxb-bundle-version>
<jboss-logging-version>3.4.1.Final</jboss-logging-version>
<jdom-bundle-version>2.0.6_1</jdom-bundle-version>
+ <jira-guava-bundle-version>30.1.1_1</jira-guava-bundle-version>
<jetty9-version>9.4.32.v20200930</jetty9-version>
<jodatime-bundle-version>1.6.2</jodatime-bundle-version>
<jolt-bundle-version>0.1.6_1</jolt-bundle-version>
@@ -247,6 +259,7 @@
<olingo2-gson-version>2.4</olingo2-gson-version>
<ognl-bundle-version>3.1.12_1</ognl-bundle-version>
<opencensus-api-version>0.24.0</opencensus-api-version>
+ <opencensus-proto-version>0.2.0</opencensus-proto-version>
<oncrpc-version>1.1.3</oncrpc-version>
<ops4j-base-version>1.5.0</ops4j-base-version>
<oro-bundle-version>2.0.8_6</oro-bundle-version>
@@ -259,9 +272,11 @@
<perfmark-version>0.17.0</perfmark-version>
<protobuf-guava-version>30.1.1-jre</protobuf-guava-version>
<protobuf-javanano-version>3.1.0</protobuf-javanano-version>
+ <protobuf-version>3.21.4</protobuf-version>
<reflections-bundle-version>0.9.12_1</reflections-bundle-version>
<regexp-bundle-version>1.4_1</regexp-bundle-version>
<rescu-version>2.1.0</rescu-version>
+ <re2j-version>1.5</re2j-version>
<roaster-version>2.21.1.Final</roaster-version>
<saxon-bundle-version>9.9.1-6_1</saxon-bundle-version>
<scribe-bundle-version>1.3.7_1</scribe-bundle-version>