Skip to content

Commit 861c50e

Browse files
committed
✨ use multi-release jar with module-info.java
1 parent df315f8 commit 861c50e

File tree

3 files changed

+61
-167
lines changed

3 files changed

+61
-167
lines changed

build.gradle.kts

Lines changed: 52 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import org.javamodularity.moduleplugin.extensions.ModularityExtension
2+
13
plugins {
24
`java-library`
35
`maven-publish`
@@ -8,6 +10,28 @@ plugins {
810
id("com.netflix.nebula.maven-publish") version "20.3.0"
911
id("com.netflix.nebula.publish-verification") version "20.3.0"
1012
id("io.github.gradle-nexus.publish-plugin") version "1.3.0"
13+
id("org.javamodularity.moduleplugin") version "1.8.12"
14+
}
15+
16+
tasks.named<Jar>("javadocJar") {
17+
exclude("module-info.class")
18+
}
19+
20+
tasks.named<Jar>("sourcesJar") {
21+
dependsOn("compileModuleInfoJava")
22+
exclude("module-info.class")
23+
}
24+
25+
tasks.named<JavaCompile>("compileJava") {
26+
options.release.set(null as Int?)
27+
}
28+
29+
configure<ModularityExtension> {
30+
mixedJavaRelease(8)
31+
}
32+
33+
tasks.named<JavaCompile>("compileModuleInfoJava") {
34+
options.release.set(null as Int?)
1135
}
1236

1337
repositories {
@@ -35,8 +59,7 @@ dependencies {
3559
api("com.coverity.security:coverity-escapers:1.1.1")
3660
api("com.martiansoftware:jsap:2.1")
3761
api("commons-io:commons-io:2.11.0")
38-
"java11Api"("commons-io:commons-io:2.11.0")
39-
api("org.codehaus.mojo:animal-sniffer-annotations:1.23")
62+
java11SourceSet.apiConfigurationName("commons-io:commons-io:2.11.0")
4063
testImplementation("commons-fileupload:commons-fileupload:1.5")
4164
testImplementation("org.junit.jupiter:junit-jupiter:5.8.1")
4265
testImplementation("org.junit.jupiter:junit-jupiter-params")
@@ -45,13 +68,25 @@ dependencies {
4568
testImplementation("org.mockito:mockito-core:4.0.0")
4669
}
4770

71+
tasks.named<JavaCompile>(java11SourceSet.compileJavaTaskName) {
72+
options.release.set(9)
73+
}
74+
75+
tasks.named<Jar>("jar") {
76+
into("META-INF/versions/11") {
77+
from(java11SourceSet.output)
78+
}
79+
manifest.attributes(
80+
Pair("Multi-Release", "true")
81+
)
82+
83+
inputs.files(tasks.named(java11SourceSet.compileJavaTaskName).map { it.outputs.files })
84+
}
85+
4886
group = "io.github.pixee"
4987
version = "1.0.7"
5088
description = "java-security-toolkit"
5189

52-
tasks.compileJava {
53-
options.release.set(11)
54-
}
5590

5691
extensions.getByType<nebula.plugin.contacts.ContactsExtension>().run {
5792
addPerson(
@@ -107,4 +142,15 @@ publishing {
107142

108143
tasks.test {
109144
useJUnitPlatform()
110-
}
145+
extensions.configure(org.javamodularity.moduleplugin.extensions.TestModuleOptions::class) {
146+
// Avoid modules in tests so we can test against Java/JDK 8.
147+
setRunOnClasspath(true)
148+
}
149+
}
150+
151+
tasks.compileTestJava {
152+
extensions.configure(org.javamodularity.moduleplugin.extensions.CompileTestModuleOptions::class) {
153+
// Avoid modules in tests so we can test against Java/JDK 8.
154+
setCompileOnClasspath(true)
155+
}
156+
}

src/main/java/module-info.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
open module io.github.pixee.security {
2+
exports io.github.pixee.security;
3+
exports io.github.pixee.security.jakarta;
4+
5+
requires org.apache.commons.io;
6+
requires java.xml;
7+
requires java.desktop;
8+
requires java.base;
9+
}

src/test/java/io/github/pixee/security/ObjectInputFiltersTest.java

Lines changed: 0 additions & 161 deletions
This file was deleted.

0 commit comments

Comments
 (0)