You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/01/12 15:51:33 UTC

[camel-spring-boot] branch master updated: CAMEL-16003: camel-spring-rabbitmq - New component using spring client

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot.git


The following commit(s) were added to refs/heads/master by this push:
     new 2ac9233  CAMEL-16003: camel-spring-rabbitmq - New component using spring client
2ac9233 is described below

commit 2ac9233424636d7710abf98a75c1f8e61e14819e
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Jan 12 16:51:16 2021 +0100

    CAMEL-16003: camel-spring-rabbitmq - New component using spring client
---
 .../springboot/catalog/components/spring-rabbitmq.json      |  9 +++++----
 .../src/main/docs/spring-rabbitmq-starter.adoc              |  5 ++---
 .../springboot/RabbitMQComponentConfiguration.java          | 13 +++++++++++++
 docs/modules/ROOT/pages/spring-rabbitmq-starter.adoc        |  5 ++---
 4 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/spring-rabbitmq.json b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/spring-rabbitmq.json
index 726a0b8..b91304f 100644
--- a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/spring-rabbitmq.json
+++ b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/spring-rabbitmq.json
@@ -38,15 +38,16 @@
     "shutdownTimeout": { "kind": "property", "displayName": "Shutdown Timeout", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5000", "description": "The time to wait for workers in milliseconds after the container is stopped. If any workers are active when the shutdown signal comes they will be allowed to finish processing as long as they c [...]
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
     "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "ignoreDeclarationExceptions": { "kind": "property", "displayName": "Ignore Declaration Exceptions", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Switch on ignore exceptions such as mismatched properties when declaring" },
     "messageConverter": { "kind": "property", "displayName": "Message Converter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.amqp.support.converter.MessageConverter", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom MessageConverter so you can be in control how to map to\/from a org.springframework.amqp.core.Message." },
     "messagePropertiesConverter": { "kind": "property", "displayName": "Message Properties Converter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.springrabbit.MessagePropertiesConverter", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom MessagePropertiesConverter so you can be in control how to map to\/from a org.springframework.amqp.core.MessageProperties." },
     "headerFilterStrategy": { "kind": "property", "displayName": "Header Filter Strategy", "group": "filter", "label": "filter", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message." }
   },
   "properties": {
     "exchangeName": { "kind": "path", "displayName": "Exchange Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The exchange name determines the exchange to which the produced messages will be sent to. In the case of consumers, the exchange name determines the exchange the queue will be bound to. Note: to use default exchange then do n [...]
-    "connectionFactory": { "kind": "parameter", "displayName": "Connection Factory", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.springframework.amqp.rabbit.connection.ConnectionFactory", "deprecated": false, "autowired": false, "secret": false, "description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint." },
-    "disableReplyTo": { "kind": "parameter", "displayName": "Disable Reply To", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Specifies whether Camel ignores the ReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the ReplyTo header. You can use this option if you want Camel to consume from a rout [...]
-    "routingKey": { "kind": "parameter", "displayName": "Routing Key", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Routing key." },
+    "connectionFactory": { "kind": "parameter", "displayName": "Connection Factory", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "org.springframework.amqp.rabbit.connection.ConnectionFactory", "deprecated": false, "autowired": false, "secret": false, "description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint." },
+    "disableReplyTo": { "kind": "parameter", "displayName": "Disable Reply To", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Specifies whether Camel ignores the ReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the ReplyTo header. You can use this option if you want Camel to consume from  [...]
+    "routingKey": { "kind": "parameter", "displayName": "Routing Key", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The value of a routing key to use. Default is empty which is not helpful when using the default (or any direct) exchange, but fine if the exchange is a headers exchange for instance." },
     "testConnectionOnStartup": { "kind": "parameter", "displayName": "Test Connection On Startup", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel [...]
     "acknowledgeMode": { "kind": "parameter", "displayName": "Acknowledge Mode", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.springframework.amqp.core.AcknowledgeMode", "enum": [ "NONE", "MANUAL", "AUTO" ], "deprecated": false, "autowired": false, "secret": false, "description": "Flag controlling the behaviour of the container with respect to message acknowledgement. The most common usage is to let the container handle the acknowledgeme [...]
     "asyncConsumer": { "kind": "parameter", "displayName": "Async Consumer", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the consumer processes the Exchange asynchronously. If enabled then the consumer may pickup the next message from the queue, while the previous message is being processed asynchronously (by the Asynchronous  [...]
@@ -60,7 +61,7 @@
     "exchangeType": { "kind": "parameter", "displayName": "Exchange Type", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "direct", "fanout", "headers", "topic" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "direct", "description": "The type of the exchange" },
     "exclusive": { "kind": "parameter", "displayName": "Exclusive", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Set to true for an exclusive consumer" },
     "noLocal": { "kind": "parameter", "displayName": "No Local", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Set to true for an no-local consumer" },
-    "queues": { "kind": "parameter", "displayName": "Queues", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The queue(s) to use for consuming messages. Multiple queue names can be separated by comma." },
+    "queues": { "kind": "parameter", "displayName": "Queues", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The queue(s) to use for consuming messages. Multiple queue names can be separated by comma. If none has been configured then Camel will generate an unique id as the queue name for the consumer." },
     "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
     "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
     "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
diff --git a/components-starter/camel-spring-rabbitmq-starter/src/main/docs/spring-rabbitmq-starter.adoc b/components-starter/camel-spring-rabbitmq-starter/src/main/docs/spring-rabbitmq-starter.adoc
index 391db70..0f876aa 100644
--- a/components-starter/camel-spring-rabbitmq-starter/src/main/docs/spring-rabbitmq-starter.adoc
+++ b/components-starter/camel-spring-rabbitmq-starter/src/main/docs/spring-rabbitmq-starter.adoc
@@ -17,7 +17,7 @@ When using spring-rabbitmq with Spring Boot make sure to use the following Maven
 ----
 
 
-The component supports 20 options, which are listed below.
+The component supports 21 options, which are listed below.
 
 
 
@@ -37,6 +37,7 @@ The component supports 20 options, which are listed below.
 | *camel.component.spring-rabbitmq.enabled* | Whether to enable auto configuration of the spring-rabbitmq component. This is enabled by default. |  | Boolean
 | *camel.component.spring-rabbitmq.error-handler* | To use a custom ErrorHandler for handling exceptions from the message listener (consumer). The option is a org.springframework.util.ErrorHandler type. |  | ErrorHandler
 | *camel.component.spring-rabbitmq.header-filter-strategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type. |  | HeaderFilterStrategy
+| *camel.component.spring-rabbitmq.ignore-declaration-exceptions* | Switch on ignore exceptions such as mismatched properties when declaring | false | Boolean
 | *camel.component.spring-rabbitmq.lazy-start-producer* | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is proc [...]
 | *camel.component.spring-rabbitmq.listener-container-factory* | To use a custom factory for creating and configuring ListenerContainer to be used by the consumer for receiving messages. The option is a org.apache.camel.component.springrabbit.ListenerContainerFactory type. |  | ListenerContainerFactory
 | *camel.component.spring-rabbitmq.message-converter* | To use a custom MessageConverter so you can be in control how to map to/from a org.springframework.amqp.core.Message. The option is a org.springframework.amqp.support.converter.MessageConverter type. |  | MessageConverter
@@ -45,6 +46,4 @@ The component supports 20 options, which are listed below.
 | *camel.component.spring-rabbitmq.shutdown-timeout* | The time to wait for workers in milliseconds after the container is stopped. If any workers are active when the shutdown signal comes they will be allowed to finish processing as long as they can finish within this timeout. The option is a long type. | 5000 | Long
 | *camel.component.spring-rabbitmq.test-connection-on-startup* | Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well. | false | Boolean
 |===
-
-
 // spring-boot-auto-configure options: END
diff --git a/components-starter/camel-spring-rabbitmq-starter/src/main/java/org/apache/camel/component/springrabbit/springboot/RabbitMQComponentConfiguration.java b/components-starter/camel-spring-rabbitmq-starter/src/main/java/org/apache/camel/component/springrabbit/springboot/RabbitMQComponentConfiguration.java
index f05d6a6..bbe8f22 100644
--- a/components-starter/camel-spring-rabbitmq-starter/src/main/java/org/apache/camel/component/springrabbit/springboot/RabbitMQComponentConfiguration.java
+++ b/components-starter/camel-spring-rabbitmq-starter/src/main/java/org/apache/camel/component/springrabbit/springboot/RabbitMQComponentConfiguration.java
@@ -142,6 +142,10 @@ public class RabbitMQComponentConfiguration
      */
     private Boolean autowiredEnabled = true;
     /**
+     * Switch on ignore exceptions such as mismatched properties when declaring
+     */
+    private Boolean ignoreDeclarationExceptions = false;
+    /**
      * To use a custom MessageConverter so you can be in control how to map
      * to/from a org.springframework.amqp.core.Message. The option is a
      * org.springframework.amqp.support.converter.MessageConverter type.
@@ -290,6 +294,15 @@ public class RabbitMQComponentConfiguration
         this.autowiredEnabled = autowiredEnabled;
     }
 
+    public Boolean getIgnoreDeclarationExceptions() {
+        return ignoreDeclarationExceptions;
+    }
+
+    public void setIgnoreDeclarationExceptions(
+            Boolean ignoreDeclarationExceptions) {
+        this.ignoreDeclarationExceptions = ignoreDeclarationExceptions;
+    }
+
     public MessageConverter getMessageConverter() {
         return messageConverter;
     }
diff --git a/docs/modules/ROOT/pages/spring-rabbitmq-starter.adoc b/docs/modules/ROOT/pages/spring-rabbitmq-starter.adoc
index 391db70..0f876aa 100644
--- a/docs/modules/ROOT/pages/spring-rabbitmq-starter.adoc
+++ b/docs/modules/ROOT/pages/spring-rabbitmq-starter.adoc
@@ -17,7 +17,7 @@ When using spring-rabbitmq with Spring Boot make sure to use the following Maven
 ----
 
 
-The component supports 20 options, which are listed below.
+The component supports 21 options, which are listed below.
 
 
 
@@ -37,6 +37,7 @@ The component supports 20 options, which are listed below.
 | *camel.component.spring-rabbitmq.enabled* | Whether to enable auto configuration of the spring-rabbitmq component. This is enabled by default. |  | Boolean
 | *camel.component.spring-rabbitmq.error-handler* | To use a custom ErrorHandler for handling exceptions from the message listener (consumer). The option is a org.springframework.util.ErrorHandler type. |  | ErrorHandler
 | *camel.component.spring-rabbitmq.header-filter-strategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type. |  | HeaderFilterStrategy
+| *camel.component.spring-rabbitmq.ignore-declaration-exceptions* | Switch on ignore exceptions such as mismatched properties when declaring | false | Boolean
 | *camel.component.spring-rabbitmq.lazy-start-producer* | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is proc [...]
 | *camel.component.spring-rabbitmq.listener-container-factory* | To use a custom factory for creating and configuring ListenerContainer to be used by the consumer for receiving messages. The option is a org.apache.camel.component.springrabbit.ListenerContainerFactory type. |  | ListenerContainerFactory
 | *camel.component.spring-rabbitmq.message-converter* | To use a custom MessageConverter so you can be in control how to map to/from a org.springframework.amqp.core.Message. The option is a org.springframework.amqp.support.converter.MessageConverter type. |  | MessageConverter
@@ -45,6 +46,4 @@ The component supports 20 options, which are listed below.
 | *camel.component.spring-rabbitmq.shutdown-timeout* | The time to wait for workers in milliseconds after the container is stopped. If any workers are active when the shutdown signal comes they will be allowed to finish processing as long as they can finish within this timeout. The option is a long type. | 5000 | Long
 | *camel.component.spring-rabbitmq.test-connection-on-startup* | Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well. | false | Boolean
 |===
-
-
 // spring-boot-auto-configure options: END