This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new e679748cc5c CAMEL-18392: camel-jt400 - UTF-8 improvement for data
queues (#18088)
e679748cc5c is described below
commit e679748cc5c853aafac2da92673a86110c472d1f
Author: Claus Ibsen <[email protected]>
AuthorDate: Thu May 22 09:11:10 2025 +0200
CAMEL-18392: camel-jt400 - UTF-8 improvement for data queues (#18088)
---
.../org/apache/camel/catalog/components/jt400.json | 57 +++++++++++-----------
.../component/jt400/Jt400EndpointConfigurer.java | 6 +++
.../component/jt400/Jt400EndpointUriFactory.java | 3 +-
.../org/apache/camel/component/jt400/jt400.json | 57 +++++++++++-----------
.../camel/component/jt400/Jt400Configuration.java | 16 +++++-
.../component/jt400/Jt400DataQueueService.java | 9 ++++
.../endpoint/dsl/Jt400EndpointBuilderFactory.java | 30 ++++++++++++
7 files changed, 120 insertions(+), 58 deletions(-)
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/jt400.json
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/jt400.json
index 4d356020ec4..bb968b3d046 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/jt400.json
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/jt400.json
@@ -53,33 +53,34 @@
"guiAvailable": { "index": 7, "kind": "parameter", "displayName": "Gui
Available", "group": "common", "label": "", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Sets whether IBM i prompting is enabled in the
environment running Camel." },
"keyed": { "index": 8, "kind": "parameter", "displayName": "Keyed",
"group": "common", "label": "", "required": false, "type": "boolean",
"javaType": "boolean", "deprecated": false, "autowired": false, "secret":
false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Whether to use keyed or non-keyed data
queues." },
"searchKey": { "index": 9, "kind": "parameter", "displayName": "Search
Key", "group": "common", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Search key for keyed data queues." },
- "messageAction": { "index": 10, "kind": "parameter", "displayName":
"Message Action", "group": "consumer", "label": "consumer", "required": false,
"type": "object", "javaType":
"org.apache.camel.component.jt400.Jt400Configuration.MessageAction", "enum": [
"OLD", "REMOVE", "SAME" ], "deprecated": false, "autowired": false, "secret":
false, "defaultValue": "OLD", "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "descrip [...]
- "readTimeout": { "index": 11, "kind": "parameter", "displayName": "Read
Timeout", "group": "consumer", "label": "consumer", "required": false, "type":
"integer", "javaType": "int", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 30000, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Timeout in millis the consumer will wait while
trying to read a new message of the data queue." },
- "searchType": { "index": 12, "kind": "parameter", "displayName": "Search
Type", "group": "consumer", "label": "consumer", "required": false, "type":
"object", "javaType":
"org.apache.camel.component.jt400.Jt400Configuration.SearchType", "enum": [
"EQ", "NE", "LT", "LE", "GT", "GE" ], "deprecated": false, "autowired": false,
"secret": false, "defaultValue": "EQ", "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "descri [...]
- "sendEmptyMessageWhenIdle": { "index": 13, "kind": "parameter",
"displayName": "Send Empty Message When Idle", "group": "consumer", "label":
"consumer", "required": false, "type": "boolean", "javaType": "boolean",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
false, "description": "If the polling consumer did not poll any files, you can
enable this option to send an empty message (no body) instead." },
- "sendingReply": { "index": 14, "kind": "parameter", "displayName":
"Sending Reply", "group": "consumer", "label": "consumer", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": true, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "If true, the consumer endpoint will set the
Jt400Constants.MESSAGE_REPLYTO_KEY header of [...]
- "bridgeErrorHandler": { "index": 15, "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": 16, "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": 17, "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." },
- "pollStrategy": { "index": 18, "kind": "parameter", "displayName": "Poll
Strategy", "group": "consumer (advanced)", "label": "consumer,advanced",
"required": false, "type": "object", "javaType":
"org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false,
"autowired": false, "secret": false, "description": "A pluggable
org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your
custom implementation to control error handling usually occurred during the po
[...]
- "outputFieldsIdxArray": { "index": 19, "kind": "parameter", "displayName":
"Output Fields Idx Array", "group": "producer", "label": "producer",
"required": false, "type": "object", "javaType": "java.lang.Integer[]",
"deprecated": false, "autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Specifies which fields (program parameters)
are output parameters." },
- "outputFieldsLengthArray": { "index": 20, "kind": "parameter",
"displayName": "Output Fields Length Array", "group": "producer", "label":
"producer", "required": false, "type": "object", "javaType":
"java.lang.Integer[]", "deprecated": false, "autowired": false, "secret":
false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Specifies the fields (program parameters)
length as in the IBM i program def [...]
- "procedureName": { "index": 21, "kind": "parameter", "displayName":
"Procedure Name", "group": "producer", "label": "producer", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Procedure name from a service program to call"
},
- "lazyStartProducer": { "index": 22, "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 [...]
- "backoffErrorThreshold": { "index": 23, "kind": "parameter",
"displayName": "Backoff Error Threshold", "group": "scheduler", "label":
"consumer,scheduler", "required": false, "type": "integer", "javaType": "int",
"deprecated": false, "autowired": false, "secret": false, "description": "The
number of subsequent error polls (failed due some error) that should happen
before the backoffMultipler should kick-in." },
- "backoffIdleThreshold": { "index": 24, "kind": "parameter", "displayName":
"Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "integer", "javaType": "int", "deprecated": false,
"autowired": false, "secret": false, "description": "The number of subsequent
idle polls that should happen before the backoffMultipler should kick-in." },
- "backoffMultiplier": { "index": 25, "kind": "parameter", "displayName":
"Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "integer", "javaType": "int", "deprecated": false,
"autowired": false, "secret": false, "description": "To let the scheduled
polling consumer backoff if there has been a number of subsequent idles\/errors
in a row. The multiplier is then the number of polls that will be skipped
before the next actual attempt is h [...]
- "delay": { "index": 26, "kind": "parameter", "displayName": "Delay",
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type":
"integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 500, "description": "Milliseconds before the
next poll." },
- "greedy": { "index": 27, "kind": "parameter", "displayName": "Greedy",
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "If greedy is enabled,
then the ScheduledPollConsumer will run immediately again, if the previous run
polled 1 or more messages." },
- "initialDelay": { "index": 28, "kind": "parameter", "displayName":
"Initial Delay", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "integer", "javaType": "long", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": 1000, "description":
"Milliseconds before the first poll starts." },
- "repeatCount": { "index": 29, "kind": "parameter", "displayName": "Repeat
Count", "group": "scheduler", "label": "consumer,scheduler", "required": false,
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 0, "description": "Specifies a maximum limit
of number of fires. So if you set it to 1, the scheduler will only fire once.
If you set it to 5, it will only fire five times. A value of zero or negative
means fire forever." },
- "runLoggingLevel": { "index": 30, "kind": "parameter", "displayName": "Run
Logging Level", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "object", "javaType":
"org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN",
"ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false,
"defaultValue": "TRACE", "description": "The consumer logs a start\/complete
log line when it polls. This option allows you to configure the l [...]
- "scheduledExecutorService": { "index": 31, "kind": "parameter",
"displayName": "Scheduled Executor Service", "group": "scheduler", "label":
"consumer,scheduler", "required": false, "type": "object", "javaType":
"java.util.concurrent.ScheduledExecutorService", "deprecated": false,
"autowired": false, "secret": false, "description": "Allows for configuring a
custom\/shared thread pool to use for the consumer. By default each consumer
has its own single threaded thread pool." },
- "scheduler": { "index": 32, "kind": "parameter", "displayName":
"Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required":
false, "type": "object", "javaType": "java.lang.Object", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": "none", "description": "To
use a cron scheduler from either camel-spring or camel-quartz component. Use
value spring or quartz for built in scheduler" },
- "schedulerProperties": { "index": 33, "kind": "parameter", "displayName":
"Scheduler Properties", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "object", "javaType":
"java.util.Map<java.lang.String, java.lang.Object>", "prefix": "scheduler.",
"multiValue": true, "deprecated": false, "autowired": false, "secret": false,
"description": "To configure additional properties when using a custom
scheduler or any of the Quartz, Spring based scheduler." },
- "startScheduler": { "index": 34, "kind": "parameter", "displayName":
"Start Scheduler", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "boolean", "javaType": "boolean", "deprecated":
false, "autowired": false, "secret": false, "defaultValue": true,
"description": "Whether the scheduler should be auto started." },
- "timeUnit": { "index": 35, "kind": "parameter", "displayName": "Time
Unit", "group": "scheduler", "label": "consumer,scheduler", "required": false,
"type": "object", "javaType": "java.util.concurrent.TimeUnit", "enum": [
"NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS",
"DAYS" ], "deprecated": false, "autowired": false, "secret": false,
"defaultValue": "MILLISECONDS", "description": "Time unit for initialDelay and
delay options." },
- "useFixedDelay": { "index": 36, "kind": "parameter", "displayName": "Use
Fixed Delay", "group": "scheduler", "label": "consumer,scheduler", "required":
false, "type": "boolean", "javaType": "boolean", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": true, "description":
"Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in
JDK for details." },
- "secured": { "index": 37, "kind": "parameter", "displayName": "Secured",
"group": "security", "label": "security", "required": false, "type": "boolean",
"javaType": "boolean", "deprecated": false, "autowired": false, "secret":
false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Whether connections to IBM i are secured with
SSL." }
+ "dataQueueCcsid": { "index": 10, "kind": "parameter", "displayName": "Data
Queue Ccsid", "group": "consumer", "label": "consumer", "required": false,
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false,
"secret": false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Sets the CCSID to use for the receiving data
messages from the IBM i system." },
+ "messageAction": { "index": 11, "kind": "parameter", "displayName":
"Message Action", "group": "consumer", "label": "consumer", "required": false,
"type": "object", "javaType":
"org.apache.camel.component.jt400.Jt400Configuration.MessageAction", "enum": [
"OLD", "REMOVE", "SAME" ], "deprecated": false, "autowired": false, "secret":
false, "defaultValue": "OLD", "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "descrip [...]
+ "readTimeout": { "index": 12, "kind": "parameter", "displayName": "Read
Timeout", "group": "consumer", "label": "consumer", "required": false, "type":
"integer", "javaType": "int", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 30000, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Timeout in millis the consumer will wait while
trying to read a new message of the data queue." },
+ "searchType": { "index": 13, "kind": "parameter", "displayName": "Search
Type", "group": "consumer", "label": "consumer", "required": false, "type":
"object", "javaType":
"org.apache.camel.component.jt400.Jt400Configuration.SearchType", "enum": [
"EQ", "NE", "LT", "LE", "GT", "GE" ], "deprecated": false, "autowired": false,
"secret": false, "defaultValue": "EQ", "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "descri [...]
+ "sendEmptyMessageWhenIdle": { "index": 14, "kind": "parameter",
"displayName": "Send Empty Message When Idle", "group": "consumer", "label":
"consumer", "required": false, "type": "boolean", "javaType": "boolean",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
false, "description": "If the polling consumer did not poll any files, you can
enable this option to send an empty message (no body) instead." },
+ "sendingReply": { "index": 15, "kind": "parameter", "displayName":
"Sending Reply", "group": "consumer", "label": "consumer", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": true, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "If true, the consumer endpoint will set the
Jt400Constants.MESSAGE_REPLYTO_KEY header of [...]
+ "bridgeErrorHandler": { "index": 16, "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": 17, "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": 18, "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." },
+ "pollStrategy": { "index": 19, "kind": "parameter", "displayName": "Poll
Strategy", "group": "consumer (advanced)", "label": "consumer,advanced",
"required": false, "type": "object", "javaType":
"org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false,
"autowired": false, "secret": false, "description": "A pluggable
org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your
custom implementation to control error handling usually occurred during the po
[...]
+ "outputFieldsIdxArray": { "index": 20, "kind": "parameter", "displayName":
"Output Fields Idx Array", "group": "producer", "label": "producer",
"required": false, "type": "object", "javaType": "java.lang.Integer[]",
"deprecated": false, "autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Specifies which fields (program parameters)
are output parameters." },
+ "outputFieldsLengthArray": { "index": 21, "kind": "parameter",
"displayName": "Output Fields Length Array", "group": "producer", "label":
"producer", "required": false, "type": "object", "javaType":
"java.lang.Integer[]", "deprecated": false, "autowired": false, "secret":
false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Specifies the fields (program parameters)
length as in the IBM i program def [...]
+ "procedureName": { "index": 22, "kind": "parameter", "displayName":
"Procedure Name", "group": "producer", "label": "producer", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Procedure name from a service program to call"
},
+ "lazyStartProducer": { "index": 23, "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 [...]
+ "backoffErrorThreshold": { "index": 24, "kind": "parameter",
"displayName": "Backoff Error Threshold", "group": "scheduler", "label":
"consumer,scheduler", "required": false, "type": "integer", "javaType": "int",
"deprecated": false, "autowired": false, "secret": false, "description": "The
number of subsequent error polls (failed due some error) that should happen
before the backoffMultipler should kick-in." },
+ "backoffIdleThreshold": { "index": 25, "kind": "parameter", "displayName":
"Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "integer", "javaType": "int", "deprecated": false,
"autowired": false, "secret": false, "description": "The number of subsequent
idle polls that should happen before the backoffMultipler should kick-in." },
+ "backoffMultiplier": { "index": 26, "kind": "parameter", "displayName":
"Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "integer", "javaType": "int", "deprecated": false,
"autowired": false, "secret": false, "description": "To let the scheduled
polling consumer backoff if there has been a number of subsequent idles\/errors
in a row. The multiplier is then the number of polls that will be skipped
before the next actual attempt is h [...]
+ "delay": { "index": 27, "kind": "parameter", "displayName": "Delay",
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type":
"integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 500, "description": "Milliseconds before the
next poll." },
+ "greedy": { "index": 28, "kind": "parameter", "displayName": "Greedy",
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "If greedy is enabled,
then the ScheduledPollConsumer will run immediately again, if the previous run
polled 1 or more messages." },
+ "initialDelay": { "index": 29, "kind": "parameter", "displayName":
"Initial Delay", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "integer", "javaType": "long", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": 1000, "description":
"Milliseconds before the first poll starts." },
+ "repeatCount": { "index": 30, "kind": "parameter", "displayName": "Repeat
Count", "group": "scheduler", "label": "consumer,scheduler", "required": false,
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 0, "description": "Specifies a maximum limit
of number of fires. So if you set it to 1, the scheduler will only fire once.
If you set it to 5, it will only fire five times. A value of zero or negative
means fire forever." },
+ "runLoggingLevel": { "index": 31, "kind": "parameter", "displayName": "Run
Logging Level", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "object", "javaType":
"org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN",
"ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false,
"defaultValue": "TRACE", "description": "The consumer logs a start\/complete
log line when it polls. This option allows you to configure the l [...]
+ "scheduledExecutorService": { "index": 32, "kind": "parameter",
"displayName": "Scheduled Executor Service", "group": "scheduler", "label":
"consumer,scheduler", "required": false, "type": "object", "javaType":
"java.util.concurrent.ScheduledExecutorService", "deprecated": false,
"autowired": false, "secret": false, "description": "Allows for configuring a
custom\/shared thread pool to use for the consumer. By default each consumer
has its own single threaded thread pool." },
+ "scheduler": { "index": 33, "kind": "parameter", "displayName":
"Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required":
false, "type": "object", "javaType": "java.lang.Object", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": "none", "description": "To
use a cron scheduler from either camel-spring or camel-quartz component. Use
value spring or quartz for built in scheduler" },
+ "schedulerProperties": { "index": 34, "kind": "parameter", "displayName":
"Scheduler Properties", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "object", "javaType":
"java.util.Map<java.lang.String, java.lang.Object>", "prefix": "scheduler.",
"multiValue": true, "deprecated": false, "autowired": false, "secret": false,
"description": "To configure additional properties when using a custom
scheduler or any of the Quartz, Spring based scheduler." },
+ "startScheduler": { "index": 35, "kind": "parameter", "displayName":
"Start Scheduler", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "boolean", "javaType": "boolean", "deprecated":
false, "autowired": false, "secret": false, "defaultValue": true,
"description": "Whether the scheduler should be auto started." },
+ "timeUnit": { "index": 36, "kind": "parameter", "displayName": "Time
Unit", "group": "scheduler", "label": "consumer,scheduler", "required": false,
"type": "object", "javaType": "java.util.concurrent.TimeUnit", "enum": [
"NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS",
"DAYS" ], "deprecated": false, "autowired": false, "secret": false,
"defaultValue": "MILLISECONDS", "description": "Time unit for initialDelay and
delay options." },
+ "useFixedDelay": { "index": 37, "kind": "parameter", "displayName": "Use
Fixed Delay", "group": "scheduler", "label": "consumer,scheduler", "required":
false, "type": "boolean", "javaType": "boolean", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": true, "description":
"Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in
JDK for details." },
+ "secured": { "index": 38, "kind": "parameter", "displayName": "Secured",
"group": "security", "label": "security", "required": false, "type": "boolean",
"javaType": "boolean", "deprecated": false, "autowired": false, "secret":
false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Whether connections to IBM i are secured with
SSL." }
}
}
diff --git
a/components/camel-jt400/src/generated/java/org/apache/camel/component/jt400/Jt400EndpointConfigurer.java
b/components/camel-jt400/src/generated/java/org/apache/camel/component/jt400/Jt400EndpointConfigurer.java
index 01c91b473d4..473b9d69069 100644
---
a/components/camel-jt400/src/generated/java/org/apache/camel/component/jt400/Jt400EndpointConfigurer.java
+++
b/components/camel-jt400/src/generated/java/org/apache/camel/component/jt400/Jt400EndpointConfigurer.java
@@ -32,6 +32,8 @@ public class Jt400EndpointConfigurer extends
PropertyConfigurerSupport implement
case "bridgeerrorhandler":
case "bridgeErrorHandler":
target.setBridgeErrorHandler(property(camelContext, boolean.class, value));
return true;
case "ccsid":
target.getConfiguration().setCcsid(property(camelContext, int.class, value));
return true;
+ case "dataqueueccsid":
+ case "dataQueueCcsid":
target.getConfiguration().setDataQueueCcsid(property(camelContext, int.class,
value)); return true;
case "delay": target.setDelay(property(camelContext, long.class,
value)); return true;
case "exceptionhandler":
case "exceptionHandler":
target.setExceptionHandler(property(camelContext,
org.apache.camel.spi.ExceptionHandler.class, value)); return true;
@@ -98,6 +100,8 @@ public class Jt400EndpointConfigurer extends
PropertyConfigurerSupport implement
case "bridgeerrorhandler":
case "bridgeErrorHandler": return boolean.class;
case "ccsid": return int.class;
+ case "dataqueueccsid":
+ case "dataQueueCcsid": return int.class;
case "delay": return long.class;
case "exceptionhandler":
case "exceptionHandler": return
org.apache.camel.spi.ExceptionHandler.class;
@@ -165,6 +169,8 @@ public class Jt400EndpointConfigurer extends
PropertyConfigurerSupport implement
case "bridgeerrorhandler":
case "bridgeErrorHandler": return target.isBridgeErrorHandler();
case "ccsid": return target.getConfiguration().getCcsid();
+ case "dataqueueccsid":
+ case "dataQueueCcsid": return
target.getConfiguration().getDataQueueCcsid();
case "delay": return target.getDelay();
case "exceptionhandler":
case "exceptionHandler": return target.getExceptionHandler();
diff --git
a/components/camel-jt400/src/generated/java/org/apache/camel/component/jt400/Jt400EndpointUriFactory.java
b/components/camel-jt400/src/generated/java/org/apache/camel/component/jt400/Jt400EndpointUriFactory.java
index 4e01cced1f0..cd46b4df23f 100644
---
a/components/camel-jt400/src/generated/java/org/apache/camel/component/jt400/Jt400EndpointUriFactory.java
+++
b/components/camel-jt400/src/generated/java/org/apache/camel/component/jt400/Jt400EndpointUriFactory.java
@@ -23,12 +23,13 @@ public class Jt400EndpointUriFactory extends
org.apache.camel.support.component.
private static final Set<String> SECRET_PROPERTY_NAMES;
private static final Set<String> MULTI_VALUE_PREFIXES;
static {
- Set<String> props = new HashSet<>(38);
+ Set<String> props = new HashSet<>(39);
props.add("backoffErrorThreshold");
props.add("backoffIdleThreshold");
props.add("backoffMultiplier");
props.add("bridgeErrorHandler");
props.add("ccsid");
+ props.add("dataQueueCcsid");
props.add("delay");
props.add("exceptionHandler");
props.add("exchangePattern");
diff --git
a/components/camel-jt400/src/generated/resources/META-INF/org/apache/camel/component/jt400/jt400.json
b/components/camel-jt400/src/generated/resources/META-INF/org/apache/camel/component/jt400/jt400.json
index 4d356020ec4..bb968b3d046 100644
---
a/components/camel-jt400/src/generated/resources/META-INF/org/apache/camel/component/jt400/jt400.json
+++
b/components/camel-jt400/src/generated/resources/META-INF/org/apache/camel/component/jt400/jt400.json
@@ -53,33 +53,34 @@
"guiAvailable": { "index": 7, "kind": "parameter", "displayName": "Gui
Available", "group": "common", "label": "", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Sets whether IBM i prompting is enabled in the
environment running Camel." },
"keyed": { "index": 8, "kind": "parameter", "displayName": "Keyed",
"group": "common", "label": "", "required": false, "type": "boolean",
"javaType": "boolean", "deprecated": false, "autowired": false, "secret":
false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Whether to use keyed or non-keyed data
queues." },
"searchKey": { "index": 9, "kind": "parameter", "displayName": "Search
Key", "group": "common", "label": "", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Search key for keyed data queues." },
- "messageAction": { "index": 10, "kind": "parameter", "displayName":
"Message Action", "group": "consumer", "label": "consumer", "required": false,
"type": "object", "javaType":
"org.apache.camel.component.jt400.Jt400Configuration.MessageAction", "enum": [
"OLD", "REMOVE", "SAME" ], "deprecated": false, "autowired": false, "secret":
false, "defaultValue": "OLD", "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "descrip [...]
- "readTimeout": { "index": 11, "kind": "parameter", "displayName": "Read
Timeout", "group": "consumer", "label": "consumer", "required": false, "type":
"integer", "javaType": "int", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 30000, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Timeout in millis the consumer will wait while
trying to read a new message of the data queue." },
- "searchType": { "index": 12, "kind": "parameter", "displayName": "Search
Type", "group": "consumer", "label": "consumer", "required": false, "type":
"object", "javaType":
"org.apache.camel.component.jt400.Jt400Configuration.SearchType", "enum": [
"EQ", "NE", "LT", "LE", "GT", "GE" ], "deprecated": false, "autowired": false,
"secret": false, "defaultValue": "EQ", "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "descri [...]
- "sendEmptyMessageWhenIdle": { "index": 13, "kind": "parameter",
"displayName": "Send Empty Message When Idle", "group": "consumer", "label":
"consumer", "required": false, "type": "boolean", "javaType": "boolean",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
false, "description": "If the polling consumer did not poll any files, you can
enable this option to send an empty message (no body) instead." },
- "sendingReply": { "index": 14, "kind": "parameter", "displayName":
"Sending Reply", "group": "consumer", "label": "consumer", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": true, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "If true, the consumer endpoint will set the
Jt400Constants.MESSAGE_REPLYTO_KEY header of [...]
- "bridgeErrorHandler": { "index": 15, "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": 16, "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": 17, "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." },
- "pollStrategy": { "index": 18, "kind": "parameter", "displayName": "Poll
Strategy", "group": "consumer (advanced)", "label": "consumer,advanced",
"required": false, "type": "object", "javaType":
"org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false,
"autowired": false, "secret": false, "description": "A pluggable
org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your
custom implementation to control error handling usually occurred during the po
[...]
- "outputFieldsIdxArray": { "index": 19, "kind": "parameter", "displayName":
"Output Fields Idx Array", "group": "producer", "label": "producer",
"required": false, "type": "object", "javaType": "java.lang.Integer[]",
"deprecated": false, "autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Specifies which fields (program parameters)
are output parameters." },
- "outputFieldsLengthArray": { "index": 20, "kind": "parameter",
"displayName": "Output Fields Length Array", "group": "producer", "label":
"producer", "required": false, "type": "object", "javaType":
"java.lang.Integer[]", "deprecated": false, "autowired": false, "secret":
false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Specifies the fields (program parameters)
length as in the IBM i program def [...]
- "procedureName": { "index": 21, "kind": "parameter", "displayName":
"Procedure Name", "group": "producer", "label": "producer", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Procedure name from a service program to call"
},
- "lazyStartProducer": { "index": 22, "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 [...]
- "backoffErrorThreshold": { "index": 23, "kind": "parameter",
"displayName": "Backoff Error Threshold", "group": "scheduler", "label":
"consumer,scheduler", "required": false, "type": "integer", "javaType": "int",
"deprecated": false, "autowired": false, "secret": false, "description": "The
number of subsequent error polls (failed due some error) that should happen
before the backoffMultipler should kick-in." },
- "backoffIdleThreshold": { "index": 24, "kind": "parameter", "displayName":
"Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "integer", "javaType": "int", "deprecated": false,
"autowired": false, "secret": false, "description": "The number of subsequent
idle polls that should happen before the backoffMultipler should kick-in." },
- "backoffMultiplier": { "index": 25, "kind": "parameter", "displayName":
"Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "integer", "javaType": "int", "deprecated": false,
"autowired": false, "secret": false, "description": "To let the scheduled
polling consumer backoff if there has been a number of subsequent idles\/errors
in a row. The multiplier is then the number of polls that will be skipped
before the next actual attempt is h [...]
- "delay": { "index": 26, "kind": "parameter", "displayName": "Delay",
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type":
"integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 500, "description": "Milliseconds before the
next poll." },
- "greedy": { "index": 27, "kind": "parameter", "displayName": "Greedy",
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "If greedy is enabled,
then the ScheduledPollConsumer will run immediately again, if the previous run
polled 1 or more messages." },
- "initialDelay": { "index": 28, "kind": "parameter", "displayName":
"Initial Delay", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "integer", "javaType": "long", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": 1000, "description":
"Milliseconds before the first poll starts." },
- "repeatCount": { "index": 29, "kind": "parameter", "displayName": "Repeat
Count", "group": "scheduler", "label": "consumer,scheduler", "required": false,
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 0, "description": "Specifies a maximum limit
of number of fires. So if you set it to 1, the scheduler will only fire once.
If you set it to 5, it will only fire five times. A value of zero or negative
means fire forever." },
- "runLoggingLevel": { "index": 30, "kind": "parameter", "displayName": "Run
Logging Level", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "object", "javaType":
"org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN",
"ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false,
"defaultValue": "TRACE", "description": "The consumer logs a start\/complete
log line when it polls. This option allows you to configure the l [...]
- "scheduledExecutorService": { "index": 31, "kind": "parameter",
"displayName": "Scheduled Executor Service", "group": "scheduler", "label":
"consumer,scheduler", "required": false, "type": "object", "javaType":
"java.util.concurrent.ScheduledExecutorService", "deprecated": false,
"autowired": false, "secret": false, "description": "Allows for configuring a
custom\/shared thread pool to use for the consumer. By default each consumer
has its own single threaded thread pool." },
- "scheduler": { "index": 32, "kind": "parameter", "displayName":
"Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required":
false, "type": "object", "javaType": "java.lang.Object", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": "none", "description": "To
use a cron scheduler from either camel-spring or camel-quartz component. Use
value spring or quartz for built in scheduler" },
- "schedulerProperties": { "index": 33, "kind": "parameter", "displayName":
"Scheduler Properties", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "object", "javaType":
"java.util.Map<java.lang.String, java.lang.Object>", "prefix": "scheduler.",
"multiValue": true, "deprecated": false, "autowired": false, "secret": false,
"description": "To configure additional properties when using a custom
scheduler or any of the Quartz, Spring based scheduler." },
- "startScheduler": { "index": 34, "kind": "parameter", "displayName":
"Start Scheduler", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "boolean", "javaType": "boolean", "deprecated":
false, "autowired": false, "secret": false, "defaultValue": true,
"description": "Whether the scheduler should be auto started." },
- "timeUnit": { "index": 35, "kind": "parameter", "displayName": "Time
Unit", "group": "scheduler", "label": "consumer,scheduler", "required": false,
"type": "object", "javaType": "java.util.concurrent.TimeUnit", "enum": [
"NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS",
"DAYS" ], "deprecated": false, "autowired": false, "secret": false,
"defaultValue": "MILLISECONDS", "description": "Time unit for initialDelay and
delay options." },
- "useFixedDelay": { "index": 36, "kind": "parameter", "displayName": "Use
Fixed Delay", "group": "scheduler", "label": "consumer,scheduler", "required":
false, "type": "boolean", "javaType": "boolean", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": true, "description":
"Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in
JDK for details." },
- "secured": { "index": 37, "kind": "parameter", "displayName": "Secured",
"group": "security", "label": "security", "required": false, "type": "boolean",
"javaType": "boolean", "deprecated": false, "autowired": false, "secret":
false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Whether connections to IBM i are secured with
SSL." }
+ "dataQueueCcsid": { "index": 10, "kind": "parameter", "displayName": "Data
Queue Ccsid", "group": "consumer", "label": "consumer", "required": false,
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false,
"secret": false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Sets the CCSID to use for the receiving data
messages from the IBM i system." },
+ "messageAction": { "index": 11, "kind": "parameter", "displayName":
"Message Action", "group": "consumer", "label": "consumer", "required": false,
"type": "object", "javaType":
"org.apache.camel.component.jt400.Jt400Configuration.MessageAction", "enum": [
"OLD", "REMOVE", "SAME" ], "deprecated": false, "autowired": false, "secret":
false, "defaultValue": "OLD", "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "descrip [...]
+ "readTimeout": { "index": 12, "kind": "parameter", "displayName": "Read
Timeout", "group": "consumer", "label": "consumer", "required": false, "type":
"integer", "javaType": "int", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 30000, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Timeout in millis the consumer will wait while
trying to read a new message of the data queue." },
+ "searchType": { "index": 13, "kind": "parameter", "displayName": "Search
Type", "group": "consumer", "label": "consumer", "required": false, "type":
"object", "javaType":
"org.apache.camel.component.jt400.Jt400Configuration.SearchType", "enum": [
"EQ", "NE", "LT", "LE", "GT", "GE" ], "deprecated": false, "autowired": false,
"secret": false, "defaultValue": "EQ", "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "descri [...]
+ "sendEmptyMessageWhenIdle": { "index": 14, "kind": "parameter",
"displayName": "Send Empty Message When Idle", "group": "consumer", "label":
"consumer", "required": false, "type": "boolean", "javaType": "boolean",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
false, "description": "If the polling consumer did not poll any files, you can
enable this option to send an empty message (no body) instead." },
+ "sendingReply": { "index": 15, "kind": "parameter", "displayName":
"Sending Reply", "group": "consumer", "label": "consumer", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": true, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "If true, the consumer endpoint will set the
Jt400Constants.MESSAGE_REPLYTO_KEY header of [...]
+ "bridgeErrorHandler": { "index": 16, "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": 17, "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": 18, "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." },
+ "pollStrategy": { "index": 19, "kind": "parameter", "displayName": "Poll
Strategy", "group": "consumer (advanced)", "label": "consumer,advanced",
"required": false, "type": "object", "javaType":
"org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false,
"autowired": false, "secret": false, "description": "A pluggable
org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your
custom implementation to control error handling usually occurred during the po
[...]
+ "outputFieldsIdxArray": { "index": 20, "kind": "parameter", "displayName":
"Output Fields Idx Array", "group": "producer", "label": "producer",
"required": false, "type": "object", "javaType": "java.lang.Integer[]",
"deprecated": false, "autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Specifies which fields (program parameters)
are output parameters." },
+ "outputFieldsLengthArray": { "index": 21, "kind": "parameter",
"displayName": "Output Fields Length Array", "group": "producer", "label":
"producer", "required": false, "type": "object", "javaType":
"java.lang.Integer[]", "deprecated": false, "autowired": false, "secret":
false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Specifies the fields (program parameters)
length as in the IBM i program def [...]
+ "procedureName": { "index": 22, "kind": "parameter", "displayName":
"Procedure Name", "group": "producer", "label": "producer", "required": false,
"type": "string", "javaType": "java.lang.String", "deprecated": false,
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Procedure name from a service program to call"
},
+ "lazyStartProducer": { "index": 23, "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 [...]
+ "backoffErrorThreshold": { "index": 24, "kind": "parameter",
"displayName": "Backoff Error Threshold", "group": "scheduler", "label":
"consumer,scheduler", "required": false, "type": "integer", "javaType": "int",
"deprecated": false, "autowired": false, "secret": false, "description": "The
number of subsequent error polls (failed due some error) that should happen
before the backoffMultipler should kick-in." },
+ "backoffIdleThreshold": { "index": 25, "kind": "parameter", "displayName":
"Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "integer", "javaType": "int", "deprecated": false,
"autowired": false, "secret": false, "description": "The number of subsequent
idle polls that should happen before the backoffMultipler should kick-in." },
+ "backoffMultiplier": { "index": 26, "kind": "parameter", "displayName":
"Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "integer", "javaType": "int", "deprecated": false,
"autowired": false, "secret": false, "description": "To let the scheduled
polling consumer backoff if there has been a number of subsequent idles\/errors
in a row. The multiplier is then the number of polls that will be skipped
before the next actual attempt is h [...]
+ "delay": { "index": 27, "kind": "parameter", "displayName": "Delay",
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type":
"integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 500, "description": "Milliseconds before the
next poll." },
+ "greedy": { "index": 28, "kind": "parameter", "displayName": "Greedy",
"group": "scheduler", "label": "consumer,scheduler", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "description": "If greedy is enabled,
then the ScheduledPollConsumer will run immediately again, if the previous run
polled 1 or more messages." },
+ "initialDelay": { "index": 29, "kind": "parameter", "displayName":
"Initial Delay", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "integer", "javaType": "long", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": 1000, "description":
"Milliseconds before the first poll starts." },
+ "repeatCount": { "index": 30, "kind": "parameter", "displayName": "Repeat
Count", "group": "scheduler", "label": "consumer,scheduler", "required": false,
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 0, "description": "Specifies a maximum limit
of number of fires. So if you set it to 1, the scheduler will only fire once.
If you set it to 5, it will only fire five times. A value of zero or negative
means fire forever." },
+ "runLoggingLevel": { "index": 31, "kind": "parameter", "displayName": "Run
Logging Level", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "object", "javaType":
"org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN",
"ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false,
"defaultValue": "TRACE", "description": "The consumer logs a start\/complete
log line when it polls. This option allows you to configure the l [...]
+ "scheduledExecutorService": { "index": 32, "kind": "parameter",
"displayName": "Scheduled Executor Service", "group": "scheduler", "label":
"consumer,scheduler", "required": false, "type": "object", "javaType":
"java.util.concurrent.ScheduledExecutorService", "deprecated": false,
"autowired": false, "secret": false, "description": "Allows for configuring a
custom\/shared thread pool to use for the consumer. By default each consumer
has its own single threaded thread pool." },
+ "scheduler": { "index": 33, "kind": "parameter", "displayName":
"Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required":
false, "type": "object", "javaType": "java.lang.Object", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": "none", "description": "To
use a cron scheduler from either camel-spring or camel-quartz component. Use
value spring or quartz for built in scheduler" },
+ "schedulerProperties": { "index": 34, "kind": "parameter", "displayName":
"Scheduler Properties", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "object", "javaType":
"java.util.Map<java.lang.String, java.lang.Object>", "prefix": "scheduler.",
"multiValue": true, "deprecated": false, "autowired": false, "secret": false,
"description": "To configure additional properties when using a custom
scheduler or any of the Quartz, Spring based scheduler." },
+ "startScheduler": { "index": 35, "kind": "parameter", "displayName":
"Start Scheduler", "group": "scheduler", "label": "consumer,scheduler",
"required": false, "type": "boolean", "javaType": "boolean", "deprecated":
false, "autowired": false, "secret": false, "defaultValue": true,
"description": "Whether the scheduler should be auto started." },
+ "timeUnit": { "index": 36, "kind": "parameter", "displayName": "Time
Unit", "group": "scheduler", "label": "consumer,scheduler", "required": false,
"type": "object", "javaType": "java.util.concurrent.TimeUnit", "enum": [
"NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS",
"DAYS" ], "deprecated": false, "autowired": false, "secret": false,
"defaultValue": "MILLISECONDS", "description": "Time unit for initialDelay and
delay options." },
+ "useFixedDelay": { "index": 37, "kind": "parameter", "displayName": "Use
Fixed Delay", "group": "scheduler", "label": "consumer,scheduler", "required":
false, "type": "boolean", "javaType": "boolean", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": true, "description":
"Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in
JDK for details." },
+ "secured": { "index": 38, "kind": "parameter", "displayName": "Secured",
"group": "security", "label": "security", "required": false, "type": "boolean",
"javaType": "boolean", "deprecated": false, "autowired": false, "secret":
false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.jt400.Jt400Configuration", "configurationField":
"configuration", "description": "Whether connections to IBM i are secured with
SSL." }
}
}
diff --git
a/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Configuration.java
b/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Configuration.java
index 8c9b3801df4..6c261c48a39 100644
---
a/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Configuration.java
+++
b/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Configuration.java
@@ -102,7 +102,7 @@ public class Jt400Configuration {
/**
* Constant used to specify that the default system CCSID be used (a
negative CCSID is otherwise invalid).
*/
- private static final int DEFAULT_SYSTEM_CCSID = -1;
+ public static final int DEFAULT_SYSTEM_CCSID = -1;
private final AS400ConnectionPool connectionPool;
@@ -156,6 +156,9 @@ public class Jt400Configuration {
@UriParam(label = "consumer", defaultValue = "30000")
private int readTimeout = 30000;
+ @UriParam(label = "consumer")
+ private int dataQueueCcsid = DEFAULT_SYSTEM_CCSID;
+
@UriParam(label = "producer")
private String procedureName;
@@ -361,6 +364,17 @@ public class Jt400Configuration {
this.readTimeout = readTimeout;
}
+ public int getDataQueueCcsid() {
+ return dataQueueCcsid;
+ }
+
+ /**
+ * Sets the CCSID to use for the receiving data messages from the IBM i
system.
+ */
+ public void setDataQueueCcsid(int dataQueueCcsid) {
+ this.dataQueueCcsid = (dataQueueCcsid < 0) ? DEFAULT_SYSTEM_CCSID :
dataQueueCcsid;
+ }
+
public String getProcedureName() {
return procedureName;
}
diff --git
a/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400DataQueueService.java
b/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400DataQueueService.java
index e613e451ca7..539a32c5633 100644
---
a/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400DataQueueService.java
+++
b/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400DataQueueService.java
@@ -28,6 +28,8 @@ import org.apache.camel.util.ObjectHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import static
org.apache.camel.component.jt400.Jt400Configuration.DEFAULT_SYSTEM_CCSID;
+
/**
* Pseudo-abstract class that encapsulates Service logic common to {@link
Jt400DataQueueConsumer} and
* {@link Jt400DataQueueProducer}.
@@ -69,6 +71,13 @@ class Jt400DataQueueService implements Service {
queue = new DataQueue(system, endpoint.getObjectPath());
}
}
+ if (endpoint.getConfiguration().getDataQueueCcsid() !=
DEFAULT_SYSTEM_CCSID) {
+ try {
+
queue.setCcsid(endpoint.getConfiguration().getDataQueueCcsid());
+ } catch (Exception e) {
+ throw RuntimeCamelException.wrapRuntimeCamelException(e);
+ }
+ }
if (!queue.getSystem().isConnected(AS400.DATAQUEUE)) {
LOG.debug("Connecting to {}", endpoint);
try {
diff --git
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Jt400EndpointBuilderFactory.java
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Jt400EndpointBuilderFactory.java
index 74b141959f4..f679527cb75 100644
---
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Jt400EndpointBuilderFactory.java
+++
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/Jt400EndpointBuilderFactory.java
@@ -180,6 +180,36 @@ public interface Jt400EndpointBuilderFactory {
doSetProperty("searchKey", searchKey);
return this;
}
+ /**
+ * Sets the CCSID to use for the receiving data messages from the IBM i
+ * system.
+ *
+ * The option is a: <code>int</code> type.
+ *
+ * Group: consumer
+ *
+ * @param dataQueueCcsid the value to set
+ * @return the dsl builder
+ */
+ default Jt400EndpointConsumerBuilder dataQueueCcsid(int
dataQueueCcsid) {
+ doSetProperty("dataQueueCcsid", dataQueueCcsid);
+ return this;
+ }
+ /**
+ * Sets the CCSID to use for the receiving data messages from the IBM i
+ * system.
+ *
+ * The option will be converted to a <code>int</code> type.
+ *
+ * Group: consumer
+ *
+ * @param dataQueueCcsid the value to set
+ * @return the dsl builder
+ */
+ default Jt400EndpointConsumerBuilder dataQueueCcsid(String
dataQueueCcsid) {
+ doSetProperty("dataQueueCcsid", dataQueueCcsid);
+ return this;
+ }
/**
* Action to be taken on messages when read from a message queue.
* Messages can be marked as old (OLD), removed from the queue
(REMOVE),