Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add Java 21 and Spring Boot 3.4.2 to Spring Generator, update dependencies #1332

Merged
merged 2 commits into from
Jan 27, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

<groupId>io.swagger.codegen.v3</groupId>
<artifactId>swagger-codegen-generators</artifactId>
<version>1.0.55</version>
<version>1.0.56-SNAPSHOT</version>
<packaging>jar</packaging>

<build>
Expand Down Expand Up @@ -256,28 +256,28 @@
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>5.14.2</version>
<version>5.15.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<maven.compiler.release>8</maven.compiler.release>
<swagger-codegen-version>3.0.65</swagger-codegen-version>
<swagger-parser-version>2.1.23</swagger-parser-version>
<swagger-core-version>2.2.26</swagger-core-version>
<jackson-version>2.18.0</jackson-version>
<jackson-databind-version>2.18.0</jackson-databind-version>
<swagger-codegen-version>3.0.66</swagger-codegen-version>
<swagger-parser-version>2.1.25</swagger-parser-version>
<swagger-core-version>2.2.28</swagger-core-version>
<jackson-version>2.18.2</jackson-version>
<jackson-databind-version>2.18.2</jackson-databind-version>
<scala-version>2.11.1</scala-version>
<felix-version>3.3.0</felix-version>
<commons-io-version>2.17.0</commons-io-version>
<commons-io-version>2.18.0</commons-io-version>
<commons-cli-version>1.9.0</commons-cli-version>
<junit-version>4.13.2</junit-version>
<maven-plugin-version>1.0.0</maven-plugin-version>
<commons-lang-version>3.17.0</commons-lang-version>
<slf4j-version>2.0.9</slf4j-version>
<scala-maven-plugin-version>3.2.1</scala-maven-plugin-version>
<testng-version>7.10.2</testng-version>
<surefire-version>3.5.1</surefire-version>
<surefire-version>3.5.2</surefire-version>
<jmockit-version>1.49</jmockit-version>
<reflections-version>0.10.2</reflections-version>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -183,8 +183,10 @@ public String toModelName(final String name) {
public void preprocessOpenAPI(OpenAPI openAPI) {
super.preprocessOpenAPI(openAPI);
Info info = openAPI.getInfo();
info.setDescription(toHtml(info.getDescription()));
info.setTitle(toHtml(info.getTitle()));
if (info != null) {
info.setDescription(toHtml(info.getDescription()));
info.setTitle(toHtml(info.getTitle()));
}
if (openAPI.getComponents() == null || openAPI.getComponents().getSchemas() == null) {
return;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ public class SpringCodegen extends AbstractJavaCodegen implements BeanValidation
public static final String TARGET_OPENFEIGN = "generateForOpenFeign";
public static final String DEFAULT_INTERFACES = "defaultInterfaces";
public static final String SPRING_BOOT_VERSION = "springBootVersion";
public static final String SPRING_BOOT3_VERSION = "springBoot3Version";
public static final String SPRING_BOOT3_JAVA_VERSION = "springBoot3JavaVersion";
public static final String SPRING_BOOT_VERSION_2 = "springBootV2";
public static final String DATE_PATTERN = "datePattern";
public static final String DATE_TIME_PATTERN = "dateTimePattern";
Expand Down Expand Up @@ -95,6 +97,8 @@ public class SpringCodegen extends AbstractJavaCodegen implements BeanValidation
protected boolean openFeign = false;
protected boolean defaultInterfaces = true;
protected String springBootVersion = "2.1.16.RELEASE";
protected String springBoot3Version = "3.4.2";
protected String springBoot3JavaVersion = "21";
protected boolean throwsException = false;
private boolean notNullJacksonAnnotation = false;
protected String validationMode = "strict";
Expand Down Expand Up @@ -152,6 +156,20 @@ public SpringCodegen() {
springBootVersionOption.setEnum(springBootEnum);
cliOptions.add(springBootVersionOption);

CliOption springBoot3VersionOption = new CliOption(SPRING_BOOT3_VERSION, "Spring boot 3 version");
Map<String, String> springBoot3Enum = new HashMap<>();
springBoot3Enum.put("3.3.4", "3.3.4");
springBoot3Enum.put("3.4.2", "3.4.2");
springBoot3VersionOption.setEnum(springBoot3Enum);
cliOptions.add(springBoot3VersionOption);

CliOption springBoot3JavaVersionOption = new CliOption(SPRING_BOOT3_JAVA_VERSION, "Spring boot 3 Java version");
Map<String, String> springBoot3JavaEnum = new HashMap<>();
springBoot3JavaEnum.put("17", "17");
springBoot3JavaEnum.put("21", "21");
springBoot3JavaVersionOption.setEnum(springBoot3JavaEnum);
cliOptions.add(springBoot3JavaVersionOption);

CliOption validationMode = new CliOption(VALIDATION_MODE_OPTION, "Validation mode to apply");
validationMode.setDefault(VALIDATION_MODE_STRICT);
Map<String, String> validationModeOptions = new HashMap<String, String>();
Expand Down Expand Up @@ -318,6 +336,16 @@ public void processOpts() {
this.setOpenFeign(true);
}

if (additionalProperties.containsKey(SPRING_BOOT3_VERSION)) {
this.springBoot3Version = additionalProperties.get(SPRING_BOOT3_VERSION).toString();
}
additionalProperties.put(SPRING_BOOT3_VERSION, this.springBoot3Version);

if (additionalProperties.containsKey(SPRING_BOOT3_JAVA_VERSION)) {
this.springBoot3JavaVersion = additionalProperties.get(SPRING_BOOT3_JAVA_VERSION).toString();
}
additionalProperties.put(SPRING_BOOT3_JAVA_VERSION, this.springBoot3JavaVersion);

if (useBeanValidation) {
writePropertyBack(USE_BEANVALIDATION, useBeanValidation);
if (VALIDATION_MODE_LOOSE.equals(validationMode) || VALIDATION_MODE_STRICT.equals(validationMode)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
{{#useBeanValidation}}
{{#isStrictValidation}}
import org.openapitools.jackson.nullable.JsonNullableModule;
Expand Down Expand Up @@ -55,7 +55,7 @@ public class OpenAPISpringBoot implements CommandLineRunner {
{{/useBeanValidation}}

@Configuration
static class CustomDateConfig extends WebMvcConfigurationSupport {
static class CustomDateConfig implements WebMvcConfigurer {
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new LocalDateConverter("{{#datePattern}}{{datePattern}}{{/datePattern}}{{^datePattern}}yyyy-MM-dd{{/datePattern}}"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@
<version>{{artifactVersion}}</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.release>17</maven.compiler.release>
<springboot-version>3.3.4</springboot-version>
<maven.compiler.release>{{springBoot3JavaVersion}}</maven.compiler.release>
<springboot-version>{{springBoot3Version}}</springboot-version>
<swagger-annotations-version>2.2.25</swagger-annotations-version>
<springdoc-version>1.7.0</springdoc-version>
<springdoc-version>2.8.3</springdoc-version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.4</version>
<version>{{springBoot3Version}}</version>
</parent>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
Expand Down Expand Up @@ -96,7 +96,7 @@
<!-- SpringDoc dependencies -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>${springdoc-version}</version>
</dependency>

Expand Down
Loading