Skip to content

Commit 383fb2a

Browse files
committed
Use nuix.userDataBase when none provided via direct method
1 parent 586f520 commit 383fb2a

2 files changed

Lines changed: 26 additions & 6 deletions

File tree

IntelliJ/src/main/java/com/nuix/innovation/enginewrapper/NuixEngine.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,7 @@ private boolean obtainLicenseFromResolvers() throws Exception {
380380
private void checkPreConditions() throws Exception {
381381
// This is for testing!
382382
boolean ignoreIssues = false;
383-
if (System.getProperty("engine.ignore.preCheckIssues").equalsIgnoreCase("true")) {
383+
if (System.getProperty("engine.ignore.preCheckIssues", "false").equalsIgnoreCase("true")) {
384384
ignoreIssues = true;
385385
System.out.println("engine.ignore.preCheckIssues = true, ignoring errors found during pre-check!");
386386
}
@@ -439,12 +439,18 @@ private void checkPreConditions() throws Exception {
439439
}
440440
}
441441

442-
// If caller has not specified a user-data directory, assume the one that comes with the engine distribution
443-
// that is being used.
442+
// If caller has not specified a user-data directory directly, check to see if one was specified in system property
443+
// nuix.userDataDirs. If not specified there, then use the one specified in the engine release directory.
444444
if (userDataDirectorySupplier == null) {
445-
System.out.println("No user data directory was specified, assuming directory relative to engine distribution: " +
446-
new File(engineDistributionDirectorySupplier.get(), "user-data").getAbsolutePath());
447-
userDataDirectorySupplier = () -> new File(engineDistributionDirectorySupplier.get(), "user-data");
445+
String userDataDirProp = System.getProperty("nuix.userDataBase");
446+
if (userDataDirProp != null && !userDataDirProp.isBlank()) {
447+
System.out.println("Using user data directory provided in property 'nuix.userDataBase': " + userDataDirProp);
448+
userDataDirectorySupplier = () -> new File(userDataDirProp);
449+
} else {
450+
System.out.println("No user data directory was specified, assuming directory relative to engine distribution: " +
451+
new File(engineDistributionDirectorySupplier.get(), "user-data").getAbsolutePath());
452+
userDataDirectorySupplier = () -> new File(engineDistributionDirectorySupplier.get(), "user-data");
453+
}
448454
}
449455

450456
// Make sure PATH points to expected bin and bin/x86 subdirectories of our engine distribution

IntelliJ/src/test/java/BasicTests.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import org.junit.jupiter.api.Test;
44

55
import java.io.File;
6+
import java.nio.file.Paths;
67
import java.util.List;
78
import java.util.Map;
89
import java.util.Set;
@@ -45,6 +46,19 @@ public void GetLicenseManualCleanup() throws Exception {
4546
nuixEngine.close();
4647
}
4748

49+
@Test
50+
public void OverrideUserDataViaProperty() throws Exception {
51+
File engineUserDataBase = Paths.get(System.getenv("NUIX_ENGINE_DIR"), "user-data").toFile();
52+
System.setProperty("nuix.userDataBase", engineUserDataBase.getCanonicalPath());
53+
AtomicBoolean licenseWasObtained = new AtomicBoolean(false);
54+
NuixEngine nuixEngine = constructNuixEngine();
55+
// run method will call close before returning
56+
nuixEngine.run((utilities -> {
57+
licenseWasObtained.set(true);
58+
}));
59+
assertTrue(licenseWasObtained.get());
60+
}
61+
4862
@Test
4963
public void CreateAndOpenSimpleCase() throws Exception {
5064
File caseDirectory = new File(testOutputDirectory, "CreateAndOpenSimpleCase");

0 commit comments

Comments
 (0)