11import com.github.benmanes.gradle.versions.reporter.PlainTextReporter
22import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask
33import org.gradle.accessors.dm.LibrariesForLibs
4+ import org.gradle.jvm.toolchain.JavaLanguageVersion
5+ import org.gradle.kotlin.dsl.withType
46
57plugins {
68 `java- library`
79 jacoco
8- kotlin(" jvm" )
9-
10+ kotlin
1011 id(" org.checkerframework" )
1112 id(" com.github.ben-manes.versions" )
1213}
1314
14- // see buildSrc/build.gradle catalog hack
15+ // see buildSrc/build.gradle.kts
1516val libs = the<LibrariesForLibs >()
1617
1718group = " io.openapiprocessor"
1819version = libs.versions.openapiparser.get()
1920println (" version: $version " )
2021
21- repositories {
22- mavenCentral()
23- }
24-
25- dependencies {
26- checkerFramework(libs.checker)
27- compileOnly(libs.checkerq)
28-
29- testImplementation(platform(libs.kotest.bom))
30- testImplementation(libs.kotest.runner)
31- testImplementation(libs.kotest.table)
32- testImplementation(libs.mockk)
33- testCompileOnly(libs.checkerq)
34- }
35-
3622java {
3723 withJavadocJar()
3824 withSourcesJar()
@@ -43,46 +29,42 @@ java {
4329}
4430
4531kotlin {
46- jvmToolchain {
47- languageVersion.set(JavaLanguageVersion .of(libs.versions.build.jdk.get()))
48- }
49- }
32+ jvmToolchain(libs.versions.build.jdk.get().toInt())
5033
51- // tasks.getByName<Test>("test") {
52- // useJUnitPlatform()
53- // }
54-
55- tasks.withType<Test >().configureEach {
56- useJUnitPlatform()
57-
58- javaLauncher.set(javaToolchains.launcherFor {
59- languageVersion.set(JavaLanguageVersion .of(libs.versions.test.jdk.get()))
60- })
61-
62- finalizedBy(tasks.named(" jacocoTestReport" ))
34+ compilerOptions {
35+ freeCompilerArgs.add(" -Xannotation-default-target=param-property" )
36+ }
6337}
6438
65- tasks.withType<JavaCompile >().configureEach {
66- options.compilerArgs.add(" -Xlint:deprecation" )
39+ repositories {
40+ mavenCentral()
41+ maven {
42+ url = uri(" https://central.sonatype.com/repository/maven-snapshots" )
43+ mavenContent {
44+ snapshotsOnly()
45+ }
46+ }
6747}
6848
69- tasks.withType<JavaExec >().configureEach {
70- args(" -ea" )
49+ dependencies {
50+ checkerFramework(libs.checker)
51+ compileOnly(libs.checkerq)
7152}
7253
7354jacoco {
7455 toolVersion = libs.versions.jacoco.get()
7556}
7657
77- tasks.jacocoTestReport {
58+ tasks.named< JacocoReport >( " jacocoTestReport" ) {
7859 reports {
7960 xml.required.set(true )
8061 csv.required.set(false )
8162 html.required.set(false )
82- // html.outputLocation.set(layout.buildDirectory.dir("jacocoHtml"))
63+ // html.outputLocation.set(layout.buildDirectory.dir("jacocoHtml"))
8364 }
8465}
8566
67+
8668configure< org.checkerframework.gradle.plugin.CheckerFrameworkExtension > {
8769// skipCheckerFramework = true
8870// excludeTests = true
@@ -96,12 +78,9 @@ configure<org.checkerframework.gradle.plugin.CheckerFrameworkExtension> {
9678 )
9779}
9880
99-
100-
101-
102-
10381tasks.withType<DependencyUpdatesTask > {
10482 rejectVersionIf {
83+ println (" candidate: $candidate stable: ${! candidate.version.isNonStable()} " )
10584 candidate.version.isNonStable()
10685 }
10786
@@ -117,17 +96,37 @@ tasks.withType<DependencyUpdatesTask> {
11796 }
11897}
11998
99+ tasks.withType<Test >().configureEach {
100+ jvmArgs(listOf (
101+ " --add-exports" , " jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED" ,
102+ " --add-exports" , " jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED" ,
103+ " --add-exports" , " jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED" ,
104+ " --add-exports" , " jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED" ,
105+ " --add-exports" , " jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED" ,
106+ " --add-exports" , " jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"
107+ ))
108+
109+ javaLauncher.set(javaToolchains.launcherFor {
110+ languageVersion.set(JavaLanguageVersion .of(libs.versions.test.jdk.get()))
111+ })
112+
113+ finalizedBy(tasks.named(" jacocoTestReport" ))
114+ }
115+
116+
117+
120118
121119fun String.isNonStable (): Boolean {
122120 val nonStable = listOf (
123121 " .M[0-9]+$" ,
124122 " .RC[0-9]*$" ,
125- " .alpha[0-9]+$" ,
126- " .beta[0-9]+$" ,
123+ " .alpha.? [0-9]+$" ,
124+ " .beta.? [0-9]+$" ,
127125 )
128126
129127 for (n in nonStable) {
130128 if (this .contains(" (?i)$n " .toRegex())) {
129+ // println("not stable: $this")
131130 return true
132131 }
133132 }
@@ -138,3 +137,18 @@ fun String.isNonStable(): Boolean {
138137val ignore = listOf (
139138 " org.checkerframework:jdk8"
140139)
140+
141+ /*
142+ configure<CheckerFrameworkExtension> {
143+ skipCheckerFramework = true
144+ excludeTests = true
145+ extraJavacArgs = listOf("-Awarns")
146+
147+ checkers = listOf(
148+ "org.checkerframework.checker.nullness.NullnessChecker",
149+ // "org.checkerframework.checker.interning.InterningChecker",
150+ // "org.checkerframework.checker.resourceleak.ResourceLeakChecker",
151+ // "org.checkerframework.checker.index.IndexChecker"
152+ )
153+ }
154+ */
0 commit comments