Repository: camel
Updated Branches:
  refs/heads/master 5371913c4 -> 7ef99c17d


CAMEL-10645: Camel-MongoDB3: 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/8eeac79f
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/8eeac79f
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/8eeac79f

Branch: refs/heads/master
Commit: 8eeac79fa0c1e31b1b8d905651f3349b3b528c06
Parents: 5371913
Author: Andrea Cosentino <anco...@gmail.com>
Authored: Fri Dec 23 08:48:32 2016 +0100
Committer: Andrea Cosentino <anco...@gmail.com>
Committed: Fri Dec 23 08:48:32 2016 +0100

----------------------------------------------------------------------
 .../camel/component/mongodb3/MongoDbComponent.java | 15 ---------------
 .../camel/component/mongodb3/MongoDbEndpoint.java  | 17 +++++++++++++++++
 2 files changed, 17 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/8eeac79f/components/camel-mongodb3/src/main/java/org/apache/camel/component/mongodb3/MongoDbComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-mongodb3/src/main/java/org/apache/camel/component/mongodb3/MongoDbComponent.java
 
b/components/camel-mongodb3/src/main/java/org/apache/camel/component/mongodb3/MongoDbComponent.java
index c54ba71..807a80c 100644
--- 
a/components/camel-mongodb3/src/main/java/org/apache/camel/component/mongodb3/MongoDbComponent.java
+++ 
b/components/camel-mongodb3/src/main/java/org/apache/camel/component/mongodb3/MongoDbComponent.java
@@ -37,25 +37,15 @@ public class MongoDbComponent extends UriEndpointComponent {
     public static final Set<MongoDbOperation> WRITE_OPERATIONS = new 
HashSet<>(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;
@@ -63,11 +53,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/8eeac79f/components/camel-mongodb3/src/main/java/org/apache/camel/component/mongodb3/MongoDbEndpoint.java
----------------------------------------------------------------------
diff --git 
a/components/camel-mongodb3/src/main/java/org/apache/camel/component/mongodb3/MongoDbEndpoint.java
 
b/components/camel-mongodb3/src/main/java/org/apache/camel/component/mongodb3/MongoDbEndpoint.java
index 8105cf0..51d0cbc 100644
--- 
a/components/camel-mongodb3/src/main/java/org/apache/camel/component/mongodb3/MongoDbEndpoint.java
+++ 
b/components/camel-mongodb3/src/main/java/org/apache/camel/component/mongodb3/MongoDbEndpoint.java
@@ -41,6 +41,7 @@ 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.bson.Document;
 import org.bson.conversions.Bson;
@@ -293,6 +294,22 @@ public class MongoDbEndpoint extends DefaultEndpoint {
         message.setBody(dbObj);
         return exchange;
     }
+    
+    @Override
+    protected void doStart() throws Exception {
+        mongoConnection = 
CamelContextHelper.mandatoryLookup(getCamelContext(), connectionBean, 
MongoClient.class);
+        LOG.debug("Resolved the connection with the name {} as {}", 
connectionBean, mongoConnection);
+        super.doStart();
+    }
+    
+    @Override
+    protected void doStop() throws Exception {
+        super.doStop();
+        if (mongoConnection != null) {
+            LOG.debug("Closing connection");
+            mongoConnection.close();
+        }
+    }
 
     // ======= Getters and setters
     // ===============================================

Reply via email to