Skip to content

Commit 9e3ab10

Browse files
Merge pull request #178 from SpineEventEngine/bump-protodata-and-mc-java
Bump ProtoData and McJava
2 parents 932e2ca + 7574c9a commit 9e3ab10

File tree

8 files changed

+67
-56
lines changed

8 files changed

+67
-56
lines changed

buildSrc/src/main/kotlin/io/spine/dependency/local/McJava.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,12 @@ object McJava {
4242
/**
4343
* The version used to in the build classpath.
4444
*/
45-
const val dogfoodingVersion = "2.0.0-SNAPSHOT.259"
45+
const val dogfoodingVersion = "2.0.0-SNAPSHOT.262"
4646

4747
/**
4848
* The version to be used for integration tests.
4949
*/
50-
const val version = "2.0.0-SNAPSHOT.259"
50+
const val version = "2.0.0-SNAPSHOT.262"
5151

5252
/**
5353
* The ID of the Gradle plugin.

buildSrc/src/main/kotlin/io/spine/dependency/local/ProtoData.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ object ProtoData {
7373
* The version of ProtoData dependencies.
7474
*/
7575
val version: String
76-
private const val fallbackVersion = "0.80.5"
76+
private const val fallbackVersion = "0.90.1"
7777

7878
/**
7979
* The distinct version of ProtoData used by other build tools.
@@ -82,7 +82,7 @@ object ProtoData {
8282
* transitional dependencies, this is the version used to build the project itself.
8383
*/
8484
val dogfoodingVersion: String
85-
private const val fallbackDfVersion = "0.80.5"
85+
private const val fallbackDfVersion = "0.90.1"
8686

8787
/**
8888
* The artifact for the ProtoData Gradle plugin.

dependencies.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -848,7 +848,7 @@
848848

849849
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
850850

851-
This report was generated on **Tue Dec 24 20:20:40 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
851+
This report was generated on **Sat Jan 04 17:50:08 WET 2025** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
852852

853853

854854

@@ -1448,7 +1448,7 @@ This report was generated on **Tue Dec 24 20:20:40 CET 2024** using [Gradle-Lice
14481448

14491449
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
14501450

1451-
This report was generated on **Tue Dec 24 20:20:40 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
1451+
This report was generated on **Sat Jan 04 17:50:08 WET 2025** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
14521452

14531453

14541454

@@ -2110,7 +2110,7 @@ This report was generated on **Tue Dec 24 20:20:40 CET 2024** using [Gradle-Lice
21102110

21112111
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
21122112

2113-
This report was generated on **Tue Dec 24 20:20:41 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
2113+
This report was generated on **Sat Jan 04 17:50:08 WET 2025** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
21142114

21152115

21162116

@@ -3031,7 +3031,7 @@ This report was generated on **Tue Dec 24 20:20:41 CET 2024** using [Gradle-Lice
30313031

30323032
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
30333033

3034-
This report was generated on **Tue Dec 24 20:20:43 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
3034+
This report was generated on **Sat Jan 04 17:50:08 WET 2025** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
30353035

30363036

30373037

@@ -3895,7 +3895,7 @@ This report was generated on **Tue Dec 24 20:20:43 CET 2024** using [Gradle-Lice
38953895

38963896
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
38973897

3898-
This report was generated on **Tue Dec 24 20:20:43 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
3898+
This report was generated on **Sat Jan 04 17:50:09 WET 2025** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
38993899

39003900

39013901

@@ -4785,7 +4785,7 @@ This report was generated on **Tue Dec 24 20:20:43 CET 2024** using [Gradle-Lice
47854785

47864786
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
47874787

4788-
This report was generated on **Tue Dec 24 20:20:44 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
4788+
This report was generated on **Sat Jan 04 17:50:09 WET 2025** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
47894789

47904790

47914791

@@ -5657,7 +5657,7 @@ This report was generated on **Tue Dec 24 20:20:44 CET 2024** using [Gradle-Lice
56575657

56585658
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
56595659

5660-
This report was generated on **Tue Dec 24 20:20:44 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
5660+
This report was generated on **Sat Jan 04 17:50:09 WET 2025** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
56615661

56625662

56635663

@@ -6410,7 +6410,7 @@ This report was generated on **Tue Dec 24 20:20:44 CET 2024** using [Gradle-Lice
64106410

64116411
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
64126412

6413-
This report was generated on **Tue Dec 24 20:20:45 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
6413+
This report was generated on **Sat Jan 04 17:50:09 WET 2025** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
64146414

64156415

64166416

@@ -7308,7 +7308,7 @@ This report was generated on **Tue Dec 24 20:20:45 CET 2024** using [Gradle-Lice
73087308

73097309
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
73107310

7311-
This report was generated on **Tue Dec 24 20:20:45 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
7311+
This report was generated on **Sat Jan 04 17:50:10 WET 2025** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
73127312

73137313

73147314

@@ -8064,7 +8064,7 @@ This report was generated on **Tue Dec 24 20:20:45 CET 2024** using [Gradle-Lice
80648064

80658065
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
80668066

8067-
This report was generated on **Tue Dec 24 20:20:46 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
8067+
This report was generated on **Sat Jan 04 17:50:10 WET 2025** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
80688068

80698069

80708070

@@ -8824,7 +8824,7 @@ This report was generated on **Tue Dec 24 20:20:46 CET 2024** using [Gradle-Lice
88248824

88258825
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
88268826

8827-
This report was generated on **Tue Dec 24 20:20:46 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
8827+
This report was generated on **Sat Jan 04 17:50:10 WET 2025** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
88288828

88298829

88308830

@@ -9575,7 +9575,7 @@ This report was generated on **Tue Dec 24 20:20:46 CET 2024** using [Gradle-Lice
95759575

95769576
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
95779577

9578-
This report was generated on **Tue Dec 24 20:20:47 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
9578+
This report was generated on **Sat Jan 04 17:50:10 WET 2025** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
95799579

95809580

95819581

@@ -10449,7 +10449,7 @@ This report was generated on **Tue Dec 24 20:20:47 CET 2024** using [Gradle-Lice
1044910449

1045010450
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
1045110451

10452-
This report was generated on **Tue Dec 24 20:20:47 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
10452+
This report was generated on **Sat Jan 04 17:50:10 WET 2025** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
1045310453

1045410454

1045510455

@@ -11323,4 +11323,4 @@ This report was generated on **Tue Dec 24 20:20:47 CET 2024** using [Gradle-Lice
1132311323

1132411324
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
1132511325

11326-
This report was generated on **Tue Dec 24 20:20:48 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
11326+
This report was generated on **Sat Jan 04 17:50:11 WET 2025** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).

java-tests/consumer/build.gradle.kts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,7 @@
2626

2727
import io.spine.dependency.local.TestLib
2828
import io.spine.dependency.local.Time
29-
import io.spine.protodata.gradle.plugin.CreateSettingsDirectory
3029
import io.spine.protodata.gradle.plugin.LaunchProtoData
31-
import io.spine.util.theOnly
3230

3331
protoData {
3432
plugins(
@@ -39,14 +37,11 @@ protoData {
3937
)
4038
}
4139

42-
val settingsDirTask: CreateSettingsDirectory = tasks.withType<CreateSettingsDirectory>().theOnly()
43-
4440
val copySettings by tasks.registering(Copy::class) {
4541
from(project.layout.projectDirectory.file(
4642
"io.spine.validation.java.JavaValidationPlugin.pb.json")
4743
)
48-
into(settingsDirTask.settingsDir.get())
49-
dependsOn(settingsDirTask)
44+
into(project.layout.buildDirectory.dir("protodata/settings"))
5045
}
5146

5247
tasks.withType<LaunchProtoData>().configureEach {

model/src/test/kotlin/io/spine/validation/PolicySpec.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ import io.spine.protodata.ast.typeName
5151
import io.spine.protodata.backend.CodeGenerationContext
5252
import io.spine.protodata.backend.Pipeline
5353
import io.spine.protodata.plugin.applyTo
54+
import io.spine.protodata.protobuf.ProtoFileList
5455
import io.spine.protodata.type.TypeSystem
5556
import io.spine.testing.server.blackbox.BlackBox
5657
import io.spine.validation.ComparisonOperator.GREATER_OR_EQUAL
@@ -82,7 +83,10 @@ class PolicySpec {
8283

8384
@BeforeEach
8485
fun prepareBlackBox() {
85-
val typeSystem = TypeSystem(emptySet())
86+
val typeSystem = TypeSystem(
87+
ProtoFileList(emptyList()),
88+
emptySet()
89+
)
8690
val plugin = ValidationPlugin()
8791
codegenContext = CodeGenerationContext(Pipeline.generateId(), typeSystem) {
8892
// Mimic what a `Pipeline` does to its plugins.

model/src/test/kotlin/io/spine/validation/required/RequiredPolicySpec.kt

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -46,45 +46,39 @@ import org.junit.jupiter.api.io.TempDir
4646
internal class RequiredPolicySpec {
4747

4848
@Test
49-
fun `reject option on a boolean field`(@TempDir outputDir: Path, @TempDir settingsDir: Path) {
49+
fun `reject option on a boolean field`(@TempDir workingDir: Path) {
5050
val message = WithBoolField.getDescriptor()
51-
val error = compile(message, outputDir, settingsDir)
51+
val error = compile(message, workingDir)
5252

5353
val field = message.field("really")
5454
val expected = fieldDoesNotSupportRequired(field)
5555
error.message shouldContain expected
5656
}
5757

5858
@Test
59-
fun `reject option on an integer field`(@TempDir outputDir: Path, @TempDir settingsDir: Path) {
59+
fun `reject option on an integer field`(@TempDir workingDir: Path) {
6060
val message = WithIntField.getDescriptor()
61-
val error = compile(message, outputDir, settingsDir)
61+
val error = compile(message, workingDir)
6262

6363
val field = message.field("zero")
6464
val expected = fieldDoesNotSupportRequired(field)
6565
error.message shouldContain expected
6666
}
6767

6868
@Test
69-
fun `reject option on a signed integer field`(
70-
@TempDir outputDir: Path,
71-
@TempDir settingsDir: Path
72-
) {
69+
fun `reject option on a signed integer field`(@TempDir workingDir: Path) {
7370
val message = WithSignedInt.getDescriptor()
74-
val error = compile(message, outputDir, settingsDir)
71+
val error = compile(message, workingDir)
7572

7673
val field = message.field("signed")
7774
val expected = fieldDoesNotSupportRequired(field)
7875
error.message shouldContain expected
7976
}
8077

8178
@Test
82-
fun `reject option on a double field`(
83-
@TempDir outputDir: Path,
84-
@TempDir settingsDir: Path
85-
) {
79+
fun `reject option on a double field`(@TempDir workingDir: Path) {
8680
val message = WithDoubleField.getDescriptor()
87-
val error = compile(message, outputDir, settingsDir)
81+
val error = compile(message, workingDir)
8882

8983
val field = message.field("temperature")
9084
val expected = fieldDoesNotSupportRequired(field)
@@ -96,10 +90,9 @@ internal class RequiredPolicySpec {
9690
*/
9791
private fun compile(
9892
descriptor: Descriptor,
99-
outputDir: Path,
100-
settingsDir: Path
93+
workingDir: Path
10194
): Compilation.Error {
102-
val fixture = ValidationTestFixture(descriptor, outputDir, settingsDir)
95+
val fixture = ValidationTestFixture(descriptor, workingDir)
10396
val pipeline = fixture.setup.createPipeline()
10497
val error = assertThrows<Compilation.Error> {
10598
// Redirect console output so that we don't print errors during the build.

model/src/testFixtures/kotlin/io/spine/validation/ValidationTestFixture.kt

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,17 @@ import com.google.protobuf.Descriptors.GenericDescriptor
3030
import io.spine.option.OptionsProto
3131
import io.spine.protodata.ast.filePattern
3232
import io.spine.protodata.backend.DescriptorFilter
33+
import io.spine.protodata.params.WorkingDirectory
3334
import io.spine.protodata.plugin.Plugin
34-
import io.spine.protodata.settings.Format
35+
import io.spine.protodata.util.Format
3536
import io.spine.protodata.settings.SettingsDirectory
3637
import io.spine.protodata.settings.defaultConsumerId
3738
import io.spine.protodata.testing.PipelineSetup
3839
import io.spine.protodata.testing.PipelineSetup.Companion.byResources
40+
import io.spine.protodata.testing.pipelineParams
41+
import io.spine.protodata.testing.withRequestFile
42+
import io.spine.protodata.testing.withSettingsDir
43+
import io.spine.tools.code.SourceSetName
3944
import java.nio.file.Path
4045

4146
/**
@@ -44,14 +49,28 @@ import java.nio.file.Path
4449
*/
4550
class ValidationTestFixture(
4651
descriptor: GenericDescriptor,
47-
outputDir: Path,
48-
settingsDir: Path,
52+
workingDir: Path,
4953
plugin: Plugin = ValidationPlugin()
5054
) {
51-
val setup: PipelineSetup =
52-
byResources(listOf(plugin), outputDir, settingsDir, acceptingOnly(descriptor)) {
55+
val setup: PipelineSetup
56+
57+
init {
58+
val wd = WorkingDirectory(workingDir)
59+
val outputDir = workingDir.resolve("output")
60+
outputDir.toFile().mkdirs()
61+
val params = pipelineParams {
62+
withRequestFile(wd.requestDirectory.file(SourceSetName("testFixtures")))
63+
withSettingsDir(wd.settingsDirectory.path)
64+
}
65+
setup = byResources(
66+
params,
67+
listOf(plugin),
68+
outputDir,
69+
acceptingOnly(descriptor)) {
5370
writeSettings(it)
5471
}
72+
}
73+
5574

5675
private fun acceptingOnly(descriptor: GenericDescriptor): DescriptorFilter =
5776
{ it.fullName == descriptor.fullName }

pom.xml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,13 @@ all modules and does not describe the project structure per-subproject.
7474
<dependency>
7575
<groupId>io.spine.protodata</groupId>
7676
<artifactId>protodata-backend</artifactId>
77-
<version>0.80.5</version>
77+
<version>0.90.1</version>
7878
<scope>compile</scope>
7979
</dependency>
8080
<dependency>
8181
<groupId>io.spine.protodata</groupId>
8282
<artifactId>protodata-java</artifactId>
83-
<version>0.80.5</version>
83+
<version>0.90.1</version>
8484
<scope>compile</scope>
8585
</dependency>
8686
<dependency>
@@ -134,13 +134,13 @@ all modules and does not describe the project structure per-subproject.
134134
<dependency>
135135
<groupId>io.spine.protodata</groupId>
136136
<artifactId>protodata-api</artifactId>
137-
<version>0.80.5</version>
137+
<version>0.90.1</version>
138138
<scope>test</scope>
139139
</dependency>
140140
<dependency>
141141
<groupId>io.spine.protodata</groupId>
142142
<artifactId>protodata-testlib</artifactId>
143-
<version>0.80.5</version>
143+
<version>0.90.1</version>
144144
<scope>test</scope>
145145
</dependency>
146146
<dependency>
@@ -239,12 +239,12 @@ all modules and does not describe the project structure per-subproject.
239239
<dependency>
240240
<groupId>io.spine.protodata</groupId>
241241
<artifactId>protodata-fat-cli</artifactId>
242-
<version>0.80.5</version>
242+
<version>0.90.1</version>
243243
</dependency>
244244
<dependency>
245245
<groupId>io.spine.protodata</groupId>
246246
<artifactId>protodata-protoc</artifactId>
247-
<version>0.80.5</version>
247+
<version>0.90.1</version>
248248
</dependency>
249249
<dependency>
250250
<groupId>io.spine.tools</groupId>
@@ -259,18 +259,18 @@ all modules and does not describe the project structure per-subproject.
259259
<dependency>
260260
<groupId>io.spine.tools</groupId>
261261
<artifactId>spine-mc-java-checks</artifactId>
262-
<version>2.0.0-SNAPSHOT.259</version>
262+
<version>2.0.0-SNAPSHOT.262</version>
263263
<scope>provided</scope>
264264
</dependency>
265265
<dependency>
266266
<groupId>io.spine.tools</groupId>
267267
<artifactId>spine-mc-java-plugins</artifactId>
268-
<version>2.0.0-SNAPSHOT.259</version>
268+
<version>2.0.0-SNAPSHOT.262</version>
269269
</dependency>
270270
<dependency>
271271
<groupId>io.spine.validation</groupId>
272272
<artifactId>spine-validation-java-bundle</artifactId>
273-
<version>2.0.0-SNAPSHOT.177</version>
273+
<version>2.0.0-SNAPSHOT.182</version>
274274
</dependency>
275275
<dependency>
276276
<groupId>net.sourceforge.pmd</groupId>

0 commit comments

Comments
 (0)