Skip to content

Commit e4b1ab9

Browse files
committed
fix: Use jakarta.servlet import in generated *Api.java when the jakarta property is true
1 parent 07d2077 commit e4b1ab9

File tree

2 files changed

+66
-12
lines changed

2 files changed

+66
-12
lines changed

src/main/resources/handlebars/JavaSpring/api.mustache

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,12 @@ import org.springframework.web.multipart.MultipartFile;
4444
import org.springframework.web.bind.annotation.CookieValue;
4545

4646
{{#jdk8-no-delegate}}
47+
{{#jakarta}}
48+
import jakarta.servlet.http.HttpServletRequest;
49+
{{/jakarta}}
50+
{{^jakarta}}
4751
import javax.servlet.http.HttpServletRequest;
52+
{{/jakarta}}
4853
{{/jdk8-no-delegate}}
4954
{{#useBeanValidation}}
5055
{{#jakarta}}

src/test/java/io/swagger/codegen/v3/generators/java/SpringGeneratorCodegenTest.java

Lines changed: 61 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.swagger.codegen.v3.generators.java;
22

33
import static io.swagger.codegen.v3.generators.java.AbstractJavaCodegen.JAKARTA;
4+
import static io.swagger.codegen.v3.generators.java.AbstractJavaCodegen.JAVA8_MODE;
45

56
import io.swagger.codegen.v3.ClientOptInput;
67
import io.swagger.codegen.v3.CodegenArgument;
@@ -88,16 +89,16 @@ public void testOas2AndJakarta() throws Exception {
8889
final File output = folder.getRoot();
8990

9091
final CodegenConfigurator configurator = new CodegenConfigurator()
91-
.setLang("spring")
92-
.setInputSpecURL("src/test/resources/3_0_0/parameterOrder.yaml")
93-
.setOutputDir(output.getAbsolutePath())
94-
.addAdditionalProperty(JAKARTA, true);
92+
.setLang("spring")
93+
.setInputSpecURL("src/test/resources/3_0_0/parameterOrder.yaml")
94+
.setOutputDir(output.getAbsolutePath())
95+
.addAdditionalProperty(JAKARTA, true);
9596

9697
configurator.setCodegenArguments(Collections.singletonList(
97-
new CodegenArgument()
98-
.option(CodegenConstants.USE_OAS2_OPTION)
99-
.type("boolean")
100-
.value(Boolean.TRUE.toString())));
98+
new CodegenArgument()
99+
.option(CodegenConstants.USE_OAS2_OPTION)
100+
.type("boolean")
101+
.value(Boolean.TRUE.toString())));
101102

102103
final ClientOptInput clientOptInput = configurator.toClientOptInput();
103104
new DefaultGenerator().opts(clientOptInput).generate();
@@ -124,10 +125,10 @@ public void testUseOas3AndJakarta() throws Exception {
124125
final File output = folder.getRoot();
125126

126127
final CodegenConfigurator configurator = new CodegenConfigurator()
127-
.setLang("spring")
128-
.setInputSpecURL("src/test/resources/3_0_0/parameterOrder.yaml")
129-
.setOutputDir(output.getAbsolutePath())
130-
.addAdditionalProperty(JAKARTA, true);
128+
.setLang("spring")
129+
.setInputSpecURL("src/test/resources/3_0_0/parameterOrder.yaml")
130+
.setOutputDir(output.getAbsolutePath())
131+
.addAdditionalProperty(JAKARTA, true);
131132

132133
final ClientOptInput clientOptInput = configurator.toClientOptInput();
133134
new DefaultGenerator().opts(clientOptInput).generate();
@@ -148,4 +149,52 @@ public void testUseOas3AndJakarta() throws Exception {
148149
folder.delete();
149150
}
150151

152+
@Test(description = "verify java8 & jakarta")
153+
public void testJava8Jakarta() throws Exception {
154+
final TemporaryFolder folder = new TemporaryFolder();
155+
folder.create();
156+
final File output = folder.getRoot();
157+
158+
final CodegenConfigurator configurator = new CodegenConfigurator()
159+
.setLang("spring")
160+
.setInputSpecURL("src/test/resources/3_0_0/parameterOrder.yaml")
161+
.setOutputDir(output.getAbsolutePath())
162+
.addAdditionalProperty(JAKARTA, true)
163+
.addAdditionalProperty(JAVA8_MODE, true);
164+
165+
final ClientOptInput clientOptInput = configurator.toClientOptInput();
166+
new DefaultGenerator().opts(clientOptInput).generate();
167+
168+
final File adminApiFile = new File(output, "/src/main/java/io/swagger/api/AdminApi.java");
169+
final String contentAdminApi = FileUtils.readFileToString(adminApiFile);
170+
171+
Assert.assertTrue(contentAdminApi.contains("import jakarta.servlet.http.HttpServletRequest;"));
172+
173+
folder.delete();
174+
}
175+
176+
@Test(description = "verify java8 & javax")
177+
public void testJava8Javax() throws Exception {
178+
final TemporaryFolder folder = new TemporaryFolder();
179+
folder.create();
180+
final File output = folder.getRoot();
181+
182+
final CodegenConfigurator configurator = new CodegenConfigurator()
183+
.setLang("spring")
184+
.setInputSpecURL("src/test/resources/3_0_0/parameterOrder.yaml")
185+
.setOutputDir(output.getAbsolutePath())
186+
.addAdditionalProperty(JAKARTA, false)
187+
.addAdditionalProperty(JAVA8_MODE, true);
188+
189+
final ClientOptInput clientOptInput = configurator.toClientOptInput();
190+
new DefaultGenerator().opts(clientOptInput).generate();
191+
192+
final File adminApiFile = new File(output, "/src/main/java/io/swagger/api/AdminApi.java");
193+
final String contentAdminApi = FileUtils.readFileToString(adminApiFile);
194+
195+
Assert.assertTrue(contentAdminApi.contains("import javax.servlet.http.HttpServletRequest;"));
196+
197+
folder.delete();
198+
}
199+
151200
}

0 commit comments

Comments
 (0)