Skip to content

Commit 2ef0570

Browse files
author
Vincent Potucek
committed
1 parent dbbacd6 commit 2ef0570

File tree

270 files changed

+827
-732
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

270 files changed

+827
-732
lines changed

.github/workflows/rewrite.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Rewrite ✅
2+
on:
3+
push:
4+
branches:
5+
- main
6+
- 'releases/**'
7+
paths:
8+
- '.github/**'
9+
pull_request:
10+
paths:
11+
- '.github/**'
12+
permissions: {}
13+
jobs:
14+
rewrite:
15+
name: Sanity Check 🕊
16+
runs-on: ubuntu-latest
17+
permissions:
18+
security-events: write
19+
steps:
20+
- name: Checkout Repository 📥
21+
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
22+
with:
23+
persist-credentials: false
24+
- name: Dry Run 🧮
25+
uses: ./.github/actions/run-gradle
26+
with:
27+
encryptionKey: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
28+
arguments: rewriteDryRun -Dorg.gradle.jvmargs=-Xmx2G

documentation/src/main/java/example/domain/Person.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,8 @@ public LocalDate getDateOfBirth() {
5454
public int hashCode() {
5555
final int prime = 31;
5656
int result = 1;
57-
result = prime * result + ((firstName == null) ? 0 : firstName.hashCode());
58-
result = prime * result + ((lastName == null) ? 0 : lastName.hashCode());
59-
return result;
57+
result = prime * result + (firstName == null ? 0 : firstName.hashCode());
58+
return prime * result + (lastName == null ? 0 : lastName.hashCode());
6059
}
6160

6261
@Override

documentation/src/main/java/example/util/StringUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
import org.jspecify.annotations.Nullable;
1616

17-
public class StringUtils {
17+
public final class StringUtils {
1818

1919
public static boolean isPalindrome(@Nullable String candidate) {
2020
int length = requireNonNull(candidate).length();

documentation/src/tools/java/org/junit/api/tools/ApiReportGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
/**
4747
* @since 1.0
4848
*/
49-
class ApiReportGenerator {
49+
final class ApiReportGenerator {
5050

5151
private static final Logger LOGGER = LoggerFactory.getLogger(ApiReportGenerator.class);
5252
private static final String EOL = System.lineSeparator();

gradle/config/rewrite.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
type: specs.openrewrite.org/v1beta/recipe
3+
name: org.junit.openrewrite.SanityCheck
4+
displayName: Apply all common best practices
5+
description: Comprehensive code quality recipe combining modernization, security, and best practices.
6+
recipeList:
7+
- org.openrewrite.java.migrate.UpgradeToJava17
8+
- org.openrewrite.java.testing.junit.JupiterBestPractices # consider; org.openrewrite.java.testing.cleanup.BestPractices
9+
- org.openrewrite.staticanalysis.CommonStaticAnalysis
10+
---

gradle/libs.versions.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ commonCustomUserData = { id = "com.gradle.common-custom-user-data-gradle-plugin"
101101
develocity = { id = "com.gradle.develocity", version = "4.2.2" }
102102
download = { id = "de.undercouch.download", version = "5.6.0" }
103103
errorProne = { id = "net.ltgt.errorprone", version = "4.3.0" }
104+
rewrite = { id = "org.openrewrite.rewrite", version = "7.21.0" }
104105
foojayResolver = { id = "org.gradle.toolchains.foojay-resolver", version = "1.0.0" }
105106
gitPublish = { id = "org.ajoberstar.git-publish", version = "5.1.3" }
106107
jmh = { id = "me.champeau.jmh", version = "0.7.3" }

gradle/plugins/common/build.gradle.kts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,17 @@ plugins {
77

88
dependencies {
99
implementation("junitbuild.base:dsl-extensions")
10-
implementation(projects.buildParameters)
1110
implementation(projects.backwardCompatibility)
12-
implementation(libs.plugins.kotlin.markerCoordinates)
11+
implementation(projects.buildParameters)
1312
implementation(libs.plugins.bnd.markerCoordinates)
1413
implementation(libs.plugins.commonCustomUserData.markerCoordinates)
1514
implementation(libs.plugins.develocity.markerCoordinates)
1615
implementation(libs.plugins.errorProne.markerCoordinates)
1716
implementation(libs.plugins.foojayResolver.markerCoordinates)
1817
implementation(libs.plugins.jmh.markerCoordinates)
18+
implementation(libs.plugins.kotlin.markerCoordinates)
1919
implementation(libs.plugins.nullaway.markerCoordinates)
20+
implementation(libs.plugins.rewrite.markerCoordinates)
2021
implementation(libs.plugins.shadow.markerCoordinates)
2122
implementation(libs.plugins.spotless.markerCoordinates)
2223
}

gradle/plugins/common/src/main/kotlin/junitbuild.java-errorprone-conventions.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ tasks.withType<JavaCompile>().configureEach {
4545
error(
4646
"CanonicalAnnotationSyntax",
4747
"IsInstanceLambdaUsage",
48+
"TryWithResourcesVariable",
4849
"PackageLocation",
4950
"RedundantStringConversion",
5051
"RedundantStringEscape",

gradle/plugins/common/src/main/kotlin/junitbuild.java-library-conventions.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ plugins {
99
id("junitbuild.eclipse-conventions")
1010
id("junitbuild.jacoco-java-conventions")
1111
id("junitbuild.java-errorprone-conventions")
12+
id("junitbuild.rewrite-conventions")
1213
}
1314

1415
val mavenizedProjects: List<Project> by rootProject.extra
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
plugins {
2+
id("org.openrewrite.rewrite")
3+
}
4+
5+
dependencies {
6+
rewrite("org.openrewrite.recipe:rewrite-migrate-java:3.22.0")
7+
rewrite("org.openrewrite.recipe:rewrite-static-analysis:2.22.0")
8+
rewrite("org.openrewrite.recipe:rewrite-testing-frameworks:3.22.0")
9+
}
10+
11+
rewrite {
12+
activeRecipe("org.junit.openrewrite.SanityCheck")
13+
configFile = project.getRootProject().file("gradle/config/rewrite.yml")
14+
exclusion(
15+
// CommonStaticAnalysis: scope issue; CONSTRUCTOR_NOW_PROTECTED
16+
"**AggregatorIntegrationTests.java",
17+
"**AnnotationConsumerInitializerTests.java",
18+
"**HierarchicalTestEngine.java",
19+
"**TypeBasedParameterResolver.java",
20+
"**params/aggregator**",
21+
"**params/converter**",
22+
"**params/provider**",
23+
// dedicated might trivial issue.
24+
"**DiscoveryIssueNotifier.java",
25+
"**XmlReportWriter.java",
26+
// JupiterBestPractices: class scope issue;
27+
"**BeforeAndAfterSuiteTests.java",
28+
"**BridgeMethods.java",
29+
"**EngineDiscoveryResultValidatorTests.java", // fixable with @DisabledOnOs(WINDOWS)
30+
"**CsvArgumentsProvider.java",
31+
"**DefaultArgumentsAccessor.java",
32+
"**DiscoverySelectorResolverTests.java",
33+
"**DiscoveryTests.java",
34+
"**DisplayNameGenerationTests.java",
35+
"**DynamicNodeGenerationTests.java",
36+
"**DynamicTestTests.java",
37+
"**ExceptionHandlingTests.java",
38+
"**ExecutionCancellationTests.java",
39+
"**ExtensionRegistrationViaParametersAndFieldsTests.java",
40+
"**InvocationInterceptorTests.java",
41+
"**IsTestMethodTests.java",
42+
"**IsTestTemplateMethodTests.java",
43+
"**JupiterTestDescriptorTests.java",
44+
"**LifecycleMethodUtilsTests.java",
45+
"**MultipleTestableAnnotationsTests.java",
46+
"**NestedContainerEventConditionTests.java",
47+
"**ParallelExecutionIntegrationTests.java",
48+
"**ParameterResolverTests.java",
49+
"**ParameterizedTestIntegrationTests.java",
50+
"**RepeatedTestTests.java",
51+
"**StaticPackagePrivateBeforeMethod.java",
52+
"**SubclassedAssertionsTests.java",
53+
"**TempDirectoryCleanupTests.java",
54+
"**TestCase.java",
55+
"**TestCases.java",
56+
"**TestExecutionExceptionHandlerTests.java",
57+
"**TestInstanceFactoryTests.java",
58+
"**TestTemplateInvocationTestDescriptorTests.java",
59+
"**TestTemplateInvocationTests.java",
60+
"**TestTemplateTestDescriptorTests.java",
61+
"**TestWatcherTests.java",
62+
"**TimeoutExtensionTests.java",
63+
"**UniqueIdTrackingListenerIntegrationTests.java",
64+
"**WorkerThreadPoolHierarchicalTestExecutorServiceTests.java",
65+
"**org/junit/jupiter/engine/bridge**",
66+
// trivial import fix.
67+
"**Assert**AssertionsTests.java",
68+
"**DynamicContainerTests.java",
69+
// legacy
70+
"**documentation/src/test/java/example**",
71+
"**testFixtures/java/org/junit/vintage/engine/samples**",
72+
)
73+
setExportDatatables(true)
74+
setFailOnDryRunResults(true)
75+
}

0 commit comments

Comments
 (0)