Skip to content

Commit 962bd80

Browse files
authored
Merge pull request #14 from Nuix/9.6_gradle_intellij
9.6 gradle intellij
2 parents 840e292 + 7aebd5d commit 962bd80

122 files changed

Lines changed: 43894 additions & 4736 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 110 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,114 @@
11
Ignored
22

3-
# ============
4-
# Java Project
5-
# ============
3+
IntelliJ/build/*
4+
IntelliJ/engine/*
5+
!IntelliJ/engine/README.TXT
6+
IntelliJ/logs/*
7+
IntelliJ/.idea/*
68

9+
# From https://github.com/github/gitignore/blob/master/Gradle.gitignore
10+
.gradle
11+
/build/
12+
13+
# Ignore Gradle GUI config
14+
gradle-app.setting
15+
16+
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
17+
!gradle-wrapper.jar
18+
19+
# Cache of project
20+
.gradletasknamecache
21+
22+
# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
23+
# gradle/wrapper/gradle-wrapper.properties
24+
25+
26+
27+
# From https://github.com/github/gitignore/blob/master/Java.gitignore
28+
*.class
29+
30+
# Mobile Tools for Java (J2ME)
31+
.mtj.tmp/
32+
33+
# Package Files #
734
*.jar
8-
*.jardesc
9-
/Java/Doc
10-
/Java/*.jardesc
11-
12-
.settings
13-
.classpath
14-
.project
15-
16-
# =============
17-
# Maven entries
18-
# =============
19-
20-
target/
21-
pom.xml.tag
22-
pom.xml.releaseBackup
23-
pom.xml.versionsBackup
24-
pom.xml.next
25-
release.properties
26-
dependency-reduced-pom.xml
27-
buildNumber.properties
28-
.mvn/timing.properties
29-
30-
# Avoid ignoring Maven wrapper jar file (.jar files are usually ignored)
31-
!/.mvn/wrapper/maven-wrapper.jar
35+
*.war
36+
*.ear
37+
38+
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
39+
hs_err_pid*
40+
41+
42+
# From https://github.com/github/gitignore/blob/master/Global/JetBrains.gitignore
43+
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
44+
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
45+
46+
# User-specific stuff:
47+
.idea/workspace.xml
48+
.idea/tasks.xml
49+
.idea/dictionaries
50+
.idea/vcs.xml
51+
.idea/jsLibraryMappings.xml
52+
53+
# Sensitive or high-churn files:
54+
.idea/dataSources.ids
55+
.idea/dataSources.xml
56+
.idea/dataSources.local.xml
57+
.idea/sqlDataSources.xml
58+
.idea/dynamic.xml
59+
.idea/uiDesigner.xml
60+
61+
# Gradle:
62+
.idea/gradle.xml
63+
.idea/libraries
64+
65+
# Mongo Explorer plugin:
66+
.idea/mongoSettings.xml
67+
68+
## File-based project format:
69+
*.iws
70+
71+
## Plugin-specific files:
72+
73+
# IntelliJ
74+
/out/
75+
76+
# mpeltonen/sbt-idea plugin
77+
.idea_modules/
78+
79+
# JIRA plugin
80+
atlassian-ide-plugin.xml
81+
82+
# Crashlytics plugin (for Android Studio and IntelliJ)
83+
com_crashlytics_export_strings.xml
84+
crashlytics.properties
85+
crashlytics-build.properties
86+
fabric.properties
87+
88+
89+
*.DS_Store
90+
.AppleDouble
91+
.LSOverride
92+
93+
# Icon must end with two \r
94+
Icon
95+
96+
97+
# Thumbnails
98+
._*
99+
100+
# Files that might appear in the root of a volume
101+
.DocumentRevisions-V100
102+
.fseventsd
103+
.Spotlight-V100
104+
.TemporaryItems
105+
.Trashes
106+
.VolumeIcon.icns
107+
.com.apple.timemachine.donotpresent
108+
109+
# Directories potentially created on remote AFP share
110+
.AppleDB
111+
.AppleDesktop
112+
Network Trash Folder
113+
Temporary Items
114+
.apdisk

IntelliJ/build.gradle

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
// Prevents IntelliJ from reporting some warnings that seem to be no real problem
2+
//file:noinspection GroovyAccessibility
3+
//file:noinspection GroovyAssignabilityCheck
4+
5+
plugins {
6+
id 'java'
7+
}
8+
9+
group 'com.nuix'
10+
version '9.6.5.283'
11+
12+
repositories {
13+
mavenCentral()
14+
flatDir { dirs 'engine/lib' }
15+
}
16+
17+
dependencies {
18+
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
19+
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
20+
21+
// Used for logging
22+
implementation 'org.apache.logging.log4j:log4j-api:2.17.1'
23+
implementation 'org.apache.logging.log4j:log4j-core:2.17.1'
24+
25+
// Required for various date objects
26+
implementation 'joda-time:joda-time:2.10.13'
27+
28+
// Reference Nuix dependencies
29+
implementation fileTree(dir: 'engine/lib', include: 'nuix-scripting*.jar')
30+
implementation fileTree(dir: 'engine/lib', include: 'nuix-engine*.jar')
31+
runtimeOnly fileTree(dir: 'engine/lib', include: '*.jar')
32+
}
33+
34+
java {
35+
toolchain {
36+
languageVersion = JavaLanguageVersion.of(11)
37+
}
38+
}
39+
40+
// Here we define the location of some key directories so we can make
41+
// consistent references to them throughout the rest of this file
42+
String engineDirectory = rootProject.rootDir.getAbsolutePath() + "\\engine"
43+
String engineBinDirectory = engineDirectory + "\\bin"
44+
String engineX86BinDirectory = engineDirectory + "\\bin\\x86"
45+
String rootLogDir = rootProject.rootDir.getAbsolutePath() + "\\logs"
46+
String envPath = engineBinDirectory + ";" + engineX86BinDirectory
47+
48+
def defaultJvmArgs = [
49+
// Necessary for newer versions of Nuix. Without this you will likely see
50+
// an error regarding loading the BouncyCastle crypto library at run-time
51+
"--add-exports=java.base/jdk.internal.loader=ALL-UNNAMED",
52+
53+
// This will be passed to EngineWrapper on creation allowing it to resolve
54+
// all the dependencies in an engine release
55+
"-Dnuix.engineDir=\"${engineDirectory}\"",
56+
57+
// Provided to EngineWrapper to specify the root directory where logs will be written
58+
"-Dnuix.logDir=\"${rootLogDir}\"",
59+
60+
// Specify a temp directory accessible to the user running our code
61+
"-Djava.io.tmpdir=\"${System.getenv("LOCALAPPDATA")}\\Temp\\Nuix\"",
62+
]
63+
64+
task BasicInitialization(type: JavaExec) {
65+
classpath sourceSets.main.runtimeClasspath
66+
group = "Examples"
67+
mainClass = "com.nuix.javaenginesimple.examples.BasicInitializationExample"
68+
jvmArgs = defaultJvmArgs
69+
setEnvironment(["PATH":envPath])
70+
}
71+
72+
task CreateSimpleCase(type: JavaExec) {
73+
classpath sourceSets.main.runtimeClasspath
74+
group = "Examples"
75+
mainClass = "com.nuix.javaenginesimple.examples.CreateSimpleCaseExample"
76+
jvmArgs = defaultJvmArgs
77+
setEnvironment(["PATH":envPath])
78+
}
79+
80+
task OpenCase(type: JavaExec) {
81+
classpath sourceSets.main.runtimeClasspath
82+
group = "Examples"
83+
mainClass = "com.nuix.javaenginesimple.examples.OpenCaseExample"
84+
jvmArgs = defaultJvmArgs
85+
setEnvironment(["PATH":envPath])
86+
}
87+
88+
task BasicSearchAndTag(type: JavaExec) {
89+
classpath sourceSets.main.runtimeClasspath
90+
group = "Examples"
91+
mainClass = "com.nuix.javaenginesimple.examples.BasicSearchAndTagExample"
92+
jvmArgs = defaultJvmArgs
93+
setEnvironment(["PATH":envPath])
94+
}
95+
96+
task BasicExport(type: JavaExec) {
97+
classpath sourceSets.main.runtimeClasspath
98+
group = "Examples"
99+
mainClass = "com.nuix.javaenginesimple.examples.BasicExportExample"
100+
jvmArgs = defaultJvmArgs
101+
setEnvironment(["PATH":envPath])
102+
}
103+
104+
task CreateProductionSet(type: JavaExec) {
105+
classpath sourceSets.main.runtimeClasspath
106+
group = "Examples"
107+
mainClass = "com.nuix.javaenginesimple.examples.CreateProductionSetExample"
108+
jvmArgs = defaultJvmArgs
109+
setEnvironment(["PATH":envPath])
110+
}
111+
112+
task IntermediateSearchAndTag(type: JavaExec) {
113+
classpath sourceSets.main.runtimeClasspath
114+
group = "Examples"
115+
mainClass = "com.nuix.javaenginesimple.examples.IntermediateSearchAndTagExample"
116+
jvmArgs = defaultJvmArgs
117+
setEnvironment(["PATH":envPath])
118+
}
119+
120+
task LoadDataIntoCase(type: JavaExec) {
121+
classpath sourceSets.main.runtimeClasspath
122+
group = "Examples"
123+
mainClass = "com.nuix.javaenginesimple.examples.LoadDataIntoCaseExample"
124+
jvmArgs = defaultJvmArgs
125+
setEnvironment(["PATH":envPath])
126+
}
127+
128+
task RevealDecryptionPassword(type: JavaExec) {
129+
classpath sourceSets.main.runtimeClasspath
130+
group = "Examples"
131+
mainClass = "com.nuix.javaenginesimple.examples.RevealDecryptionPasswordExample"
132+
jvmArgs = defaultJvmArgs
133+
setEnvironment(["PATH":envPath])
134+
}
135+
136+
task UsingText(type: JavaExec) {
137+
classpath sourceSets.main.runtimeClasspath
138+
group = "Examples"
139+
mainClass = "com.nuix.javaenginesimple.examples.UsingTextExample"
140+
jvmArgs = defaultJvmArgs
141+
setEnvironment(["PATH":envPath])
142+
}
143+
144+
// Slight modification to javadoc task provided by Java plugin to change output directory
145+
javadoc {
146+
destinationDir = new File(rootProject.rootDir.getAbsolutePath() + "\\..\\docs")
147+
}
148+
149+
test {
150+
useJUnitPlatform()
151+
}

IntelliJ/engine/README.TXT

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
You will want to place a Nuix Java Engine API release in this directory, which can be downloaded here:
2+
3+
https://download.nuix.com/releases/engine/
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
distributionBase=GRADLE_USER_HOME
2+
distributionPath=wrapper/dists
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-7.1-bin.zip
4+
zipStoreBase=GRADLE_USER_HOME
5+
zipStorePath=wrapper/dists

0 commit comments

Comments
 (0)