You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2015/05/13 09:22:21 UTC

[1/6] camel git commit: CAMEL-8770 Fixed the depends-on issue of Camel Blueprint

Repository: camel
Updated Branches:
  refs/heads/camel-2.14.x 1e9f2f850 -> 483e25cd9
  refs/heads/camel-2.15.x 21107ffe4 -> d21a7d859


CAMEL-8770 Fixed the depends-on issue of Camel Blueprint


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/88779c42
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/88779c42
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/88779c42

Branch: refs/heads/camel-2.14.x
Commit: 88779c4244bbadb7fe6add001f2d7e66c45c01fb
Parents: 1e9f2f8
Author: Willem Jiang <wi...@gmail.com>
Authored: Wed May 13 14:37:38 2015 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Wed May 13 15:08:46 2015 +0800

----------------------------------------------------------------------
 .../apache/camel/blueprint/handler/CamelNamespaceHandler.java    | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/88779c42/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
----------------------------------------------------------------------
diff --git a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
index c39293d..765382c 100644
--- a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
+++ b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
@@ -232,6 +232,10 @@ public class CamelNamespaceHandler implements NamespaceHandler {
         factory2.addProperty("blueprintContainer", createRef(context, "blueprintContainer"));
         factory2.addProperty("bundleContext", createRef(context, "blueprintBundleContext"));
         factory2.addDependsOn(propertiesComponentResolver.getId());
+        // We need to add other components which the camel context dependsOn
+        if (ObjectHelper.isNotEmpty(ccfb.getDependsOn())) {
+            factory2.addDependsOn(ccfb.getDependsOn());
+        }
         context.getComponentDefinitionRegistry().registerComponentDefinition(factory2);
 
         MutableBeanMetadata ctx = context.createMetadata(MutableBeanMetadata.class);


[6/6] camel git commit: Clean up the code of netty component

Posted by ni...@apache.org.
Clean up the code of netty component


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/d21a7d85
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/d21a7d85
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/d21a7d85

Branch: refs/heads/camel-2.15.x
Commit: d21a7d8599d7574b983b15abebea3790d077f435
Parents: f21c65d
Author: Willem Jiang <wi...@gmail.com>
Authored: Wed May 13 14:54:58 2015 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Wed May 13 15:16:18 2015 +0800

----------------------------------------------------------------------
 .../main/java/org/apache/camel/component/netty/NettyComponent.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/d21a7d85/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
index e1be1c2..3613fa6 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
@@ -36,7 +36,7 @@ public class NettyComponent extends UriEndpointComponent {
     private Timer timer;
     private NettyConfiguration configuration;
     private int maximumPoolSize = 16;
-    private OrderedMemoryAwareThreadPoolExecutor executorService;
+    private volatile OrderedMemoryAwareThreadPoolExecutor executorService;
 
     public NettyComponent() {
         super(NettyEndpoint.class);


[2/6] camel git commit: CAMEL-8771 Add MaxChannelMemorySize and MaxTotalMemorySize for OrderedMemoryAwareThreadPoolExecutor

Posted by ni...@apache.org.
CAMEL-8771 Add MaxChannelMemorySize and MaxTotalMemorySize for OrderedMemoryAwareThreadPoolExecutor

Conflicts:
	components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/71f22b4c
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/71f22b4c
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/71f22b4c

Branch: refs/heads/camel-2.14.x
Commit: 71f22b4c23308cb54a928d35c9ac5e60ae1b6e32
Parents: 88779c4
Author: Willem Jiang <wi...@gmail.com>
Authored: Wed May 13 14:52:21 2015 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Wed May 13 15:10:25 2015 +0800

----------------------------------------------------------------------
 .../camel/component/netty/NettyComponent.java   |  7 ++++++-
 .../component/netty/NettyConfiguration.java     | 22 +++++++++++++++++++-
 2 files changed, 27 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/71f22b4c/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
index 210ed66..ee9e4f8 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
@@ -138,10 +138,15 @@ public class NettyComponent extends UriEndpointComponent {
         // replies in the expected order. eg this is required by TCP.
         // and use a Camel thread factory so we have consistent thread namings
         // we should use a shared thread pool as recommended by Netty
+        
+        // NOTE: if we don't specify the MaxChannelMemorySize and MaxTotalMemorySize, the thread pool
+        // could eat up all the heap memory when the tasks are added very fast
+        
         String pattern = getCamelContext().getExecutorServiceManager().getThreadNamePattern();
         ThreadFactory factory = new CamelThreadFactory(pattern, "NettyOrderedWorker", true);
         return new OrderedMemoryAwareThreadPoolExecutor(getMaximumPoolSize(),
-                0L, 0L, 30, TimeUnit.SECONDS, factory);
+                configuration.getMaxChannelMemorySize(), configuration.getMaxTotalMemorySize(),
+                30, TimeUnit.SECONDS, factory);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/camel/blob/71f22b4c/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
index 97023a2..dcb1dce 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
@@ -90,6 +90,10 @@ public class NettyConfiguration extends NettyServerBootstrapConfiguration implem
     private long producerPoolMinEvictableIdle = 5 * 60 * 1000L;
     @UriParam
     private boolean producerPoolEnabled = true;
+    @UriParam
+    private long maxChannelMemorySize = 10 * 1024 * 1024L;
+    @UriParam
+    private long maxTotalMemorySize = 200 * 1024 * 1024L;
 
     /**
      * Returns a copy of this configuration
@@ -197,7 +201,7 @@ public class NettyConfiguration extends NettyServerBootstrapConfiguration implem
                     decoders.add(ChannelHandlerFactories.newStringDecoder(charset));
 
                     if (LOG.isDebugEnabled()) {
-                        LOG.debug("Using textline encoders and decoders with charset: {}, delimiter: {} and decoderMaxLineLength: {}", 
+                        LOG.debug("Using textline encoders and decoders with charset: {}, delimiter: {} and decoderMaxLineLength: {}",
                                 new Object[]{charset, delimiter, decoderMaxLineLength});
                     }
                 } else {
@@ -446,6 +450,22 @@ public class NettyConfiguration extends NettyServerBootstrapConfiguration implem
         this.producerPoolEnabled = producerPoolEnabled;
     }
 
+    public long getMaxChannelMemorySize() {
+        return maxChannelMemorySize;
+    }
+
+    public void setMaxChannelMemorySize(long maxChannelMemorySize) {
+        this.maxChannelMemorySize = maxChannelMemorySize;
+    }
+
+    public long getMaxTotalMemorySize() {
+        return maxTotalMemorySize;
+    }
+
+    public void setMaxTotalMemorySize(long maxTotalMemorySize) {
+        this.maxTotalMemorySize = maxTotalMemorySize;
+    }
+
     private static <T> void addToHandlersList(List<T> configured, List<T> handlers, Class<T> handlerType) {
         if (handlers != null) {
             for (T handler : handlers) {


[4/6] camel git commit: CAMEL-8770 Fixed the depends-on issue of Camel Blueprint

Posted by ni...@apache.org.
CAMEL-8770 Fixed the depends-on issue of Camel Blueprint


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/bd701e04
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/bd701e04
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/bd701e04

Branch: refs/heads/camel-2.15.x
Commit: bd701e048650ffdf155b12d3febc4441119b6866
Parents: 21107ff
Author: Willem Jiang <wi...@gmail.com>
Authored: Wed May 13 14:37:38 2015 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Wed May 13 15:13:48 2015 +0800

----------------------------------------------------------------------
 .../apache/camel/blueprint/handler/CamelNamespaceHandler.java    | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/bd701e04/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
----------------------------------------------------------------------
diff --git a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
index cd44d85..474d130 100644
--- a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
+++ b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
@@ -259,6 +259,10 @@ public class CamelNamespaceHandler implements NamespaceHandler {
         factory2.addProperty("blueprintContainer", createRef(context, "blueprintContainer"));
         factory2.addProperty("bundleContext", createRef(context, "blueprintBundleContext"));
         factory2.addDependsOn(propertiesComponentResolver.getId());
+        // We need to add other components which the camel context dependsOn
+        if (ObjectHelper.isNotEmpty(ccfb.getDependsOn())) {
+            factory2.addDependsOn(ccfb.getDependsOn());
+        }
         context.getComponentDefinitionRegistry().registerComponentDefinition(factory2);
 
         MutableBeanMetadata ctx = context.createMetadata(MutableBeanMetadata.class);


[5/6] camel git commit: CAMEL-8771 Add MaxChannelMemorySize and MaxTotalMemorySize for OrderedMemoryAwareThreadPoolExecutor

Posted by ni...@apache.org.
CAMEL-8771 Add MaxChannelMemorySize and MaxTotalMemorySize for OrderedMemoryAwareThreadPoolExecutor

Conflicts:
	components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/f21c65dd
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/f21c65dd
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/f21c65dd

Branch: refs/heads/camel-2.15.x
Commit: f21c65dd1c28e65fe9724282db94b759b3501037
Parents: bd701e0
Author: Willem Jiang <wi...@gmail.com>
Authored: Wed May 13 14:52:21 2015 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Wed May 13 15:15:54 2015 +0800

----------------------------------------------------------------------
 .../camel/component/netty/NettyComponent.java   |  7 +++++-
 .../component/netty/NettyConfiguration.java     | 26 +++++++++++++++++---
 2 files changed, 29 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/f21c65dd/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
index ac622d0..e1be1c2 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
@@ -138,10 +138,15 @@ public class NettyComponent extends UriEndpointComponent {
         // replies in the expected order. eg this is required by TCP.
         // and use a Camel thread factory so we have consistent thread namings
         // we should use a shared thread pool as recommended by Netty
+        
+        // NOTE: if we don't specify the MaxChannelMemorySize and MaxTotalMemorySize, the thread pool
+        // could eat up all the heap memory when the tasks are added very fast
+        
         String pattern = getCamelContext().getExecutorServiceManager().getThreadNamePattern();
         ThreadFactory factory = new CamelThreadFactory(pattern, "NettyOrderedWorker", true);
         return new OrderedMemoryAwareThreadPoolExecutor(getMaximumPoolSize(),
-                0L, 0L, 30, TimeUnit.SECONDS, factory);
+                configuration.getMaxChannelMemorySize(), configuration.getMaxTotalMemorySize(),
+                30, TimeUnit.SECONDS, factory);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/camel/blob/f21c65dd/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
index 92de7fe..e0129fd 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
@@ -94,6 +94,10 @@ public class NettyConfiguration extends NettyServerBootstrapConfiguration implem
     private boolean udpConnectionlessSending;
     @UriParam
     private boolean clientMode;
+    @UriParam(defaultValue = "" + 10 * 1024 * 1024L)
+    private long maxChannelMemorySize = 10 * 1024 * 1024L;
+    @UriParam(defaultValue = "" + 200 * 1024 * 1024L)
+    private long maxTotalMemorySize = 200 * 1024 * 1024L;
 
     /**
      * Returns a copy of this configuration
@@ -201,7 +205,7 @@ public class NettyConfiguration extends NettyServerBootstrapConfiguration implem
                     decoders.add(ChannelHandlerFactories.newStringDecoder(charset));
 
                     if (LOG.isDebugEnabled()) {
-                        LOG.debug("Using textline encoders and decoders with charset: {}, delimiter: {} and decoderMaxLineLength: {}", 
+                        LOG.debug("Using textline encoders and decoders with charset: {}, delimiter: {} and decoderMaxLineLength: {}",
                                 new Object[]{charset, delimiter, decoderMaxLineLength});
                     }
                 } else {
@@ -449,7 +453,7 @@ public class NettyConfiguration extends NettyServerBootstrapConfiguration implem
     public void setProducerPoolEnabled(boolean producerPoolEnabled) {
         this.producerPoolEnabled = producerPoolEnabled;
     }
-    
+
     public boolean isUdpConnectionlessSending() {
         return udpConnectionlessSending;
     }
@@ -457,7 +461,7 @@ public class NettyConfiguration extends NettyServerBootstrapConfiguration implem
     public void setUdpConnectionlessSending(boolean udpConnectionlessSending) {
         this.udpConnectionlessSending = udpConnectionlessSending;
     }
-    
+
     public boolean isClientMode() {
         return clientMode;
     }
@@ -466,6 +470,22 @@ public class NettyConfiguration extends NettyServerBootstrapConfiguration implem
         this.clientMode = clientMode;
     }
 
+    public long getMaxChannelMemorySize() {
+        return maxChannelMemorySize;
+    }
+
+    public void setMaxChannelMemorySize(long maxChannelMemorySize) {
+        this.maxChannelMemorySize = maxChannelMemorySize;
+    }
+
+    public long getMaxTotalMemorySize() {
+        return maxTotalMemorySize;
+    }
+
+    public void setMaxTotalMemorySize(long maxTotalMemorySize) {
+        this.maxTotalMemorySize = maxTotalMemorySize;
+    }
+
     private static <T> void addToHandlersList(List<T> configured, List<T> handlers, Class<T> handlerType) {
         if (handlers != null) {
             for (T handler : handlers) {


[3/6] camel git commit: Clean up the code of netty component

Posted by ni...@apache.org.
Clean up the code of netty component


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/483e25cd
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/483e25cd
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/483e25cd

Branch: refs/heads/camel-2.14.x
Commit: 483e25cd97caf3dde098555efa5afa1bf4308dc9
Parents: 71f22b4
Author: Willem Jiang <wi...@gmail.com>
Authored: Wed May 13 14:54:58 2015 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Wed May 13 15:10:57 2015 +0800

----------------------------------------------------------------------
 .../main/java/org/apache/camel/component/netty/NettyComponent.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/483e25cd/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
index ee9e4f8..5d601f9 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
@@ -36,7 +36,7 @@ public class NettyComponent extends UriEndpointComponent {
     private Timer timer;
     private NettyConfiguration configuration;
     private int maximumPoolSize = 16;
-    private OrderedMemoryAwareThreadPoolExecutor executorService;
+    private volatile OrderedMemoryAwareThreadPoolExecutor executorService;
 
     public NettyComponent() {
         super(NettyEndpoint.class);