Skip to content

Commit 0ef46a4

Browse files
authored
chore: openapi-generator 7.20.0 upgrade - Spring Boot 4, Jackson 3 (#1233)
* move project to baseline standard openapi-generator with version 7.20.0 to allow future updates * remove obsolete features * update default templates to support remaining functionality
1 parent 23cc3b2 commit 0ef46a4

391 files changed

Lines changed: 16300 additions & 4762 deletions

File tree

Some content is hidden

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

README.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,16 @@ It currently consists of
1616
# Release Notes
1717
BOAT is still under development and subject to change.
1818

19+
## 0.18.0
20+
* openapi-generator `7.20.0` baseline (Spring Boot 4, Jackson 3)
21+
* moved Java and JavaSpring templates to `7.20.0` adding remaing custom features
22+
* removed custom `createApiComponent` in favor of the standard `generateClientAsBean` with default set to `true`
23+
* removed custom `useLombokAnnotations` in favor of built-in `lombokAnnotation` template
24+
* removed custom `useClassLevelBeanValidation` in favor of the standard `useSpringBuiltInValidation` property
25+
* removed custom `useWithModifiers`, fluent setters already included in generated classes (property name methods)
26+
* removed unused `useProtectedFields` property
27+
* removed unused `useDefaultApiClient` property
28+
1929
## 0.17.75
2030
* Fixed duplicate serialization of the discriminator property in Jackson-based Java models by removing allowGetters = true from the @JsonIgnoreProperties annotation.
2131
* In Spring generator added support for type-level validation in collections via the `x-not-null` vendor extension to allow `@NotNull` annotations on generic type arguments.
@@ -725,7 +735,6 @@ For the `spring` generator, the additional configuration options are:
725735
| `useTags` | use tags for creating interface and controller classnames (Default: false) |
726736
| `useBeanValidation` | Use BeanValidation API annotations (Default: true) |
727737
| `performBeanValidation` | Use Bean Validation Impl. to perform BeanValidation (Default: false) |
728-
| `useClassLevelBeanValidation` | Adds @Validated annotation to API interfaces (Default: false) |
729738
| `useLombokAnnotations` | Use Lombok annotations to generate properties accessors and `hashCode`/`equals` methods (Default: false) |
730739
| `addServletRequest` | Adds ServletRequest objects to API method definitions (Default: false) |
731740
| `addBindingResult` | Adds BindingResult to Api method definitions' request bodies if UseBeanValidation true, for this to be effective you must configure UseBeanValidation, this is not done automatically (Default: false)|

boat-engine/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>com.backbase.oss</groupId>
77
<artifactId>backbase-openapi-tools</artifactId>
8-
<version>0.17.75-SNAPSHOT</version>
8+
<version>0.18.0-SNAPSHOT</version>
99
</parent>
1010
<artifactId>boat-engine</artifactId>
1111
<packaging>jar</packaging>

boat-maven-plugin/README.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ Same with `generate` but with opinionated defaults for Spring
3737
<interfaceOnly>true</interfaceOnly>
3838
<skipDefaultInterface>true</skipDefaultInterface>
3939
<useBeanValidation>true</useBeanValidation>
40-
<useClassLevelBeanValidation>false</useClassLevelBeanValidation>
4140
<useTags>true</useTags>
4241
<java8>true</java8>
4342
<useOptional>false</useOptional>
@@ -78,7 +77,6 @@ It will generate webhook interfaces with prehook and posthook request mapping fo
7877
<interfaceOnly>true</interfaceOnly>
7978
<skipDefaultInterface>true</skipDefaultInterface>
8079
<useBeanValidation>true</useBeanValidation>
81-
<useClassLevelBeanValidation>false</useClassLevelBeanValidation>
8280
<useTags>true</useTags>
8381
<java8>true</java8>
8482
<useOptional>false</useOptional>
@@ -108,7 +106,6 @@ Same with `generate` but with opinionated defaults for Rest Template Client
108106
<interfaceOnly>true</interfaceOnly>
109107
<skipDefaultInterface>true</skipDefaultInterface>
110108
<useBeanValidation>true</useBeanValidation>
111-
<useClassLevelBeanValidation>false</useClassLevelBeanValidation>
112109
<useTags>true</useTags>
113110
<java8>true</java8>
114111
<useOptional>false</useOptional>
@@ -122,7 +119,7 @@ Same with `generate` but with opinionated defaults for Rest Template Client
122119
<configuration>
123120
...
124121
<additionalProperties>
125-
<additionalProperty>createApiComponent=false</additionalProperty>
122+
<additionalProperty>restTemplateBeanName=interServiceRestTemplate</additionalProperty>
126123
</additionalProperties>
127124
</configuration>
128125

@@ -198,7 +195,6 @@ Same with `generate` but with opinionated defaults for Web Client
198195
<interfaceOnly>true</interfaceOnly>
199196
<skipDefaultInterface>true</skipDefaultInterface>
200197
<useBeanValidation>true</useBeanValidation>
201-
<useClassLevelBeanValidation>false</useClassLevelBeanValidation>
202198
<useTags>true</useTags>
203199
<java8>true</java8>
204200
<useOptional>false</useOptional>

boat-maven-plugin/pom.xml

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>com.backbase.oss</groupId>
77
<artifactId>backbase-openapi-tools</artifactId>
8-
<version>0.17.75-SNAPSHOT</version>
8+
<version>0.18.0-SNAPSHOT</version>
99
</parent>
1010
<artifactId>boat-maven-plugin</artifactId>
1111

@@ -53,6 +53,18 @@
5353
<groupId>org.openapitools.openapidiff</groupId>
5454
<artifactId>openapi-diff-core</artifactId>
5555
<version>2.1.7</version>
56+
<exclusions>
57+
<!-- Avoid loading Apache HttpClient in plugin realm to prevent
58+
ClassRealm conflicts with Maven's own transport stack. -->
59+
<exclusion>
60+
<groupId>org.apache.httpcomponents</groupId>
61+
<artifactId>httpclient</artifactId>
62+
</exclusion>
63+
<exclusion>
64+
<groupId>org.apache.httpcomponents</groupId>
65+
<artifactId>httpcore</artifactId>
66+
</exclusion>
67+
</exclusions>
5668
</dependency>
5769

5870
<dependency>
@@ -360,7 +372,7 @@
360372
<plugin>
361373
<groupId>com.backbase.oss</groupId>
362374
<artifactId>boat-maven-plugin</artifactId>
363-
<version>0.17.50</version>
375+
<version>0.17.74</version>
364376
<executions>
365377
<execution>
366378
<goals>

boat-maven-plugin/src/it/example/boat-generate/java-clients/java/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<name>BOAT :: Generate :: Java Client</name>
1616

1717
<properties>
18-
<boat-maven-plugin.supportingFilesToGenerate>ApiClient.java,BeanValidationException.java,RFC3339DateFormat.java,ServerConfiguration.java,ServerVariable.java,StringUtil.java,Authentication.java,HttpBasicAuth.java,HttpBearerAuth.java,ApiKeyAuth.java,ApiException.java,Pair.java,ApiResponse.java,JavaTimeFormatter.java</boat-maven-plugin.supportingFilesToGenerate>
18+
<boat-maven-plugin.supportingFilesToGenerate>ApiClient.java,BeanValidationException.java,RFC3339DateFormat.java,ServerConfiguration.java,ServerVariable.java,StringUtil.java,Authentication.java,HttpBasicAuth.java,HttpBearerAuth.java,ApiKeyAuth.java,ApiException.java,Pair.java,ApiResponse.java,JavaTimeFormatter.java,RFC3339JavaTimeModule.java,Configuration.java,RFC3339InstantDeserializer.java,JSON.java,AbstractOpenApiSchema.java</boat-maven-plugin.supportingFilesToGenerate>
1919
</properties>
2020

2121
<dependencies>

boat-maven-plugin/src/it/example/boat-generate/java-server/models/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,11 @@
7373
<artifactId>swagger-annotations</artifactId>
7474
<version>2.2.7</version>
7575
</dependency>
76+
77+
<dependency>
78+
<groupId>org.springframework</groupId>
79+
<artifactId>spring-core</artifactId>
80+
</dependency>
7681
</dependencies>
7782

7883
<packaging>jar</packaging>

boat-maven-plugin/src/it/example/pom.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111
<properties>
1212

1313
<boat-maven-plugin.version>@pom.version@</boat-maven-plugin.version>
14-
<!-- <boat-maven-plugin.version>0.12.0-SNAPS§HOT</boat-maven-plugin.version>-->
15-
<jackson-databind-nullable-version>0.2.3</jackson-databind-nullable-version>
14+
<!-- <boat-maven-plugin.version>0.12.0-SNAPS§HOT</boat-maven-plugin.version>-->
15+
<jackson-databind-nullable-version>0.2.9</jackson-databind-nullable-version>
1616

17-
<jackson.version>2.13.3</jackson.version>
17+
<jackson.version>2.18.2</jackson.version>
1818
<jackson.version.annotations>${jackson.version}</jackson.version.annotations>
1919
<jackson.version.core>${jackson.version}</jackson.version.core>
2020
<jackson.version.databind>${jackson.version}</jackson.version.databind>
@@ -135,7 +135,7 @@
135135
<dependency>
136136
<groupId>org.springframework.boot</groupId>
137137
<artifactId>spring-boot-starter-webflux</artifactId>
138-
<version>2.7.2</version>
138+
<version>3.3.13</version>
139139
</dependency>
140140

141141
<dependency>
@@ -147,13 +147,13 @@
147147
<dependency>
148148
<groupId>org.springframework.boot</groupId>
149149
<artifactId>spring-boot-starter-web</artifactId>
150-
<version>2.7.2</version>
150+
<version>3.3.13</version>
151151
</dependency>
152152

153153
<dependency>
154154
<groupId>org.springframework</groupId>
155155
<artifactId>spring-core</artifactId>
156-
<version>6.1.14</version>
156+
<version>6.1.21</version>
157157
<scope>compile</scope>
158158
</dependency>
159159

boat-maven-plugin/src/main/java/com/backbase/oss/boat/AbstractGenerateMojo.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import java.util.HashMap;
99
import java.util.List;
1010
import java.util.Map;
11+
import org.openapitools.codegen.languages.SpringCodegen;
1112

1213
@Slf4j
1314
public abstract class AbstractGenerateMojo extends GenerateMojo {
@@ -33,7 +34,6 @@ public void execute(String generatorName, String library, boolean isEmbedded, bo
3334
options.put("interfaceOnly", TRUE);
3435
options.put("useTags", TRUE);
3536
options.put("useBeanValidation", TRUE);
36-
options.put("useClassLevelBeanValidation", FALSE);
3737
options.put("useOptional", FALSE);
3838
options.put("useJakartaEe", TRUE);
3939
options.put("useSpringBoot3", TRUE);
@@ -64,7 +64,21 @@ public void execute(String generatorName, String library, boolean isEmbedded, bo
6464
var merged = new HashMap<>();
6565
merged.putAll(defaultOptions);
6666
merged.putAll(overrides);
67+
boolean sb3 = propertyToBool(merged.get(SpringCodegen.USE_SPRING_BOOT3));
68+
boolean sb4 = propertyToBool(merged.get(SpringCodegen.USE_SPRING_BOOT4));
69+
if (sb3 && sb4) {
70+
merged.put(SpringCodegen.USE_SPRING_BOOT3, FALSE);
71+
}
6772
return merged;
6873
}
74+
75+
private static boolean propertyToBool(Object value) {
76+
if (value instanceof Boolean) {
77+
return (Boolean) value;
78+
} else if (value instanceof String) {
79+
return Boolean.parseBoolean((String) value);
80+
}
81+
return false;
82+
}
6983
}
7084

boat-maven-plugin/src/main/java/com/backbase/oss/boat/GenerateMojo.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import static org.openapitools.codegen.config.CodegenConfiguratorUtils.applyLanguageSpecificPrimitivesCsv;
1616
import static org.openapitools.codegen.config.CodegenConfiguratorUtils.applyLanguageSpecificPrimitivesCsvList;
1717
import static org.openapitools.codegen.config.CodegenConfiguratorUtils.applyNameMappingsKvpList;
18-
import static org.openapitools.codegen.config.CodegenConfiguratorUtils.applyOpenAPINormalizerKvpList;
18+
import static org.openapitools.codegen.config.CodegenConfiguratorUtils.applyOpenapiNormalizerKvpList;
1919
import static org.openapitools.codegen.config.CodegenConfiguratorUtils.applyReservedWordsMappingsKvp;
2020
import static org.openapitools.codegen.config.CodegenConfiguratorUtils.applyReservedWordsMappingsKvpList;
2121
import static org.openapitools.codegen.config.CodegenConfiguratorUtils.applySchemaMappingsKvp;
@@ -880,7 +880,7 @@ public void execute() throws MojoExecutionException, MojoFailureException {
880880
}
881881

882882
if (openapiNormalizer != null && (configOptions == null || !configOptions.containsKey("openapi-normalizer"))) {
883-
applyOpenAPINormalizerKvpList(openapiNormalizer, configurator);
883+
applyOpenapiNormalizerKvpList(openapiNormalizer, configurator);
884884
}
885885

886886
// Apply Schema Mappings

boat-maven-plugin/src/main/java/com/backbase/oss/boat/GenerateRestTemplateEmbeddedMojo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@ public void execute() throws MojoExecutionException, MojoFailureException {
2020

2121
@Override
2222
protected Collection<String> getGeneratorSpecificSupportingFiles() {
23-
return Set.of("BigDecimalCustomSerializer.java");
23+
return Set.of("BigDecimalCustomSerializer.java", "BaseApi.java");
2424
}
2525
}

0 commit comments

Comments
 (0)