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();