From c948265384fe91b82c39388da3115c3ec7f1e0b3 Mon Sep 17 00:00:00 2001 From: Dan Fox Date: Thu, 20 Feb 2020 17:38:42 +0000 Subject: [PATCH 1/4] checkClassUniqueness works with conjure --- .../plugins/BaselineClassUniquenessPlugin.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/gradle-baseline-java/src/main/groovy/com/palantir/baseline/plugins/BaselineClassUniquenessPlugin.java b/gradle-baseline-java/src/main/groovy/com/palantir/baseline/plugins/BaselineClassUniquenessPlugin.java index 69daec35c..7335c092c 100644 --- a/gradle-baseline-java/src/main/groovy/com/palantir/baseline/plugins/BaselineClassUniquenessPlugin.java +++ b/gradle-baseline-java/src/main/groovy/com/palantir/baseline/plugins/BaselineClassUniquenessPlugin.java @@ -21,6 +21,7 @@ import java.util.List; import org.gradle.StartParameter; import org.gradle.api.Project; +import org.gradle.api.artifacts.Configuration; import org.gradle.api.plugins.JavaPlugin; import org.gradle.api.tasks.TaskProvider; import org.gradle.language.base.plugins.LifecycleBasePlugin; @@ -41,8 +42,16 @@ public final void apply(Project project) { project.getTasks().getByName(LifecycleBasePlugin.CHECK_TASK_NAME).dependsOn(checkClassUniqueness); project.getPlugins().withId("java", plugin -> { - checkClassUniqueness.configure(t -> t.configurations.add( - project.getConfigurations().getByName(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME))); + checkClassUniqueness.configure(t -> { + Configuration runtimeClasspath = + project.getConfigurations().getByName(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME); + t.configurations.add(runtimeClasspath); + + // runtimeClasspath might contain jars which are 'builtBy' other tasks, for example conjure-generated + // objects. This dependsOn ensures that all those pre-requisite tasks get invoked first, otherwise + // we see log.info warnings about missing jars e.g. 'Skipping non-existent jar foo-api-objects.jar' + t.dependsOn(runtimeClasspath); + }); }); // Wire up dependencies so running `./gradlew --write-locks` will update the lock file From a17dca282bef50155b26e2f8360016eaa69a1e04 Mon Sep 17 00:00:00 2001 From: Dan Fox Date: Thu, 20 Feb 2020 17:42:20 +0000 Subject: [PATCH 2/4] Fix broken markdown link --- docs/best-practices/java-coding-guidelines/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/best-practices/java-coding-guidelines/readme.md b/docs/best-practices/java-coding-guidelines/readme.md index 8e3af0e22..73365345c 100644 --- a/docs/best-practices/java-coding-guidelines/readme.md +++ b/docs/best-practices/java-coding-guidelines/readme.md @@ -86,7 +86,7 @@ topics: all offices) - Java Concurrency in Practice (copies exist in all offices) - [Writing Testable Code](http://misko.hevery.com/code-reviewers-guide/) -- [How to Design a GoodAPI and Why it Matters (Bloch)](http://lcsd05.cs.tamu.edu/slides/keynote.pdf) +- [How to Design a GoodAPI and Why it Matters (Bloch)](http://fwdinnovations.net/whitepaper/APIDesign.pdf) ## Miscellaneous From 2bf071f3444f69c39c726e65f4debf32fc1c641c Mon Sep 17 00:00:00 2001 From: Dan Fox Date: Thu, 20 Feb 2020 17:42:20 +0000 Subject: [PATCH 3/4] Add generated changelog entries --- changelog/@unreleased/pr-1250.v2.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 changelog/@unreleased/pr-1250.v2.yml diff --git a/changelog/@unreleased/pr-1250.v2.yml b/changelog/@unreleased/pr-1250.v2.yml new file mode 100644 index 000000000..035aae096 --- /dev/null +++ b/changelog/@unreleased/pr-1250.v2.yml @@ -0,0 +1,6 @@ +type: fix +fix: + description: checkClassUniqueness should now behave consistently when asked to analyze + configurations that are `builtBy` other tasks (e.g. gradle-conjure, gradle-atlas) + links: + - https://github.com/palantir/gradle-baseline/pull/1250 From 3a610cf4efc1019a48d6f1b381fd4914252afca8 Mon Sep 17 00:00:00 2001 From: Dan Fox Date: Thu, 20 Feb 2020 17:49:49 +0000 Subject: [PATCH 4/4] test against 5.6.4 and 6.2 --- .../groovy/com/palantir/baseline/BaselineIntegrationTest.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle-baseline-java/src/test/groovy/com/palantir/baseline/BaselineIntegrationTest.groovy b/gradle-baseline-java/src/test/groovy/com/palantir/baseline/BaselineIntegrationTest.groovy index a8f692379..6b4c7ce22 100644 --- a/gradle-baseline-java/src/test/groovy/com/palantir/baseline/BaselineIntegrationTest.groovy +++ b/gradle-baseline-java/src/test/groovy/com/palantir/baseline/BaselineIntegrationTest.groovy @@ -43,6 +43,6 @@ class BaselineIntegrationTest extends AbstractPluginTest { with().withArguments('-s').withGradleVersion(gradleVersion).build() where: - gradleVersion << ['5.4', '6.0-20190904072820+0000'] + gradleVersion << ['5.4', '6.2'] } }