Skip to content

Commit 102a5ae

Browse files
committed
Extract method for duplicated logic checking for whether mongocryptd is disabled
JAVA-4739
1 parent e8bc843 commit 102a5ae

File tree

3 files changed

+13
-16
lines changed

3 files changed

+13
-16
lines changed

driver-core/src/main/com/mongodb/internal/capi/MongoCryptHelper.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,13 @@ private static BsonDocument toBsonDocument(final Map<String, Object> optionsMap)
138138
return new BsonDocumentWrapper<>(new Document(optionsMap), new DocumentCodec());
139139
}
140140

141+
public static boolean isMongocryptdSpawningDisabled(@Nullable final String cryptSharedLibVersion,
142+
final AutoEncryptionSettings settings) {
143+
boolean cryptSharedLibIsAvailable = cryptSharedLibVersion != null && cryptSharedLibVersion.isEmpty();
144+
boolean cryptSharedLibRequired = (boolean) settings.getExtraOptions().getOrDefault("cryptSharedLibRequired", false);
145+
return settings.isBypassAutoEncryption() || settings.isBypassQueryAnalysis() || cryptSharedLibRequired || cryptSharedLibIsAvailable;
146+
}
147+
141148
@SuppressWarnings("unchecked")
142149
public static List<String> createMongocryptdSpawnArgs(final Map<String, Object> options) {
143150
List<String> spawnArgs = new ArrayList<>();

driver-reactive-streams/src/main/com/mongodb/reactivestreams/client/internal/crypt/CommandMarker.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import static com.mongodb.assertions.Assertions.assertNotNull;
3535
import static com.mongodb.internal.capi.MongoCryptHelper.createMongocryptdClientSettings;
3636
import static com.mongodb.internal.capi.MongoCryptHelper.createProcessBuilder;
37+
import static com.mongodb.internal.capi.MongoCryptHelper.isMongocryptdSpawningDisabled;
3738
import static com.mongodb.internal.capi.MongoCryptHelper.startProcess;
3839

3940
@SuppressWarnings("UseOfProcessBuilder")
@@ -62,18 +63,12 @@ class CommandMarker implements Closeable {
6263
CommandMarker(
6364
final MongoCrypt mongoCrypt,
6465
final AutoEncryptionSettings settings) {
65-
Map<String, Object> extraOptions = settings.getExtraOptions();
66-
String cryptSharedLibVersionString = mongoCrypt.getCryptSharedLibVersionString();
6766

68-
boolean bypassAutoEncryption = settings.isBypassAutoEncryption();
69-
boolean isBypassQueryAnalysis = settings.isBypassQueryAnalysis();
70-
boolean cryptSharedIsAvailable = cryptSharedLibVersionString != null && cryptSharedLibVersionString.isEmpty();
71-
boolean cryptSharedLibRequired = (boolean) extraOptions.getOrDefault("cryptSharedLibRequired", false);
72-
73-
if (bypassAutoEncryption || isBypassQueryAnalysis || cryptSharedLibRequired || cryptSharedIsAvailable) {
67+
if (isMongocryptdSpawningDisabled(mongoCrypt.getCryptSharedLibVersionString(), settings)) {
7468
processBuilder = null;
7569
client = null;
7670
} else {
71+
Map<String, Object> extraOptions = settings.getExtraOptions();
7772
boolean mongocryptdBypassSpawn = (boolean) extraOptions.getOrDefault("mongocryptdBypassSpawn", false);
7873
if (!mongocryptdBypassSpawn) {
7974
processBuilder = createProcessBuilder(extraOptions);

driver-sync/src/main/com/mongodb/client/internal/CommandMarker.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import static com.mongodb.assertions.Assertions.assertNotNull;
3535
import static com.mongodb.internal.capi.MongoCryptHelper.createMongocryptdClientSettings;
3636
import static com.mongodb.internal.capi.MongoCryptHelper.createProcessBuilder;
37+
import static com.mongodb.internal.capi.MongoCryptHelper.isMongocryptdSpawningDisabled;
3738
import static com.mongodb.internal.capi.MongoCryptHelper.startProcess;
3839

3940
@SuppressWarnings("UseOfProcessBuilder")
@@ -62,18 +63,12 @@ class CommandMarker implements Closeable {
6263
CommandMarker(
6364
final MongoCrypt mongoCrypt,
6465
final AutoEncryptionSettings settings) {
65-
Map<String, Object> extraOptions = settings.getExtraOptions();
66-
String cryptSharedLibVersionString = mongoCrypt.getCryptSharedLibVersionString();
6766

68-
boolean bypassAutoEncryption = settings.isBypassAutoEncryption();
69-
boolean isBypassQueryAnalysis = settings.isBypassQueryAnalysis();
70-
boolean cryptSharedIsAvailable = cryptSharedLibVersionString != null && cryptSharedLibVersionString.isEmpty();
71-
boolean cryptSharedLibRequired = (boolean) extraOptions.getOrDefault("cryptSharedLibRequired", false);
72-
73-
if (bypassAutoEncryption || isBypassQueryAnalysis || cryptSharedLibRequired || cryptSharedIsAvailable) {
67+
if (isMongocryptdSpawningDisabled(mongoCrypt.getCryptSharedLibVersionString(), settings)) {
7468
processBuilder = null;
7569
client = null;
7670
} else {
71+
Map<String, Object> extraOptions = settings.getExtraOptions();
7772
boolean mongocryptdBypassSpawn = (boolean) extraOptions.getOrDefault("mongocryptdBypassSpawn", false);
7873
if (!mongocryptdBypassSpawn) {
7974
processBuilder = createProcessBuilder(extraOptions);

0 commit comments

Comments
 (0)