-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
132 lines (103 loc) · 3.67 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/*
* This file was generated by the Gradle 'init' task.
*
* This generated file contains a sample Java application project to get you started.
* For more details take a look at the 'Building Java & JVM projects' chapter in the Gradle
* User Manual available at https://docs.gradle.org/7.6/userguide/building_java_projects.html
*/
plugins {
// Use 4.0.4 for tomcat10
//id "org.gretty" version "4.0.3"
id "org.gretty" version "3.1.1"
// For jmh benchmarks
id "me.champeau.jmh" version "0.6.8"
// For coverage
id "jacoco"
}
apply plugin: 'java-library'
apply plugin: 'java'
apply plugin: 'war'
repositories {
// Use Maven Central for resolving dependencies.
mavenCentral()
}
dependencies {
// Use JUnit test framework.
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.1'
// Better assertions
testImplementation 'org.assertj:assertj-core:3.23.1'
// For mocking
implementation 'org.mockito:mockito-core:4.11.0'
// Use the JMH benchmarking framework.
testImplementation 'org.openjdk.jmh:jmh-generator-annprocess:1.36'
implementation 'org.openjdk.jmh:jmh-core:1.36'
// This dependency is used by the application.
implementation 'com.google.guava:guava:31.1-jre'
// Use this modified version of xmlrpc-client and xmlrpc-server as it supports JakartaEE
//implementation 'com.evolvedbinary.thirdparty.org.apache.xmlrpc:xmlrpc-client:5.0.0'
//implementation 'com.evolvedbinary.thirdparty.org.apache.xmlrpc:xmlrpc-server:5.0.0'
implementation 'org.apache.xmlrpc:xmlrpc-client:3.1.3'
implementation 'org.apache.xmlrpc:xmlrpc-server:3.1.3'
compileOnly 'javax.servlet:javax.servlet-api:4.0.1'
compileOnly 'javax.portlet:portlet-api:3.0.1'
implementation 'org.glassfish.main.javaee-api:javax.jws:3.1.2.2'
//implementation 'jakarta.servlet:jakarta.servlet-api:6.0.0'
implementation 'org.slf4j:slf4j-api:2.0.6'
implementation 'org.slf4j:slf4j-simple:2.0.6'
implementation 'com.fasterxml.jackson.core:jackson-core:2.14.1'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.14.1'
// For Json RPC
implementation 'com.github.briandilley.jsonrpc4j:jsonrpc4j:1.6'
// Java web sockets
implementation 'org.java-websocket:Java-WebSocket:1.5.3'
// JSON
implementation 'com.google.code.gson:gson:2.10'
}
gretty {
// Use tomcat10 if jakarta needs to be used
// jetty cannot be used as it does not support Java 19
servletContainer = 'tomcat9'
httpPort = 8080
contextPath = '/'
//loggingLevel = 'ALL'
jvmArgs = ['--enable-preview']
}
java {
toolchain {
languageVersion = JavaLanguageVersion.of(19)
}
}
test {
useJUnitPlatform()
finalizedBy jacocoTestReport // report is always generated after tests run
}
jacocoTestReport {
dependsOn test // tests are required to run before generating the report
}
jmh {
jvmArgs = [ '--enable-preview' ]
}
jmhRunBytecodeGenerator {
getJvmArgs().add("--enable-preview")
}
tasks.withType(JavaCompile).configureEach {
options.compilerArgs += "--enable-preview"
options.compilerArgs += "-Xlint:unchecked"
options.compilerArgs += "-Xlint:preview"
}
tasks.withType(Test).configureEach {
jvmArgs += "--enable-preview"
}
tasks.withType(JavaExec).configureEach {
jvmArgs += '--enable-preview'
}
tasks.withType(Javadoc).configureEach {
options.addBooleanOption('-enable-preview', true)
options.addStringOption('-release', '19')
options.tags = [
'apiNote:a:API Note:',
'implSpec:a:Implementation Requirements:',
'implNote:a:Implementation Note:',
]
}