Skip to content

Commit 7efa651

Browse files
authored
Add openapi.yaml file to Java clients (#5765)
* Add openapi.yaml file to Java client * Move supporting template file to Java root * Update petstore clients
1 parent 5fd724f commit 7efa651

File tree

26 files changed

+50223
-3
lines changed

26 files changed

+50223
-3
lines changed

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java

+8
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,8 @@ public void processOpts() {
293293
supportingFiles.add(new SupportingFile("ApiClient.mustache", invokerFolder, "ApiClient.java"));
294294
supportingFiles.add(new SupportingFile("ServerConfiguration.mustache", invokerFolder, "ServerConfiguration.java"));
295295
supportingFiles.add(new SupportingFile("ServerVariable.mustache", invokerFolder, "ServerVariable.java"));
296+
supportingFiles.add(new SupportingFile("openapi.mustache", "api", "openapi.yaml"));
297+
296298

297299
if (!(RESTTEMPLATE.equals(getLibrary()) || REST_ASSURED.equals(getLibrary()) || NATIVE.equals(getLibrary()) || MICROPROFILE.equals(getLibrary()))) {
298300
supportingFiles.add(new SupportingFile("StringUtil.mustache", invokerFolder, "StringUtil.java"));
@@ -883,6 +885,12 @@ static boolean isJsonVendorMimeType(String mime) {
883885
return mime != null && JSON_VENDOR_MIME_PATTERN.matcher(mime).matches();
884886
}
885887

888+
@Override
889+
public Map<String, Object> postProcessSupportingFileData(Map<String, Object> objs) {
890+
generateYAMLSpecFile(objs);
891+
return super.postProcessSupportingFileData(objs);
892+
}
893+
886894
@Override
887895
public String toApiVarName(String name) {
888896
String apiVarName = super.toApiVarName(name);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{{{openapi-yaml}}}

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

+5-3
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ public void testGeneratePing() throws Exception {
267267
generator.opts(clientOptInput).generate();
268268

269269
Map<String, String> generatedFiles = generator.getFiles();
270-
Assert.assertEquals(generatedFiles.size(), 36);
270+
Assert.assertEquals(generatedFiles.size(), 37);
271271
TestUtils.ensureContainsFile(generatedFiles, output, ".gitignore");
272272
TestUtils.ensureContainsFile(generatedFiles, output, ".openapi-generator-ignore");
273273
TestUtils.ensureContainsFile(generatedFiles, output, ".openapi-generator/VERSION");
@@ -284,6 +284,7 @@ public void testGeneratePing() throws Exception {
284284
TestUtils.ensureContainsFile(generatedFiles, output, "pom.xml");
285285
TestUtils.ensureContainsFile(generatedFiles, output, "README.md");
286286
TestUtils.ensureContainsFile(generatedFiles, output, "settings.gradle");
287+
TestUtils.ensureContainsFile(generatedFiles, output, "api/openapi.yaml");
287288
TestUtils.ensureContainsFile(generatedFiles, output, "src/main/AndroidManifest.xml");
288289
TestUtils.ensureContainsFile(generatedFiles, output, "src/main/java/xyz/abcdef/api/DefaultApi.java");
289290
TestUtils.ensureContainsFile(generatedFiles, output, "src/main/java/xyz/abcdef/ApiCallback.java");
@@ -342,7 +343,7 @@ public void testGeneratePingSomeObj() throws Exception {
342343
generator.opts(clientOptInput).generate();
343344

344345
Map<String, String> generatedFiles = generator.getFiles();
345-
Assert.assertEquals(generatedFiles.size(), 39);
346+
Assert.assertEquals(generatedFiles.size(), 40);
346347
TestUtils.ensureContainsFile(generatedFiles, output, ".gitignore");
347348
TestUtils.ensureContainsFile(generatedFiles, output, ".openapi-generator-ignore");
348349
TestUtils.ensureContainsFile(generatedFiles, output, ".openapi-generator/VERSION");
@@ -360,6 +361,7 @@ public void testGeneratePingSomeObj() throws Exception {
360361
TestUtils.ensureContainsFile(generatedFiles, output, "pom.xml");
361362
TestUtils.ensureContainsFile(generatedFiles, output, "README.md");
362363
TestUtils.ensureContainsFile(generatedFiles, output, "settings.gradle");
364+
TestUtils.ensureContainsFile(generatedFiles, output, "api/openapi.yaml");
363365
TestUtils.ensureContainsFile(generatedFiles, output, "src/main/AndroidManifest.xml");
364366
TestUtils.ensureContainsFile(generatedFiles, output, "src/main/java/zz/yyyy/api/xxxx/PingApi.java");
365367
TestUtils.ensureContainsFile(generatedFiles, output, "src/main/java/zz/yyyy/invoker/xxxx/ApiCallback.java");
@@ -414,7 +416,7 @@ public void testJdkHttpClient() throws Exception {
414416
generator.opts(clientOptInput).generate();
415417

416418
Map<String, String> generatedFiles = generator.getFiles();
417-
Assert.assertEquals(generatedFiles.size(), 25);
419+
Assert.assertEquals(generatedFiles.size(), 26);
418420
validateJavaSourceFiles(generatedFiles);
419421

420422
String defaultApiFilename = new File(output, "src/main/java/xyz/abcdef/api/DefaultApi.java").getAbsolutePath().replace("\\", "/");

0 commit comments

Comments
 (0)