Skip to content

Commit 04a25de

Browse files
Refactored spotless to be in root script only.
1 parent 823cec6 commit 04a25de

File tree

95 files changed

+1282
-1617
lines changed

Some content is hidden

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

95 files changed

+1282
-1617
lines changed

.gitlab-ci.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -365,14 +365,11 @@ spotless:
365365
stage: tests
366366
needs: []
367367
variables:
368-
# TODO: Latest version of spotless is failing with OOM on CI only.
369-
# Setting 8G memory solving this issue, but we need to solve it eventually.
370-
GRADLE_MEM: 8G
371368
KUBERNETES_MEMORY_REQUEST: 18Gi
372369
KUBERNETES_MEMORY_LIMIT: 18Gi
373370
script:
374371
- ./gradlew --version
375-
- ./gradlew spotlessCheck $GRADLE_ARGS
372+
- ./gradlew spotlessCheck -no-daemon --parallel --max-workers=4
376373

377374
config-inversion-linter:
378375
extends: .gradle_build

build.gradle.kts

Lines changed: 93 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -25,37 +25,101 @@ val isCI = providers.environmentVariable("CI")
2525

2626
apply(from = rootDir.resolve("gradle/repositories.gradle"))
2727

28-
spotless {
29-
// only resolve the spotless dependencies once in the build
30-
predeclareDeps()
31-
}
32-
33-
with(extensions["spotlessPredeclare"] as SpotlessExtension) {
34-
// these need to align with the types and versions in gradle/spotless.gradle
35-
java {
36-
removeUnusedImports()
28+
// List of projects to exclude from processing by Spotless.
29+
val spotlessExcludedProjects = setOf(":dd-java-agent:agent-jmxfetch")
3730

38-
// This is the last Google Java Format version that supports Java 8
39-
googleJavaFormat("1.32.0")
40-
}
41-
groovyGradle {
42-
greclipse()
43-
}
44-
groovy {
45-
greclipse()
46-
}
47-
kotlinGradle {
48-
ktlint("1.8.0")
49-
}
50-
kotlin {
51-
ktlint("1.8.0")
31+
// Spotless applied per-module for parallel execution, configured centrally here.
32+
allprojects {
33+
if (path in spotlessExcludedProjects) {
34+
return@allprojects
5235
}
53-
scala {
54-
// TODO: For some reason Scala format is working correctly with this version only.
55-
scalafmt("3.8.6")
36+
37+
apply(plugin = "com.diffplug.spotless")
38+
39+
configure<SpotlessExtension> {
40+
if (rootProject.hasProperty("skipSpotless")) {
41+
isEnforceCheck = false
42+
}
43+
44+
pluginManager.withPlugin("java") {
45+
java {
46+
toggleOffOn()
47+
target("**/*.java")
48+
targetExclude("**/build/**", "**/src/test/resources/**")
49+
googleJavaFormat("1.32.0")
50+
}
51+
}
52+
53+
pluginManager.withPlugin("org.jetbrains.kotlin.jvm") {
54+
kotlin {
55+
toggleOffOn()
56+
target("**/*.kt")
57+
targetExclude("**/build/**", "**/src/test/resources/**")
58+
ktlint("1.8.0").editorConfigOverride(
59+
mapOf(
60+
"ktlint_standard_trailing-comma-on-call-site" to "disabled",
61+
"ktlint_standard_trailing-comma-on-declaration-site" to "disabled"
62+
)
63+
)
64+
}
65+
}
66+
67+
pluginManager.withPlugin("scala") {
68+
scala {
69+
toggleOffOn()
70+
target("**/*.scala")
71+
targetExclude("**/build/**", "**/src/test/resources/**")
72+
scalafmt("3.10.2").configFile("$rootDir/gradle/enforcement/spotless-scalafmt.conf")
73+
}
74+
}
75+
76+
pluginManager.withPlugin("groovy") {
77+
groovy {
78+
toggleOffOn()
79+
target("**/*.groovy")
80+
targetExclude("**/build/**", "**/src/test/resources/**")
81+
greclipse().configFile("$rootDir/gradle/enforcement/spotless-groovy.properties")
82+
}
83+
}
84+
85+
// Gradle files and other formats we process globally from root
86+
if (project == rootProject) {
87+
kotlinGradle {
88+
toggleOffOn()
89+
target("**/*.gradle.kts")
90+
targetExclude("**/build/**", "**/agent-jmxfetch/**")
91+
ktlint("1.8.0").editorConfigOverride(
92+
mapOf(
93+
"ktlint_standard_trailing-comma-on-call-site" to "disabled",
94+
"ktlint_standard_trailing-comma-on-declaration-site" to "disabled"
95+
)
96+
)
97+
}
98+
99+
groovyGradle {
100+
toggleOffOn()
101+
target("**/*.gradle")
102+
targetExclude("**/build/**", "**/agent-jmxfetch/**")
103+
greclipse().configFile("$rootDir/gradle/enforcement/spotless-groovy.properties")
104+
}
105+
106+
format("markdown") {
107+
toggleOffOn()
108+
target("*.md", ".github/**/*.md", "src/**/*.md", "application/**/*.md")
109+
leadingTabsToSpaces()
110+
endWithNewline()
111+
}
112+
113+
format("misc") {
114+
toggleOffOn()
115+
target(".gitignore", "*.sh", "tooling/*.sh", ".gitlab/*.sh")
116+
leadingTabsToSpaces()
117+
trimTrailingWhitespace()
118+
endWithNewline()
119+
}
120+
}
56121
}
57122
}
58-
apply(from = rootDir.resolve("gradle/spotless.gradle"))
59123

60124
val compileTask = tasks.register("compile")
61125

@@ -101,8 +165,8 @@ nexusPublishing {
101165
// For testing, use with https://hub.docker.com/r/sonatype/nexus
102166
// $ docker run --rm -d -p 8081:8081 --name nexus sonatype/nexus:oss
103167
// $ ./gradlew publishToLocal -PforceLocal=true
104-
// Doesn't work for testing releases though... (due to staging),
105-
// however, it's possible to explore http://localhost:8081/nexus/
168+
// Doesn"t work for testing releases though... (due to staging),
169+
// however, it"s possible to explore http://localhost:8081/nexus/
106170
register("local") {
107171
nexusUrl = uri("http://localhost:8081/nexus/content/repositories/releases/")
108172
snapshotRepositoryUrl = uri("http://localhost:8081/nexus/content/repositories/snapshots/")

buildSrc/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ plugins {
33
`java-gradle-plugin`
44
`kotlin-dsl`
55
`jvm-test-suite`
6-
id("com.diffplug.spotless") version "8.1.0"
76
}
87

98
java {

buildSrc/call-site-instrumentation-plugin/build.gradle.kts

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
plugins {
22
java
33
groovy
4-
id("com.diffplug.spotless") version "8.1.0"
54
id("com.gradleup.shadow") version "8.3.6"
65
}
76

@@ -10,17 +9,6 @@ java {
109
targetCompatibility = JavaVersion.VERSION_1_8
1110
}
1211

13-
spotless {
14-
java {
15-
toggleOffOn()
16-
// set explicit target to workaround https://github.com/diffplug/spotless/issues/1163
17-
target("src/**/*.java")
18-
// ignore embedded test projects
19-
targetExclude("src/test/resources/**")
20-
googleJavaFormat("1.32.0")
21-
}
22-
}
23-
2412
apply {
2513
from("$rootDir/../gradle/repositories.gradle")
2614
}

buildSrc/call-site-instrumentation-plugin/src/test/groovy/datadog/trace/plugin/csi/impl/AdviceGeneratorTest.groovy

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ final class AdviceGeneratorTest extends BaseCsiPluginTest {
5050
'handler.dupParameters(descriptor, StackDupMode.COPY);',
5151
'handler.advice("datadog/trace/plugin/csi/impl/AdviceGeneratorTest$BeforeAdvice", "before", "(Ljava/lang/String;)V");',
5252
'handler.method(opcode, owner, name, descriptor, isInterface);'
53-
)
53+
)
5454
}
5555
}
5656
}
@@ -59,7 +59,7 @@ final class AdviceGeneratorTest extends BaseCsiPluginTest {
5959
class AroundAdvice {
6060
@CallSite.Around('java.lang.String java.lang.String.replaceAll(java.lang.String, java.lang.String)')
6161
static String around(@CallSite.This final String self, @CallSite.Argument final String regexp, @CallSite.Argument final String replacement) {
62-
return self.replaceAll(regexp, replacement);
62+
return self.replaceAll(regexp, replacement)
6363
}
6464
}
6565

@@ -81,7 +81,7 @@ final class AdviceGeneratorTest extends BaseCsiPluginTest {
8181
pointcut('java/lang/String', 'replaceAll', '(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;')
8282
statements(
8383
'handler.advice("datadog/trace/plugin/csi/impl/AdviceGeneratorTest$AroundAdvice", "around", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;");'
84-
)
84+
)
8585
}
8686
}
8787
}
@@ -114,7 +114,7 @@ final class AdviceGeneratorTest extends BaseCsiPluginTest {
114114
'handler.dupInvoke(owner, descriptor, StackDupMode.COPY);',
115115
'handler.method(opcode, owner, name, descriptor, isInterface);',
116116
'handler.advice("datadog/trace/plugin/csi/impl/AdviceGeneratorTest$AfterAdvice", "after", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;");',
117-
)
117+
)
118118
}
119119
}
120120
}
@@ -146,7 +146,7 @@ final class AdviceGeneratorTest extends BaseCsiPluginTest {
146146
'handler.dupParameters(descriptor, StackDupMode.PREPEND_ARRAY_CTOR);',
147147
'handler.method(opcode, owner, name, descriptor, isInterface);',
148148
'handler.advice("datadog/trace/plugin/csi/impl/AdviceGeneratorTest$AfterAdviceCtor", "after", "([Ljava/lang/Object;Ljava/net/URL;)Ljava/net/URL;");',
149-
)
149+
)
150150
}
151151
}
152152
}
@@ -178,8 +178,8 @@ final class AdviceGeneratorTest extends BaseCsiPluginTest {
178178
@CallSite(spi = CallSites)
179179
class InvokeDynamicAfterAdvice {
180180
@CallSite.After(
181-
value = 'java.lang.invoke.CallSite java.lang.invoke.StringConcatFactory.makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup, java.lang.String, java.lang.invoke.MethodType, java.lang.String, java.lang.Object[])',
182-
invokeDynamic = true
181+
value = 'java.lang.invoke.CallSite java.lang.invoke.StringConcatFactory.makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup, java.lang.String, java.lang.invoke.MethodType, java.lang.String, java.lang.Object[])',
182+
invokeDynamic = true
183183
)
184184
static String after(@CallSite.AllArguments final Object[] arguments, @CallSite.Return final String result) {
185185
result
@@ -207,28 +207,28 @@ final class AdviceGeneratorTest extends BaseCsiPluginTest {
207207
'java/lang/invoke/StringConcatFactory',
208208
'makeConcatWithConstants',
209209
'(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;'
210-
)
210+
)
211211
statements(
212212
'handler.dupParameters(descriptor, StackDupMode.PREPEND_ARRAY);',
213213
'handler.invokeDynamic(name, descriptor, bootstrapMethodHandle, bootstrapMethodArguments);',
214214
'handler.advice("datadog/trace/plugin/csi/impl/AdviceGeneratorTest$InvokeDynamicAfterAdvice", "after", "([Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String;");'
215-
)
215+
)
216216
}
217217
}
218218
}
219219

220220
@CallSite(spi = CallSites)
221221
class InvokeDynamicAroundAdvice {
222222
@CallSite.Around(
223-
value = 'java.lang.invoke.CallSite java.lang.invoke.StringConcatFactory.makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup, java.lang.String, java.lang.invoke.MethodType, java.lang.String, java.lang.Object[])',
224-
invokeDynamic = true
223+
value = 'java.lang.invoke.CallSite java.lang.invoke.StringConcatFactory.makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup, java.lang.String, java.lang.invoke.MethodType, java.lang.String, java.lang.Object[])',
224+
invokeDynamic = true
225225
)
226226
static java.lang.invoke.CallSite around(@CallSite.Argument final MethodHandles.Lookup lookup,
227-
@CallSite.Argument final String name,
228-
@CallSite.Argument final MethodType concatType,
229-
@CallSite.Argument final String recipe,
230-
@CallSite.Argument final Object... constants) {
231-
return null;
227+
@CallSite.Argument final String name,
228+
@CallSite.Argument final MethodType concatType,
229+
@CallSite.Argument final String recipe,
230+
@CallSite.Argument final Object... constants) {
231+
return null
232232
}
233233
}
234234

@@ -253,24 +253,24 @@ final class AdviceGeneratorTest extends BaseCsiPluginTest {
253253
'java/lang/invoke/StringConcatFactory',
254254
'makeConcatWithConstants',
255255
'(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;'
256-
)
256+
)
257257
statements(
258258
'handler.invokeDynamic(name, descriptor, new Handle(Opcodes.H_INVOKESTATIC, "datadog/trace/plugin/csi/impl/AdviceGeneratorTest$InvokeDynamicAroundAdvice", "around", "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;", false), bootstrapMethodArguments);',
259-
)
259+
)
260260
}
261261
}
262262
}
263263

264264
@CallSite(spi = CallSites)
265265
class InvokeDynamicWithConstantsAdvice {
266266
@CallSite.After(
267-
value = 'java.lang.invoke.CallSite java.lang.invoke.StringConcatFactory.makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup, java.lang.String, java.lang.invoke.MethodType, java.lang.String, java.lang.Object[])',
268-
invokeDynamic = true
267+
value = 'java.lang.invoke.CallSite java.lang.invoke.StringConcatFactory.makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup, java.lang.String, java.lang.invoke.MethodType, java.lang.String, java.lang.Object[])',
268+
invokeDynamic = true
269269
)
270270
static String after(@CallSite.AllArguments final Object[] arguments,
271-
@CallSite.Return final String result,
272-
@CallSite.InvokeDynamicConstants final Object[] constants) {
273-
return result;
271+
@CallSite.Return final String result,
272+
@CallSite.InvokeDynamicConstants final Object[] constants) {
273+
return result
274274
}
275275
}
276276

@@ -295,13 +295,13 @@ final class AdviceGeneratorTest extends BaseCsiPluginTest {
295295
'java/lang/invoke/StringConcatFactory',
296296
'makeConcatWithConstants',
297297
'(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;'
298-
)
298+
)
299299
statements(
300300
'handler.dupParameters(descriptor, StackDupMode.PREPEND_ARRAY);',
301301
'handler.invokeDynamic(name, descriptor, bootstrapMethodHandle, bootstrapMethodArguments);',
302302
'handler.loadConstantArray(bootstrapMethodArguments);',
303303
'handler.advice("datadog/trace/plugin/csi/impl/AdviceGeneratorTest$InvokeDynamicWithConstantsAdvice", "after", "([Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;");'
304-
)
304+
)
305305
}
306306
}
307307
}
@@ -398,7 +398,7 @@ final class AdviceGeneratorTest extends BaseCsiPluginTest {
398398
'handler.dupParameters(descriptor, parameterIndices, owner);',
399399
'handler.advice("datadog/trace/plugin/csi/impl/AdviceGeneratorTest$PartialArgumentsBeforeAdvice", "before", "(Ljava/lang/String;)V");',
400400
'handler.method(opcode, owner, name, descriptor, isInterface);',
401-
)
401+
)
402402
}
403403
advices(1) {
404404
pointcut('java/lang/String', 'format', '(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;')
@@ -407,7 +407,7 @@ final class AdviceGeneratorTest extends BaseCsiPluginTest {
407407
'handler.dupParameters(descriptor, parameterIndices, null);',
408408
'handler.advice("datadog/trace/plugin/csi/impl/AdviceGeneratorTest$PartialArgumentsBeforeAdvice", "before", "([Ljava/lang/Object;)V");',
409409
'handler.method(opcode, owner, name, descriptor, isInterface);',
410-
)
410+
)
411411
}
412412
advices(2) {
413413
pointcut('java/lang/String', 'subSequence', '(II)Ljava/lang/CharSequence;')
@@ -416,7 +416,7 @@ final class AdviceGeneratorTest extends BaseCsiPluginTest {
416416
'handler.dupInvoke(owner, descriptor, parameterIndices);',
417417
'handler.advice("datadog/trace/plugin/csi/impl/AdviceGeneratorTest$PartialArgumentsBeforeAdvice", "before", "(Ljava/lang/String;I)V");',
418418
'handler.method(opcode, owner, name, descriptor, isInterface);',
419-
)
419+
)
420420
}
421421
}
422422
}
@@ -448,7 +448,7 @@ final class AdviceGeneratorTest extends BaseCsiPluginTest {
448448
'handler.method(opcode, owner, name, descriptor, isInterface);',
449449
'handler.advice("datadog/trace/plugin/csi/impl/AdviceGeneratorTest$SuperTypeReturnAdvice", "after", "([Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");',
450450
'handler.instruction(Opcodes.CHECKCAST, "java/lang/StringBuilder");'
451-
)
451+
)
452452
}
453453
}
454454
}
@@ -501,7 +501,7 @@ final class AdviceGeneratorTest extends BaseCsiPluginTest {
501501
'handler.dupInvoke(owner, descriptor, StackDupMode.COPY);',
502502
'handler.method(opcode, owner, name, descriptor, isInterface);',
503503
'handler.advice("datadog/trace/plugin/csi/impl/AdviceGeneratorTest$AfterAdviceWithVoidReturn", "after", "(Ljava/lang/StringBuilder;I)V");',
504-
)
504+
)
505505
}
506506
}
507507
}

buildSrc/call-site-instrumentation-plugin/src/test/groovy/datadog/trace/plugin/csi/impl/AdviceSpecificationTest.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -548,7 +548,7 @@ class AdviceSpecificationTest extends BaseCsiPluginTest {
548548
class AfterWithVoidWrongAdvice {
549549
@CallSite.After("void java.lang.String.getChars(int, int, char[], int)")
550550
static String after(@CallSite.AllArguments final Object[] args, @CallSite.Return final String result) {
551-
return result;
551+
return result
552552
}
553553
}
554554

0 commit comments

Comments
 (0)