You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2016/12/22 15:03:09 UTC

camel git commit: CAMEL-10644 - Camel-MongoDB: component should not store state

Repository: camel
Updated Branches:
  refs/heads/camel-2.18.x 7b8fcccfa -> 1bb5a07d9


CAMEL-10644 - Camel-MongoDB: component should not store state


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

Branch: refs/heads/camel-2.18.x
Commit: 1bb5a07d9ebe486b765362224d956fae791e5110
Parents: 7b8fccc
Author: Andrea Cosentino <an...@gmail.com>
Authored: Thu Dec 22 15:26:35 2016 +0100
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Thu Dec 22 16:02:11 2016 +0100

----------------------------------------------------------------------
 .../component/mongodb/MongoDbComponent.java     | 20 -------------------
 .../component/mongodb/MongoDbEndpoint.java      | 21 +++++++++++++-------
 2 files changed, 14 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/1bb5a07d/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbComponent.java b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbComponent.java
index 0315890..e2e8fee 100644
--- a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbComponent.java
+++ b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbComponent.java
@@ -21,12 +21,8 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
-import com.mongodb.Mongo;
-import com.mongodb.MongoClient;
-
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.UriEndpointComponent;
-import org.apache.camel.util.CamelContextHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -39,25 +35,15 @@ public class MongoDbComponent extends UriEndpointComponent {
             new HashSet<MongoDbOperation>(Arrays.asList(MongoDbOperation.insert, MongoDbOperation.save, 
                     MongoDbOperation.update, MongoDbOperation.remove));
     private static final Logger LOG = LoggerFactory.getLogger(MongoDbComponent.class);
-    private volatile MongoClient db;
 
     public MongoDbComponent() {
         super(MongoDbEndpoint.class);
     }
 
-    /**
-     * Should access a singleton of type Mongo
-     */
     protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
-        // TODO: this only supports one mongodb
-        if (db == null) {
-            db = CamelContextHelper.mandatoryLookup(getCamelContext(), remaining, MongoClient.class);
-            LOG.debug("Resolved the connection with the name {} as {}", remaining, db);
-        }
 
         MongoDbEndpoint endpoint = new MongoDbEndpoint(uri, this);
         endpoint.setConnectionBean(remaining);
-        endpoint.setMongoConnection(db);
         setProperties(endpoint, parameters);
         
         return endpoint;
@@ -65,12 +51,6 @@ public class MongoDbComponent extends UriEndpointComponent {
 
     @Override
     protected void doShutdown() throws Exception {
-        if (db != null) {
-            // properly close the underlying physical connection to MongoDB
-            LOG.debug("Closing the connection {} on {}", db, this);
-            db.close();
-        }
-
         super.doShutdown();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/1bb5a07d/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbEndpoint.java b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbEndpoint.java
index db56afe..c2f94bd 100644
--- a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbEndpoint.java
+++ b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbEndpoint.java
@@ -38,11 +38,13 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
+import org.apache.camel.component.ResourceEndpoint;
 import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
+import org.apache.camel.util.CamelContextHelper;
 import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -56,7 +58,7 @@ public class MongoDbEndpoint extends DefaultEndpoint {
     private static final Logger LOG = LoggerFactory.getLogger(MongoDbEndpoint.class);
 
     private MongoClient mongoConnection;
-
+    
     @UriPath @Metadata(required = "true")
     private String connectionBean;
     @UriParam
@@ -113,11 +115,6 @@ public class MongoDbEndpoint extends DefaultEndpoint {
         super(uri, component);
     }
 
-    @SuppressWarnings("deprecation")
-    public MongoDbEndpoint(String endpointUri) {
-        super(endpointUri);
-    }
-
     // ======= Implementation methods =====================================
 
     public Producer createProducer() throws Exception {
@@ -288,10 +285,20 @@ public class MongoDbEndpoint extends DefaultEndpoint {
                     + ", " + writeConcernRef + ". Aborting initialization.";
             throw new IllegalArgumentException(msg);
         }
-
+        mongoConnection = CamelContextHelper.mandatoryLookup(getCamelContext(), connectionBean, MongoClient.class);
+        LOG.debug("Resolved the connection with the name {} as {}", connectionBean, mongoConnection);
         setWriteReadOptionsOnConnection();
         super.doStart();
     }
+    
+    @Override
+    protected void doStop() throws Exception {
+        super.doStop();
+        if (mongoConnection != null) {
+        	LOG.debug("Closing connection");
+        	mongoConnection.close();
+        }
+    }
 
     public Exchange createMongoDbExchange(DBObject dbObj) {
         Exchange exchange = super.createExchange();