This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new d8d24a7c0d6 CAMEL-20662: Add more consumer options for the gRPC server
setup
d8d24a7c0d6 is described below
commit d8d24a7c0d612728bc4ded32548b41c6b1ff486d
Author: James Netherton <[email protected]>
AuthorDate: Thu Apr 11 10:31:32 2024 +0100
CAMEL-20662: Add more consumer options for the gRPC server setup
---
.../org/apache/camel/catalog/components/grpc.json | 61 ++--
.../component/grpc/GrpcEndpointConfigurer.java | 66 ++++
.../component/grpc/GrpcEndpointUriFactory.java | 13 +-
.../org/apache/camel/component/grpc/grpc.json | 61 ++--
.../camel/component/grpc/GrpcConfiguration.java | 168 ++++++++-
.../apache/camel/component/grpc/GrpcConsumer.java | 20 +
.../grpc/GrpcConsumerConfigurationTest.java | 32 ++
.../endpoint/dsl/GrpcEndpointBuilderFactory.java | 403 ++++++++++++++++++++-
.../apache/camel/kotlin/components/GrpcUriDsl.kt | 190 +++++++++-
9 files changed, 958 insertions(+), 56 deletions(-)
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/grpc.json
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/grpc.json
index 6ab6b63d56d..8df4313896e 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/grpc.json
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/grpc.json
@@ -43,30 +43,41 @@
"consumerStrategy": { "index": 6, "kind": "parameter", "displayName":
"Consumer Strategy", "group": "consumer", "label": "consumer", "required":
false, "type": "object", "javaType":
"org.apache.camel.component.grpc.GrpcConsumerStrategy", "enum": [
"AGGREGATION", "PROPAGATION", "DELEGATION" ], "deprecated": false, "autowired":
false, "secret": false, "defaultValue": "PROPAGATION", "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configu [...]
"forwardOnCompleted": { "index": 7, "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": { "index": 8, "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 s [...]
- "maxConcurrentCallsPerConnection": { "index": 9, "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 [...]
- "routeControlledStreamObserver": { "index": 10, "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. I [...]
- "bridgeErrorHandler": { "index": 11, "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 (if possible) occurred
while the Camel consumer is trying to pickup incoming [...]
- "exceptionHandler": { "index": 12, "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 de [...]
- "exchangePattern": { "index": 13, "kind": "parameter", "displayName":
"Exchange Pattern", "group": "consumer (advanced)", "label":
"consumer,advanced", "required": false, "type": "object", "javaType":
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ],
"deprecated": false, "autowired": false, "secret": false, "description": "Sets
the exchange pattern when the consumer creates an exchange." },
- "autoDiscoverClientInterceptors": { "index": 14, "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, [...]
- "inheritExchangePropertiesForReplies": { "index": 15, "kind": "parameter",
"displayName": "Inherit Exchange Properties For Replies", "group": "producer",
"label": "producer", "required": false, "type": "boolean", "javaType":
"boolean", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": false, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Copies exchange properties from original [...]
- "method": { "index": 16, "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": { "index": 17, "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": " [...]
- "streamRepliesTo": { "index": 18, "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." },
- "toRouteControlledStreamObserver": { "index": 19, "kind": "parameter",
"displayName": "To Route Controlled Stream Observer", "group": "producer",
"label": "producer", "required": false, "type": "boolean", "javaType":
"boolean", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": false, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Expects that exchange property
GrpcConstants.GRPC [...]
- "userAgent": { "index": 20, "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": { "index": 21, "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 produ [...]
- "synchronous": { "index": 22, "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": { "index": 23, "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": "Auth [...]
- "jwtAlgorithm": { "index": 24, "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 [...]
- "jwtIssuer": { "index": 25, "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": { "index": 26, "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": { "index": 27, "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": { "index": 28, "kind": "parameter", "displayName":
"Key Cert Chain Resource", "group": "security", "label": "security",
"required": false, "type": "string", "javaType": "java.lang.String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "supportFileReference": true, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "The X.509 certificate chain file r [...]
- "keyPassword": { "index": 29, "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": { "index": 30, "kind": "parameter", "displayName": "Key
Resource", "group": "security", "label": "security", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"supportFileReference": true, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "The PKCS#8 private key file resource in PEM
format link" },
- "negotiationType": { "index": 31, "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": "Iden [...]
- "serviceAccountResource": { "index": 32, "kind": "parameter",
"displayName": "Service Account Resource", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "supportFileReference": true, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Service Account key file in JSO [...]
- "trustCertCollectionResource": { "index": 33, "kind": "parameter",
"displayName": "Trust Cert Collection Resource", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "supportFileReference": true, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "The trusted certific [...]
+ "initialFlowControlWindow": { "index": 9, "kind": "parameter",
"displayName": "Initial Flow Control Window", "group": "consumer", "label":
"consumer", "required": false, "type": "integer", "javaType": "int",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
1048576, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Sets the initial flow control window in
bytes." },
+ "keepAliveTime": { "index": 10, "kind": "parameter", "displayName": "Keep
Alive Time", "group": "consumer", "label": "consumer", "required": false,
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 7200000, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Sets a custom keepalive time in milliseconds,
the delay time for sending next keepalive [...]
+ "keepAliveTimeout": { "index": 11, "kind": "parameter", "displayName":
"Keep Alive Timeout", "group": "consumer", "label": "consumer", "required":
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": 20000, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Sets a custom keepalive timeout in
milliseconds, the timeout for keepalive ping requ [...]
+ "maxConcurrentCallsPerConnection": { "index": 12, "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 [...]
+ "maxConnectionAge": { "index": 13, "kind": "parameter", "displayName":
"Max Connection Age", "group": "consumer", "label": "consumer", "required":
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": 9223372036854775807,
"configurationClass": "org.apache.camel.component.grpc.GrpcConfiguration",
"configurationField": "configuration", "description": "Sets a custom max
connection age in milliseconds. Connections lasting [...]
+ "maxConnectionAgeGrace": { "index": 14, "kind": "parameter",
"displayName": "Max Connection Age Grace", "group": "consumer", "label":
"consumer", "required": false, "type": "integer", "javaType": "long",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
9223372036854775807, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Sets a custom grace time in milliseconds for
the graceful c [...]
+ "maxConnectionIdle": { "index": 15, "kind": "parameter", "displayName":
"Max Connection Idle", "group": "consumer", "label": "consumer", "required":
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": 9223372036854775807,
"configurationClass": "org.apache.camel.component.grpc.GrpcConfiguration",
"configurationField": "configuration", "description": "Sets a custom max
connection idle time in milliseconds. Connection b [...]
+ "maxInboundMetadataSize": { "index": 16, "kind": "parameter",
"displayName": "Max Inbound Metadata Size", "group": "consumer", "label":
"consumer", "required": false, "type": "integer", "javaType": "int",
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 8192,
"configurationClass": "org.apache.camel.component.grpc.GrpcConfiguration",
"configurationField": "configuration", "description": "Sets the maximum size of
metadata allowed to be received. The default is [...]
+ "maxRstFramesPerWindow": { "index": 17, "kind": "parameter",
"displayName": "Max Rst Frames Per Window", "group": "consumer", "label":
"consumer", "required": false, "type": "integer", "javaType": "int",
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 0,
"configurationClass": "org.apache.camel.component.grpc.GrpcConfiguration",
"configurationField": "configuration", "description": "Limits the rate of
incoming RST_STREAM frames per connection to maxRstFramesP [...]
+ "maxRstPeriodSeconds": { "index": 18, "kind": "parameter", "displayName":
"Max Rst Period Seconds", "group": "consumer", "label": "consumer", "required":
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": 0, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Limits the rate of incoming RST_STREAM frames
per maxRstPeriodSeconds. This option [...]
+ "permitKeepAliveTime": { "index": 19, "kind": "parameter", "displayName":
"Permit Keep Alive Time", "group": "consumer", "label": "consumer", "required":
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": 300000, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Sets the most aggressive keep-alive time in
milliseconds that clients are pe [...]
+ "permitKeepAliveWithoutCalls": { "index": 20, "kind": "parameter",
"displayName": "Permit Keep Alive Without Calls", "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": "Sets whether to allow clients to send
keep-alive HTTP\/ 2 [...]
+ "routeControlledStreamObserver": { "index": 21, "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. I [...]
+ "bridgeErrorHandler": { "index": 22, "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 (if possible) occurred
while the Camel consumer is trying to pickup incoming [...]
+ "exceptionHandler": { "index": 23, "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 de [...]
+ "exchangePattern": { "index": 24, "kind": "parameter", "displayName":
"Exchange Pattern", "group": "consumer (advanced)", "label":
"consumer,advanced", "required": false, "type": "object", "javaType":
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ],
"deprecated": false, "autowired": false, "secret": false, "description": "Sets
the exchange pattern when the consumer creates an exchange." },
+ "autoDiscoverClientInterceptors": { "index": 25, "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, [...]
+ "inheritExchangePropertiesForReplies": { "index": 26, "kind": "parameter",
"displayName": "Inherit Exchange Properties For Replies", "group": "producer",
"label": "producer", "required": false, "type": "boolean", "javaType":
"boolean", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": false, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Copies exchange properties from original [...]
+ "method": { "index": 27, "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": { "index": 28, "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": " [...]
+ "streamRepliesTo": { "index": 29, "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." },
+ "toRouteControlledStreamObserver": { "index": 30, "kind": "parameter",
"displayName": "To Route Controlled Stream Observer", "group": "producer",
"label": "producer", "required": false, "type": "boolean", "javaType":
"boolean", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": false, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Expects that exchange property
GrpcConstants.GRPC [...]
+ "userAgent": { "index": 31, "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": { "index": 32, "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 produ [...]
+ "synchronous": { "index": 33, "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": { "index": 34, "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": "Auth [...]
+ "jwtAlgorithm": { "index": 35, "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 [...]
+ "jwtIssuer": { "index": 36, "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": { "index": 37, "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": { "index": 38, "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": { "index": 39, "kind": "parameter", "displayName":
"Key Cert Chain Resource", "group": "security", "label": "security",
"required": false, "type": "string", "javaType": "java.lang.String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "supportFileReference": true, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "The X.509 certificate chain file r [...]
+ "keyPassword": { "index": 40, "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": { "index": 41, "kind": "parameter", "displayName": "Key
Resource", "group": "security", "label": "security", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"supportFileReference": true, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "The PKCS#8 private key file resource in PEM
format link" },
+ "negotiationType": { "index": 42, "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": "Iden [...]
+ "serviceAccountResource": { "index": 43, "kind": "parameter",
"displayName": "Service Account Resource", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "supportFileReference": true, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Service Account key file in JSO [...]
+ "trustCertCollectionResource": { "index": 44, "kind": "parameter",
"displayName": "Trust Cert Collection Resource", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "supportFileReference": true, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "The trusted certific [...]
}
}
diff --git
a/components/camel-grpc/src/generated/java/org/apache/camel/component/grpc/GrpcEndpointConfigurer.java
b/components/camel-grpc/src/generated/java/org/apache/camel/component/grpc/GrpcEndpointConfigurer.java
index c982e98b20c..bf01e1ddc67 100644
---
a/components/camel-grpc/src/generated/java/org/apache/camel/component/grpc/GrpcEndpointConfigurer.java
+++
b/components/camel-grpc/src/generated/java/org/apache/camel/component/grpc/GrpcEndpointConfigurer.java
@@ -43,6 +43,8 @@ public class GrpcEndpointConfigurer extends
PropertyConfigurerSupport implements
case "forwardOnError":
target.getConfiguration().setForwardOnError(property(camelContext,
boolean.class, value)); return true;
case "inheritexchangepropertiesforreplies":
case "inheritExchangePropertiesForReplies":
target.getConfiguration().setInheritExchangePropertiesForReplies(property(camelContext,
boolean.class, value)); return true;
+ case "initialflowcontrolwindow":
+ case "initialFlowControlWindow":
target.getConfiguration().setInitialFlowControlWindow(property(camelContext,
int.class, value)); return true;
case "jwtalgorithm":
case "jwtAlgorithm":
target.getConfiguration().setJwtAlgorithm(property(camelContext,
org.apache.camel.component.grpc.auth.jwt.JwtAlgorithm.class, value)); return
true;
case "jwtissuer":
@@ -51,6 +53,10 @@ public class GrpcEndpointConfigurer extends
PropertyConfigurerSupport implements
case "jwtSecret":
target.getConfiguration().setJwtSecret(property(camelContext,
java.lang.String.class, value)); return true;
case "jwtsubject":
case "jwtSubject":
target.getConfiguration().setJwtSubject(property(camelContext,
java.lang.String.class, value)); return true;
+ case "keepalivetime":
+ case "keepAliveTime":
target.getConfiguration().setKeepAliveTime(property(camelContext, long.class,
value)); return true;
+ case "keepalivetimeout":
+ case "keepAliveTimeout":
target.getConfiguration().setKeepAliveTimeout(property(camelContext,
long.class, value)); return true;
case "keycertchainresource":
case "keyCertChainResource":
target.getConfiguration().setKeyCertChainResource(property(camelContext,
java.lang.String.class, value)); return true;
case "keypassword":
@@ -61,11 +67,27 @@ public class GrpcEndpointConfigurer extends
PropertyConfigurerSupport implements
case "lazyStartProducer":
target.setLazyStartProducer(property(camelContext, boolean.class, value));
return true;
case "maxconcurrentcallsperconnection":
case "maxConcurrentCallsPerConnection":
target.getConfiguration().setMaxConcurrentCallsPerConnection(property(camelContext,
int.class, value)); return true;
+ case "maxconnectionage":
+ case "maxConnectionAge":
target.getConfiguration().setMaxConnectionAge(property(camelContext,
long.class, value)); return true;
+ case "maxconnectionagegrace":
+ case "maxConnectionAgeGrace":
target.getConfiguration().setMaxConnectionAgeGrace(property(camelContext,
long.class, value)); return true;
+ case "maxconnectionidle":
+ case "maxConnectionIdle":
target.getConfiguration().setMaxConnectionIdle(property(camelContext,
long.class, value)); return true;
+ case "maxinboundmetadatasize":
+ case "maxInboundMetadataSize":
target.getConfiguration().setMaxInboundMetadataSize(property(camelContext,
int.class, value)); return true;
case "maxmessagesize":
case "maxMessageSize":
target.getConfiguration().setMaxMessageSize(property(camelContext, int.class,
value)); return true;
+ case "maxrstframesperwindow":
+ case "maxRstFramesPerWindow":
target.getConfiguration().setMaxRstFramesPerWindow(property(camelContext,
int.class, value)); return true;
+ case "maxrstperiodseconds":
+ case "maxRstPeriodSeconds":
target.getConfiguration().setMaxRstPeriodSeconds(property(camelContext,
int.class, value)); return true;
case "method":
target.getConfiguration().setMethod(property(camelContext,
java.lang.String.class, value)); return true;
case "negotiationtype":
case "negotiationType":
target.getConfiguration().setNegotiationType(property(camelContext,
io.grpc.netty.NegotiationType.class, value)); return true;
+ case "permitkeepalivetime":
+ case "permitKeepAliveTime":
target.getConfiguration().setPermitKeepAliveTime(property(camelContext,
long.class, value)); return true;
+ case "permitkeepalivewithoutcalls":
+ case "permitKeepAliveWithoutCalls":
target.getConfiguration().setPermitKeepAliveWithoutCalls(property(camelContext,
boolean.class, value)); return true;
case "producerstrategy":
case "producerStrategy":
target.getConfiguration().setProducerStrategy(property(camelContext,
org.apache.camel.component.grpc.GrpcProducerStrategy.class, value)); return
true;
case "routecontrolledstreamobserver":
@@ -110,6 +132,8 @@ public class GrpcEndpointConfigurer extends
PropertyConfigurerSupport implements
case "forwardOnError": return boolean.class;
case "inheritexchangepropertiesforreplies":
case "inheritExchangePropertiesForReplies": return boolean.class;
+ case "initialflowcontrolwindow":
+ case "initialFlowControlWindow": return int.class;
case "jwtalgorithm":
case "jwtAlgorithm": return
org.apache.camel.component.grpc.auth.jwt.JwtAlgorithm.class;
case "jwtissuer":
@@ -118,6 +142,10 @@ public class GrpcEndpointConfigurer extends
PropertyConfigurerSupport implements
case "jwtSecret": return java.lang.String.class;
case "jwtsubject":
case "jwtSubject": return java.lang.String.class;
+ case "keepalivetime":
+ case "keepAliveTime": return long.class;
+ case "keepalivetimeout":
+ case "keepAliveTimeout": return long.class;
case "keycertchainresource":
case "keyCertChainResource": return java.lang.String.class;
case "keypassword":
@@ -128,11 +156,27 @@ public class GrpcEndpointConfigurer extends
PropertyConfigurerSupport implements
case "lazyStartProducer": return boolean.class;
case "maxconcurrentcallsperconnection":
case "maxConcurrentCallsPerConnection": return int.class;
+ case "maxconnectionage":
+ case "maxConnectionAge": return long.class;
+ case "maxconnectionagegrace":
+ case "maxConnectionAgeGrace": return long.class;
+ case "maxconnectionidle":
+ case "maxConnectionIdle": return long.class;
+ case "maxinboundmetadatasize":
+ case "maxInboundMetadataSize": return int.class;
case "maxmessagesize":
case "maxMessageSize": return int.class;
+ case "maxrstframesperwindow":
+ case "maxRstFramesPerWindow": return int.class;
+ case "maxrstperiodseconds":
+ case "maxRstPeriodSeconds": return int.class;
case "method": return java.lang.String.class;
case "negotiationtype":
case "negotiationType": return io.grpc.netty.NegotiationType.class;
+ case "permitkeepalivetime":
+ case "permitKeepAliveTime": return long.class;
+ case "permitkeepalivewithoutcalls":
+ case "permitKeepAliveWithoutCalls": return boolean.class;
case "producerstrategy":
case "producerStrategy": return
org.apache.camel.component.grpc.GrpcProducerStrategy.class;
case "routecontrolledstreamobserver":
@@ -178,6 +222,8 @@ public class GrpcEndpointConfigurer extends
PropertyConfigurerSupport implements
case "forwardOnError": return
target.getConfiguration().isForwardOnError();
case "inheritexchangepropertiesforreplies":
case "inheritExchangePropertiesForReplies": return
target.getConfiguration().isInheritExchangePropertiesForReplies();
+ case "initialflowcontrolwindow":
+ case "initialFlowControlWindow": return
target.getConfiguration().getInitialFlowControlWindow();
case "jwtalgorithm":
case "jwtAlgorithm": return
target.getConfiguration().getJwtAlgorithm();
case "jwtissuer":
@@ -186,6 +232,10 @@ public class GrpcEndpointConfigurer extends
PropertyConfigurerSupport implements
case "jwtSecret": return target.getConfiguration().getJwtSecret();
case "jwtsubject":
case "jwtSubject": return target.getConfiguration().getJwtSubject();
+ case "keepalivetime":
+ case "keepAliveTime": return
target.getConfiguration().getKeepAliveTime();
+ case "keepalivetimeout":
+ case "keepAliveTimeout": return
target.getConfiguration().getKeepAliveTimeout();
case "keycertchainresource":
case "keyCertChainResource": return
target.getConfiguration().getKeyCertChainResource();
case "keypassword":
@@ -196,11 +246,27 @@ public class GrpcEndpointConfigurer extends
PropertyConfigurerSupport implements
case "lazyStartProducer": return target.isLazyStartProducer();
case "maxconcurrentcallsperconnection":
case "maxConcurrentCallsPerConnection": return
target.getConfiguration().getMaxConcurrentCallsPerConnection();
+ case "maxconnectionage":
+ case "maxConnectionAge": return
target.getConfiguration().getMaxConnectionAge();
+ case "maxconnectionagegrace":
+ case "maxConnectionAgeGrace": return
target.getConfiguration().getMaxConnectionAgeGrace();
+ case "maxconnectionidle":
+ case "maxConnectionIdle": return
target.getConfiguration().getMaxConnectionIdle();
+ case "maxinboundmetadatasize":
+ case "maxInboundMetadataSize": return
target.getConfiguration().getMaxInboundMetadataSize();
case "maxmessagesize":
case "maxMessageSize": return
target.getConfiguration().getMaxMessageSize();
+ case "maxrstframesperwindow":
+ case "maxRstFramesPerWindow": return
target.getConfiguration().getMaxRstFramesPerWindow();
+ case "maxrstperiodseconds":
+ case "maxRstPeriodSeconds": return
target.getConfiguration().getMaxRstPeriodSeconds();
case "method": return target.getConfiguration().getMethod();
case "negotiationtype":
case "negotiationType": return
target.getConfiguration().getNegotiationType();
+ case "permitkeepalivetime":
+ case "permitKeepAliveTime": return
target.getConfiguration().getPermitKeepAliveTime();
+ case "permitkeepalivewithoutcalls":
+ case "permitKeepAliveWithoutCalls": return
target.getConfiguration().isPermitKeepAliveWithoutCalls();
case "producerstrategy":
case "producerStrategy": return
target.getConfiguration().getProducerStrategy();
case "routecontrolledstreamobserver":
diff --git
a/components/camel-grpc/src/generated/java/org/apache/camel/component/grpc/GrpcEndpointUriFactory.java
b/components/camel-grpc/src/generated/java/org/apache/camel/component/grpc/GrpcEndpointUriFactory.java
index fe990fa1072..8ab3efc2b69 100644
---
a/components/camel-grpc/src/generated/java/org/apache/camel/component/grpc/GrpcEndpointUriFactory.java
+++
b/components/camel-grpc/src/generated/java/org/apache/camel/component/grpc/GrpcEndpointUriFactory.java
@@ -21,7 +21,7 @@ public class GrpcEndpointUriFactory extends
org.apache.camel.support.component.E
private static final Set<String> SECRET_PROPERTY_NAMES;
private static final Set<String> MULTI_VALUE_PREFIXES;
static {
- Set<String> props = new HashSet<>(34);
+ Set<String> props = new HashSet<>(45);
props.add("authenticationType");
props.add("autoDiscoverClientInterceptors");
props.add("autoDiscoverServerInterceptors");
@@ -34,18 +34,29 @@ public class GrpcEndpointUriFactory extends
org.apache.camel.support.component.E
props.add("forwardOnError");
props.add("host");
props.add("inheritExchangePropertiesForReplies");
+ props.add("initialFlowControlWindow");
props.add("jwtAlgorithm");
props.add("jwtIssuer");
props.add("jwtSecret");
props.add("jwtSubject");
+ props.add("keepAliveTime");
+ props.add("keepAliveTimeout");
props.add("keyCertChainResource");
props.add("keyPassword");
props.add("keyResource");
props.add("lazyStartProducer");
props.add("maxConcurrentCallsPerConnection");
+ props.add("maxConnectionAge");
+ props.add("maxConnectionAgeGrace");
+ props.add("maxConnectionIdle");
+ props.add("maxInboundMetadataSize");
props.add("maxMessageSize");
+ props.add("maxRstFramesPerWindow");
+ props.add("maxRstPeriodSeconds");
props.add("method");
props.add("negotiationType");
+ props.add("permitKeepAliveTime");
+ props.add("permitKeepAliveWithoutCalls");
props.add("port");
props.add("producerStrategy");
props.add("routeControlledStreamObserver");
diff --git
a/components/camel-grpc/src/generated/resources/META-INF/org/apache/camel/component/grpc/grpc.json
b/components/camel-grpc/src/generated/resources/META-INF/org/apache/camel/component/grpc/grpc.json
index 6ab6b63d56d..8df4313896e 100644
---
a/components/camel-grpc/src/generated/resources/META-INF/org/apache/camel/component/grpc/grpc.json
+++
b/components/camel-grpc/src/generated/resources/META-INF/org/apache/camel/component/grpc/grpc.json
@@ -43,30 +43,41 @@
"consumerStrategy": { "index": 6, "kind": "parameter", "displayName":
"Consumer Strategy", "group": "consumer", "label": "consumer", "required":
false, "type": "object", "javaType":
"org.apache.camel.component.grpc.GrpcConsumerStrategy", "enum": [
"AGGREGATION", "PROPAGATION", "DELEGATION" ], "deprecated": false, "autowired":
false, "secret": false, "defaultValue": "PROPAGATION", "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configu [...]
"forwardOnCompleted": { "index": 7, "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": { "index": 8, "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 s [...]
- "maxConcurrentCallsPerConnection": { "index": 9, "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 [...]
- "routeControlledStreamObserver": { "index": 10, "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. I [...]
- "bridgeErrorHandler": { "index": 11, "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 (if possible) occurred
while the Camel consumer is trying to pickup incoming [...]
- "exceptionHandler": { "index": 12, "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 de [...]
- "exchangePattern": { "index": 13, "kind": "parameter", "displayName":
"Exchange Pattern", "group": "consumer (advanced)", "label":
"consumer,advanced", "required": false, "type": "object", "javaType":
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ],
"deprecated": false, "autowired": false, "secret": false, "description": "Sets
the exchange pattern when the consumer creates an exchange." },
- "autoDiscoverClientInterceptors": { "index": 14, "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, [...]
- "inheritExchangePropertiesForReplies": { "index": 15, "kind": "parameter",
"displayName": "Inherit Exchange Properties For Replies", "group": "producer",
"label": "producer", "required": false, "type": "boolean", "javaType":
"boolean", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": false, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Copies exchange properties from original [...]
- "method": { "index": 16, "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": { "index": 17, "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": " [...]
- "streamRepliesTo": { "index": 18, "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." },
- "toRouteControlledStreamObserver": { "index": 19, "kind": "parameter",
"displayName": "To Route Controlled Stream Observer", "group": "producer",
"label": "producer", "required": false, "type": "boolean", "javaType":
"boolean", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": false, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Expects that exchange property
GrpcConstants.GRPC [...]
- "userAgent": { "index": 20, "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": { "index": 21, "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 produ [...]
- "synchronous": { "index": 22, "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": { "index": 23, "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": "Auth [...]
- "jwtAlgorithm": { "index": 24, "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 [...]
- "jwtIssuer": { "index": 25, "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": { "index": 26, "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": { "index": 27, "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": { "index": 28, "kind": "parameter", "displayName":
"Key Cert Chain Resource", "group": "security", "label": "security",
"required": false, "type": "string", "javaType": "java.lang.String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "supportFileReference": true, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "The X.509 certificate chain file r [...]
- "keyPassword": { "index": 29, "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": { "index": 30, "kind": "parameter", "displayName": "Key
Resource", "group": "security", "label": "security", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"supportFileReference": true, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "The PKCS#8 private key file resource in PEM
format link" },
- "negotiationType": { "index": 31, "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": "Iden [...]
- "serviceAccountResource": { "index": 32, "kind": "parameter",
"displayName": "Service Account Resource", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "supportFileReference": true, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Service Account key file in JSO [...]
- "trustCertCollectionResource": { "index": 33, "kind": "parameter",
"displayName": "Trust Cert Collection Resource", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "supportFileReference": true, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "The trusted certific [...]
+ "initialFlowControlWindow": { "index": 9, "kind": "parameter",
"displayName": "Initial Flow Control Window", "group": "consumer", "label":
"consumer", "required": false, "type": "integer", "javaType": "int",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
1048576, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Sets the initial flow control window in
bytes." },
+ "keepAliveTime": { "index": 10, "kind": "parameter", "displayName": "Keep
Alive Time", "group": "consumer", "label": "consumer", "required": false,
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 7200000, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Sets a custom keepalive time in milliseconds,
the delay time for sending next keepalive [...]
+ "keepAliveTimeout": { "index": 11, "kind": "parameter", "displayName":
"Keep Alive Timeout", "group": "consumer", "label": "consumer", "required":
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": 20000, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Sets a custom keepalive timeout in
milliseconds, the timeout for keepalive ping requ [...]
+ "maxConcurrentCallsPerConnection": { "index": 12, "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 [...]
+ "maxConnectionAge": { "index": 13, "kind": "parameter", "displayName":
"Max Connection Age", "group": "consumer", "label": "consumer", "required":
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": 9223372036854775807,
"configurationClass": "org.apache.camel.component.grpc.GrpcConfiguration",
"configurationField": "configuration", "description": "Sets a custom max
connection age in milliseconds. Connections lasting [...]
+ "maxConnectionAgeGrace": { "index": 14, "kind": "parameter",
"displayName": "Max Connection Age Grace", "group": "consumer", "label":
"consumer", "required": false, "type": "integer", "javaType": "long",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
9223372036854775807, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Sets a custom grace time in milliseconds for
the graceful c [...]
+ "maxConnectionIdle": { "index": 15, "kind": "parameter", "displayName":
"Max Connection Idle", "group": "consumer", "label": "consumer", "required":
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": 9223372036854775807,
"configurationClass": "org.apache.camel.component.grpc.GrpcConfiguration",
"configurationField": "configuration", "description": "Sets a custom max
connection idle time in milliseconds. Connection b [...]
+ "maxInboundMetadataSize": { "index": 16, "kind": "parameter",
"displayName": "Max Inbound Metadata Size", "group": "consumer", "label":
"consumer", "required": false, "type": "integer", "javaType": "int",
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 8192,
"configurationClass": "org.apache.camel.component.grpc.GrpcConfiguration",
"configurationField": "configuration", "description": "Sets the maximum size of
metadata allowed to be received. The default is [...]
+ "maxRstFramesPerWindow": { "index": 17, "kind": "parameter",
"displayName": "Max Rst Frames Per Window", "group": "consumer", "label":
"consumer", "required": false, "type": "integer", "javaType": "int",
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 0,
"configurationClass": "org.apache.camel.component.grpc.GrpcConfiguration",
"configurationField": "configuration", "description": "Limits the rate of
incoming RST_STREAM frames per connection to maxRstFramesP [...]
+ "maxRstPeriodSeconds": { "index": 18, "kind": "parameter", "displayName":
"Max Rst Period Seconds", "group": "consumer", "label": "consumer", "required":
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": 0, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Limits the rate of incoming RST_STREAM frames
per maxRstPeriodSeconds. This option [...]
+ "permitKeepAliveTime": { "index": 19, "kind": "parameter", "displayName":
"Permit Keep Alive Time", "group": "consumer", "label": "consumer", "required":
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": 300000, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Sets the most aggressive keep-alive time in
milliseconds that clients are pe [...]
+ "permitKeepAliveWithoutCalls": { "index": 20, "kind": "parameter",
"displayName": "Permit Keep Alive Without Calls", "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": "Sets whether to allow clients to send
keep-alive HTTP\/ 2 [...]
+ "routeControlledStreamObserver": { "index": 21, "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. I [...]
+ "bridgeErrorHandler": { "index": 22, "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 (if possible) occurred
while the Camel consumer is trying to pickup incoming [...]
+ "exceptionHandler": { "index": 23, "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 de [...]
+ "exchangePattern": { "index": 24, "kind": "parameter", "displayName":
"Exchange Pattern", "group": "consumer (advanced)", "label":
"consumer,advanced", "required": false, "type": "object", "javaType":
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ],
"deprecated": false, "autowired": false, "secret": false, "description": "Sets
the exchange pattern when the consumer creates an exchange." },
+ "autoDiscoverClientInterceptors": { "index": 25, "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, [...]
+ "inheritExchangePropertiesForReplies": { "index": 26, "kind": "parameter",
"displayName": "Inherit Exchange Properties For Replies", "group": "producer",
"label": "producer", "required": false, "type": "boolean", "javaType":
"boolean", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": false, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Copies exchange properties from original [...]
+ "method": { "index": 27, "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": { "index": 28, "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": " [...]
+ "streamRepliesTo": { "index": 29, "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." },
+ "toRouteControlledStreamObserver": { "index": 30, "kind": "parameter",
"displayName": "To Route Controlled Stream Observer", "group": "producer",
"label": "producer", "required": false, "type": "boolean", "javaType":
"boolean", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": false, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Expects that exchange property
GrpcConstants.GRPC [...]
+ "userAgent": { "index": 31, "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": { "index": 32, "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 produ [...]
+ "synchronous": { "index": 33, "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": { "index": 34, "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": "Auth [...]
+ "jwtAlgorithm": { "index": 35, "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 [...]
+ "jwtIssuer": { "index": 36, "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": { "index": 37, "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": { "index": 38, "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": { "index": 39, "kind": "parameter", "displayName":
"Key Cert Chain Resource", "group": "security", "label": "security",
"required": false, "type": "string", "javaType": "java.lang.String",
"deprecated": false, "deprecationNote": "", "autowired": false, "secret":
false, "supportFileReference": true, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "The X.509 certificate chain file r [...]
+ "keyPassword": { "index": 40, "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": { "index": 41, "kind": "parameter", "displayName": "Key
Resource", "group": "security", "label": "security", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"supportFileReference": true, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "The PKCS#8 private key file resource in PEM
format link" },
+ "negotiationType": { "index": 42, "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": "Iden [...]
+ "serviceAccountResource": { "index": 43, "kind": "parameter",
"displayName": "Service Account Resource", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "supportFileReference": true, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "Service Account key file in JSO [...]
+ "trustCertCollectionResource": { "index": 44, "kind": "parameter",
"displayName": "Trust Cert Collection Resource", "group": "security", "label":
"security", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "supportFileReference": true, "configurationClass":
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField":
"configuration", "description": "The trusted certific [...]
}
}
diff --git
a/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcConfiguration.java
b/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcConfiguration.java
index 41067736feb..5a3e24e62a7 100644
---
a/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcConfiguration.java
+++
b/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcConfiguration.java
@@ -19,12 +19,14 @@ package org.apache.camel.component.grpc;
import java.net.URI;
import java.util.Collections;
import java.util.List;
+import java.util.concurrent.TimeUnit;
import io.grpc.ClientInterceptor;
import io.grpc.ServerInterceptor;
import io.grpc.internal.GrpcUtil;
import io.grpc.netty.NegotiationType;
import io.grpc.netty.NettyChannelBuilder;
+import io.grpc.netty.NettyServerBuilder;
import org.apache.camel.component.grpc.auth.jwt.JwtAlgorithm;
import org.apache.camel.spi.Metadata;
import org.apache.camel.spi.UriParam;
@@ -138,6 +140,39 @@ public class GrpcConfiguration {
description = "Expects that exchange property
GrpcConstants.GRPC_RESPONSE_OBSERVER is set. Takes its value and calls onNext,
onError and onComplete on that StreamObserver. All other gRPC parameters are
ignored.")
private boolean toRouteControlledStreamObserver = false;
+ @UriParam(label = "consumer", defaultValue = "" +
NettyServerBuilder.DEFAULT_FLOW_CONTROL_WINDOW)
+ private int initialFlowControlWindow =
NettyServerBuilder.DEFAULT_FLOW_CONTROL_WINDOW;
+
+ @UriParam(label = "consumer", defaultValue = "7200000")
+ private long keepAliveTime =
TimeUnit.NANOSECONDS.toMillis(GrpcUtil.DEFAULT_SERVER_KEEPALIVE_TIME_NANOS);
+
+ @UriParam(label = "consumer", defaultValue = "20000")
+ private long keepAliveTimeout =
TimeUnit.NANOSECONDS.toMillis(GrpcUtil.DEFAULT_SERVER_KEEPALIVE_TIMEOUT_NANOS);
+
+ @UriParam(label = "consumer", defaultValue = "" + Long.MAX_VALUE)
+ private long maxConnectionAge = Long.MAX_VALUE;
+
+ @UriParam(label = "consumer", defaultValue = "" + Long.MAX_VALUE)
+ private long maxConnectionIdle = Long.MAX_VALUE;
+
+ @UriParam(label = "consumer", defaultValue = "" + Long.MAX_VALUE)
+ private long maxConnectionAgeGrace = Long.MAX_VALUE;
+
+ @UriParam(label = "consumer", defaultValue = "" +
GrpcUtil.DEFAULT_MAX_HEADER_LIST_SIZE)
+ private int maxInboundMetadataSize = GrpcUtil.DEFAULT_MAX_HEADER_LIST_SIZE;
+
+ @UriParam(label = "consumer", defaultValue = "0")
+ private int maxRstFramesPerWindow;
+
+ @UriParam(label = "consumer", defaultValue = "0")
+ private int maxRstPeriodSeconds;
+
+ @UriParam(label = "consumer", defaultValue = "300000")
+ private long permitKeepAliveTime = TimeUnit.MINUTES.toMillis(5);
+
+ @UriParam(label = "consumer", defaultValue = "false")
+ private boolean permitKeepAliveWithoutCalls;
+
/**
* Fully qualified service name from the protocol buffer descriptor file
(package dot service definition name)
*/
@@ -419,7 +454,7 @@ public class GrpcConfiguration {
}
/**
- * The maximum number of concurrent calls permitted for each incoming
server connection
+ * The maximum number of concurrent calls permitted for each incoming
server connection. Defaults to no limit.
*/
public void setMaxConcurrentCallsPerConnection(int
maxConcurrentCallsPerConnection) {
this.maxConcurrentCallsPerConnection = maxConcurrentCallsPerConnection;
@@ -497,6 +532,137 @@ public class GrpcConfiguration {
this.toRouteControlledStreamObserver = toRouteControlledStreamObserver;
}
+ public int getInitialFlowControlWindow() {
+ return initialFlowControlWindow;
+ }
+
+ /**
+ * Sets the initial flow control window in bytes.
+ */
+ public void setInitialFlowControlWindow(int initialFlowControlWindow) {
+ this.initialFlowControlWindow = initialFlowControlWindow;
+ }
+
+ public long getKeepAliveTime() {
+ return keepAliveTime;
+ }
+
+ /**
+ * Sets a custom keepalive time in milliseconds, the delay time for
sending next keepalive ping. A value of
+ * Long.MAX_VALUE or a value greater or equal to
NettyServerBuilder.AS_LARGE_AS_INFINITE will disable keepalive.
+ */
+ public void setKeepAliveTime(long keepAliveTime) {
+ this.keepAliveTime = keepAliveTime;
+ }
+
+ public long getKeepAliveTimeout() {
+ return keepAliveTimeout;
+ }
+
+ /**
+ * Sets a custom keepalive timeout in milliseconds, the timeout for
keepalive ping requests.
+ */
+ public void setKeepAliveTimeout(long keepAliveTimeout) {
+ this.keepAliveTimeout = keepAliveTimeout;
+ }
+
+ public long getMaxConnectionAge() {
+ return maxConnectionAge;
+ }
+
+ /**
+ * Sets a custom max connection age in milliseconds. Connections lasting
longer than which will be gracefully
+ * terminated. A random jitter of +/-10% will be added to the value. A
value of Long.MAX_VALUE (the default) or a
+ * value greater or equal to NettyServerBuilder.AS_LARGE_AS_INFINITE will
disable max connection age.
+ */
+ public void setMaxConnectionAge(long maxConnectionAge) {
+ this.maxConnectionAge = maxConnectionAge;
+ }
+
+ public long getMaxConnectionIdle() {
+ return maxConnectionIdle;
+ }
+
+ /**
+ * Sets a custom max connection idle time in milliseconds. Connection
being idle for longer than which will be
+ * gracefully terminated. A value of Long.MAX_VALUE (the default) or a
value greater or equal to
+ * NettyServerBuilder.AS_LARGE_AS_INFINITE will disable max connection idle
+ */
+ public void setMaxConnectionIdle(long maxConnectionIdle) {
+ this.maxConnectionIdle = maxConnectionIdle;
+ }
+
+ public long getMaxConnectionAgeGrace() {
+ return maxConnectionAgeGrace;
+ }
+
+ /**
+ * Sets a custom grace time in milliseconds for the graceful connection
termination. A value of Long.MAX_VALUE (the
+ * default) or a value greater or equal to
NettyServerBuilder.AS_LARGE_AS_INFINITE is considered infinite.
+ */
+ public void setMaxConnectionAgeGrace(long maxConnectionAgeGrace) {
+ this.maxConnectionAgeGrace = maxConnectionAgeGrace;
+ }
+
+ public int getMaxInboundMetadataSize() {
+ return maxInboundMetadataSize;
+ }
+
+ /**
+ * Sets the maximum size of metadata allowed to be received. The default
is 8 KiB.
+ */
+ public void setMaxInboundMetadataSize(int maxInboundMetadataSize) {
+ this.maxInboundMetadataSize = maxInboundMetadataSize;
+ }
+
+ public int getMaxRstFramesPerWindow() {
+ return maxRstFramesPerWindow;
+ }
+
+ /**
+ * Limits the rate of incoming RST_STREAM frames per connection to
maxRstFramesPerWindow per maxRstPeriodSeconds.
+ * This option MUST be used in conjunction with maxRstPeriodSeconds for it
to be effective.
+ */
+ public void setMaxRstFramesPerWindow(int maxRstFramesPerWindow) {
+ this.maxRstFramesPerWindow = maxRstFramesPerWindow;
+ }
+
+ public int getMaxRstPeriodSeconds() {
+ return maxRstPeriodSeconds;
+ }
+
+ /**
+ * Limits the rate of incoming RST_STREAM frames per maxRstPeriodSeconds.
This option MUST be used in conjunction
+ * with maxRstFramesPerWindow for it to be effective.
+ */
+ public void setMaxRstPeriodSeconds(int maxRstPeriodSeconds) {
+ this.maxRstPeriodSeconds = maxRstPeriodSeconds;
+ }
+
+ public long getPermitKeepAliveTime() {
+ return permitKeepAliveTime;
+ }
+
+ /**
+ * Sets the most aggressive keep-alive time in milliseconds that clients
are permitted to configure. The server will
+ * try to detect clients exceeding this rate and will forcefully close the
connection.
+ */
+ public void setPermitKeepAliveTime(long permitKeepAliveTime) {
+ this.permitKeepAliveTime = permitKeepAliveTime;
+ }
+
+ public boolean isPermitKeepAliveWithoutCalls() {
+ return permitKeepAliveWithoutCalls;
+ }
+
+ /**
+ * Sets whether to allow clients to send keep-alive HTTP/ 2 PINGs even if
there are no outstanding RPCs on the
+ * connection.
+ */
+ public void setPermitKeepAliveWithoutCalls(boolean
permitKeepAliveWithoutCalls) {
+ this.permitKeepAliveWithoutCalls = permitKeepAliveWithoutCalls;
+ }
+
public void parseURI(URI uri) {
setHost(uri.getHost());
diff --git
a/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcConsumer.java
b/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcConsumer.java
index 93ecb2cace2..90447c6de28 100644
---
a/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcConsumer.java
+++
b/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcConsumer.java
@@ -17,6 +17,7 @@
package org.apache.camel.component.grpc;
import java.net.InetSocketAddress;
+import java.util.concurrent.TimeUnit;
import io.grpc.BindableService;
import io.grpc.Server;
@@ -138,6 +139,16 @@ public class GrpcConsumer extends DefaultConsumer {
configuration.getJwtIssuer(),
configuration.getJwtSubject()));
}
+ // To configure RST_STREAM settings we need valid configuration for
both maxRstFramesPerWindow & maxRstPeriodSeconds
+ if (configuration.getMaxRstFramesPerWindow() > 0 &&
configuration.getMaxRstPeriodSeconds() <= 0) {
+ throw new IllegalArgumentException("maxRstPeriodSeconds must be a
positive value");
+ } else if (configuration.getMaxRstFramesPerWindow() <= 0 &&
configuration.getMaxRstPeriodSeconds() > 0) {
+ throw new IllegalArgumentException("maxRstFramesPerWindow must be
a positive value");
+ } else if (configuration.getMaxRstFramesPerWindow() > 0 &&
configuration.getMaxRstPeriodSeconds() > 0) {
+
serverBuilder.maxRstFramesPerWindow(configuration.getMaxRstFramesPerWindow(),
+ configuration.getMaxRstPeriodSeconds());
+ }
+
for (ServerInterceptor si : configuration.getServerInterceptors()) {
serverBuilder.intercept(si);
}
@@ -146,6 +157,15 @@ public class GrpcConsumer extends DefaultConsumer {
.maxInboundMessageSize(configuration.getMaxMessageSize())
.flowControlWindow(configuration.getFlowControlWindow())
.maxConcurrentCallsPerConnection(configuration.getMaxConcurrentCallsPerConnection())
+
.initialFlowControlWindow(configuration.getInitialFlowControlWindow())
+ .keepAliveTime(configuration.getKeepAliveTime(),
TimeUnit.MILLISECONDS)
+ .keepAliveTimeout(configuration.getKeepAliveTimeout(),
TimeUnit.MILLISECONDS)
+ .maxConnectionAge(configuration.getMaxConnectionAge(),
TimeUnit.MILLISECONDS)
+ .maxConnectionIdle(configuration.getMaxConnectionIdle(),
TimeUnit.MILLISECONDS)
+
.maxConnectionAgeGrace(configuration.getMaxConnectionAgeGrace(),
TimeUnit.MILLISECONDS)
+
.maxInboundMetadataSize(configuration.getMaxInboundMetadataSize())
+ .permitKeepAliveTime(configuration.getPermitKeepAliveTime(),
TimeUnit.MILLISECONDS)
+
.permitKeepAliveWithoutCalls(configuration.isPermitKeepAliveWithoutCalls())
.build();
}
diff --git
a/components/camel-grpc/src/test/java/org/apache/camel/component/grpc/GrpcConsumerConfigurationTest.java
b/components/camel-grpc/src/test/java/org/apache/camel/component/grpc/GrpcConsumerConfigurationTest.java
index 0b8b1c38908..b604e668bf3 100644
---
a/components/camel-grpc/src/test/java/org/apache/camel/component/grpc/GrpcConsumerConfigurationTest.java
+++
b/components/camel-grpc/src/test/java/org/apache/camel/component/grpc/GrpcConsumerConfigurationTest.java
@@ -44,4 +44,36 @@ class GrpcConsumerConfigurationTest extends CamelTestSupport
{
() ->
consumer.receive("grpc:localhost:0/org.apache.camel.component.grpc.PingPong"));
assertInstanceOf(IllegalArgumentException.class, exception.getCause());
}
+
+ @Test
+ void invalidMaxRstFramesPerWindowWithValidMaxRstPeriodSeconds() {
+ FailedToCreateConsumerException exception =
assertThrows(FailedToCreateConsumerException.class,
+ () -> consumer.receive(
+
"grpc:localhost:8080/org.apache.camel.component.grpc.PingPong?maxRstFramesPerWindow=-1&maxRstPeriodSeconds=5"));
+ assertInstanceOf(IllegalArgumentException.class, exception.getCause());
+ }
+
+ @Test
+ void missingMaxRstFramesPerWindowWithValidMaxRstPeriodSeconds() {
+ FailedToCreateConsumerException exception =
assertThrows(FailedToCreateConsumerException.class,
+ () -> consumer.receive(
+
"grpc:localhost:8080/org.apache.camel.component.grpc.PingPong?maxRstPeriodSeconds=5"));
+ assertInstanceOf(IllegalArgumentException.class, exception.getCause());
+ }
+
+ @Test
+ void invalidMaxRstPeriodSecondsWithValidMaxRstFramesPerWindow() {
+ FailedToCreateConsumerException exception =
assertThrows(FailedToCreateConsumerException.class,
+ () -> consumer.receive(
+
"grpc:localhost:8080/org.apache.camel.component.grpc.PingPong?maxRstFramesPerWindow=100&maxRstPeriodSeconds=-1"));
+ assertInstanceOf(IllegalArgumentException.class, exception.getCause());
+ }
+
+ @Test
+ void missingMaxRstPeriodSecondsWithValidMaxRstFramesPerWindow() {
+ FailedToCreateConsumerException exception =
assertThrows(FailedToCreateConsumerException.class,
+ () -> consumer.receive(
+
"grpc:localhost:8080/org.apache.camel.component.grpc.PingPong?maxRstFramesPerWindow=100"));
+ assertInstanceOf(IllegalArgumentException.class, exception.getCause());
+ }
}
diff --git
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GrpcEndpointBuilderFactory.java
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GrpcEndpointBuilderFactory.java
index 41542bb9b26..b0b09f429cd 100644
---
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GrpcEndpointBuilderFactory.java
+++
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GrpcEndpointBuilderFactory.java
@@ -263,9 +263,111 @@ public interface GrpcEndpointBuilderFactory {
doSetProperty("forwardOnError", forwardOnError);
return this;
}
+ /**
+ * Sets the initial flow control window in bytes.
+ *
+ * The option is a: <code>int</code> type.
+ *
+ * Default: 1048576
+ * Group: consumer
+ *
+ * @param initialFlowControlWindow the value to set
+ * @return the dsl builder
+ */
+ default GrpcEndpointConsumerBuilder initialFlowControlWindow(
+ int initialFlowControlWindow) {
+ doSetProperty("initialFlowControlWindow",
initialFlowControlWindow);
+ return this;
+ }
+ /**
+ * Sets the initial flow control window in bytes.
+ *
+ * The option will be converted to a <code>int</code> type.
+ *
+ * Default: 1048576
+ * Group: consumer
+ *
+ * @param initialFlowControlWindow the value to set
+ * @return the dsl builder
+ */
+ default GrpcEndpointConsumerBuilder initialFlowControlWindow(
+ String initialFlowControlWindow) {
+ doSetProperty("initialFlowControlWindow",
initialFlowControlWindow);
+ return this;
+ }
+ /**
+ * Sets a custom keepalive time in milliseconds, the delay time for
+ * sending next keepalive ping. A value of Long.MAX_VALUE or a value
+ * greater or equal to NettyServerBuilder.AS_LARGE_AS_INFINITE will
+ * disable keepalive.
+ *
+ * The option is a: <code>long</code> type.
+ *
+ * Default: 7200000
+ * Group: consumer
+ *
+ * @param keepAliveTime the value to set
+ * @return the dsl builder
+ */
+ default GrpcEndpointConsumerBuilder keepAliveTime(long keepAliveTime) {
+ doSetProperty("keepAliveTime", keepAliveTime);
+ return this;
+ }
+ /**
+ * Sets a custom keepalive time in milliseconds, the delay time for
+ * sending next keepalive ping. A value of Long.MAX_VALUE or a value
+ * greater or equal to NettyServerBuilder.AS_LARGE_AS_INFINITE will
+ * disable keepalive.
+ *
+ * The option will be converted to a <code>long</code>
type.
+ *
+ * Default: 7200000
+ * Group: consumer
+ *
+ * @param keepAliveTime the value to set
+ * @return the dsl builder
+ */
+ default GrpcEndpointConsumerBuilder keepAliveTime(String
keepAliveTime) {
+ doSetProperty("keepAliveTime", keepAliveTime);
+ return this;
+ }
+ /**
+ * Sets a custom keepalive timeout in milliseconds, the timeout for
+ * keepalive ping requests.
+ *
+ * The option is a: <code>long</code> type.
+ *
+ * Default: 20000
+ * Group: consumer
+ *
+ * @param keepAliveTimeout the value to set
+ * @return the dsl builder
+ */
+ default GrpcEndpointConsumerBuilder keepAliveTimeout(
+ long keepAliveTimeout) {
+ doSetProperty("keepAliveTimeout", keepAliveTimeout);
+ return this;
+ }
+ /**
+ * Sets a custom keepalive timeout in milliseconds, the timeout for
+ * keepalive ping requests.
+ *
+ * The option will be converted to a <code>long</code>
type.
+ *
+ * Default: 20000
+ * Group: consumer
+ *
+ * @param keepAliveTimeout the value to set
+ * @return the dsl builder
+ */
+ default GrpcEndpointConsumerBuilder keepAliveTimeout(
+ String keepAliveTimeout) {
+ doSetProperty("keepAliveTimeout", keepAliveTimeout);
+ return this;
+ }
/**
* The maximum number of concurrent calls permitted for each incoming
- * server connection.
+ * server connection. Defaults to no limit.
*
* The option is a: <code>int</code> type.
*
@@ -282,7 +384,7 @@ public interface GrpcEndpointBuilderFactory {
}
/**
* The maximum number of concurrent calls permitted for each incoming
- * server connection.
+ * server connection. Defaults to no limit.
*
* The option will be converted to a <code>int</code> type.
*
@@ -297,6 +399,303 @@ public interface GrpcEndpointBuilderFactory {
doSetProperty("maxConcurrentCallsPerConnection",
maxConcurrentCallsPerConnection);
return this;
}
+ /**
+ * Sets a custom max connection age in milliseconds. Connections
lasting
+ * longer than which will be gracefully terminated. A random jitter of
+ * /-10% will be added to the value. A value of Long.MAX_VALUE (the
+ * default) or a value greater or equal to
+ * NettyServerBuilder.AS_LARGE_AS_INFINITE will disable max connection
+ * age.
+ *
+ * The option is a: <code>long</code> type.
+ *
+ * Default: 9223372036854775807
+ * Group: consumer
+ *
+ * @param maxConnectionAge the value to set
+ * @return the dsl builder
+ */
+ default GrpcEndpointConsumerBuilder maxConnectionAge(
+ long maxConnectionAge) {
+ doSetProperty("maxConnectionAge", maxConnectionAge);
+ return this;
+ }
+ /**
+ * Sets a custom max connection age in milliseconds. Connections
lasting
+ * longer than which will be gracefully terminated. A random jitter of
+ * /-10% will be added to the value. A value of Long.MAX_VALUE (the
+ * default) or a value greater or equal to
+ * NettyServerBuilder.AS_LARGE_AS_INFINITE will disable max connection
+ * age.
+ *
+ * The option will be converted to a <code>long</code>
type.
+ *
+ * Default: 9223372036854775807
+ * Group: consumer
+ *
+ * @param maxConnectionAge the value to set
+ * @return the dsl builder
+ */
+ default GrpcEndpointConsumerBuilder maxConnectionAge(
+ String maxConnectionAge) {
+ doSetProperty("maxConnectionAge", maxConnectionAge);
+ return this;
+ }
+ /**
+ * Sets a custom grace time in milliseconds for the graceful connection
+ * termination. A value of Long.MAX_VALUE (the default) or a value
+ * greater or equal to NettyServerBuilder.AS_LARGE_AS_INFINITE is
+ * considered infinite.
+ *
+ * The option is a: <code>long</code> type.
+ *
+ * Default: 9223372036854775807
+ * Group: consumer
+ *
+ * @param maxConnectionAgeGrace the value to set
+ * @return the dsl builder
+ */
+ default GrpcEndpointConsumerBuilder maxConnectionAgeGrace(
+ long maxConnectionAgeGrace) {
+ doSetProperty("maxConnectionAgeGrace", maxConnectionAgeGrace);
+ return this;
+ }
+ /**
+ * Sets a custom grace time in milliseconds for the graceful connection
+ * termination. A value of Long.MAX_VALUE (the default) or a value
+ * greater or equal to NettyServerBuilder.AS_LARGE_AS_INFINITE is
+ * considered infinite.
+ *
+ * The option will be converted to a <code>long</code>
type.
+ *
+ * Default: 9223372036854775807
+ * Group: consumer
+ *
+ * @param maxConnectionAgeGrace the value to set
+ * @return the dsl builder
+ */
+ default GrpcEndpointConsumerBuilder maxConnectionAgeGrace(
+ String maxConnectionAgeGrace) {
+ doSetProperty("maxConnectionAgeGrace", maxConnectionAgeGrace);
+ return this;
+ }
+ /**
+ * Sets a custom max connection idle time in milliseconds. Connection
+ * being idle for longer than which will be gracefully terminated. A
+ * value of Long.MAX_VALUE (the default) or a value greater or equal to
+ * NettyServerBuilder.AS_LARGE_AS_INFINITE will disable max connection
+ * idle.
+ *
+ * The option is a: <code>long</code> type.
+ *
+ * Default: 9223372036854775807
+ * Group: consumer
+ *
+ * @param maxConnectionIdle the value to set
+ * @return the dsl builder
+ */
+ default GrpcEndpointConsumerBuilder maxConnectionIdle(
+ long maxConnectionIdle) {
+ doSetProperty("maxConnectionIdle", maxConnectionIdle);
+ return this;
+ }
+ /**
+ * Sets a custom max connection idle time in milliseconds. Connection
+ * being idle for longer than which will be gracefully terminated. A
+ * value of Long.MAX_VALUE (the default) or a value greater or equal to
+ * NettyServerBuilder.AS_LARGE_AS_INFINITE will disable max connection
+ * idle.
+ *
+ * The option will be converted to a <code>long</code>
type.
+ *
+ * Default: 9223372036854775807
+ * Group: consumer
+ *
+ * @param maxConnectionIdle the value to set
+ * @return the dsl builder
+ */
+ default GrpcEndpointConsumerBuilder maxConnectionIdle(
+ String maxConnectionIdle) {
+ doSetProperty("maxConnectionIdle", maxConnectionIdle);
+ return this;
+ }
+ /**
+ * Sets the maximum size of metadata allowed to be received. The
default
+ * is 8 KiB.
+ *
+ * The option is a: <code>int</code> type.
+ *
+ * Default: 8192
+ * Group: consumer
+ *
+ * @param maxInboundMetadataSize the value to set
+ * @return the dsl builder
+ */
+ default GrpcEndpointConsumerBuilder maxInboundMetadataSize(
+ int maxInboundMetadataSize) {
+ doSetProperty("maxInboundMetadataSize", maxInboundMetadataSize);
+ return this;
+ }
+ /**
+ * Sets the maximum size of metadata allowed to be received. The
default
+ * is 8 KiB.
+ *
+ * The option will be converted to a <code>int</code> type.
+ *
+ * Default: 8192
+ * Group: consumer
+ *
+ * @param maxInboundMetadataSize the value to set
+ * @return the dsl builder
+ */
+ default GrpcEndpointConsumerBuilder maxInboundMetadataSize(
+ String maxInboundMetadataSize) {
+ doSetProperty("maxInboundMetadataSize", maxInboundMetadataSize);
+ return this;
+ }
+ /**
+ * Limits the rate of incoming RST_STREAM frames per connection to
+ * maxRstFramesPerWindow per maxRstPeriodSeconds. This option MUST be
+ * used in conjunction with maxRstPeriodSeconds for it to be effective.
+ *
+ * The option is a: <code>int</code> type.
+ *
+ * Default: 0
+ * Group: consumer
+ *
+ * @param maxRstFramesPerWindow the value to set
+ * @return the dsl builder
+ */
+ default GrpcEndpointConsumerBuilder maxRstFramesPerWindow(
+ int maxRstFramesPerWindow) {
+ doSetProperty("maxRstFramesPerWindow", maxRstFramesPerWindow);
+ return this;
+ }
+ /**
+ * Limits the rate of incoming RST_STREAM frames per connection to
+ * maxRstFramesPerWindow per maxRstPeriodSeconds. This option MUST be
+ * used in conjunction with maxRstPeriodSeconds for it to be effective.
+ *
+ * The option will be converted to a <code>int</code> type.
+ *
+ * Default: 0
+ * Group: consumer
+ *
+ * @param maxRstFramesPerWindow the value to set
+ * @return the dsl builder
+ */
+ default GrpcEndpointConsumerBuilder maxRstFramesPerWindow(
+ String maxRstFramesPerWindow) {
+ doSetProperty("maxRstFramesPerWindow", maxRstFramesPerWindow);
+ return this;
+ }
+ /**
+ * Limits the rate of incoming RST_STREAM frames per
+ * maxRstPeriodSeconds. This option MUST be used in conjunction with
+ * maxRstFramesPerWindow for it to be effective.
+ *
+ * The option is a: <code>int</code> type.
+ *
+ * Default: 0
+ * Group: consumer
+ *
+ * @param maxRstPeriodSeconds the value to set
+ * @return the dsl builder
+ */
+ default GrpcEndpointConsumerBuilder maxRstPeriodSeconds(
+ int maxRstPeriodSeconds) {
+ doSetProperty("maxRstPeriodSeconds", maxRstPeriodSeconds);
+ return this;
+ }
+ /**
+ * Limits the rate of incoming RST_STREAM frames per
+ * maxRstPeriodSeconds. This option MUST be used in conjunction with
+ * maxRstFramesPerWindow for it to be effective.
+ *
+ * The option will be converted to a <code>int</code> type.
+ *
+ * Default: 0
+ * Group: consumer
+ *
+ * @param maxRstPeriodSeconds the value to set
+ * @return the dsl builder
+ */
+ default GrpcEndpointConsumerBuilder maxRstPeriodSeconds(
+ String maxRstPeriodSeconds) {
+ doSetProperty("maxRstPeriodSeconds", maxRstPeriodSeconds);
+ return this;
+ }
+ /**
+ * Sets the most aggressive keep-alive time in milliseconds that
clients
+ * are permitted to configure. The server will try to detect clients
+ * exceeding this rate and will forcefully close the connection.
+ *
+ * The option is a: <code>long</code> type.
+ *
+ * Default: 300000
+ * Group: consumer
+ *
+ * @param permitKeepAliveTime the value to set
+ * @return the dsl builder
+ */
+ default GrpcEndpointConsumerBuilder permitKeepAliveTime(
+ long permitKeepAliveTime) {
+ doSetProperty("permitKeepAliveTime", permitKeepAliveTime);
+ return this;
+ }
+ /**
+ * Sets the most aggressive keep-alive time in milliseconds that
clients
+ * are permitted to configure. The server will try to detect clients
+ * exceeding this rate and will forcefully close the connection.
+ *
+ * The option will be converted to a <code>long</code>
type.
+ *
+ * Default: 300000
+ * Group: consumer
+ *
+ * @param permitKeepAliveTime the value to set
+ * @return the dsl builder
+ */
+ default GrpcEndpointConsumerBuilder permitKeepAliveTime(
+ String permitKeepAliveTime) {
+ doSetProperty("permitKeepAliveTime", permitKeepAliveTime);
+ return this;
+ }
+ /**
+ * Sets whether to allow clients to send keep-alive HTTP/ 2 PINGs even
+ * if there are no outstanding RPCs on the connection.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: consumer
+ *
+ * @param permitKeepAliveWithoutCalls the value to set
+ * @return the dsl builder
+ */
+ default GrpcEndpointConsumerBuilder permitKeepAliveWithoutCalls(
+ boolean permitKeepAliveWithoutCalls) {
+ doSetProperty("permitKeepAliveWithoutCalls",
permitKeepAliveWithoutCalls);
+ return this;
+ }
+ /**
+ * Sets whether to allow clients to send keep-alive HTTP/ 2 PINGs even
+ * if there are no outstanding RPCs on the connection.
+ *
+ * The option will be converted to a <code>boolean</code>
+ * type.
+ *
+ * Default: false
+ * Group: consumer
+ *
+ * @param permitKeepAliveWithoutCalls the value to set
+ * @return the dsl builder
+ */
+ default GrpcEndpointConsumerBuilder permitKeepAliveWithoutCalls(
+ String permitKeepAliveWithoutCalls) {
+ doSetProperty("permitKeepAliveWithoutCalls",
permitKeepAliveWithoutCalls);
+ return this;
+ }
/**
* Lets the route to take control over stream observer. If this value
is
* set to true, then the response observer of gRPC call will be set
with
diff --git
a/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/GrpcUriDsl.kt
b/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/GrpcUriDsl.kt
index bd7a2faca23..0d8d54437af 100644
---
a/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/GrpcUriDsl.kt
+++
b/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/GrpcUriDsl.kt
@@ -170,19 +170,205 @@ public class GrpcUriDsl(
}
/**
- * The maximum number of concurrent calls permitted for each incoming server
connection
+ * Sets the initial flow control window in bytes.
+ */
+ public fun initialFlowControlWindow(initialFlowControlWindow: String) {
+ it.property("initialFlowControlWindow", initialFlowControlWindow)
+ }
+
+ /**
+ * Sets the initial flow control window in bytes.
+ */
+ public fun initialFlowControlWindow(initialFlowControlWindow: Int) {
+ it.property("initialFlowControlWindow",
initialFlowControlWindow.toString())
+ }
+
+ /**
+ * Sets a custom keepalive time in milliseconds, the delay time for sending
next keepalive ping. A
+ * value of Long.MAX_VALUE or a value greater or equal to
NettyServerBuilder.AS_LARGE_AS_INFINITE
+ * will disable keepalive.
+ */
+ public fun keepAliveTime(keepAliveTime: String) {
+ it.property("keepAliveTime", keepAliveTime)
+ }
+
+ /**
+ * Sets a custom keepalive time in milliseconds, the delay time for sending
next keepalive ping. A
+ * value of Long.MAX_VALUE or a value greater or equal to
NettyServerBuilder.AS_LARGE_AS_INFINITE
+ * will disable keepalive.
+ */
+ public fun keepAliveTime(keepAliveTime: Int) {
+ it.property("keepAliveTime", keepAliveTime.toString())
+ }
+
+ /**
+ * Sets a custom keepalive timeout in milliseconds, the timeout for
keepalive ping requests.
+ */
+ public fun keepAliveTimeout(keepAliveTimeout: String) {
+ it.property("keepAliveTimeout", keepAliveTimeout)
+ }
+
+ /**
+ * Sets a custom keepalive timeout in milliseconds, the timeout for
keepalive ping requests.
+ */
+ public fun keepAliveTimeout(keepAliveTimeout: Int) {
+ it.property("keepAliveTimeout", keepAliveTimeout.toString())
+ }
+
+ /**
+ * The maximum number of concurrent calls permitted for each incoming server
connection. Defaults
+ * to no limit.
*/
public fun maxConcurrentCallsPerConnection(maxConcurrentCallsPerConnection:
String) {
it.property("maxConcurrentCallsPerConnection",
maxConcurrentCallsPerConnection)
}
/**
- * The maximum number of concurrent calls permitted for each incoming server
connection
+ * The maximum number of concurrent calls permitted for each incoming server
connection. Defaults
+ * to no limit.
*/
public fun maxConcurrentCallsPerConnection(maxConcurrentCallsPerConnection:
Int) {
it.property("maxConcurrentCallsPerConnection",
maxConcurrentCallsPerConnection.toString())
}
+ /**
+ * Sets a custom max connection age in milliseconds. Connections lasting
longer than which will be
+ * gracefully terminated. A random jitter of /-10% will be added to the
value. A value of
+ * Long.MAX_VALUE (the default) or a value greater or equal to
+ * NettyServerBuilder.AS_LARGE_AS_INFINITE will disable max connection age.
+ */
+ public fun maxConnectionAge(maxConnectionAge: String) {
+ it.property("maxConnectionAge", maxConnectionAge)
+ }
+
+ /**
+ * Sets a custom max connection age in milliseconds. Connections lasting
longer than which will be
+ * gracefully terminated. A random jitter of /-10% will be added to the
value. A value of
+ * Long.MAX_VALUE (the default) or a value greater or equal to
+ * NettyServerBuilder.AS_LARGE_AS_INFINITE will disable max connection age.
+ */
+ public fun maxConnectionAge(maxConnectionAge: Int) {
+ it.property("maxConnectionAge", maxConnectionAge.toString())
+ }
+
+ /**
+ * Sets a custom grace time in milliseconds for the graceful connection
termination. A value of
+ * Long.MAX_VALUE (the default) or a value greater or equal to
+ * NettyServerBuilder.AS_LARGE_AS_INFINITE is considered infinite.
+ */
+ public fun maxConnectionAgeGrace(maxConnectionAgeGrace: String) {
+ it.property("maxConnectionAgeGrace", maxConnectionAgeGrace)
+ }
+
+ /**
+ * Sets a custom grace time in milliseconds for the graceful connection
termination. A value of
+ * Long.MAX_VALUE (the default) or a value greater or equal to
+ * NettyServerBuilder.AS_LARGE_AS_INFINITE is considered infinite.
+ */
+ public fun maxConnectionAgeGrace(maxConnectionAgeGrace: Int) {
+ it.property("maxConnectionAgeGrace", maxConnectionAgeGrace.toString())
+ }
+
+ /**
+ * Sets a custom max connection idle time in milliseconds. Connection being
idle for longer than
+ * which will be gracefully terminated. A value of Long.MAX_VALUE (the
default) or a value greater or
+ * equal to NettyServerBuilder.AS_LARGE_AS_INFINITE will disable max
connection idle
+ */
+ public fun maxConnectionIdle(maxConnectionIdle: String) {
+ it.property("maxConnectionIdle", maxConnectionIdle)
+ }
+
+ /**
+ * Sets a custom max connection idle time in milliseconds. Connection being
idle for longer than
+ * which will be gracefully terminated. A value of Long.MAX_VALUE (the
default) or a value greater or
+ * equal to NettyServerBuilder.AS_LARGE_AS_INFINITE will disable max
connection idle
+ */
+ public fun maxConnectionIdle(maxConnectionIdle: Int) {
+ it.property("maxConnectionIdle", maxConnectionIdle.toString())
+ }
+
+ /**
+ * Sets the maximum size of metadata allowed to be received. The default is
8 KiB.
+ */
+ public fun maxInboundMetadataSize(maxInboundMetadataSize: String) {
+ it.property("maxInboundMetadataSize", maxInboundMetadataSize)
+ }
+
+ /**
+ * Sets the maximum size of metadata allowed to be received. The default is
8 KiB.
+ */
+ public fun maxInboundMetadataSize(maxInboundMetadataSize: Int) {
+ it.property("maxInboundMetadataSize", maxInboundMetadataSize.toString())
+ }
+
+ /**
+ * Limits the rate of incoming RST_STREAM frames per connection to
maxRstFramesPerWindow per
+ * maxRstPeriodSeconds. This option MUST be used in conjunction with
maxRstPeriodSeconds for it to be
+ * effective.
+ */
+ public fun maxRstFramesPerWindow(maxRstFramesPerWindow: String) {
+ it.property("maxRstFramesPerWindow", maxRstFramesPerWindow)
+ }
+
+ /**
+ * Limits the rate of incoming RST_STREAM frames per connection to
maxRstFramesPerWindow per
+ * maxRstPeriodSeconds. This option MUST be used in conjunction with
maxRstPeriodSeconds for it to be
+ * effective.
+ */
+ public fun maxRstFramesPerWindow(maxRstFramesPerWindow: Int) {
+ it.property("maxRstFramesPerWindow", maxRstFramesPerWindow.toString())
+ }
+
+ /**
+ * Limits the rate of incoming RST_STREAM frames per maxRstPeriodSeconds.
This option MUST be used
+ * in conjunction with maxRstFramesPerWindow for it to be effective.
+ */
+ public fun maxRstPeriodSeconds(maxRstPeriodSeconds: String) {
+ it.property("maxRstPeriodSeconds", maxRstPeriodSeconds)
+ }
+
+ /**
+ * Limits the rate of incoming RST_STREAM frames per maxRstPeriodSeconds.
This option MUST be used
+ * in conjunction with maxRstFramesPerWindow for it to be effective.
+ */
+ public fun maxRstPeriodSeconds(maxRstPeriodSeconds: Int) {
+ it.property("maxRstPeriodSeconds", maxRstPeriodSeconds.toString())
+ }
+
+ /**
+ * Sets the most aggressive keep-alive time in milliseconds that clients are
permitted to
+ * configure. The server will try to detect clients exceeding this rate and
will forcefully close the
+ * connection.
+ */
+ public fun permitKeepAliveTime(permitKeepAliveTime: String) {
+ it.property("permitKeepAliveTime", permitKeepAliveTime)
+ }
+
+ /**
+ * Sets the most aggressive keep-alive time in milliseconds that clients are
permitted to
+ * configure. The server will try to detect clients exceeding this rate and
will forcefully close the
+ * connection.
+ */
+ public fun permitKeepAliveTime(permitKeepAliveTime: Int) {
+ it.property("permitKeepAliveTime", permitKeepAliveTime.toString())
+ }
+
+ /**
+ * Sets whether to allow clients to send keep-alive HTTP/ 2 PINGs even if
there are no outstanding
+ * RPCs on the connection.
+ */
+ public fun permitKeepAliveWithoutCalls(permitKeepAliveWithoutCalls: String) {
+ it.property("permitKeepAliveWithoutCalls", permitKeepAliveWithoutCalls)
+ }
+
+ /**
+ * Sets whether to allow clients to send keep-alive HTTP/ 2 PINGs even if
there are no outstanding
+ * RPCs on the connection.
+ */
+ public fun permitKeepAliveWithoutCalls(permitKeepAliveWithoutCalls: Boolean)
{
+ it.property("permitKeepAliveWithoutCalls",
permitKeepAliveWithoutCalls.toString())
+ }
+
/**
* Lets the route to take control over stream observer. If this value is set
to true, then the
* response observer of gRPC call will be set with the name
GrpcConstants.GRPC_RESPONSE_OBSERVER in