Skip to content

Commit 540b6f3

Browse files
committed
Modify tours to accept the connection string from args
JAVA-3580
1 parent 06d81b4 commit 540b6f3

12 files changed

+91
-60
lines changed

.evergreen/run-graalvm-native-image-app.sh

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ set -o errexit
44

55
# Supported/used environment variables:
66
# JAVA_VERSION The Java SE version for Gradle toolchain.
7+
# MONGODB_URI The connection string to use, including credentials and topology info.
78

89
############################################
910
# Main Program #
@@ -14,18 +15,19 @@ source "${RELATIVE_DIR_PATH}/javaConfig.bash"
1415
readonly JDK="${JAVA_HOME}"
1516
readonly JDK_GRAALVM_VAR_NAME="JDK${JAVA_VERSION}_GRAALVM"
1617
readonly JDK_GRAALVM="${!JDK_GRAALVM_VAR_NAME}"
17-
echo "The JDK distribution for running Gradle located at \"${JDK}\" is"
18+
echo "The JDK distribution for running Gradle located at \`${JDK}\` is"
1819
echo "$("${JDK}"/bin/java --version)"
1920
echo "The Java SE version for the Gradle toolchain is ${JAVA_VERSION}"
2021
echo "The GraalVM JDK distribution expected to be found at \"${JDK_GRAALVM}\" by the Gradle toolchain functionality is"
2122
echo "$("${JDK_GRAALVM}"/bin/java --version)"
2223
echo "The Gradle version is"
2324
./gradlew --version
25+
echo "MONGODB_URI=${MONGODB_URI}"
2426

2527
echo "Building GraalVM native image app"
2628
./gradlew :graalvm-native-image-app:clean
27-
env JAVA_HOME=${JDK_GRAALVM} ./gradlew -PjavaVersion=${JAVA_VERSION} -Pagent :graalvm-native-image-app:run
29+
env JAVA_HOME=${JDK_GRAALVM} ./gradlew -PjavaVersion=${JAVA_VERSION} -Pagent -Dorg.mongodb.test.uri=${MONGODB_URI} :graalvm-native-image-app:run
2830
env JAVA_HOME=${JDK_GRAALVM} ./gradlew :graalvm-native-image-app:metadataCopy
2931

3032
echo "Running GraalVM native image app"
31-
./gradlew -PjavaVersion=${JAVA_VERSION} :graalvm-native-image-app:nativeRun
33+
./gradlew -PjavaVersion=${JAVA_VERSION} -Dorg.mongodb.test.uri=${MONGODB_URI} :graalvm-native-image-app:nativeRun

driver-reactive-streams/src/examples/reactivestreams/tour/ClientSideEncryptionAutoEncryptionSettingsTour.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,14 @@ public static void main(final String[] args) {
6464
}});
6565
}};
6666

67+
MongoClientSettings commonClientSettings = (
68+
args.length == 0
69+
? MongoClientSettings.builder()
70+
: MongoClientSettings.builder().applyConnectionString(new ConnectionString(args[0])))
71+
.build();
6772
String keyVaultNamespace = "admin.datakeys";
6873
ClientEncryptionSettings clientEncryptionSettings = ClientEncryptionSettings.builder()
69-
.keyVaultMongoClientSettings(MongoClientSettings.builder()
70-
.applyConnectionString(new ConnectionString("mongodb://localhost"))
71-
.build())
74+
.keyVaultMongoClientSettings(commonClientSettings)
7275
.keyVaultNamespace(keyVaultNamespace)
7376
.kmsProviders(kmsProviders)
7477
.build();
@@ -107,7 +110,7 @@ public static void main(final String[] args) {
107110
+ "}"));
108111
}}).build();
109112

110-
MongoClientSettings clientSettings = MongoClientSettings.builder()
113+
MongoClientSettings clientSettings = MongoClientSettings.builder(commonClientSettings)
111114
.autoEncryptionSettings(autoEncryptionSettings)
112115
.build();
113116

driver-reactive-streams/src/examples/reactivestreams/tour/ClientSideEncryptionExplicitEncryptionAndDecryptionTour.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,12 @@ public static void main(final String[] args) {
6969
}};
7070

7171
MongoNamespace keyVaultNamespace = new MongoNamespace("encryption.testKeyVault");
72-
73-
MongoClientSettings clientSettings = MongoClientSettings.builder().build();
74-
MongoClient mongoClient = MongoClients.create(clientSettings);
72+
MongoClientSettings commonClientSettings = (
73+
args.length == 0
74+
? MongoClientSettings.builder()
75+
: MongoClientSettings.builder().applyConnectionString(new ConnectionString(args[0])))
76+
.build();
77+
MongoClient mongoClient = MongoClients.create(commonClientSettings);
7578

7679
// Set up the key vault for this example
7780
MongoCollection<Document> keyVaultCollection = mongoClient.getDatabase(keyVaultNamespace.getDatabaseName())
@@ -96,9 +99,7 @@ public static void main(final String[] args) {
9699

97100
// Create the ClientEncryption instance
98101
ClientEncryptionSettings clientEncryptionSettings = ClientEncryptionSettings.builder()
99-
.keyVaultMongoClientSettings(MongoClientSettings.builder()
100-
.applyConnectionString(new ConnectionString("mongodb://localhost"))
101-
.build())
102+
.keyVaultMongoClientSettings(commonClientSettings)
102103
.keyVaultNamespace(keyVaultNamespace.getFullName())
103104
.kmsProviders(kmsProviders)
104105
.build();

driver-reactive-streams/src/examples/reactivestreams/tour/ClientSideEncryptionExplicitEncryptionOnlyTour.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,12 @@ public static void main(final String[] args) {
6969
}};
7070

7171
MongoNamespace keyVaultNamespace = new MongoNamespace("encryption.testKeyVault");
72-
73-
MongoClientSettings clientSettings = MongoClientSettings.builder()
72+
MongoClientSettings commonClientSettings = (
73+
args.length == 0
74+
? MongoClientSettings.builder()
75+
: MongoClientSettings.builder().applyConnectionString(new ConnectionString(args[0])))
76+
.build();
77+
MongoClientSettings clientSettings = MongoClientSettings.builder(commonClientSettings)
7478
.autoEncryptionSettings(AutoEncryptionSettings.builder()
7579
.keyVaultNamespace(keyVaultNamespace.getFullName())
7680
.kmsProviders(kmsProviders)
@@ -102,9 +106,7 @@ public static void main(final String[] args) {
102106

103107
// Create the ClientEncryption instance
104108
ClientEncryptionSettings clientEncryptionSettings = ClientEncryptionSettings.builder()
105-
.keyVaultMongoClientSettings(MongoClientSettings.builder()
106-
.applyConnectionString(new ConnectionString("mongodb://localhost"))
107-
.build())
109+
.keyVaultMongoClientSettings(commonClientSettings)
108110
.keyVaultNamespace(keyVaultNamespace.getFullName())
109111
.kmsProviders(kmsProviders)
110112
.build();

driver-reactive-streams/src/examples/reactivestreams/tour/ClientSideEncryptionSimpleTour.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
package reactivestreams.tour;
1919

2020
import com.mongodb.AutoEncryptionSettings;
21+
import com.mongodb.ConnectionString;
2122
import com.mongodb.MongoClientSettings;
2223
import com.mongodb.client.result.InsertOneResult;
2324
import com.mongodb.reactivestreams.client.MongoClient;
@@ -64,7 +65,10 @@ public static void main(final String[] args) {
6465
.kmsProviders(kmsProviders)
6566
.build();
6667

67-
MongoClientSettings clientSettings = MongoClientSettings.builder()
68+
MongoClientSettings clientSettings = (
69+
args.length == 0
70+
? MongoClientSettings.builder()
71+
: MongoClientSettings.builder().applyConnectionString(new ConnectionString(args[0])))
6872
.autoEncryptionSettings(autoEncryptionSettings)
6973
.build();
7074

driver-sync/src/examples/documentation/CausalConsistencyExamples.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
package documentation;
1818

1919
import com.mongodb.ClientSessionOptions;
20+
import com.mongodb.ConnectionString;
21+
import com.mongodb.MongoClientSettings;
2022
import com.mongodb.ReadConcern;
2123
import com.mongodb.ReadPreference;
2224
import com.mongodb.WriteConcern;
@@ -42,8 +44,13 @@ public final class CausalConsistencyExamples {
4244
* @param args takes an optional single argument for the connection string
4345
*/
4446
public static void main(final String[] args) {
45-
setupDatabase();
46-
MongoClient client = MongoClients.create();
47+
MongoClientSettings clientSettings = (
48+
args.length == 0
49+
? MongoClientSettings.builder()
50+
: MongoClientSettings.builder().applyConnectionString(new ConnectionString(args[0])))
51+
.build();
52+
setupDatabase(clientSettings);
53+
MongoClient client = MongoClients.create(clientSettings);
4754

4855
// Start Causal Consistency Example 1
4956
// Example 1: Use a causally consistent session to ensure that the update occurs before the insert.
@@ -81,8 +88,8 @@ public static void main(final String[] args) {
8188
// End Causal Consistency Example 2
8289
}
8390

84-
private static void setupDatabase() {
85-
MongoClient client = MongoClients.create();
91+
private static void setupDatabase(final MongoClientSettings clientSettings) {
92+
MongoClient client = MongoClients.create(clientSettings);
8693
client.getDatabase("test").drop();
8794

8895
MongoDatabase database = client.getDatabase("test");

driver-sync/src/examples/tour/ClientSideEncryptionAutoEncryptionSettingsTour.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,14 @@ public static void main(final String[] args) {
5858
put("key", localMasterKey);
5959
}});
6060
}};
61-
61+
MongoClientSettings commonClientSettings = (
62+
args.length == 0
63+
? MongoClientSettings.builder()
64+
: MongoClientSettings.builder().applyConnectionString(new ConnectionString(args[0])))
65+
.build();
6266
String keyVaultNamespace = "encryption.__keyVault";
6367
ClientEncryptionSettings clientEncryptionSettings = ClientEncryptionSettings.builder()
64-
.keyVaultMongoClientSettings(MongoClientSettings.builder()
65-
.applyConnectionString(new ConnectionString("mongodb://localhost"))
66-
.build())
68+
.keyVaultMongoClientSettings(commonClientSettings)
6769
.keyVaultNamespace(keyVaultNamespace)
6870
.kmsProviders(kmsProviders)
6971
.build();
@@ -99,7 +101,7 @@ public static void main(final String[] args) {
99101
+ "}"));
100102
}}).build();
101103

102-
MongoClientSettings clientSettings = MongoClientSettings.builder()
104+
MongoClientSettings clientSettings = MongoClientSettings.builder(commonClientSettings)
103105
.autoEncryptionSettings(autoEncryptionSettings)
104106
.build();
105107

driver-sync/src/examples/tour/ClientSideEncryptionExplicitEncryptionAndDecryptionTour.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,12 @@ public static void main(final String[] args) {
6060
put("key", localMasterKey);
6161
}});
6262
}};
63-
64-
MongoClientSettings clientSettings = MongoClientSettings.builder().build();
65-
MongoClient mongoClient = MongoClients.create(clientSettings);
63+
MongoClientSettings commonClientSettings = (
64+
args.length == 0
65+
? MongoClientSettings.builder()
66+
: MongoClientSettings.builder().applyConnectionString(new ConnectionString(args[0])))
67+
.build();
68+
MongoClient mongoClient = MongoClients.create(commonClientSettings);
6669

6770
// Set up the key vault for this example
6871
MongoNamespace keyVaultNamespace = new MongoNamespace("encryption.testKeyVault");
@@ -81,9 +84,7 @@ public static void main(final String[] args) {
8184

8285
// Create the ClientEncryption instance
8386
ClientEncryptionSettings clientEncryptionSettings = ClientEncryptionSettings.builder()
84-
.keyVaultMongoClientSettings(MongoClientSettings.builder()
85-
.applyConnectionString(new ConnectionString("mongodb://localhost"))
86-
.build())
87+
.keyVaultMongoClientSettings(commonClientSettings)
8788
.keyVaultNamespace(keyVaultNamespace.getFullName())
8889
.kmsProviders(kmsProviders)
8990
.build();

driver-sync/src/examples/tour/ClientSideEncryptionExplicitEncryptionOnlyTour.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,12 @@ public static void main(final String[] args) {
6262
}};
6363

6464
MongoNamespace keyVaultNamespace = new MongoNamespace("encryption.testKeyVault");
65-
66-
MongoClientSettings clientSettings = MongoClientSettings.builder()
65+
MongoClientSettings commonClientSettings = (
66+
args.length == 0
67+
? MongoClientSettings.builder()
68+
: MongoClientSettings.builder().applyConnectionString(new ConnectionString(args[0])))
69+
.build();
70+
MongoClientSettings clientSettings = MongoClientSettings.builder(commonClientSettings)
6771
.autoEncryptionSettings(AutoEncryptionSettings.builder()
6872
.keyVaultNamespace(keyVaultNamespace.getFullName())
6973
.kmsProviders(kmsProviders)
@@ -87,9 +91,7 @@ public static void main(final String[] args) {
8791

8892
// Create the ClientEncryption instance
8993
ClientEncryptionSettings clientEncryptionSettings = ClientEncryptionSettings.builder()
90-
.keyVaultMongoClientSettings(MongoClientSettings.builder()
91-
.applyConnectionString(new ConnectionString("mongodb://localhost"))
92-
.build())
94+
.keyVaultMongoClientSettings(commonClientSettings)
9395
.keyVaultNamespace(keyVaultNamespace.getFullName())
9496
.kmsProviders(kmsProviders)
9597
.build();

driver-sync/src/examples/tour/ClientSideEncryptionSimpleTour.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package tour;
1818

1919
import com.mongodb.AutoEncryptionSettings;
20+
import com.mongodb.ConnectionString;
2021
import com.mongodb.MongoClientSettings;
2122
import com.mongodb.client.MongoClient;
2223
import com.mongodb.client.MongoClients;
@@ -59,7 +60,10 @@ public static void main(final String[] args) {
5960
.kmsProviders(kmsProviders)
6061
.build();
6162

62-
MongoClientSettings clientSettings = MongoClientSettings.builder()
63+
MongoClientSettings clientSettings = (
64+
args.length == 0
65+
? MongoClientSettings.builder()
66+
: MongoClientSettings.builder().applyConnectionString(new ConnectionString(args[0])))
6367
.autoEncryptionSettings(autoEncryptionSettings)
6468
.build();
6569

graalvm-native-image-app/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ dependencies {
7575
implementation project(path:':driver-reactive-streams', configuration:'archives')
7676
implementation project(path:':driver-legacy', configuration:'archives')
7777
// note that as a result of these `sourceSets` dependencies, `driver-sync/src/test/resources/logback-test.xml` is used
78+
implementation project(':driver-core').sourceSets.test.output
7879
implementation project(':driver-sync').sourceSets.test.output
7980
implementation project(':driver-legacy').sourceSets.test.output
8081
implementation project(':driver-reactive-streams').sourceSets.test.output

0 commit comments

Comments
 (0)