Skip to content

Commit 15f2b5d

Browse files
committed
conditionally include jspecify dependencies
1 parent d2faaac commit 15f2b5d

5 files changed

Lines changed: 29 additions & 21 deletions

File tree

modules/openapi-generator/src/main/resources/Java/libraries/restclient/pom.mustache

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,13 +319,15 @@
319319
<version>${jakarta-annotation-version}</version>
320320
<scope>provided</scope>
321321
</dependency>
322+
{{^useSpringBoot4}}
322323
{{#useJspecify}}
323324
<dependency>
324325
<groupId>org.jspecify</groupId>
325326
<artifactId>jspecify</artifactId>
326327
<version>1.0.0</version>
327328
</dependency>
328329
{{/useJspecify}}
330+
{{/useSpringBoot4}}
329331

330332
<!-- test dependencies -->
331333
<dependency>

modules/openapi-generator/src/main/resources/Java/libraries/webclient/pom.mustache

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,13 +162,15 @@
162162
<version>${jakarta-annotation-version}</version>
163163
<scope>provided</scope>
164164
</dependency>
165+
{{^useSpringBoot4}}
165166
{{#useJspecify}}
166167
<dependency>
167168
<groupId>org.jspecify</groupId>
168169
<artifactId>jspecify</artifactId>
169170
<version>1.0.0</version>
170171
</dependency>
171172
{{/useJspecify}}
173+
{{/useSpringBoot4}}
172174

173175
<!-- test dependencies -->
174176
<dependency>

modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4249,30 +4249,43 @@ public void testRestClientMultipartFormParamsGuardAgainstEmptyLists() {
42494249
@DataProvider(name = "jspecifyLibraries")
42504250
public Object[][] jspecifyLibraries() {
42514251
return new Object[][]{
4252-
{"restclient"},
4253-
{"webclient"},
4254-
{"resttemplate"},
4255-
{"native"}
4252+
{"restclient", false, true},
4253+
{"restclient", true, false},
4254+
{"webclient", false, true},
4255+
{"webclient", true, false},
4256+
{"resttemplate", false, true},
4257+
{"resttemplate", true, true},
4258+
{"native", false, true}
42564259
};
42574260
}
42584261

42594262
@Test(dataProvider = "jspecifyLibraries")
4260-
public void testJspecify(String library) throws IOException {
4263+
public void testJspecify(String library, Boolean useSpringBoot4, boolean hasJspecifyDependency) throws IOException {
42614264
final Map<String, File> files = generateFromContract("src/test/resources/3_0/java/jspecify.yaml", library,
42624265
Map.of(USE_JSPECIFY, true,
4263-
"containerDefaultToNull", true
4266+
"containerDefaultToNull", true,
4267+
USE_SPRING_BOOT4, useSpringBoot4
42644268
),
42654269
codegenConfigurator ->
42664270
codegenConfigurator
42674271
.setValidateSpec(false)
42684272
.addTypeMapping("OffsetDateTime", "java.time.Instant")
42694273
.addTypeMapping("BigDecimal", "java.math.BigDecimal"));
42704274

4271-
assertThat(files.get("pom.xml")).content()
4272-
.contains(
4273-
"<groupId>org.jspecify</groupId>",
4274-
"<artifactId>jspecify</artifactId>",
4275-
"<version>1.0.0</version>");
4275+
if (hasJspecifyDependency) {
4276+
assertThat(files.get("build.gradle")).content()
4277+
.contains("implementation \"org.jspecify:jspecify:1.0.0\"");
4278+
assertThat(files.get("pom.xml")).content()
4279+
.contains(
4280+
"<groupId>org.jspecify</groupId>",
4281+
"<artifactId>jspecify</artifactId>",
4282+
"<version>1.0.0</version>");
4283+
} else {
4284+
assertThat(files.get("build.gradle")).content()
4285+
.doesNotContain("org.jspecify");
4286+
assertThat(files.get("pom.xml")).content()
4287+
.doesNotContain("org.jspecify");
4288+
}
42764289
JavaFileAssert.assertThat(files.get("Foo.java"))
42774290
.fileContains(
42784291
"import org.jspecify.annotations.Nullable;",
@@ -4297,5 +4310,6 @@ public void testJspecify(String library) throws IOException {
42974310
.fileContains("@org.jspecify.annotations.NullMarked");
42984311
JavaFileAssert.assertThat(files.get("client/package-info.java"))
42994312
.fileContains("@org.jspecify.annotations.NullMarked");
4313+
43004314
}
43014315
}

samples/client/petstore/java/restclient-springBoot4-jackson3-jspecify/pom.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -241,11 +241,6 @@
241241
<version>${jakarta-annotation-version}</version>
242242
<scope>provided</scope>
243243
</dependency>
244-
<dependency>
245-
<groupId>org.jspecify</groupId>
246-
<artifactId>jspecify</artifactId>
247-
<version>1.0.0</version>
248-
</dependency>
249244

250245
<!-- test dependencies -->
251246
<dependency>

samples/client/petstore/java/webclient-springBoot4-jackson3-jspecify/pom.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -109,11 +109,6 @@
109109
<version>${jakarta-annotation-version}</version>
110110
<scope>provided</scope>
111111
</dependency>
112-
<dependency>
113-
<groupId>org.jspecify</groupId>
114-
<artifactId>jspecify</artifactId>
115-
<version>1.0.0</version>
116-
</dependency>
117112

118113
<!-- test dependencies -->
119114
<dependency>

0 commit comments

Comments
 (0)