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 2013/08/22 05:42:55 UTC

[4/5] git commit: CAMEL-6545 Fixed the VM component tests errors

CAMEL-6545 Fixed the VM component tests errors


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

Branch: refs/heads/master
Commit: ba9e189d7c027131cef2f143da1422a32464ebd6
Parents: 11e954f
Author: Willem Jiang <ni...@apache.org>
Authored: Thu Aug 22 09:58:33 2013 +0800
Committer: Willem Jiang <ni...@apache.org>
Committed: Thu Aug 22 09:58:33 2013 +0800

----------------------------------------------------------------------
 .../java/org/apache/camel/component/seda/QueueReference.java | 4 ++++
 .../java/org/apache/camel/component/seda/SedaComponent.java  | 8 +++++---
 .../main/java/org/apache/camel/component/vm/VmComponent.java | 5 +++++
 3 files changed, 14 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/ba9e189d/camel-core/src/main/java/org/apache/camel/component/seda/QueueReference.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/seda/QueueReference.java b/camel-core/src/main/java/org/apache/camel/component/seda/QueueReference.java
index 5b7fd50..17a03cd 100644
--- a/camel-core/src/main/java/org/apache/camel/component/seda/QueueReference.java
+++ b/camel-core/src/main/java/org/apache/camel/component/seda/QueueReference.java
@@ -45,6 +45,10 @@ public final class QueueReference {
     synchronized void addReference(SedaEndpoint endpoint) {
         if (!endpoints.contains(endpoint)) {
             endpoints.add(endpoint);
+            // update the multipleConsumers setting if need
+            if (endpoint.isMultipleConsumers()) {
+                multipleConsumers = true;
+            }
         }
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/ba9e189d/camel-core/src/main/java/org/apache/camel/component/seda/SedaComponent.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/seda/SedaComponent.java b/camel-core/src/main/java/org/apache/camel/component/seda/SedaComponent.java
index 64415b3..94623f8 100644
--- a/camel-core/src/main/java/org/apache/camel/component/seda/SedaComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/seda/SedaComponent.java
@@ -82,7 +82,7 @@ public class SedaComponent extends UriEndpointComponent {
         return getOrCreateQueue(endpoint, size, multipleConsumers, null);
     }
 
-    public synchronized QueueReference getOrCreateQueue(SedaEndpoint endpoint, Integer size, Boolean multipleConsumers, BlockingQueueFactory customQueueFactory) {
+    public synchronized QueueReference getOrCreateQueue(SedaEndpoint endpoint, Integer size, Boolean multipleConsumers, BlockingQueueFactory<Exchange> customQueueFactory) {
         String key = getQueueKey(endpoint.getEndpointUri());
 
         QueueReference ref = getQueues().get(key);
@@ -126,7 +126,7 @@ public class SedaComponent extends UriEndpointComponent {
         return ref;
     }
 
-    public synchronized QueueReference registerQueue(SedaEndpoint endpoint, BlockingQueue queue) {
+    public synchronized QueueReference registerQueue(SedaEndpoint endpoint, BlockingQueue<Exchange> queue) {
         String key = getQueueKey(endpoint.getEndpointUri());
 
         QueueReference ref = getQueues().get(key);
@@ -198,12 +198,14 @@ public class SedaComponent extends UriEndpointComponent {
         // we need to remove the endpoint from the reference counter
         String key = getQueueKey(endpoint.getEndpointUri());
         QueueReference ref = getQueues().get(key);
-        if (ref != null) {
+        if (ref != null && endpoint.getConsumers().size() == 0) {
+            // only remove the endpoint when the consumers are removed
             ref.removeReference(endpoint);
             if (ref.getCount() <= 0) {
                 // reference no longer needed so remove from queues
                 getQueues().remove(key);
             }
+
         }
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/ba9e189d/camel-core/src/main/java/org/apache/camel/component/vm/VmComponent.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/vm/VmComponent.java b/camel-core/src/main/java/org/apache/camel/component/vm/VmComponent.java
index 392d3c1..65c0836 100644
--- a/camel-core/src/main/java/org/apache/camel/component/vm/VmComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/vm/VmComponent.java
@@ -40,6 +40,11 @@ public class VmComponent extends SedaComponent {
     public Map<String, QueueReference> getQueues() {
         return QUEUES;
     }
+    
+    @Override
+    public QueueReference getQueueReference(String key) {
+        return QUEUES.get(key);
+    }
 
     @Override
     protected void doStart() throws Exception {