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.git


The following commit(s) were added to refs/heads/master by this push:
     new 56b9de8  CAMEL-14604: Update cacheSize docs
56b9de8 is described below

commit 56b9de811218a4e5d3fa83ba0c4988718012eba9
Author: Claus Ibsen <[email protected]>
AuthorDate: Fri Feb 21 15:17:19 2020 +0100

    CAMEL-14604: Update cacheSize docs
---
 .../resources/org/apache/camel/model/toD.json      |  2 +-
 .../resources/org/apache/camel/model/wireTap.json  |  2 +-
 .../apache/camel/model/ToDynamicDefinition.java    | 34 +++++++++++++++++++---
 3 files changed, 32 insertions(+), 6 deletions(-)

diff --git 
a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/toD.json
 
b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/toD.json
index 2406cb4..94d8359 100644
--- 
a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/toD.json
+++ 
b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/toD.json
@@ -13,7 +13,7 @@
   "properties": {
     "uri": { "kind": "attribute", "displayName": "Uri", "required": true, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"secret": false, "description": "The uri of the endpoint to send to. The uri 
can be dynamic computed using the 
org.apache.camel.language.simple.SimpleLanguage expression." },
     "pattern": { "kind": "attribute", "displayName": "Pattern", "required": 
false, "type": "enum", "javaType": "org.apache.camel.ExchangePattern", "enum": 
[ "InOnly", "InOptionalOut", "InOut" ], "deprecated": false, "secret": false, 
"description": "Sets the optional ExchangePattern used to invoke this endpoint" 
},
-    "cacheSize": { "kind": "attribute", "displayName": "Cache Size", 
"required": false, "type": "integer", "javaType": "java.lang.Integer", 
"deprecated": false, "secret": false, "description": "Sets the maximum size 
used by the org.apache.camel.spi.ConsumerCache which is used to cache and reuse 
producers." },
+    "cacheSize": { "kind": "attribute", "displayName": "Cache Size", 
"required": false, "type": "integer", "javaType": "java.lang.Integer", 
"deprecated": false, "secret": false, "description": "Sets the maximum size 
used by the org.apache.camel.spi.ProducerCache which is used to cache and reuse 
producers when using this recipient list, when uris are reused. Beware that 
when using dynamic endpoints then it affects how well the cache can be 
utilized. If each dynamic endpoint is unique then [...]
     "ignoreInvalidEndpoint": { "kind": "attribute", "displayName": "Ignore 
Invalid Endpoint", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": 
false, "description": "Ignore the invalidate endpoint exception when try to 
create a producer with that endpoint" },
     "allowOptimisedComponents": { "kind": "attribute", "displayName": "Allow 
Optimised Components", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": 
true, "description": "Whether to allow components to optimise toD if they are 
org.apache.camel.spi.SendDynamicAware ." },
     "id": { "kind": "attribute", "displayName": "Id", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"secret": false, "description": "Sets the id of this node" },
diff --git 
a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/wireTap.json
 
b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/wireTap.json
index 31f676e..7238398 100644
--- 
a/core/camel-core-engine/src/generated/resources/org/apache/camel/model/wireTap.json
+++ 
b/core/camel-core-engine/src/generated/resources/org/apache/camel/model/wireTap.json
@@ -19,7 +19,7 @@
     "onPrepareRef": { "kind": "attribute", "displayName": "On Prepare Ref", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "secret": false, "description": "Uses the Processor when 
preparing the org.apache.camel.Exchange to be send. This can be used to 
deep-clone messages that should be send, or any custom logic needed before the 
exchange is send." },
     "uri": { "kind": "attribute", "displayName": "Uri", "required": true, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"secret": false, "description": "The uri of the endpoint to send to. The uri 
can be dynamic computed using the 
org.apache.camel.language.simple.SimpleLanguage expression." },
     "pattern": { "kind": "attribute", "displayName": "Pattern", "required": 
false, "type": "enum", "javaType": "org.apache.camel.ExchangePattern", "enum": 
[ "InOnly", "InOptionalOut", "InOut" ], "deprecated": false, "secret": false, 
"description": "Sets the optional ExchangePattern used to invoke this endpoint" 
},
-    "cacheSize": { "kind": "attribute", "displayName": "Cache Size", 
"required": false, "type": "integer", "javaType": "java.lang.Integer", 
"deprecated": false, "secret": false, "description": "Sets the maximum size 
used by the org.apache.camel.spi.ConsumerCache which is used to cache and reuse 
producers." },
+    "cacheSize": { "kind": "attribute", "displayName": "Cache Size", 
"required": false, "type": "integer", "javaType": "java.lang.Integer", 
"deprecated": false, "secret": false, "description": "Sets the maximum size 
used by the org.apache.camel.spi.ProducerCache which is used to cache and reuse 
producers when using this recipient list, when uris are reused. Beware that 
when using dynamic endpoints then it affects how well the cache can be 
utilized. If each dynamic endpoint is unique then [...]
     "ignoreInvalidEndpoint": { "kind": "attribute", "displayName": "Ignore 
Invalid Endpoint", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": 
false, "description": "Ignore the invalidate endpoint exception when try to 
create a producer with that endpoint" },
     "allowOptimisedComponents": { "kind": "attribute", "displayName": "Allow 
Optimised Components", "required": false, "type": "boolean", "javaType": 
"java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": 
true, "description": "Whether to allow components to optimise toD if they are 
org.apache.camel.spi.SendDynamicAware ." },
     "id": { "kind": "attribute", "displayName": "Id", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"secret": false, "description": "Sets the id of this node" },
diff --git 
a/core/camel-core-engine/src/main/java/org/apache/camel/model/ToDynamicDefinition.java
 
b/core/camel-core-engine/src/main/java/org/apache/camel/model/ToDynamicDefinition.java
index 240d540..4afe095 100644
--- 
a/core/camel-core-engine/src/main/java/org/apache/camel/model/ToDynamicDefinition.java
+++ 
b/core/camel-core-engine/src/main/java/org/apache/camel/model/ToDynamicDefinition.java
@@ -103,8 +103,21 @@ public class ToDynamicDefinition extends 
NoOutputDefinition<ToDynamicDefinition>
 
     /**
      * Sets the maximum size used by the
-     * {@link org.apache.camel.spi.ConsumerCache} which is used to cache and
-     * reuse producers.
+     * {@link org.apache.camel.spi.ProducerCache} which is used to cache and
+     * reuse producers when using this recipient list, when uris are reused.
+     *
+     * Beware that when using dynamic endpoints then it affects how well the 
cache can be utilized.
+     * If each dynamic endpoint is unique then its best to turn of caching by 
setting this to -1, which
+     * allows Camel to not cache both the producers and endpoints; they are 
regarded as prototype scoped
+     * and will be stopped and discarded after use. This reduces memory usage 
as otherwise producers/endpoints
+     * are stored in memory in the caches.
+     *
+     * However if there are a high degree of dynamic endpoints that have been 
used before, then it can
+     * benefit to use the cache to reuse both producers and endpoints and 
therefore the cache size
+     * can be set accordingly or rely on the default size (1000).
+     *
+     * If there is a mix of unique and used before dynamic endpoints, then 
setting a reasonable cache size
+     * can help reduce memory usage to avoid storing too many non frequent 
used producers.
      *
      * @param cacheSize the cache size, use <tt>0</tt> for default cache size,
      *            or <tt>-1</tt> to turn cache off.
@@ -116,8 +129,21 @@ public class ToDynamicDefinition extends 
NoOutputDefinition<ToDynamicDefinition>
 
     /**
      * Sets the maximum size used by the
-     * {@link org.apache.camel.spi.ConsumerCache} which is used to cache and
-     * reuse producers.
+     * {@link org.apache.camel.spi.ProducerCache} which is used to cache and
+     * reuse producers when using this recipient list, when uris are reused.
+     *
+     * Beware that when using dynamic endpoints then it affects how well the 
cache can be utilized.
+     * If each dynamic endpoint is unique then its best to turn of caching by 
setting this to -1, which
+     * allows Camel to not cache both the producers and endpoints; they are 
regarded as prototype scoped
+     * and will be stopped and discarded after use. This reduces memory usage 
as otherwise producers/endpoints
+     * are stored in memory in the caches.
+     *
+     * However if there are a high degree of dynamic endpoints that have been 
used before, then it can
+     * benefit to use the cache to reuse both producers and endpoints and 
therefore the cache size
+     * can be set accordingly or rely on the default size (1000).
+     *
+     * If there is a mix of unique and used before dynamic endpoints, then 
setting a reasonable cache size
+     * can help reduce memory usage to avoid storing too many non frequent 
used producers.
      *
      * @param cacheSize the cache size, use <tt>0</tt> for default cache size,
      *            or <tt>-1</tt> to turn cache off.

Reply via email to