You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2020/03/18 07:20:03 UTC
[camel] branch master updated: CAMEL-14726: Upgrade MongoDB client
to 4.0.0
This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new 3e4520f CAMEL-14726: Upgrade MongoDB client to 4.0.0
3e4520f is described below
commit 3e4520f46a666f5ec844bd3c204685a986206aa3
Author: James Netherton <ja...@gmail.com>
AuthorDate: Tue Mar 17 16:02:05 2020 +0000
CAMEL-14726: Upgrade MongoDB client to 4.0.0
---
components/camel-mongodb-gridfs/pom.xml | 2 +-
components/camel-mongodb/pom.xml | 2 +-
.../camel/component/mongodb/MongoDbEndpoint.java | 5 ++--
.../camel/component/mongodb/MongoDbProducer.java | 2 +-
.../mongodb/meta/MongoDBMetaExtension.java | 6 ++---
.../verifier/MongoComponentVerifierExtension.java | 27 +++++++++++++---------
.../camel/component/mongodb/MongoDbIndexTest.java | 3 +--
parent/pom.xml | 3 ++-
.../karaf/features/src/main/resources/features.xml | 6 +++--
9 files changed, 31 insertions(+), 25 deletions(-)
diff --git a/components/camel-mongodb-gridfs/pom.xml b/components/camel-mongodb-gridfs/pom.xml
index 98c7f8b..5b4cc12 100644
--- a/components/camel-mongodb-gridfs/pom.xml
+++ b/components/camel-mongodb-gridfs/pom.xml
@@ -48,7 +48,7 @@
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
- <version>${mongo-java-driver-version}</version>
+ <version>${mongo3-java-driver-version}</version>
</dependency>
<!-- test -->
diff --git a/components/camel-mongodb/pom.xml b/components/camel-mongodb/pom.xml
index a04e9d3..caafd29 100644
--- a/components/camel-mongodb/pom.xml
+++ b/components/camel-mongodb/pom.xml
@@ -50,7 +50,7 @@
<!-- MongoDB driver dependency -->
<dependency>
<groupId>org.mongodb</groupId>
- <artifactId>mongo-java-driver</artifactId>
+ <artifactId>mongodb-driver-sync</artifactId>
<version>${mongo-java-driver-version}</version>
</dependency>
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 87c66bd..a87e7aa 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
@@ -26,7 +26,6 @@ import java.util.stream.StreamSupport;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mongodb.ReadPreference;
import com.mongodb.WriteConcern;
-import com.mongodb.WriteResult;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
@@ -330,7 +329,7 @@ public class MongoDbEndpoint extends DefaultEndpoint {
}
/**
- * Name of {@link com.mongodb.Mongo} to use.
+ * Name of {@link com.mongodb.client.MongoClient} to use.
*/
public void setConnectionBean(String connectionBean) {
this.connectionBean = connectionBean;
@@ -601,7 +600,7 @@ public class MongoDbEndpoint extends DefaultEndpoint {
/**
* In write operations, it determines whether instead of returning
- * {@link WriteResult} as the body of the OUT message, we transfer the IN
+ * WriteResult as the body of the OUT message, we transfer the IN
* message to the OUT and attach the WriteResult as a header.
*
* @param writeResultAsHeader flag to indicate if this option is enabled
diff --git a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbProducer.java b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbProducer.java
index e7b3eaa..246a246 100644
--- a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbProducer.java
+++ b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbProducer.java
@@ -323,7 +323,7 @@ public class MongoDbProducer extends DefaultProducer {
if (query == null) {
query = new Document();
}
- return calculateCollection(exchange).count(query);
+ return calculateCollection(exchange).countDocuments(query);
};
}
diff --git a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/meta/MongoDBMetaExtension.java b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/meta/MongoDBMetaExtension.java
index 3ebd593..be218c0 100644
--- a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/meta/MongoDBMetaExtension.java
+++ b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/meta/MongoDBMetaExtension.java
@@ -23,7 +23,7 @@ import java.util.Optional;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.mongodb.MongoClientURI;
+import com.mongodb.ConnectionString;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.model.Filters;
@@ -57,10 +57,10 @@ public class MongoDBMetaExtension extends AbstractMetaDataExtension {
LOGGER.debug("Fetching mongodb meta information with params: {}", textParameters);
ConnectionParamsConfiguration mongoConf = new ConnectionParamsConfiguration(textParameters);
- MongoClientURI connectionURI = new MongoClientURI(mongoConf.getMongoClientURI());
+ ConnectionString connectionString = new ConnectionString(mongoConf.getMongoClientURI());
JsonNode collectionInfoRoot;
- try (MongoClient mongoConnection = MongoClients.create(connectionURI.getURI())) {
+ try (MongoClient mongoConnection = MongoClients.create(connectionString)) {
Document collectionInfo = mongoConnection.getDatabase(textParameters.get("database"))
.listCollections()
.filter(Filters.eq("name", textParameters.get("collection")))
diff --git a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/verifier/MongoComponentVerifierExtension.java b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/verifier/MongoComponentVerifierExtension.java
index 72a41a2..32e836e 100644
--- a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/verifier/MongoComponentVerifierExtension.java
+++ b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/verifier/MongoComponentVerifierExtension.java
@@ -17,13 +17,15 @@
package org.apache.camel.component.mongodb.verifier;
import java.util.Map;
+import java.util.concurrent.TimeUnit;
-import com.mongodb.MongoClientOptions;
-import com.mongodb.MongoClientURI;
+import com.mongodb.ConnectionString;
+import com.mongodb.MongoClientSettings;
import com.mongodb.MongoSecurityException;
import com.mongodb.MongoTimeoutException;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
+import com.mongodb.client.MongoDatabase;
import org.apache.camel.component.extension.verifier.DefaultComponentVerifierExtension;
import org.apache.camel.component.extension.verifier.ResultBuilder;
import org.apache.camel.component.extension.verifier.ResultErrorBuilder;
@@ -62,17 +64,20 @@ public class MongoComponentVerifierExtension extends DefaultComponentVerifierExt
private void verifyCredentials(ResultBuilder builder, Map<String, Object> parameters) {
ConnectionParamsConfiguration mongoConf = new ConnectionParamsConfiguration(cast(parameters));
- MongoClientOptions.Builder optionsBuilder = MongoClientOptions.builder();
- // Avoid retry and long timeout
- optionsBuilder.connectTimeout(CONNECTION_TIMEOUT);
- optionsBuilder.serverSelectionTimeout(CONNECTION_TIMEOUT);
- optionsBuilder.maxWaitTime(CONNECTION_TIMEOUT);
- MongoClientURI connectionURI = new MongoClientURI(mongoConf.getMongoClientURI(), optionsBuilder);
- LOG.info("Testing connection against {}", connectionURI);
- try (MongoClient mongoClient = MongoClients.create(connectionURI.getURI())) {
+ MongoClientSettings.Builder optionsBuilder = MongoClientSettings.builder();
+ optionsBuilder.applyToSocketSettings(socketBuilder -> socketBuilder.connectTimeout(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS));
+ optionsBuilder.applyToConnectionPoolSettings(connectionPoolBuilder -> connectionPoolBuilder.maxWaitTime(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS));
+ optionsBuilder.applyToClusterSettings(clusterBuilder -> clusterBuilder.serverSelectionTimeout(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS));
+
+ ConnectionString connectionString = new ConnectionString(mongoConf.getMongoClientURI());
+ optionsBuilder.applyConnectionString(connectionString);
+
+ LOG.info("Testing connection against {}", connectionString);
+ try (MongoClient mongoClient = MongoClients.create(connectionString)) {
// Just ping the server
- mongoClient.getDatabase(connectionURI.getDatabase()).runCommand(Document.parse("{ ping: 1 }"));
+ MongoDatabase database = mongoClient.getDatabase(mongoConf.getAdminDB());
+ database.runCommand(Document.parse("{ ping: 1 }"));
LOG.info("Testing connection successful!");
} catch (MongoSecurityException e) {
ResultErrorBuilder errorBuilder = ResultErrorBuilder.withCodeAndDescription(
diff --git a/components/camel-mongodb/src/test/java/org/apache/camel/component/mongodb/MongoDbIndexTest.java b/components/camel-mongodb/src/test/java/org/apache/camel/component/mongodb/MongoDbIndexTest.java
index 7ecbce2..36fef57 100644
--- a/components/camel-mongodb/src/test/java/org/apache/camel/component/mongodb/MongoDbIndexTest.java
+++ b/components/camel-mongodb/src/test/java/org/apache/camel/component/mongodb/MongoDbIndexTest.java
@@ -23,7 +23,6 @@ import java.util.List;
import java.util.Map;
import java.util.stream.StreamSupport;
-import com.mongodb.WriteResult;
import com.mongodb.client.ListIndexesIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
@@ -174,7 +173,7 @@ public class MongoDbIndexTest extends AbstractMongoDbTest {
Map<String, Object> headers = new HashMap<>();
Object result = template.requestBodyAndHeaders("direct:dynamicityDisabled", body, headers);
- assertEquals(WriteResult.class, result.getClass(), "Response isn't of type WriteResult");
+ assertEquals(Document.class, result.getClass(), "Response isn't of type WriteResult");
MongoCollection<Document> collection = db.getCollection("otherCollection", Document.class);
MongoCursor<Document> indexInfos = collection.listIndexes().iterator();
diff --git a/parent/pom.xml b/parent/pom.xml
index b8d3ae6..12fe191 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -483,7 +483,8 @@
<mock-javamail-version>1.9</mock-javamail-version>
<mockwebserver-version>0.1.7</mockwebserver-version>
<mockito-version>3.3.3</mockito-version>
- <mongo-java-driver-version>3.12.2</mongo-java-driver-version>
+ <mongo3-java-driver-version>3.12.2</mongo3-java-driver-version>
+ <mongo-java-driver-version>4.0.0</mongo-java-driver-version>
<mongo-hadoop-version>1.5.0</mongo-hadoop-version>
<msv-version>2013.6.1</msv-version>
<mustache-java-version>0.9.6</mustache-java-version>
diff --git a/platforms/karaf/features/src/main/resources/features.xml b/platforms/karaf/features/src/main/resources/features.xml
index ade13c6..9e2b9f6 100644
--- a/platforms/karaf/features/src/main/resources/features.xml
+++ b/platforms/karaf/features/src/main/resources/features.xml
@@ -1775,13 +1775,15 @@
<feature name='camel-mongodb' version='${project.version}' start-level='50'>
<feature version='${project.version}'>camel-core</feature>
<feature version='${project.version}'>camel-jackson</feature>
- <bundle dependency='true'>mvn:org.mongodb/mongo-java-driver/${mongo-java-driver-version}</bundle>
+ <bundle dependency='true'>mvn:org.mongodb/bson/${mongo-java-driver-version}</bundle>
+ <bundle dependency='true'>mvn:org.mongodb/mongodb-driver-core/${mongo-java-driver-version}</bundle>
+ <bundle dependency='true'>mvn:org.mongodb/mongodb-driver-sync/${mongo-java-driver-version}</bundle>
<bundle>mvn:org.apache.camel/camel-mongodb/${project.version}</bundle>
</feature>
<feature name='camel-mongodb-gridfs' version='${project.version}' start-level='50'>
<feature version='${project.version}'>camel-core</feature>
<feature version='${project.version}'>camel-jackson</feature>
- <bundle dependency='true'>mvn:org.mongodb/mongo-java-driver/${mongo-java-driver-version}</bundle>
+ <bundle dependency='true'>mvn:org.mongodb/mongo-java-driver/${mongo3-java-driver-version}</bundle>
<bundle>mvn:org.apache.camel/camel-mongodb-gridfs/${project.version}</bundle>
</feature>
<feature name='camel-msv' version='${project.version}' start-level='50'>