Skip to content

Commit db10296

Browse files
committed
Use new GradleX convention plugins
1 parent fc3f3a6 commit db10296

File tree

11 files changed

+79
-250
lines changed

11 files changed

+79
-250
lines changed

build.gradle.kts

Lines changed: 77 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,38 @@
1-
plugins {
2-
id("groovy")
3-
id("gradlexbuild.lifecycle")
4-
id("gradlexbuild.asciidoctor-conventions")
5-
id("org.gradlex.internal.plugin-publish-conventions") version "0.6"
6-
}
1+
import java.net.URLClassLoader
2+
import org.asciidoctor.gradle.base.AsciidoctorAttributeProvider
73

8-
group = "org.gradlex"
9-
version = "2.4"
4+
plugins { id("groovy") } // TODO migrate tests to Java
105

11-
java {
12-
toolchain.languageVersion = JavaLanguageVersion.of(17)
13-
}
14-
15-
tasks.withType<JavaCompile>().configureEach {
16-
options.release = 8
17-
}
6+
group = "org.gradlex"
187

19-
tasks.withType<Javadoc>().configureEach {
20-
options {
21-
this as StandardJavadocDocletOptions
22-
encoding = "UTF-8"
23-
addStringOption("Xdoclint:all,-missing", "-quiet")
24-
addStringOption("Xwerror", "-quiet")
25-
}
26-
}
8+
version = "2.4"
279

28-
val tagsList = listOf(
29-
"dependency", "dependencies", "dependency-management", "capabilities", "java", "logging",
30-
"asm", "bouncycastle", "cglib", "commons-io", "dom4j", "guava", "hamcrest", "javax", "jakarta", "junit",
31-
"mysql", "postgresql", "stax", "slf4j", "log4j2", "velocity", "woodstox"
32-
)
10+
val tagsList =
11+
listOf(
12+
"dependency",
13+
"dependencies",
14+
"dependency-management",
15+
"capabilities",
16+
"java",
17+
"logging",
18+
"asm",
19+
"bouncycastle",
20+
"cglib",
21+
"commons-io",
22+
"dom4j",
23+
"guava",
24+
"hamcrest",
25+
"javax",
26+
"jakarta",
27+
"junit",
28+
"mysql",
29+
"postgresql",
30+
"stax",
31+
"slf4j",
32+
"log4j2",
33+
"velocity",
34+
"woodstox",
35+
)
3336

3437
pluginPublishConventions {
3538
id("org.gradlex.jvm-dependency-conflict-resolution")
@@ -58,7 +61,7 @@ pluginPublishConventions {
5861

5962
gradlePlugin {
6063
plugins {
61-
create("jvm-dependency-conflict-detection") {
64+
register("jvm-dependency-conflict-detection") {
6265
id = "org.gradlex.jvm-dependency-conflict-detection"
6366
implementationClass = "org.gradlex.jvm.dependency.conflict.detection.JvmDependencyConflictDetectionPlugin"
6467
displayName = "JVM Conflict Detection Gradle Plugin"
@@ -74,28 +77,54 @@ dependencies {
7477
testRuntimeOnly("org.junit.vintage:junit-vintage-engine")
7578
}
7679

77-
testing.suites.named<JvmTestSuite>("test") {
78-
useJUnitJupiter()
79-
listOf("6.8.3", "6.9.4", "7.0.2", "8.0.2", "8.14.3").forEach { gradleVersionUnderTest ->
80-
targets.register("test${gradleVersionUnderTest}") {
81-
testTask {
82-
group = LifecycleBasePlugin.VERIFICATION_GROUP
83-
description = "Runs tests against Gradle $gradleVersionUnderTest"
84-
useJUnitPlatform {
85-
excludeTags("no-cross-version")
80+
testingConventions { testGradleVersions("6.8.3", "6.9.4", "7.0.2", "8.0.2", "8.14.3") }
81+
82+
val generateCapabilitiesList =
83+
tasks.register<CapabilityListing>("generateCapabilitiesList") {
84+
pluginClasses.from(tasks.jar)
85+
outputFile = layout.buildDirectory.file("generated/docs/asciidoc/parts/capabilities-listing.adoc")
86+
}
87+
88+
tasks.asciidoctor {
89+
dependsOn(generateCapabilitiesList)
90+
attributeProviders += AsciidoctorAttributeProvider {
91+
mapOf("capabilities-listing" to generateCapabilitiesList.get().outputFile.get().asFile.absolutePath)
92+
}
93+
}
94+
95+
abstract class CapabilityListing : DefaultTask() {
96+
97+
@get:OutputFile abstract val outputFile: RegularFileProperty
98+
99+
@get:Classpath abstract val pluginClasses: ConfigurableFileCollection
100+
101+
@TaskAction
102+
fun update() {
103+
val classesUrls = pluginClasses.files.map { it.toURI().toURL() }
104+
val loader =
105+
URLClassLoader("pluginClasspath", classesUrls.toTypedArray(), ComponentMetadataRule::class.java.classLoader)
106+
val definitions = loader.loadClass("org.gradlex.jvm.dependency.conflict.detection.rules.CapabilityDefinition")
107+
108+
val allCapabilities =
109+
definitions.enumConstants
110+
.map { rule ->
111+
val capability = definitions.getDeclaredMethod("getCapability").invoke(rule) as String
112+
val modules = definitions.getDeclaredMethod("getModules").invoke(rule) as List<*>
113+
114+
Pair(capability, modules)
86115
}
87-
systemProperty("gradleVersionUnderTest", gradleVersionUnderTest)
116+
.sortedBy { it.first }
88117

89-
exclude("**/*SamplesTest.class") // Not yet cross-version ready
118+
val capabilityList =
119+
allCapabilities.joinToString("") { c ->
120+
"* ${c.first}\n${c.second.joinToString("") { "** ${(it as String).asRepoLink()}\n" }}"
90121
}
122+
123+
outputFile.get().asFile.also {
124+
it.parentFile.mkdirs()
125+
it.writeText(capabilityList)
91126
}
92127
}
93-
targets.all {
94-
testTask {
95-
maxParallelForks = 4
96-
inputs.dir(layout.projectDirectory.dir("samples"))
97-
inputs.dir("src/docs/samples")
98-
}
99-
}
100-
}
101128

129+
private fun String.asRepoLink() = "https://search.maven.org/artifact/${replace(":", "/")}[$this]"
130+
}

gradle/checkstyle/checkstyle.xml

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

gradle/checkstyle/header.txt

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

gradle/plugins/build-lifecycle/build.gradle.kts

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

gradle/plugins/build-lifecycle/src/main/kotlin/gradlexbuild.lifecycle.gradle.kts

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

gradle/plugins/build-parameters/build.gradle.kts

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

gradle/plugins/documentation/build.gradle.kts

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

gradle/plugins/documentation/src/main/kotlin/gradlexbuild.asciidoctor-conventions.gradle.kts

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

gradle/plugins/documentation/src/main/kotlin/gradlexbuild/jvm/dependency/conflict/documentation/CapabilityListing.kt

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

gradle/plugins/settings.gradle.kts

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

0 commit comments

Comments
 (0)