Skip to content

Commit 0efe79e

Browse files
committed
add Java 21 and Spring Boot 3.4.2 to Spring Generator
1 parent 5403007 commit 0efe79e

File tree

4 files changed

+39
-9
lines changed

4 files changed

+39
-9
lines changed

src/main/java/io/swagger/codegen/v3/generators/html/StaticHtmlCodegen.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,10 @@ public String toModelName(final String name) {
183183
public void preprocessOpenAPI(OpenAPI openAPI) {
184184
super.preprocessOpenAPI(openAPI);
185185
Info info = openAPI.getInfo();
186-
info.setDescription(toHtml(info.getDescription()));
187-
info.setTitle(toHtml(info.getTitle()));
186+
if (info != null) {
187+
info.setDescription(toHtml(info.getDescription()));
188+
info.setTitle(toHtml(info.getTitle()));
189+
}
188190
if (openAPI.getComponents() == null || openAPI.getComponents().getSchemas() == null) {
189191
return;
190192
}

src/main/java/io/swagger/codegen/v3/generators/java/SpringCodegen.java

+28
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ public class SpringCodegen extends AbstractJavaCodegen implements BeanValidation
6565
public static final String TARGET_OPENFEIGN = "generateForOpenFeign";
6666
public static final String DEFAULT_INTERFACES = "defaultInterfaces";
6767
public static final String SPRING_BOOT_VERSION = "springBootVersion";
68+
public static final String SPRING_BOOT3_VERSION = "springBoot3Version";
69+
public static final String SPRING_BOOT3_JAVA_VERSION = "springBoot3JavaVersion";
6870
public static final String SPRING_BOOT_VERSION_2 = "springBootV2";
6971
public static final String DATE_PATTERN = "datePattern";
7072
public static final String DATE_TIME_PATTERN = "dateTimePattern";
@@ -95,6 +97,8 @@ public class SpringCodegen extends AbstractJavaCodegen implements BeanValidation
9597
protected boolean openFeign = false;
9698
protected boolean defaultInterfaces = true;
9799
protected String springBootVersion = "2.1.16.RELEASE";
100+
protected String springBoot3Version = "3.4.2";
101+
protected String springBoot3JavaVersion = "21";
98102
protected boolean throwsException = false;
99103
private boolean notNullJacksonAnnotation = false;
100104
protected String validationMode = "strict";
@@ -152,6 +156,20 @@ public SpringCodegen() {
152156
springBootVersionOption.setEnum(springBootEnum);
153157
cliOptions.add(springBootVersionOption);
154158

159+
CliOption springBoot3VersionOption = new CliOption(SPRING_BOOT3_VERSION, "Spring boot 3 version");
160+
Map<String, String> springBoot3Enum = new HashMap<>();
161+
springBoot3Enum.put("3.3.4", "3.3.4");
162+
springBoot3Enum.put("3.4.2", "3.4.2");
163+
springBoot3VersionOption.setEnum(springBoot3Enum);
164+
cliOptions.add(springBoot3VersionOption);
165+
166+
CliOption springBoot3JavaVersionOption = new CliOption(SPRING_BOOT3_JAVA_VERSION, "Spring boot 3 Java version");
167+
Map<String, String> springBoot3JavaEnum = new HashMap<>();
168+
springBoot3JavaEnum.put("17", "17");
169+
springBoot3JavaEnum.put("21", "21");
170+
springBoot3JavaVersionOption.setEnum(springBoot3JavaEnum);
171+
cliOptions.add(springBoot3JavaVersionOption);
172+
155173
CliOption validationMode = new CliOption(VALIDATION_MODE_OPTION, "Validation mode to apply");
156174
validationMode.setDefault(VALIDATION_MODE_STRICT);
157175
Map<String, String> validationModeOptions = new HashMap<String, String>();
@@ -318,6 +336,16 @@ public void processOpts() {
318336
this.setOpenFeign(true);
319337
}
320338

339+
if (additionalProperties.containsKey(SPRING_BOOT3_VERSION)) {
340+
this.springBoot3Version = additionalProperties.get(SPRING_BOOT3_VERSION).toString();
341+
}
342+
additionalProperties.put(SPRING_BOOT3_VERSION, this.springBoot3Version);
343+
344+
if (additionalProperties.containsKey(SPRING_BOOT3_JAVA_VERSION)) {
345+
this.springBoot3JavaVersion = additionalProperties.get(SPRING_BOOT3_JAVA_VERSION).toString();
346+
}
347+
additionalProperties.put(SPRING_BOOT3_JAVA_VERSION, this.springBoot3JavaVersion);
348+
321349
if (useBeanValidation) {
322350
writePropertyBack(USE_BEANVALIDATION, useBeanValidation);
323351
if (VALIDATION_MODE_LOOSE.equals(validationMode) || VALIDATION_MODE_STRICT.equals(validationMode)) {

src/main/resources/handlebars/JavaSpring/libraries/spring-boot3/openAPISpringBoot.mustache

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
1010
import org.springframework.context.annotation.ComponentScan;
1111
import org.springframework.context.annotation.Configuration;
1212
import org.springframework.format.FormatterRegistry;
13-
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
13+
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
1414
{{#useBeanValidation}}
1515
{{#isStrictValidation}}
1616
import org.openapitools.jackson.nullable.JsonNullableModule;
@@ -55,7 +55,7 @@ public class OpenAPISpringBoot implements CommandLineRunner {
5555
{{/useBeanValidation}}
5656

5757
@Configuration
58-
static class CustomDateConfig extends WebMvcConfigurationSupport {
58+
static class CustomDateConfig implements WebMvcConfigurer {
5959
@Override
6060
public void addFormatters(FormatterRegistry registry) {
6161
registry.addConverter(new LocalDateConverter("{{#datePattern}}{{datePattern}}{{/datePattern}}{{^datePattern}}yyyy-MM-dd{{/datePattern}}"));

src/main/resources/handlebars/JavaSpring/libraries/spring-boot3/pom.mustache

+5-5
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@
77
<version>{{artifactVersion}}</version>
88
<properties>
99
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
10-
<maven.compiler.release>17</maven.compiler.release>
11-
<springboot-version>3.3.4</springboot-version>
10+
<maven.compiler.release>{{springBoot3JavaVersion}}</maven.compiler.release>
11+
<springboot-version>{{springBoot3Version}}</springboot-version>
1212
<swagger-annotations-version>2.2.25</swagger-annotations-version>
13-
<springdoc-version>1.7.0</springdoc-version>
13+
<springdoc-version>2.8.3</springdoc-version>
1414
</properties>
1515
<parent>
1616
<groupId>org.springframework.boot</groupId>
1717
<artifactId>spring-boot-starter-parent</artifactId>
18-
<version>3.3.4</version>
18+
<version>{{springBoot3Version}}</version>
1919
</parent>
2020
<build>
2121
<sourceDirectory>src/main/java</sourceDirectory>
@@ -96,7 +96,7 @@
9696
<!-- SpringDoc dependencies -->
9797
<dependency>
9898
<groupId>org.springdoc</groupId>
99-
<artifactId>springdoc-openapi-ui</artifactId>
99+
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
100100
<version>${springdoc-version}</version>
101101
</dependency>
102102

0 commit comments

Comments
 (0)