Skip to content

Commit 0e33d09

Browse files
fix: DAGP variants have a Category of 'dependency-analysis'.
Resolves issue 1159.
1 parent 6c0fb23 commit 0e33d09

File tree

6 files changed

+88
-0
lines changed

6 files changed

+88
-0
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.autonomousapps.jvm
2+
3+
import com.autonomousapps.jvm.projects.CategoryProject
4+
5+
import static com.autonomousapps.utils.Runner.build
6+
7+
// This passes on Gradle 8.6 and failed on Gradle 8.7 (pre-fix)
8+
// https://github.com/autonomousapps/dependency-analysis-gradle-plugin/issues/1159
9+
final class CategorySpec extends AbstractJvmSpec {
10+
11+
def "project bundles are respected (#gradleVersion)"() {
12+
given:
13+
def project = new CategoryProject()
14+
gradleProject = project.gradleProject
15+
16+
expect:
17+
build(gradleVersion, gradleProject.rootDir, 'testCodeCoverageReport')
18+
19+
where:
20+
gradleVersion << gradleVersions()
21+
}
22+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.autonomousapps.jvm.projects
2+
3+
import com.autonomousapps.AbstractProject
4+
import com.autonomousapps.kit.GradleProject
5+
import com.autonomousapps.kit.gradle.Plugin
6+
7+
import static com.autonomousapps.kit.gradle.Dependency.project
8+
9+
final class CategoryProject extends AbstractProject {
10+
11+
final GradleProject gradleProject
12+
13+
CategoryProject() {
14+
this.gradleProject = build()
15+
}
16+
17+
private GradleProject build() {
18+
return newGradleProjectBuilder()
19+
.withRootProject { r ->
20+
r.withBuildScript { bs ->
21+
bs.plugins.addAll(Plugin.javaLibrary, Plugin.jacocoReportAggregation)
22+
bs.withGroovy(
23+
'''\
24+
tasks.named('test', Test) {
25+
useJUnitPlatform()
26+
}
27+
'''
28+
)
29+
bs.dependencies(
30+
project('jacocoAggregation', ':project'),
31+
)
32+
}
33+
}
34+
.withSubproject('project') { p ->
35+
p.withBuildScript { bs ->
36+
bs.plugins = javaLibrary + Plugin.jvmTestSuite
37+
bs.withGroovy(
38+
'''\
39+
tasks.named('test', Test) {
40+
useJUnitPlatform()
41+
}
42+
'''
43+
)
44+
}
45+
}
46+
.write()
47+
}
48+
}

src/main/kotlin/com/autonomousapps/internal/artifacts/DagpArtifacts.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,20 @@ package com.autonomousapps.internal.artifacts
44

55
import org.gradle.api.Named
66
import org.gradle.api.attributes.Attribute
7+
import org.gradle.api.attributes.Category
8+
import org.gradle.api.model.ObjectFactory
79

810
internal interface DagpArtifacts : Named {
911
companion object {
1012
@JvmField val DAGP_ARTIFACTS_ATTRIBUTE: Attribute<DagpArtifacts> = Attribute.of(
1113
"dagp.internal.artifacts", DagpArtifacts::class.java
1214
)
15+
16+
@JvmField val CATEGORY_ATTRIBUTE: Attribute<Category> = Category.CATEGORY_ATTRIBUTE
17+
18+
fun category(objects: ObjectFactory): Category {
19+
return objects.named(Category::class.java, "dependency-analysis")
20+
}
1321
}
1422

1523
enum class Kind(

src/main/kotlin/com/autonomousapps/internal/artifacts/Publisher.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,10 @@ internal class Publisher<T : Named>(
6868
attr.attribute,
6969
project.objects.named(attr.attribute.type, attr.attributeName)
7070
)
71+
attribute(
72+
DagpArtifacts.CATEGORY_ATTRIBUTE,
73+
DagpArtifacts.category(project.objects)
74+
)
7175
}
7276
}
7377

src/main/kotlin/com/autonomousapps/internal/artifacts/Resolver.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ internal class Resolver<T : Named>(
6666
attr.attribute,
6767
project.objects.named(attr.attribute.type, attr.attributeName)
6868
)
69+
attribute(
70+
DagpArtifacts.CATEGORY_ATTRIBUTE,
71+
DagpArtifacts.category(project.objects)
72+
)
6973
}
7074
}
7175
}

testkit/gradle-testkit-support/src/main/kotlin/com/autonomousapps/kit/gradle/Plugin.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,12 @@ public class Plugin @JvmOverloads constructor(
5959
@JvmStatic public val application: Plugin = Plugin("application")
6060
@JvmStatic public val groovy: Plugin = Plugin("groovy")
6161
@JvmStatic public val groovyGradle: Plugin = Plugin("groovy-gradle-plugin")
62+
@JvmStatic public val jacocoReportAggregation: Plugin = Plugin("jacoco-report-aggregation")
6263
@JvmStatic public val java: Plugin = Plugin("java")
6364
@JvmStatic public val javaGradle: Plugin = Plugin("java-gradle-plugin")
6465
@JvmStatic public val javaLibrary: Plugin = Plugin("java-library")
6566
@JvmStatic public val javaTestFixtures: Plugin = Plugin("java-test-fixtures")
67+
@JvmStatic public val jvmTestSuite: Plugin = Plugin("jvm-test-suite")
6668
@JvmStatic public val scala: Plugin = Plugin("scala")
6769
@JvmStatic public val war: Plugin = Plugin("war")
6870
}

0 commit comments

Comments
 (0)