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 // ===============================================