This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch camel-4.8.x in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-4.8.x by this push: new 4c76e52d271 upgrade to mina 2.2.4 (#16655) 4c76e52d271 is described below commit 4c76e52d271c69c0384b42826c58bf851462402b Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Fri Dec 27 09:57:29 2024 +0100 upgrade to mina 2.2.4 (#16655) * CAMEL-21571: camel-mina - Upgrade to 2.2.4 and add option to configure codec allow pattern for object serialization. --- .../org/apache/camel/catalog/components/mina.json | 20 +++--- .../component/mina/MinaComponentConfigurer.java | 6 ++ .../component/mina/MinaEndpointConfigurer.java | 6 ++ .../component/mina/MinaEndpointUriFactory.java | 3 +- .../org/apache/camel/component/mina/mina.json | 20 +++--- .../camel/component/mina/MinaConfiguration.java | 18 +++++- .../apache/camel/component/mina/MinaConsumer.java | 4 ++ .../apache/camel/component/mina/MinaProducer.java | 4 ++ .../component/mina/MinaProducerConcurrentTest.java | 2 +- .../mina/MinaTransferExchangeOptionTest.java | 6 +- .../mina/MinaVMTransferExchangeOptionTest.java | 5 +- .../component/dsl/MinaComponentBuilderFactory.java | 22 ++++++- .../endpoint/dsl/MinaEndpointBuilderFactory.java | 72 ++++++++++++++++++++-- parent/pom.xml | 2 +- 14 files changed, 157 insertions(+), 33 deletions(-) diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/mina.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/mina.json index 5455b422188..ef23be99b46 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/mina.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/mina.json @@ -39,17 +39,18 @@ "disconnectOnNoReply": { "index": 13, "kind": "property", "displayName": "Disconnect On No Reply", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "If sync is enabled then this option dictates MinaConsumer if it should disco [...] "maximumPoolSize": { "index": 14, "kind": "property", "displayName": "Maximum Pool Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 16, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Number of worker threads in the worker pool for TCP and UDP" }, "orderedThreadPoolExecutor": { "index": 15, "kind": "property", "displayName": "Ordered Thread Pool Executor", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Whether to use ordered thread pool, to ensure events are process [...] - "transferExchange": { "index": 16, "kind": "property", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only used for TCP. You can transfer the exchange over the wire instead of just the [...] + "transferExchange": { "index": 16, "kind": "property", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": true, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only used for TCP. You can transfer the exchange over the wire instead of just the b [...] "allowDefaultCodec": { "index": 17, "kind": "property", "displayName": "Allow Default Codec", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "The mina component installs a default codec if both, codec is null and textline is fals [...] "codec": { "index": 18, "kind": "property", "displayName": "Codec", "group": "codec", "label": "codec", "required": false, "type": "object", "javaType": "org.apache.mina.filter.codec.ProtocolCodecFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To use a custom minda codec implementation." }, "decoderMaxLineLength": { "index": 19, "kind": "property", "displayName": "Decoder Max Line Length", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To set the textline protocol decoder max line length. By default the default value o [...] "encoderMaxLineLength": { "index": 20, "kind": "property", "displayName": "Encoder Max Line Length", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To set the textline protocol encoder max line length. By default the default value of [...] "encoding": { "index": 21, "kind": "property", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "You can configure the encoding (a charset name) to use for the TCP textline codec and the UDP protocol. If not provided, [...] "filters": { "index": 22, "kind": "property", "displayName": "Filters", "group": "codec", "label": "codec", "required": false, "type": "array", "javaType": "java.util.List<org.apache.mina.core.filterchain.IoFilter>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "You can set a list of Mina IoFilters to use." }, - "textline": { "index": 23, "kind": "property", "displayName": "Textline", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only used for TCP. If no codec is specified, you can use this flag to indicate a text line based codec; if [...] - "textlineDelimiter": { "index": 24, "kind": "property", "displayName": "Textline Delimiter", "group": "codec", "label": "codec", "required": false, "type": "object", "javaType": "org.apache.camel.component.mina.MinaTextLineDelimiter", "enum": [ "DEFAULT", "AUTO", "UNIX", "WINDOWS", "MAC" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only use [...] - "sslContextParameters": { "index": 25, "kind": "property", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To configure SSL security." }, - "useGlobalSslContextParameters": { "index": 26, "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." } + "objectCodecPattern": { "index": 23, "kind": "property", "displayName": "Object Codec Pattern", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Accept the wildcard specified classes for Object deserialization, unless they are otherwise rejecte [...] + "textline": { "index": 24, "kind": "property", "displayName": "Textline", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only used for TCP. If no codec is specified, you can use this flag to indicate a text line based codec; if [...] + "textlineDelimiter": { "index": 25, "kind": "property", "displayName": "Textline Delimiter", "group": "codec", "label": "codec", "required": false, "type": "object", "javaType": "org.apache.camel.component.mina.MinaTextLineDelimiter", "enum": [ "DEFAULT", "AUTO", "UNIX", "WINDOWS", "MAC" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only use [...] + "sslContextParameters": { "index": 26, "kind": "property", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To configure SSL security." }, + "useGlobalSslContextParameters": { "index": 27, "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." } }, "headers": { "CamelMinaCloseSessionWhenComplete": { "index": 0, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Indicates whether the session should be closed after complete", "constantName": "org.apache.camel.component.mina.MinaConstants#MINA_CLOSE_SESSION_WHEN_COMPLETE" }, @@ -77,15 +78,16 @@ "disconnectOnNoReply": { "index": 16, "kind": "parameter", "displayName": "Disconnect On No Reply", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "If sync is enabled then this option dictates MinaConsumer if it should disc [...] "maximumPoolSize": { "index": 17, "kind": "parameter", "displayName": "Maximum Pool Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 16, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Number of worker threads in the worker pool for TCP and UDP" }, "orderedThreadPoolExecutor": { "index": 18, "kind": "parameter", "displayName": "Ordered Thread Pool Executor", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Whether to use ordered thread pool, to ensure events are proces [...] - "transferExchange": { "index": 19, "kind": "parameter", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only used for TCP. You can transfer the exchange over the wire instead of just the [...] + "transferExchange": { "index": 19, "kind": "parameter", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": true, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only used for TCP. You can transfer the exchange over the wire instead of just the [...] "allowDefaultCodec": { "index": 20, "kind": "parameter", "displayName": "Allow Default Codec", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "The mina component installs a default codec if both, codec is null and textline is fal [...] "codec": { "index": 21, "kind": "parameter", "displayName": "Codec", "group": "codec", "label": "codec", "required": false, "type": "object", "javaType": "org.apache.mina.filter.codec.ProtocolCodecFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To use a custom minda codec implementation." }, "decoderMaxLineLength": { "index": 22, "kind": "parameter", "displayName": "Decoder Max Line Length", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To set the textline protocol decoder max line length. By default the default value [...] "encoderMaxLineLength": { "index": 23, "kind": "parameter", "displayName": "Encoder Max Line Length", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To set the textline protocol encoder max line length. By default the default value of [...] "encoding": { "index": 24, "kind": "parameter", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "You can configure the encoding (a charset name) to use for the TCP textline codec and the UDP protocol. If not provided, [...] "filters": { "index": 25, "kind": "parameter", "displayName": "Filters", "group": "codec", "label": "codec", "required": false, "type": "array", "javaType": "java.util.List<org.apache.mina.core.filterchain.IoFilter>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "You can set a list of Mina IoFilters to use." }, - "textline": { "index": 26, "kind": "parameter", "displayName": "Textline", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only used for TCP. If no codec is specified, you can use this flag to indicate a text line based codec; i [...] - "textlineDelimiter": { "index": 27, "kind": "parameter", "displayName": "Textline Delimiter", "group": "codec", "label": "codec", "required": false, "type": "object", "javaType": "org.apache.camel.component.mina.MinaTextLineDelimiter", "enum": [ "DEFAULT", "AUTO", "UNIX", "WINDOWS", "MAC" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only us [...] - "sslContextParameters": { "index": 28, "kind": "parameter", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To configure SSL security." } + "objectCodecPattern": { "index": 26, "kind": "parameter", "displayName": "Object Codec Pattern", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Accept the wildcard specified classes for Object deserialization, unless they are otherwise reject [...] + "textline": { "index": 27, "kind": "parameter", "displayName": "Textline", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only used for TCP. If no codec is specified, you can use this flag to indicate a text line based codec; i [...] + "textlineDelimiter": { "index": 28, "kind": "parameter", "displayName": "Textline Delimiter", "group": "codec", "label": "codec", "required": false, "type": "object", "javaType": "org.apache.camel.component.mina.MinaTextLineDelimiter", "enum": [ "DEFAULT", "AUTO", "UNIX", "WINDOWS", "MAC" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only us [...] + "sslContextParameters": { "index": 29, "kind": "parameter", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To configure SSL security." } } } diff --git a/components/camel-mina/src/generated/java/org/apache/camel/component/mina/MinaComponentConfigurer.java b/components/camel-mina/src/generated/java/org/apache/camel/component/mina/MinaComponentConfigurer.java index ec368b2cc9e..1b697bec50e 100644 --- a/components/camel-mina/src/generated/java/org/apache/camel/component/mina/MinaComponentConfigurer.java +++ b/components/camel-mina/src/generated/java/org/apache/camel/component/mina/MinaComponentConfigurer.java @@ -61,6 +61,8 @@ public class MinaComponentConfigurer extends PropertyConfigurerSupport implement case "minaLogger": getOrCreateConfiguration(target).setMinaLogger(property(camelContext, boolean.class, value)); return true; case "noreplyloglevel": case "noReplyLogLevel": getOrCreateConfiguration(target).setNoReplyLogLevel(property(camelContext, org.apache.camel.LoggingLevel.class, value)); return true; + case "objectcodecpattern": + case "objectCodecPattern": getOrCreateConfiguration(target).setObjectCodecPattern(property(camelContext, java.lang.String.class, value)); return true; case "orderedthreadpoolexecutor": case "orderedThreadPoolExecutor": getOrCreateConfiguration(target).setOrderedThreadPoolExecutor(property(camelContext, boolean.class, value)); return true; case "sslcontextparameters": @@ -114,6 +116,8 @@ public class MinaComponentConfigurer extends PropertyConfigurerSupport implement case "minaLogger": return boolean.class; case "noreplyloglevel": case "noReplyLogLevel": return org.apache.camel.LoggingLevel.class; + case "objectcodecpattern": + case "objectCodecPattern": return java.lang.String.class; case "orderedthreadpoolexecutor": case "orderedThreadPoolExecutor": return boolean.class; case "sslcontextparameters": @@ -168,6 +172,8 @@ public class MinaComponentConfigurer extends PropertyConfigurerSupport implement case "minaLogger": return getOrCreateConfiguration(target).isMinaLogger(); case "noreplyloglevel": case "noReplyLogLevel": return getOrCreateConfiguration(target).getNoReplyLogLevel(); + case "objectcodecpattern": + case "objectCodecPattern": return getOrCreateConfiguration(target).getObjectCodecPattern(); case "orderedthreadpoolexecutor": case "orderedThreadPoolExecutor": return getOrCreateConfiguration(target).isOrderedThreadPoolExecutor(); case "sslcontextparameters": diff --git a/components/camel-mina/src/generated/java/org/apache/camel/component/mina/MinaEndpointConfigurer.java b/components/camel-mina/src/generated/java/org/apache/camel/component/mina/MinaEndpointConfigurer.java index 68e424ef1ab..70c6c2d93c2 100644 --- a/components/camel-mina/src/generated/java/org/apache/camel/component/mina/MinaEndpointConfigurer.java +++ b/components/camel-mina/src/generated/java/org/apache/camel/component/mina/MinaEndpointConfigurer.java @@ -55,6 +55,8 @@ public class MinaEndpointConfigurer extends PropertyConfigurerSupport implements case "minaLogger": target.getConfiguration().setMinaLogger(property(camelContext, boolean.class, value)); return true; case "noreplyloglevel": case "noReplyLogLevel": target.getConfiguration().setNoReplyLogLevel(property(camelContext, org.apache.camel.LoggingLevel.class, value)); return true; + case "objectcodecpattern": + case "objectCodecPattern": target.getConfiguration().setObjectCodecPattern(property(camelContext, java.lang.String.class, value)); return true; case "orderedthreadpoolexecutor": case "orderedThreadPoolExecutor": target.getConfiguration().setOrderedThreadPoolExecutor(property(camelContext, boolean.class, value)); return true; case "sslcontextparameters": @@ -107,6 +109,8 @@ public class MinaEndpointConfigurer extends PropertyConfigurerSupport implements case "minaLogger": return boolean.class; case "noreplyloglevel": case "noReplyLogLevel": return org.apache.camel.LoggingLevel.class; + case "objectcodecpattern": + case "objectCodecPattern": return java.lang.String.class; case "orderedthreadpoolexecutor": case "orderedThreadPoolExecutor": return boolean.class; case "sslcontextparameters": @@ -160,6 +164,8 @@ public class MinaEndpointConfigurer extends PropertyConfigurerSupport implements case "minaLogger": return target.getConfiguration().isMinaLogger(); case "noreplyloglevel": case "noReplyLogLevel": return target.getConfiguration().getNoReplyLogLevel(); + case "objectcodecpattern": + case "objectCodecPattern": return target.getConfiguration().getObjectCodecPattern(); case "orderedthreadpoolexecutor": case "orderedThreadPoolExecutor": return target.getConfiguration().isOrderedThreadPoolExecutor(); case "sslcontextparameters": diff --git a/components/camel-mina/src/generated/java/org/apache/camel/component/mina/MinaEndpointUriFactory.java b/components/camel-mina/src/generated/java/org/apache/camel/component/mina/MinaEndpointUriFactory.java index 98fb150831b..e408d94dba7 100644 --- a/components/camel-mina/src/generated/java/org/apache/camel/component/mina/MinaEndpointUriFactory.java +++ b/components/camel-mina/src/generated/java/org/apache/camel/component/mina/MinaEndpointUriFactory.java @@ -23,7 +23,7 @@ public class MinaEndpointUriFactory 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<>(29); + Set<String> props = new HashSet<>(30); props.add("allowDefaultCodec"); props.add("bridgeErrorHandler"); props.add("cachedAddress"); @@ -43,6 +43,7 @@ public class MinaEndpointUriFactory extends org.apache.camel.support.component.E props.add("maximumPoolSize"); props.add("minaLogger"); props.add("noReplyLogLevel"); + props.add("objectCodecPattern"); props.add("orderedThreadPoolExecutor"); props.add("port"); props.add("protocol"); diff --git a/components/camel-mina/src/generated/resources/META-INF/org/apache/camel/component/mina/mina.json b/components/camel-mina/src/generated/resources/META-INF/org/apache/camel/component/mina/mina.json index 5455b422188..ef23be99b46 100644 --- a/components/camel-mina/src/generated/resources/META-INF/org/apache/camel/component/mina/mina.json +++ b/components/camel-mina/src/generated/resources/META-INF/org/apache/camel/component/mina/mina.json @@ -39,17 +39,18 @@ "disconnectOnNoReply": { "index": 13, "kind": "property", "displayName": "Disconnect On No Reply", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "If sync is enabled then this option dictates MinaConsumer if it should disco [...] "maximumPoolSize": { "index": 14, "kind": "property", "displayName": "Maximum Pool Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 16, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Number of worker threads in the worker pool for TCP and UDP" }, "orderedThreadPoolExecutor": { "index": 15, "kind": "property", "displayName": "Ordered Thread Pool Executor", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Whether to use ordered thread pool, to ensure events are process [...] - "transferExchange": { "index": 16, "kind": "property", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only used for TCP. You can transfer the exchange over the wire instead of just the [...] + "transferExchange": { "index": 16, "kind": "property", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": true, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only used for TCP. You can transfer the exchange over the wire instead of just the b [...] "allowDefaultCodec": { "index": 17, "kind": "property", "displayName": "Allow Default Codec", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "The mina component installs a default codec if both, codec is null and textline is fals [...] "codec": { "index": 18, "kind": "property", "displayName": "Codec", "group": "codec", "label": "codec", "required": false, "type": "object", "javaType": "org.apache.mina.filter.codec.ProtocolCodecFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To use a custom minda codec implementation." }, "decoderMaxLineLength": { "index": 19, "kind": "property", "displayName": "Decoder Max Line Length", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To set the textline protocol decoder max line length. By default the default value o [...] "encoderMaxLineLength": { "index": 20, "kind": "property", "displayName": "Encoder Max Line Length", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To set the textline protocol encoder max line length. By default the default value of [...] "encoding": { "index": 21, "kind": "property", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "You can configure the encoding (a charset name) to use for the TCP textline codec and the UDP protocol. If not provided, [...] "filters": { "index": 22, "kind": "property", "displayName": "Filters", "group": "codec", "label": "codec", "required": false, "type": "array", "javaType": "java.util.List<org.apache.mina.core.filterchain.IoFilter>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "You can set a list of Mina IoFilters to use." }, - "textline": { "index": 23, "kind": "property", "displayName": "Textline", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only used for TCP. If no codec is specified, you can use this flag to indicate a text line based codec; if [...] - "textlineDelimiter": { "index": 24, "kind": "property", "displayName": "Textline Delimiter", "group": "codec", "label": "codec", "required": false, "type": "object", "javaType": "org.apache.camel.component.mina.MinaTextLineDelimiter", "enum": [ "DEFAULT", "AUTO", "UNIX", "WINDOWS", "MAC" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only use [...] - "sslContextParameters": { "index": 25, "kind": "property", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To configure SSL security." }, - "useGlobalSslContextParameters": { "index": 26, "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." } + "objectCodecPattern": { "index": 23, "kind": "property", "displayName": "Object Codec Pattern", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Accept the wildcard specified classes for Object deserialization, unless they are otherwise rejecte [...] + "textline": { "index": 24, "kind": "property", "displayName": "Textline", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only used for TCP. If no codec is specified, you can use this flag to indicate a text line based codec; if [...] + "textlineDelimiter": { "index": 25, "kind": "property", "displayName": "Textline Delimiter", "group": "codec", "label": "codec", "required": false, "type": "object", "javaType": "org.apache.camel.component.mina.MinaTextLineDelimiter", "enum": [ "DEFAULT", "AUTO", "UNIX", "WINDOWS", "MAC" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only use [...] + "sslContextParameters": { "index": 26, "kind": "property", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To configure SSL security." }, + "useGlobalSslContextParameters": { "index": 27, "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." } }, "headers": { "CamelMinaCloseSessionWhenComplete": { "index": 0, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Indicates whether the session should be closed after complete", "constantName": "org.apache.camel.component.mina.MinaConstants#MINA_CLOSE_SESSION_WHEN_COMPLETE" }, @@ -77,15 +78,16 @@ "disconnectOnNoReply": { "index": 16, "kind": "parameter", "displayName": "Disconnect On No Reply", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "If sync is enabled then this option dictates MinaConsumer if it should disc [...] "maximumPoolSize": { "index": 17, "kind": "parameter", "displayName": "Maximum Pool Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 16, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Number of worker threads in the worker pool for TCP and UDP" }, "orderedThreadPoolExecutor": { "index": 18, "kind": "parameter", "displayName": "Ordered Thread Pool Executor", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Whether to use ordered thread pool, to ensure events are proces [...] - "transferExchange": { "index": 19, "kind": "parameter", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only used for TCP. You can transfer the exchange over the wire instead of just the [...] + "transferExchange": { "index": 19, "kind": "parameter", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": true, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only used for TCP. You can transfer the exchange over the wire instead of just the [...] "allowDefaultCodec": { "index": 20, "kind": "parameter", "displayName": "Allow Default Codec", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "The mina component installs a default codec if both, codec is null and textline is fal [...] "codec": { "index": 21, "kind": "parameter", "displayName": "Codec", "group": "codec", "label": "codec", "required": false, "type": "object", "javaType": "org.apache.mina.filter.codec.ProtocolCodecFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To use a custom minda codec implementation." }, "decoderMaxLineLength": { "index": 22, "kind": "parameter", "displayName": "Decoder Max Line Length", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To set the textline protocol decoder max line length. By default the default value [...] "encoderMaxLineLength": { "index": 23, "kind": "parameter", "displayName": "Encoder Max Line Length", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To set the textline protocol encoder max line length. By default the default value of [...] "encoding": { "index": 24, "kind": "parameter", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "You can configure the encoding (a charset name) to use for the TCP textline codec and the UDP protocol. If not provided, [...] "filters": { "index": 25, "kind": "parameter", "displayName": "Filters", "group": "codec", "label": "codec", "required": false, "type": "array", "javaType": "java.util.List<org.apache.mina.core.filterchain.IoFilter>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "You can set a list of Mina IoFilters to use." }, - "textline": { "index": 26, "kind": "parameter", "displayName": "Textline", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only used for TCP. If no codec is specified, you can use this flag to indicate a text line based codec; i [...] - "textlineDelimiter": { "index": 27, "kind": "parameter", "displayName": "Textline Delimiter", "group": "codec", "label": "codec", "required": false, "type": "object", "javaType": "org.apache.camel.component.mina.MinaTextLineDelimiter", "enum": [ "DEFAULT", "AUTO", "UNIX", "WINDOWS", "MAC" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only us [...] - "sslContextParameters": { "index": 28, "kind": "parameter", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To configure SSL security." } + "objectCodecPattern": { "index": 26, "kind": "parameter", "displayName": "Object Codec Pattern", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Accept the wildcard specified classes for Object deserialization, unless they are otherwise reject [...] + "textline": { "index": 27, "kind": "parameter", "displayName": "Textline", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only used for TCP. If no codec is specified, you can use this flag to indicate a text line based codec; i [...] + "textlineDelimiter": { "index": 28, "kind": "parameter", "displayName": "Textline Delimiter", "group": "codec", "label": "codec", "required": false, "type": "object", "javaType": "org.apache.camel.component.mina.MinaTextLineDelimiter", "enum": [ "DEFAULT", "AUTO", "UNIX", "WINDOWS", "MAC" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only us [...] + "sslContextParameters": { "index": 29, "kind": "parameter", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To configure SSL security." } } } diff --git a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConfiguration.java b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConfiguration.java index 8f78fd412ad..11d9ba6fcbc 100644 --- a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConfiguration.java +++ b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConfiguration.java @@ -61,6 +61,7 @@ public class MinaConfiguration implements Cloneable { @UriParam(label = "producer,advanced", defaultValue = "true") private boolean lazySessionCreation = true; @UriParam(label = "advanced") + @Deprecated private boolean transferExchange; @UriParam private boolean minaLogger; @@ -72,6 +73,8 @@ public class MinaConfiguration implements Cloneable { private List<IoFilter> filters; @UriParam(label = "codec", defaultValue = "true") private boolean allowDefaultCodec = true; + @UriParam(label = "codec") + private String objectCodecPattern; @UriParam private boolean disconnect; @UriParam(label = "advanced", defaultValue = "true") @@ -246,7 +249,8 @@ public class MinaConfiguration implements Cloneable { * Only used for TCP. You can transfer the exchange over the wire instead of just the body. The following fields are * transferred: In body, Out body, fault body, In headers, Out headers, fault headers, exchange properties, exchange * exception. This requires that the objects are serializable. Camel will exclude any non-serializable objects and - * log it at WARN level. + * log it at WARN level. Also make sure to configure objectCodecPattern to * (star) to allow transferring java + * objects. */ public void setTransferExchange(boolean transferExchange) { this.transferExchange = transferExchange; @@ -317,6 +321,18 @@ public class MinaConfiguration implements Cloneable { return allowDefaultCodec; } + public String getObjectCodecPattern() { + return objectCodecPattern; + } + + /** + * Accept the wildcard specified classes for Object deserialization, unless they are otherwise rejected. Multiple + * patterns can be separated by comma. + */ + public void setObjectCodecPattern(String pattern) { + this.objectCodecPattern = pattern; + } + public boolean isDisconnect() { return disconnect; } diff --git a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java index 1a2635afa23..cd019ec8977 100644 --- a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java +++ b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java @@ -269,6 +269,10 @@ public class MinaConsumer extends DefaultConsumer { } } else { ObjectSerializationCodecFactory codecFactory = new ObjectSerializationCodecFactory(); + if (configuration.getObjectCodecPattern() != null) { + String[] arr = configuration.getObjectCodecPattern().split(","); + codecFactory.accept(arr); + } addCodecFactory(service, codecFactory); LOG.debug("{}: Using ObjectSerializationCodecFactory: {}", type, codecFactory); } diff --git a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaProducer.java b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaProducer.java index 0c8fcf58285..ddb26027906 100644 --- a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaProducer.java +++ b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaProducer.java @@ -370,6 +370,10 @@ public class MinaProducer extends DefaultProducer { codecFactory.getEncoderMaxLineLength(), codecFactory.getDecoderMaxLineLength()); } else { ObjectSerializationCodecFactory codecFactory = new ObjectSerializationCodecFactory(); + if (configuration.getObjectCodecPattern() != null) { + String[] arr = configuration.getObjectCodecPattern().split(","); + codecFactory.accept(arr); + } addCodecFactory(service, codecFactory); LOG.debug("{}: Using ObjectSerializationCodecFactory: {}", type, codecFactory); } diff --git a/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaProducerConcurrentTest.java b/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaProducerConcurrentTest.java index cb3b69b93cc..f13382080e1 100644 --- a/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaProducerConcurrentTest.java +++ b/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaProducerConcurrentTest.java @@ -77,7 +77,7 @@ public class MinaProducerConcurrentTest extends BaseMinaTest { return new RouteBuilder() { public void configure() { - fromF("mina:tcp://localhost:%1$s?sync=true", getPort()).process(exchange -> { + fromF("mina:tcp://localhost:%1$s?sync=true&objectCodecPattern=*", getPort()).process(exchange -> { String body = exchange.getIn().getBody(String.class); exchange.getMessage().setBody("Bye " + body); }).to("mock:result"); diff --git a/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTransferExchangeOptionTest.java b/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTransferExchangeOptionTest.java index 364435a41c3..3be82f8e993 100644 --- a/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTransferExchangeOptionTest.java +++ b/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTransferExchangeOptionTest.java @@ -54,7 +54,8 @@ public class MinaTransferExchangeOptionTest extends BaseMinaTest { private Exchange sendExchange(boolean setException) throws Exception { Endpoint endpoint = context.getEndpoint( - String.format("mina:tcp://localhost:%1$s?sync=true&encoding=UTF-8&transferExchange=true", getPort())); + String.format("mina:tcp://localhost:%1$s?sync=true&encoding=UTF-8&transferExchange=true&objectCodecPattern=*", + getPort())); Producer producer = endpoint.createProducer(); Exchange exchange = endpoint.createExchange(); @@ -99,7 +100,8 @@ public class MinaTransferExchangeOptionTest extends BaseMinaTest { return new RouteBuilder() { public void configure() { - fromF("mina:tcp://localhost:%1$s?sync=true&encoding=UTF-8&transferExchange=true", getPort()) + fromF("mina:tcp://localhost:%1$s?sync=true&encoding=UTF-8&transferExchange=true&objectCodecPattern=*", + getPort()) .process(e -> { LOG.debug("Enter Processor..."); assertNotNull(e.getIn().getBody()); diff --git a/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaVMTransferExchangeOptionTest.java b/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaVMTransferExchangeOptionTest.java index 9a8804a12a5..814d41504a7 100644 --- a/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaVMTransferExchangeOptionTest.java +++ b/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaVMTransferExchangeOptionTest.java @@ -50,7 +50,8 @@ public class MinaVMTransferExchangeOptionTest extends BaseMinaTest { private Exchange sendExchange(boolean setException) throws Exception { Endpoint endpoint = context.getEndpoint( - String.format("mina:vm://localhost:%1$s?sync=true&encoding=UTF-8&transferExchange=true", getPort())); + String.format("mina:vm://localhost:%1$s?sync=true&encoding=UTF-8&transferExchange=true&objectCodecPattern=*", + getPort())); Exchange exchange = endpoint.createExchange(); Message message = exchange.getIn(); @@ -95,7 +96,7 @@ public class MinaVMTransferExchangeOptionTest extends BaseMinaTest { return new RouteBuilder() { public void configure() { - fromF("mina:vm://localhost:%1$s?sync=true&encoding=UTF-8&transferExchange=true", getPort()) + fromF("mina:vm://localhost:%1$s?sync=true&encoding=UTF-8&transferExchange=true&objectCodecPattern=*", getPort()) .process(e -> { assertNotNull(e.getIn().getBody()); assertNotNull(e.getIn().getHeaders()); diff --git a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/MinaComponentBuilderFactory.java b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/MinaComponentBuilderFactory.java index caedcd98745..7c66053729f 100644 --- a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/MinaComponentBuilderFactory.java +++ b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/MinaComponentBuilderFactory.java @@ -364,7 +364,8 @@ public interface MinaComponentBuilderFactory { * body, Out body, fault body, In headers, Out headers, fault headers, * exchange properties, exchange exception. This requires that the * objects are serializable. Camel will exclude any non-serializable - * objects and log it at WARN level. + * objects and log it at WARN level. Also make sure to configure + * objectCodecPattern to (star) to allow transferring java objects. * * The option is a: <code>boolean</code> type. * @@ -374,6 +375,7 @@ public interface MinaComponentBuilderFactory { * @param transferExchange the value to set * @return the dsl builder */ + @Deprecated default MinaComponentBuilder transferExchange(boolean transferExchange) { doSetProperty("transferExchange", transferExchange); return this; @@ -486,6 +488,23 @@ public interface MinaComponentBuilderFactory { return this; } + /** + * Accept the wildcard specified classes for Object deserialization, + * unless they are otherwise rejected. Multiple patterns can be + * separated by comma. + * + * The option is a: <code>java.lang.String</code> type. + * + * Group: codec + * + * @param objectCodecPattern the value to set + * @return the dsl builder + */ + default MinaComponentBuilder objectCodecPattern(java.lang.String objectCodecPattern) { + doSetProperty("objectCodecPattern", objectCodecPattern); + return this; + } + /** * Only used for TCP. If no codec is specified, you can use this flag to @@ -599,6 +618,7 @@ public interface MinaComponentBuilderFactory { case "encoderMaxLineLength": getOrCreateConfiguration((MinaComponent) component).setEncoderMaxLineLength((int) value); return true; case "encoding": getOrCreateConfiguration((MinaComponent) component).setEncoding((java.lang.String) value); return true; case "filters": getOrCreateConfiguration((MinaComponent) component).setFilters((java.util.List) value); return true; + case "objectCodecPattern": getOrCreateConfiguration((MinaComponent) component).setObjectCodecPattern((java.lang.String) value); return true; case "textline": getOrCreateConfiguration((MinaComponent) component).setTextline((boolean) value); return true; case "textlineDelimiter": getOrCreateConfiguration((MinaComponent) component).setTextlineDelimiter((org.apache.camel.component.mina.MinaTextLineDelimiter) value); return true; case "sslContextParameters": getOrCreateConfiguration((MinaComponent) component).setSslContextParameters((org.apache.camel.support.jsse.SSLContextParameters) value); return true; diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MinaEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MinaEndpointBuilderFactory.java index d5c83fbdc50..2ec811c6137 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MinaEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MinaEndpointBuilderFactory.java @@ -415,6 +415,22 @@ public interface MinaEndpointBuilderFactory { doSetProperty("filters", filters); return this; } + /** + * Accept the wildcard specified classes for Object deserialization, + * unless they are otherwise rejected. Multiple patterns can be + * separated by comma. + * + * The option is a: <code>java.lang.String</code> type. + * + * Group: codec + * + * @param objectCodecPattern the value to set + * @return the dsl builder + */ + default MinaEndpointConsumerBuilder objectCodecPattern(String objectCodecPattern) { + doSetProperty("objectCodecPattern", objectCodecPattern); + return this; + } /** * Only used for TCP. If no codec is specified, you can use this flag to * indicate a text line based codec; if not specified or the value is @@ -776,7 +792,8 @@ public interface MinaEndpointBuilderFactory { * body, Out body, fault body, In headers, Out headers, fault headers, * exchange properties, exchange exception. This requires that the * objects are serializable. Camel will exclude any non-serializable - * objects and log it at WARN level. + * objects and log it at WARN level. Also make sure to configure + * objectCodecPattern to (star) to allow transferring java objects. * * The option is a: <code>boolean</code> type. * @@ -786,6 +803,7 @@ public interface MinaEndpointBuilderFactory { * @param transferExchange the value to set * @return the dsl builder */ + @Deprecated default AdvancedMinaEndpointConsumerBuilder transferExchange(boolean transferExchange) { doSetProperty("transferExchange", transferExchange); return this; @@ -796,7 +814,8 @@ public interface MinaEndpointBuilderFactory { * body, Out body, fault body, In headers, Out headers, fault headers, * exchange properties, exchange exception. This requires that the * objects are serializable. Camel will exclude any non-serializable - * objects and log it at WARN level. + * objects and log it at WARN level. Also make sure to configure + * objectCodecPattern to (star) to allow transferring java objects. * * The option will be converted to a <code>boolean</code> type. * @@ -806,6 +825,7 @@ public interface MinaEndpointBuilderFactory { * @param transferExchange the value to set * @return the dsl builder */ + @Deprecated default AdvancedMinaEndpointConsumerBuilder transferExchange(String transferExchange) { doSetProperty("transferExchange", transferExchange); return this; @@ -1162,6 +1182,22 @@ public interface MinaEndpointBuilderFactory { doSetProperty("filters", filters); return this; } + /** + * Accept the wildcard specified classes for Object deserialization, + * unless they are otherwise rejected. Multiple patterns can be + * separated by comma. + * + * The option is a: <code>java.lang.String</code> type. + * + * Group: codec + * + * @param objectCodecPattern the value to set + * @return the dsl builder + */ + default MinaEndpointProducerBuilder objectCodecPattern(String objectCodecPattern) { + doSetProperty("objectCodecPattern", objectCodecPattern); + return this; + } /** * Only used for TCP. If no codec is specified, you can use this flag to * indicate a text line based codec; if not specified or the value is @@ -1482,7 +1518,8 @@ public interface MinaEndpointBuilderFactory { * body, Out body, fault body, In headers, Out headers, fault headers, * exchange properties, exchange exception. This requires that the * objects are serializable. Camel will exclude any non-serializable - * objects and log it at WARN level. + * objects and log it at WARN level. Also make sure to configure + * objectCodecPattern to (star) to allow transferring java objects. * * The option is a: <code>boolean</code> type. * @@ -1492,6 +1529,7 @@ public interface MinaEndpointBuilderFactory { * @param transferExchange the value to set * @return the dsl builder */ + @Deprecated default AdvancedMinaEndpointProducerBuilder transferExchange(boolean transferExchange) { doSetProperty("transferExchange", transferExchange); return this; @@ -1502,7 +1540,8 @@ public interface MinaEndpointBuilderFactory { * body, Out body, fault body, In headers, Out headers, fault headers, * exchange properties, exchange exception. This requires that the * objects are serializable. Camel will exclude any non-serializable - * objects and log it at WARN level. + * objects and log it at WARN level. Also make sure to configure + * objectCodecPattern to (star) to allow transferring java objects. * * The option will be converted to a <code>boolean</code> type. * @@ -1512,6 +1551,7 @@ public interface MinaEndpointBuilderFactory { * @param transferExchange the value to set * @return the dsl builder */ + @Deprecated default AdvancedMinaEndpointProducerBuilder transferExchange(String transferExchange) { doSetProperty("transferExchange", transferExchange); return this; @@ -1869,6 +1909,22 @@ public interface MinaEndpointBuilderFactory { doSetProperty("filters", filters); return this; } + /** + * Accept the wildcard specified classes for Object deserialization, + * unless they are otherwise rejected. Multiple patterns can be + * separated by comma. + * + * The option is a: <code>java.lang.String</code> type. + * + * Group: codec + * + * @param objectCodecPattern the value to set + * @return the dsl builder + */ + default MinaEndpointBuilder objectCodecPattern(String objectCodecPattern) { + doSetProperty("objectCodecPattern", objectCodecPattern); + return this; + } /** * Only used for TCP. If no codec is specified, you can use this flag to * indicate a text line based codec; if not specified or the value is @@ -2082,7 +2138,8 @@ public interface MinaEndpointBuilderFactory { * body, Out body, fault body, In headers, Out headers, fault headers, * exchange properties, exchange exception. This requires that the * objects are serializable. Camel will exclude any non-serializable - * objects and log it at WARN level. + * objects and log it at WARN level. Also make sure to configure + * objectCodecPattern to (star) to allow transferring java objects. * * The option is a: <code>boolean</code> type. * @@ -2092,6 +2149,7 @@ public interface MinaEndpointBuilderFactory { * @param transferExchange the value to set * @return the dsl builder */ + @Deprecated default AdvancedMinaEndpointBuilder transferExchange(boolean transferExchange) { doSetProperty("transferExchange", transferExchange); return this; @@ -2102,7 +2160,8 @@ public interface MinaEndpointBuilderFactory { * body, Out body, fault body, In headers, Out headers, fault headers, * exchange properties, exchange exception. This requires that the * objects are serializable. Camel will exclude any non-serializable - * objects and log it at WARN level. + * objects and log it at WARN level. Also make sure to configure + * objectCodecPattern to (star) to allow transferring java objects. * * The option will be converted to a <code>boolean</code> type. * @@ -2112,6 +2171,7 @@ public interface MinaEndpointBuilderFactory { * @param transferExchange the value to set * @return the dsl builder */ + @Deprecated default AdvancedMinaEndpointBuilder transferExchange(String transferExchange) { doSetProperty("transferExchange", transferExchange); return this; diff --git a/parent/pom.xml b/parent/pom.xml index 464328a93e4..f08ad49e97e 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -356,7 +356,7 @@ <microprofile-config-version>3.1</microprofile-config-version> <microprofile-fault-tolerance-version>4.1</microprofile-fault-tolerance-version> <milvus-client-version>2.4.3</milvus-client-version> - <mina-version>2.2.3</mina-version> + <mina-version>2.2.4</mina-version> <minidns-version>0.3.4</minidns-version> <minimal-json-version>0.9.5</minimal-json-version> <minio-version>8.5.12</minio-version>