diff --git a/intellij-codestyle.xml b/intellij-codestyle.xml new file mode 100644 index 00000000000..edb7da7e660 --- /dev/null +++ b/intellij-codestyle.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/Constants.java b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/Constants.java index 863f1783828..78bb36c1a2f 100644 --- a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/Constants.java +++ b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/Constants.java @@ -1,7 +1,8 @@ package org.openapitools.codegen; public class Constants { - private Constants(){ } + private Constants() { + } public static final String CLI_NAME = "openapi-generator-cli"; public static final String GIT_REPO = "https://github.com/openapitools/openapi-generator"; diff --git a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/AuthorTemplate.java b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/AuthorTemplate.java index e19c3b80f9d..c92a93c4939 100644 --- a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/AuthorTemplate.java +++ b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/AuthorTemplate.java @@ -138,7 +138,7 @@ public class AuthorTemplate extends OpenApiGeneratorCommand { } else { LOGGER.warn("The library filter '{}' extracted an unexpected library path: {}", library, p.toAbsolutePath()); } - }); + }); } LOGGER.info("Extracted templates to '{}' directory. Refer to https://openapi-generator.tech/docs/templating for customization details.", outputDirPath); diff --git a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/ConfigHelp.java b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/ConfigHelp.java index 32e5032d3ba..f2a7fcbc9eb 100644 --- a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/ConfigHelp.java +++ b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/ConfigHelp.java @@ -20,11 +20,7 @@ package org.openapitools.codegen.cmd; import io.airlift.airline.Command; import io.airlift.airline.Option; import org.apache.commons.lang3.StringUtils; -import org.openapitools.codegen.CliOption; -import org.openapitools.codegen.CodegenConfig; -import org.openapitools.codegen.CodegenConfigLoader; -import org.openapitools.codegen.GeneratorNotFoundException; -import org.openapitools.codegen.VendorExtension; +import org.openapitools.codegen.*; import org.openapitools.codegen.meta.FeatureSet; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -37,10 +33,10 @@ import java.util.concurrent.atomic.AtomicReference; import java.util.function.Function; import java.util.stream.Collectors; -import static org.apache.commons.text.StringEscapeUtils.escapeHtml4; import static org.apache.commons.lang3.StringUtils.isEmpty; +import static org.apache.commons.text.StringEscapeUtils.escapeHtml4; -@SuppressWarnings({"unused","java:S106", "java:S1192"}) +@SuppressWarnings({"unused", "java:S106", "java:S1192"}) @Command(name = "config-help", description = "Config help for chosen lang") public class ConfigHelp extends OpenApiGeneratorCommand { @@ -49,7 +45,7 @@ public class ConfigHelp extends OpenApiGeneratorCommand { private static final String FORMAT_TEXT = "text"; private static final String FORMAT_MARKDOWN = "markdown"; private static final String FORMAT_YAMLSAMPLE = "yamlsample"; - private static final int FEATURE_SET_DISPLAY_WIDTH= 20; + private static final int FEATURE_SET_DISPLAY_WIDTH = 20; @Option(name = {"-g", "--generator-name"}, title = "generator name", description = "generator to get config help for") @@ -121,7 +117,7 @@ public class ConfigHelp extends OpenApiGeneratorCommand { private Boolean markdownHeader; @Option(name = { - "--supported-vendor-extensions"}, title = "supported vendor extensions", description = "List supported vendor extensions") + "--supported-vendor-extensions"}, title = "supported vendor extensions", description = "List supported vendor extensions") private Boolean supportedVendorExtensions; @Option(name = {"--full-details"}, title = "full generator details", description = "displays CLI options as well as other configs/mappings (implies --instantiation-types, --reserved-words, --language-specific-primitives, --import-mappings, --feature-set)") @@ -241,16 +237,16 @@ public class ConfigHelp extends OpenApiGeneratorCommand { } sb - .append(newline).append("## SUPPORTED VENDOR EXTENSIONS").append(newline).append(newline) - .append("| Extension name | Description | Applicable for | Default value |").append(newline) - .append("| -------------- | ----------- | -------------- | ------------- |").append(newline); + .append(newline).append("## SUPPORTED VENDOR EXTENSIONS").append(newline).append(newline) + .append("| Extension name | Description | Applicable for | Default value |").append(newline) + .append("| -------------- | ----------- | -------------- | ------------- |").append(newline); supportedVendorExtensions.forEach( - extension -> sb.append("|").append(extension.getName()) - .append("|").append(extension.getDescription()) - .append("|").append(extension.getLevels().stream().map(Objects::toString).collect(Collectors.joining(", "))) - .append("|").append(extension.getDefaultValue()) - .append(newline) + extension -> sb.append("|").append(extension.getName()) + .append("|").append(extension.getDescription()) + .append("|").append(extension.getLevels().stream().map(Objects::toString).collect(Collectors.joining(", "))) + .append("|").append(extension.getDefaultValue()) + .append(newline) ); sb.append(newline); } @@ -359,17 +355,17 @@ public class ConfigHelp extends OpenApiGeneratorCommand { sb.append("| Property | Value | Notes |").append(newline); sb.append("| -------- | ----- | ----- |").append(newline); - sb.append("| generator name | "+config.getName()+" | pass this to the generate command after -g |").append(newline); - sb.append("| generator stability | "+config.getGeneratorMetadata().getStability()+" | |").append(newline); - sb.append("| generator type | "+config.getTag()+" | |").append(newline); + sb.append("| generator name | " + config.getName() + " | pass this to the generate command after -g |").append(newline); + sb.append("| generator stability | " + config.getGeneratorMetadata().getStability() + " | |").append(newline); + sb.append("| generator type | " + config.getTag() + " | |").append(newline); if (config.generatorLanguage() != null) { - sb.append("| generator language | "+config.generatorLanguage().toString()+" | |").append(newline); + sb.append("| generator language | " + config.generatorLanguage().toString() + " | |").append(newline); } if (config.generatorLanguageVersion() != null) { - sb.append("| generator language version | "+config.generatorLanguageVersion()+" | |").append(newline); + sb.append("| generator language version | " + config.generatorLanguageVersion() + " | |").append(newline); } - sb.append("| generator default templating engine | "+config.defaultTemplatingEngine()+" | |").append(newline); - sb.append("| helpTxt | "+config.getHelp()+" | |").append(newline); + sb.append("| generator default templating engine | " + config.defaultTemplatingEngine() + " | |").append(newline); + sb.append("| helpTxt | " + config.getHelp() + " | |").append(newline); sb.append(newline); } diff --git a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/Generate.java b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/Generate.java index 6ce6a8ffb30..b18bd6bc158 100644 --- a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/Generate.java +++ b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/Generate.java @@ -17,18 +17,10 @@ package org.openapitools.codegen.cmd; -import static org.apache.commons.lang3.StringUtils.isNotEmpty; -import static org.openapitools.codegen.config.CodegenConfiguratorUtils.*; - import ch.qos.logback.classic.LoggerContext; import ch.qos.logback.core.spi.FilterAttachable; import io.airlift.airline.Command; import io.airlift.airline.Option; -import java.io.File; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Stream; - import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.*; import org.openapitools.codegen.config.CodegenConfigurator; @@ -36,6 +28,14 @@ import org.openapitools.codegen.config.MergedSpecBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Stream; + +import static org.apache.commons.lang3.StringUtils.isNotEmpty; +import static org.openapitools.codegen.config.CodegenConfiguratorUtils.*; + @SuppressWarnings({"java:S106"}) @Command(name = "generate", description = "Generate code with the specified generator.") public class Generate extends OpenApiGeneratorCommand { @@ -101,7 +101,7 @@ public class Generate extends OpenApiGeneratorCommand { + "overwritten during the generation.") private Boolean skipOverwrite; - @Option(name = { "--dry-run" }, title = "Dry run", + @Option(name = {"--dry-run"}, title = "Dry run", description = "Try things out and report on potential changes (without actually making changes).") private Boolean isDryRun; @@ -327,15 +327,15 @@ public class Generate extends OpenApiGeneratorCommand { private Boolean legacyDiscriminatorBehavior; @Option(name = {"--minimal-update"}, - title = "Minimal update", - description = "Only write output files that have changed.") + title = "Minimal update", + description = "Only write output files that have changed.") private Boolean minimalUpdate; @Override public void execute() { if (StringUtils.isNotBlank(inputSpecRootDirectory)) { spec = new MergedSpecBuilder(inputSpecRootDirectory, StringUtils.isBlank(mergedFileName) ? "_merged_spec" : mergedFileName) - .buildMergedSpec(); + .buildMergedSpec(); System.out.println("Merge input spec would be used - " + spec); } diff --git a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/GenerateBatch.java b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/GenerateBatch.java index b59c458e4b0..2c56b2918f9 100644 --- a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/GenerateBatch.java +++ b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/GenerateBatch.java @@ -18,7 +18,6 @@ package org.openapitools.codegen.cmd; import ch.qos.logback.classic.Level; import ch.qos.logback.classic.LoggerContext; - import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonToken; import com.fasterxml.jackson.databind.*; @@ -26,7 +25,6 @@ import com.fasterxml.jackson.databind.deser.BeanDeserializerModifier; import com.fasterxml.jackson.databind.deser.std.DelegatingDeserializer; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.util.TokenBuffer; - import io.airlift.airline.Arguments; import io.airlift.airline.Command; import io.airlift.airline.Option; @@ -211,7 +209,7 @@ public class GenerateBatch extends OpenApiGeneratorCommand { ClientOptInput opts = configurator.toClientOptInput(); CodegenConfig config = opts.getConfig(); name = config.getName(); - + Path target = Paths.get(config.getOutputDir()); Path updated = rootDir.resolve(target); config.setOutputDir(updated.toString()); @@ -308,34 +306,34 @@ public class GenerateBatch extends OpenApiGeneratorCommand { public Object deserialize(JsonParser p, DeserializationContext ctx) throws IOException { ObjectMapper codec = (ObjectMapper) ctx.getParser().getCodec(); TokenBuffer buffer = new TokenBuffer(p); - + recurse(buffer, p, codec, false); - + JsonParser newParser = buffer.asParser(codec); newParser.nextToken(); - + return super.deserialize(newParser, ctx); } - + private void recurse(TokenBuffer buffer, JsonParser p, ObjectMapper codec, boolean skipOuterbraces) throws IOException { boolean firstToken = true; - JsonToken token; - + JsonToken token; + while ((token = p.nextToken()) != null) { String name = p.currentName(); - + if (skipOuterbraces && firstToken && JsonToken.START_OBJECT.equals(token)) { continue; } - + if (skipOuterbraces && p.getParsingContext().inRoot() && JsonToken.END_OBJECT.equals(token)) { continue; } - + if (JsonToken.VALUE_NULL.equals(token)) { continue; } - + if (name != null && JsonToken.FIELD_NAME.equals(token) && name.startsWith(INCLUDE)) { p.nextToken(); String fileName = p.getText(); @@ -348,7 +346,7 @@ public class GenerateBatch extends OpenApiGeneratorCommand { } else { buffer.copyCurrentEvent(p); } - + firstToken = false; } } diff --git a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/ListGenerators.java b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/ListGenerators.java index 8a178193240..162e0059e4c 100644 --- a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/ListGenerators.java +++ b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/ListGenerators.java @@ -1,10 +1,8 @@ package org.openapitools.codegen.cmd; import com.google.common.base.Objects; - import io.airlift.airline.Command; import io.airlift.airline.Option; - import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.CodegenConfig; import org.openapitools.codegen.CodegenConfigLoader; @@ -20,18 +18,18 @@ import java.util.stream.Collectors; @Command(name = "list", description = "Lists the available generators") public class ListGenerators extends OpenApiGeneratorCommand { - @Option(name = {"-s", "--short" }, description = "shortened output (suitable for scripting)") + @Option(name = {"-s", "--short"}, description = "shortened output (suitable for scripting)") private Boolean shortened = false; - @Option(name = {"-d", "--docsite" }, description = "format for docusaurus site output", hidden = true) + @Option(name = {"-d", "--docsite"}, description = "format for docusaurus site output", hidden = true) private Boolean docusaurus = false; - @Option(name = {"--github-nested-index" }, description = "format for github index at docs/generators/README.md", hidden = true) - private Boolean githubNestedIndex = false; + @Option(name = {"--github-nested-index"}, description = "format for github index at docs/generators/README.md", hidden = true) + private Boolean githubNestedIndex = false; - @Option(name = {"-i", "--include" }, + @Option(name = {"-i", "--include"}, description = "comma-separated list of stability indexes to include (value: all,beta,stable,experimental,deprecated). Excludes deprecated by default.", - allowedValues = { "all", "beta", "stable", "experimental", "deprecated" }) + allowedValues = {"all", "beta", "stable", "experimental", "deprecated"}) private String include = "stable,beta,experimental"; @Override @@ -88,7 +86,7 @@ public class ListGenerators extends OpenApiGeneratorCommand { .sorted(Comparator.comparing(CodegenConfig::getName)) .collect(Collectors.toList()); - if(!list.isEmpty()) { + if (!list.isEmpty()) { if (docusaurus || githubNestedIndex) { sb.append("## ").append(typeName).append(" generators"); } else { diff --git a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/Meta.java b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/Meta.java index a0ec3e314d7..1ac7d689f77 100644 --- a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/Meta.java +++ b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/Meta.java @@ -17,9 +17,7 @@ package org.openapitools.codegen.cmd; -import static ch.lambdaj.collection.LambdaCollections.with; -import static com.google.common.base.Joiner.on; - +import ch.lambdaj.function.convert.Converter; import com.google.common.base.CaseFormat; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -31,9 +29,9 @@ import org.openapitools.codegen.CodegenConfig; import org.openapitools.codegen.SupportingFile; import org.openapitools.codegen.TemplateManager; import org.openapitools.codegen.api.TemplatePathLocator; +import org.openapitools.codegen.templating.CommonTemplateContentLocator; import org.openapitools.codegen.templating.MustacheEngineAdapter; import org.openapitools.codegen.templating.TemplateManagerOptions; -import org.openapitools.codegen.templating.CommonTemplateContentLocator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -43,7 +41,8 @@ import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Map; -import ch.lambdaj.function.convert.Converter; +import static ch.lambdaj.collection.LambdaCollections.with; +import static com.google.common.base.Joiner.on; /** * User: lanwen Date: 24.03.15 Time: 20:22 @@ -99,19 +98,19 @@ public class Meta extends OpenApiGeneratorCommand { new SupportingFile("kotlin/generatorClassTest.mustache", on(File.separator).join("src/test/kotlin", asPath(targetPackage)), mainClass.concat("Test.kt")), new SupportingFile("kotlin/README.mustache", "", "README.md"), - new SupportingFile("api.template", "src/main/resources" + File.separator + name,"api.mustache"), - new SupportingFile("model.template", "src/main/resources" + File.separator + name,"model.mustache"), + new SupportingFile("api.template", "src/main/resources" + File.separator + name, "api.mustache"), + new SupportingFile("model.template", "src/main/resources" + File.separator + name, "model.mustache"), new SupportingFile("myFile.template", String.join(File.separator, "src", "main", "resources", name), "myFile.mustache"), new SupportingFile("services.mustache", "src/main/resources/META-INF/services", CodegenConfig.class.getCanonicalName())) : ImmutableList.of( - new SupportingFile("pom.mustache", "", "pom.xml"), - new SupportingFile("generatorClass.mustache", on(File.separator).join("src/main/java", asPath(targetPackage)), mainClass.concat(".java")), - new SupportingFile("generatorClassTest.mustache", on(File.separator).join("src/test/java", asPath(targetPackage)), mainClass.concat("Test.java")), - new SupportingFile("README.mustache", "", "README.md"), - new SupportingFile("api.template", "src/main/resources" + File.separator + name,"api.mustache"), - new SupportingFile("model.template", "src/main/resources" + File.separator + name,"model.mustache"), - new SupportingFile("myFile.template", String.join(File.separator, "src", "main", "resources", name), "myFile.mustache"), - new SupportingFile("services.mustache", "src/main/resources/META-INF/services", CodegenConfig.class.getCanonicalName())); + new SupportingFile("pom.mustache", "", "pom.xml"), + new SupportingFile("generatorClass.mustache", on(File.separator).join("src/main/java", asPath(targetPackage)), mainClass.concat(".java")), + new SupportingFile("generatorClassTest.mustache", on(File.separator).join("src/test/java", asPath(targetPackage)), mainClass.concat("Test.java")), + new SupportingFile("README.mustache", "", "README.md"), + new SupportingFile("api.template", "src/main/resources" + File.separator + name, "api.mustache"), + new SupportingFile("model.template", "src/main/resources" + File.separator + name, "model.mustache"), + new SupportingFile("myFile.template", String.join(File.separator, "src", "main", "resources", name), "myFile.mustache"), + new SupportingFile("services.mustache", "src/main/resources/META-INF/services", CodegenConfig.class.getCanonicalName())); String currentVersion = buildInfo.getVersion(); @@ -134,11 +133,11 @@ public class Meta extends OpenApiGeneratorCommand { * destination directory * * @param targetDir - destination directory - * @param data - map with additional params needed to process templates + * @param data - map with additional params needed to process templates * @return converter object to pass to lambdaj */ private static Converter processFiles(final File targetDir, - final Map data) { + final Map data) { return support -> { try { File destinationFolder = @@ -148,7 +147,7 @@ public class Meta extends OpenApiGeneratorCommand { TemplateManager templateProcessor = new TemplateManager( new TemplateManagerOptions(false, false), new MustacheEngineAdapter(), - new TemplatePathLocator[]{ new CommonTemplateContentLocator("codegen") } + new TemplatePathLocator[]{new CommonTemplateContentLocator("codegen")} ); String template = templateProcessor.readTemplate(new File(TEMPLATE_DIR_CLASSPATH, support.getTemplateFile()).getPath()); diff --git a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/Validate.java b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/Validate.java index 63ce1f6cb5d..8af47269fcb 100644 --- a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/Validate.java +++ b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/Validate.java @@ -19,7 +19,6 @@ package org.openapitools.codegen.cmd; import io.airlift.airline.Command; import io.airlift.airline.Option; - import io.swagger.parser.OpenAPIParser; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.parser.core.models.AuthorizationValue; @@ -35,7 +34,7 @@ import java.util.HashSet; import java.util.List; import java.util.Set; -@SuppressWarnings({"unused","java:S106"}) +@SuppressWarnings({"unused", "java:S106"}) @Command(name = "validate", description = "Validate specification") public class Validate extends OpenApiGeneratorCommand { @@ -43,7 +42,7 @@ public class Validate extends OpenApiGeneratorCommand { description = "location of the OpenAPI spec, as URL or file (required)") private String spec; - @Option(name = { "--recommend"}, title = "recommend spec improvements") + @Option(name = {"--recommend"}, title = "recommend spec improvements") private Boolean recommend; @Option( diff --git a/modules/openapi-generator-cli/src/test/java/org/openapitools/codegen/cmd/AuthorTemplateTest.java b/modules/openapi-generator-cli/src/test/java/org/openapitools/codegen/cmd/AuthorTemplateTest.java index a8a7f1b0ba2..0314d76f0a2 100644 --- a/modules/openapi-generator-cli/src/test/java/org/openapitools/codegen/cmd/AuthorTemplateTest.java +++ b/modules/openapi-generator-cli/src/test/java/org/openapitools/codegen/cmd/AuthorTemplateTest.java @@ -20,7 +20,7 @@ public class AuthorTemplateTest { } @Test - public void smokeTestAuthorTemplateCommand(){ + public void smokeTestAuthorTemplateCommand() { Cli.CliBuilder builder = createBuilder(); String[] arguments = new String[]{ "author", @@ -57,7 +57,7 @@ public class AuthorTemplateTest { Assert.assertFalse(Files.exists(outputDirectory.resolve("libraries/okhttp-gson/auth/RetryingOAuth.mustache"))); } - private Cli.CliBuilder createBuilder(){ + private Cli.CliBuilder createBuilder() { Cli.CliBuilder builder = new Cli.CliBuilder<>("openapi-generator-cli"); builder.withGroup("author") diff --git a/modules/openapi-generator-cli/src/test/java/org/openapitools/codegen/cmd/GenerateBatchTest.java b/modules/openapi-generator-cli/src/test/java/org/openapitools/codegen/cmd/GenerateBatchTest.java index 9988ccf989d..2706c7444cd 100644 --- a/modules/openapi-generator-cli/src/test/java/org/openapitools/codegen/cmd/GenerateBatchTest.java +++ b/modules/openapi-generator-cli/src/test/java/org/openapitools/codegen/cmd/GenerateBatchTest.java @@ -42,7 +42,7 @@ public class GenerateBatchTest { @DataProvider(name = "customIncludeDeserializerFiles") public Object[][] customIncludeDeserializerFiles() { - return new Object[][] { + return new Object[][]{ {JAXRS_DATELIB_J8_JSON}, {JAXRS_DATELIB_J8_YAML}, {JAXRS_DATELIB_J8_JSON_INCLUDE_YAML}, @@ -89,7 +89,7 @@ public class GenerateBatchTest { @SuppressWarnings("unused") @Test( - expectedExceptions = { RuntimeException.class }, + expectedExceptions = {RuntimeException.class}, expectedExceptionsMessageRegExp = "Unable to deserialize config file: .*" ) public void testInvalidDeserializerWithIncludeOption() { diff --git a/modules/openapi-generator-cli/src/test/java/org/openapitools/codegen/cmd/GenerateTest.java b/modules/openapi-generator-cli/src/test/java/org/openapitools/codegen/cmd/GenerateTest.java index 3c459b04075..594a5f5f186 100644 --- a/modules/openapi-generator-cli/src/test/java/org/openapitools/codegen/cmd/GenerateTest.java +++ b/modules/openapi-generator-cli/src/test/java/org/openapitools/codegen/cmd/GenerateTest.java @@ -363,7 +363,7 @@ public class GenerateTest { verify(configurator).toContext(); verifyNoMoreInteractions(configurator); } finally { - if(!f.delete()) { + if (!f.delete()) { System.out.println("Directory didn't delete. You can ignore this."); } } @@ -389,7 +389,7 @@ public class GenerateTest { verify(configurator).toClientOptInput(); verify(configurator).toContext(); verifyNoMoreInteractions(configurator); - if(!f.delete()) { + if (!f.delete()) { System.out.println("Directory didn't delete. You can ignore this."); } } diff --git a/modules/openapi-generator-cli/src/test/java/org/openapitools/codegen/cmd/utils/OptionUtilsTest.java b/modules/openapi-generator-cli/src/test/java/org/openapitools/codegen/cmd/utils/OptionUtilsTest.java index cda2bccc831..1ee3ce093c7 100644 --- a/modules/openapi-generator-cli/src/test/java/org/openapitools/codegen/cmd/utils/OptionUtilsTest.java +++ b/modules/openapi-generator-cli/src/test/java/org/openapitools/codegen/cmd/utils/OptionUtilsTest.java @@ -17,8 +17,8 @@ package org.openapitools.codegen.cmd.utils; -import org.openapitools.codegen.utils.OptionUtils; import org.apache.commons.lang3.tuple.Pair; +import org.openapitools.codegen.utils.OptionUtils; import org.testng.annotations.Test; import java.util.Collections; diff --git a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/AbstractTemplatingEngineAdapter.java b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/AbstractTemplatingEngineAdapter.java index 6c568f6ad3b..cc2b1827168 100644 --- a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/AbstractTemplatingEngineAdapter.java +++ b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/AbstractTemplatingEngineAdapter.java @@ -27,7 +27,6 @@ public abstract class AbstractTemplatingEngineAdapter implements TemplatingEngin * Gets all possible template paths for a given location. * * @param location The full location of the template. - * * @return A new array of locations, modified according to the extensions or other adapter rules. */ protected String[] getModifiedFileLocation(String location) { @@ -44,7 +43,6 @@ public abstract class AbstractTemplatingEngineAdapter implements TemplatingEngin * Returns the path without an extension for an input location. * * @param location The location of the file, with original file extension intact. - * * @return The full path, without extension (e.g. /path/to/file.txt => /path/to/file) */ private String getPathWithoutExtension(String location) { diff --git a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/TemplateDefinition.java b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/TemplateDefinition.java index 51d6c929e03..932e443fc86 100644 --- a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/TemplateDefinition.java +++ b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/TemplateDefinition.java @@ -17,7 +17,7 @@ public class TemplateDefinition { /** *

Constructor for TemplateDefinition.

* - * @param templateFile a template path relative to user template or embedded template. + * @param templateFile a template path relative to user template or embedded template. * @param destinationFilename a target output location for the file, relative to the output directory. */ public TemplateDefinition(String templateFile, String destinationFilename) { @@ -34,8 +34,8 @@ public class TemplateDefinition { /** *

Constructor for TemplateDefinition.

* - * @param templateFile a template path relative to user template or embedded template. - * @param folder a folder in the target output directory in which to place the target file. + * @param templateFile a template path relative to user template or embedded template. + * @param folder a folder in the target output directory in which to place the target file. * @param destinationFilename a target output location for the file, relative to the output directory. */ public TemplateDefinition(String templateFile, String folder, String destinationFilename) { @@ -94,7 +94,9 @@ public class TemplateDefinition { this.templateType = templateType; } - /** {@inheritDoc} */ + /** + * {@inheritDoc} + */ @Override public boolean equals(Object o) { if (this == o) return true; @@ -106,13 +108,17 @@ public class TemplateDefinition { getTemplateType() == that.getTemplateType(); } - /** {@inheritDoc} */ + /** + * {@inheritDoc} + */ @Override public int hashCode() { return Objects.hash(getTemplateFile(), getFolder(), getDestinationFilename(), getTemplateType()); } - /** {@inheritDoc} */ + /** + * {@inheritDoc} + */ @Override public String toString() { return new StringJoiner(", ", TemplateDefinition.class.getSimpleName() + "[", "]") diff --git a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/TemplateFileType.java b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/TemplateFileType.java index 68ff5610fe3..fbe310e5eba 100644 --- a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/TemplateFileType.java +++ b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/TemplateFileType.java @@ -17,16 +17,22 @@ public enum TemplateFileType { private final String templateType; - TemplateFileType(String templateType) { this.templateType = templateType; } + TemplateFileType(String templateType) { + this.templateType = templateType; + } /** * Returns the value for this template file type * * @return The template type of this enum. */ - public String value() { return this.templateType; } + public String value() { + return this.templateType; + } - /** {@inheritDoc} */ + /** + * {@inheritDoc} + */ @Override public String toString() { return new StringJoiner(", ", TemplateFileType.class.getSimpleName() + "[", "]") diff --git a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/TemplateProcessor.java b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/TemplateProcessor.java index 536d2d89ac9..d277733ac57 100644 --- a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/TemplateProcessor.java +++ b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/TemplateProcessor.java @@ -12,10 +12,9 @@ public interface TemplateProcessor { /** * Writes data to a compiled template * - * @param data Input data + * @param data Input data * @param template Input template location - * @param target The targeted file output location - * + * @param target The targeted file output location * @return The actual file * @throws IOException If file cannot be written. */ @@ -34,7 +33,7 @@ public interface TemplateProcessor { /** * Allow a caller to mark a path as ignored with accompanying reason * - * @param path The ignored path + * @param path The ignored path * @param context The reason for ignoring this path */ void ignore(Path path, String context); @@ -42,7 +41,7 @@ public interface TemplateProcessor { /** * Allow a caller to mark a path as skipped with accompanying reason * - * @param path The skipped path + * @param path The skipped path * @param context The reason for skipping this path */ void skip(Path path, String context); @@ -50,8 +49,9 @@ public interface TemplateProcessor { /** * Allow a caller to mark a path having errored during processing with accompanying reason * - * @param path The path which has caused an error + * @param path The path which has caused an error * @param context The reason for the error */ - default void error(Path path, String context) { } + default void error(Path path, String context) { + } } diff --git a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/TemplatingEngineAdapter.java b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/TemplatingEngineAdapter.java index 34666bf7a2c..4be4575f5bc 100644 --- a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/TemplatingEngineAdapter.java +++ b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/TemplatingEngineAdapter.java @@ -47,8 +47,8 @@ public interface TemplatingEngineAdapter { /** * Determine if the adapter handles compilation of the file - * @param filename The template filename * + * @param filename The template filename * @return True if the file should be compiled by this adapter, else false. */ default boolean handlesFile(String filename) { @@ -58,7 +58,7 @@ public interface TemplatingEngineAdapter { /** * Compiles a template into a string * - * @param executor From where we can fetch the templates content (e.g. an instance of DefaultGenerator) + * @param executor From where we can fetch the templates content (e.g. an instance of DefaultGenerator) * @param bundle The map of values to pass to the template * @param templateFile The name of the template (e.g. model.mustache ) * @return the processed template result diff --git a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/TemplatingGenerator.java b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/TemplatingGenerator.java index 86f306a790b..ee814183d31 100644 --- a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/TemplatingGenerator.java +++ b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/api/TemplatingGenerator.java @@ -17,6 +17,7 @@ package org.openapitools.codegen.api; // TODO: 6.0 Remove + /** * interface to the full template content * implementers might take into account the -t cli option, diff --git a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/config/WorkflowSettings.java b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/config/WorkflowSettings.java index e9d9824673c..f943fef3aa6 100644 --- a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/config/WorkflowSettings.java +++ b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/config/WorkflowSettings.java @@ -340,7 +340,7 @@ public class WorkflowSettings { * @return a reference to this Builder */ public Builder withOutputDir(String outputDir) { - if (outputDir != null ) { + if (outputDir != null) { this.outputDir = Paths.get(outputDir).toAbsolutePath().toString(); } else { this.outputDir = DEFAULT_OUTPUT_DIR; @@ -473,7 +473,7 @@ public class WorkflowSettings { // check to see if the folder exists if (f.exists() && f.isDirectory()) { uri = f.toURI(); - this.templateDir = Paths.get(uri).toAbsolutePath().normalize().toString(); + this.templateDir = Paths.get(uri).toAbsolutePath().normalize().toString(); } else { String cpDir; // HACK: this duplicates TemplateManager.getCPResourcePath a bit. We should probably move that function to core. @@ -543,7 +543,7 @@ public class WorkflowSettings { /** * Sets the {@code globalProperties} and returns a reference to this Builder so that the methods can be chained together. * - * @param key The key of a system (global) property to set + * @param key The key of a system (global) property to set * @param value The value of a system (global) property to set * @return a reference to this Builder */ diff --git a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/FeatureSet.java b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/FeatureSet.java index db98fe2be7b..0e13bf7f2b0 100644 --- a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/FeatureSet.java +++ b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/FeatureSet.java @@ -383,7 +383,6 @@ public class FeatureSet { * Includes the defined {@link ClientModificationFeature} to the new/existing set of supported features. * * @param clientModificationFeature One or more {@code clientModificationFeature} to ensure are included in the set. - * * @return a reference to this Builder */ public Builder includeClientModificationFeatures(ClientModificationFeature... clientModificationFeature) { @@ -395,7 +394,6 @@ public class FeatureSet { * Excludes the defined {@link ClientModificationFeature} from the set of supported features. * * @param clientModificationFeature One or more {@code clientModificationFeature} to ensure are excluded from the set. - * * @return a reference to this Builder */ public Builder excludeClientModificationFeatures(ClientModificationFeature... clientModificationFeature) { @@ -422,7 +420,6 @@ public class FeatureSet { * Includes the defined {@link DataTypeFeature} to the new/existing set of supported features. * * @param dataTypeFeature One or more {@code dataTypeFeature} to ensure are included in the set. - * * @return a reference to this Builder */ public Builder includeDataTypeFeatures(DataTypeFeature... dataTypeFeature) { @@ -434,7 +431,6 @@ public class FeatureSet { * Excludes the defined {@link DataTypeFeature} from the set of supported features. * * @param dataTypeFeature One or more {@code dataTypeFeature} to ensure are excluded from the set. - * * @return a reference to this Builder */ public Builder excludeDataTypeFeatures(DataTypeFeature... dataTypeFeature) { @@ -461,7 +457,6 @@ public class FeatureSet { * Includes the defined {@link DocumentationFeature} to the new/existing set of supported features. * * @param documentationFeature One or more {@code documentationFeature} to ensure are included in the set. - * * @return a reference to this Builder */ public Builder includeDocumentationFeatures(DocumentationFeature... documentationFeature) { @@ -473,7 +468,6 @@ public class FeatureSet { * Excludes the defined {@link DocumentationFeature} from the set of supported features. * * @param documentationFeature One or more {@code documentationFeature} to ensure are excluded from the set. - * * @return a reference to this Builder */ public Builder excludeDocumentationFeatures(DocumentationFeature... documentationFeature) { @@ -500,7 +494,6 @@ public class FeatureSet { * Includes the defined {@link SchemaSupportFeature} to the new/existing set of supported features. * * @param schemaSupportFeature One or more {@code schemaSupportFeature} to ensure are included in the set. - * * @return a reference to this Builder */ public Builder includeSchemaSupportFeatures(SchemaSupportFeature... schemaSupportFeature) { @@ -512,7 +505,6 @@ public class FeatureSet { * Excludes the defined {@link SchemaSupportFeature} from the set of supported features. * * @param schemaSupportFeature One or more {@code schemaSupportFeature} to ensure are excluded from the set. - * * @return a reference to this Builder */ public Builder excludeSchemaSupportFeatures(SchemaSupportFeature... schemaSupportFeature) { @@ -539,7 +531,6 @@ public class FeatureSet { * Includes the defined {@link ParameterFeature} to the new/existing set of supported features. * * @param parameterFeature One or more {@code parameterFeature} to ensure are included in the set. - * * @return a reference to this Builder */ public Builder includeParameterFeatures(ParameterFeature... parameterFeature) { @@ -551,7 +542,6 @@ public class FeatureSet { * Excludes the defined {@link ParameterFeature} from the set of supported features. * * @param parameterFeature One or more {@code parameterFeature} to ensure are excluded from the set. - * * @return a reference to this Builder */ public Builder excludeParameterFeatures(ParameterFeature... parameterFeature) { @@ -578,7 +568,6 @@ public class FeatureSet { * Includes the defined {@link SecurityFeature} to the new/existing set of supported features. * * @param securityFeature One or more {@code securityFeature} to ensure are included in the set. - * * @return a reference to this Builder */ public Builder includeSecurityFeatures(SecurityFeature... securityFeature) { @@ -590,7 +579,6 @@ public class FeatureSet { * Excludes the defined {@link SecurityFeature} from the set of supported features. * * @param securityFeature One or more {@code securityFeature} to ensure are excluded from the set. - * * @return a reference to this Builder */ public Builder excludeSecurityFeatures(SecurityFeature... securityFeature) { @@ -617,7 +605,6 @@ public class FeatureSet { * Includes the defined {@link GlobalFeature} to the new/existing set of supported features. * * @param globalFeature One or more {@code globalFeatures} to ensure are included in the set. - * * @return a reference to this Builder */ public Builder includeGlobalFeatures(GlobalFeature... globalFeature) { @@ -629,7 +616,6 @@ public class FeatureSet { * Excludes the defined {@link GlobalFeature} from the set of supported features. * * @param globalFeature One or more {@code globalFeatures} to ensure are excluded from the set. - * * @return a reference to this Builder */ public Builder excludeGlobalFeatures(GlobalFeature... globalFeature) { @@ -656,7 +642,6 @@ public class FeatureSet { * Includes the defined {@link WireFormatFeature} to the new/existing set of supported features. * * @param wireFormatFeature One or more {@code wireFormatFeatures} to ensure are included in the set. - * * @return a reference to this Builder */ public Builder includeWireFormatFeatures(WireFormatFeature... wireFormatFeature) { @@ -672,7 +657,6 @@ public class FeatureSet { *

* * @param wireFormatFeature One or more {@code wireFormatFeatures} to ensure are excluded from the set. - * * @return a reference to this Builder */ public Builder excludeWireFormatFeatures(WireFormatFeature... wireFormatFeature) { diff --git a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/Stability.java b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/Stability.java index bc79af24309..838f1e4caa6 100644 --- a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/Stability.java +++ b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/Stability.java @@ -49,10 +49,12 @@ public enum Stability { * * @return The descriptive value of this enum. */ - public String value() { return description; } + public String value() { + return description; + } public static Stability forDescription(String description) { - for (Stability value: values()) { + for (Stability value : values()) { if (value.description.equals(description)) { return value; } diff --git a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/DataTypeFeature.java b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/DataTypeFeature.java index d684a6ce6df..50437c7523a 100644 --- a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/DataTypeFeature.java +++ b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/DataTypeFeature.java @@ -23,7 +23,7 @@ import org.openapitools.codegen.meta.features.annotations.ToolingExtension; /** * Defines common data types supported by a generator. * Some of these features are defined in specs, and some are specific to the tool. - * + *

* Where data types are listed as tool-specific, this either indicates that the data type is common enough that it is an officially * supported custom data type by the toolset (see {@link DataTypeFeature#Decimal}), or that the consideration of a special type isn't * explicitly mentioned by the specification(s) but differs enough across languages that it warrants a special callout (see {@link DataTypeFeature#ArrayOfModel}). @@ -114,9 +114,9 @@ public enum DataTypeFeature { * * *

- * This should be used as an indicator for password best practices, such as assigning a variable to - * a character array rather than string, avoiding logging the variable in clear text, and masking the value - * in any user inputs. See OWASP for best practices. + * This should be used as an indicator for password best practices, such as assigning a variable to + * a character array rather than string, avoiding logging the variable in clear text, and masking the value + * in any user inputs. See OWASP for best practices. *

*/ @OAS2 @OAS3 diff --git a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/GlobalFeature.java b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/GlobalFeature.java index f8b2a6d0b6a..478e7bd44d1 100644 --- a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/GlobalFeature.java +++ b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/GlobalFeature.java @@ -129,7 +129,7 @@ public enum GlobalFeature { * *

* NOTE: This option is more relevant for documentation generators which support HTML stylesheets, but may be used - * to determine structural characteristics of a property (as with OAS 3.x lack of collectionFormat). + * to determine structural characteristics of a property (as with OAS 3.x lack of collectionFormat). *

*/ @OAS3 diff --git a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/ParameterFeature.java b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/ParameterFeature.java index 6c9a3d6b883..90059388e98 100644 --- a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/ParameterFeature.java +++ b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/ParameterFeature.java @@ -45,7 +45,7 @@ public enum ParameterFeature { * Supports body parameters. * *

- * OAS 3.x specification supports this structurally rather than as an "in" parameter. + * OAS 3.x specification supports this structurally rather than as an "in" parameter. *

*/ @OAS2 @@ -53,7 +53,7 @@ public enum ParameterFeature { /** * Supports form encoded parameters. - * + *

* OAS 3.x specification supports this structurally via content types rather than as an "in" parameter. */ @OAS2 diff --git a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/SchemaSupportFeature.java b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/SchemaSupportFeature.java index 6f453d12e65..9c578be2891 100644 --- a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/SchemaSupportFeature.java +++ b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/SchemaSupportFeature.java @@ -54,11 +54,11 @@ public enum SchemaSupportFeature { * *

* This means that a single "Type" in generated code may refer to one of any type in a set of 2 or more types. - * + *

* This is defined as a union as "OneOf" support is not explicitly limited to physical boundaries in OpenAPI Specification. The * implementation of such a type is easily represented dynamically (a JSON object), but requires explicit language support and * potentially a custom implementation (typed instances). - * + *

* Note that a generator may support "Unions" very loosely by returning an Object/Any/ref/interface{} type, leaving onus * on type determination to the consumer. This does *NOT* suggest generated code implements a "Union Type". *

diff --git a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/annotations/AnnotationType.java b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/annotations/AnnotationType.java index 82e3886d6be..e3e09caeb5d 100644 --- a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/annotations/AnnotationType.java +++ b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/meta/features/annotations/AnnotationType.java @@ -4,9 +4,9 @@ public enum AnnotationType { OAS2, OAS3, ToolingExtension; public static AnnotationType fromAnnotation(Class input) { - if(input == OAS2.class) return AnnotationType.OAS2; - if(input == OAS3.class) return AnnotationType.OAS3; - if(input == ToolingExtension.class) return AnnotationType.ToolingExtension; + if (input == OAS2.class) return AnnotationType.OAS2; + if (input == OAS3.class) return AnnotationType.OAS3; + if (input == ToolingExtension.class) return AnnotationType.ToolingExtension; return null; } } diff --git a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/GenericValidator.java b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/GenericValidator.java index 00e4e00e463..a7b5ad2fc86 100644 --- a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/GenericValidator.java +++ b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/GenericValidator.java @@ -39,7 +39,6 @@ public class GenericValidator implements Validator { * Validates input, resulting in a instance of {@link ValidationResult} which provides details on all validations performed (success, error, warning). * * @param input The object instance to be validated. - * * @return A {@link ValidationResult} which details the success, error, and warning validation results. */ @Override diff --git a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/Invalid.java b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/Invalid.java index 131e7a73465..89966b05445 100644 --- a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/Invalid.java +++ b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/Invalid.java @@ -28,7 +28,7 @@ public final class Invalid extends Validated { /** * Constructs a new {@link Invalid} instance. * - * @param rule The rule which was evaluated and resulted in this state. + * @param rule The rule which was evaluated and resulted in this state. * @param message The message to be displayed for this invalid state. */ Invalid(ValidationRule rule, String message) { @@ -39,7 +39,7 @@ public final class Invalid extends Validated { /** * Constructs a new {@link Invalid} instance. * - * @param rule The rule which was evaluated and resulted in this state. + * @param rule The rule which was evaluated and resulted in this state. * @param message The message to be displayed for this invalid state. * @param details Additional contextual details related to the invalid state. */ diff --git a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/Validated.java b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/Validated.java index 05f9df833e4..426d11647d2 100644 --- a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/Validated.java +++ b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/Validated.java @@ -46,21 +46,20 @@ public abstract class Validated { /** * Creates an instance of an {@link Invalid} validation state. * - * @param rule The rule which was evaluated. + * @param rule The rule which was evaluated. * @param message The message to display to a user. - * * @return A {@link Validated} instance representing an invalid state according to the rule. */ public static Validated invalid(ValidationRule rule, String message) { return new Invalid(rule, message); } + /** * Creates an instance of an {@link Invalid} validation state. * - * @param rule The rule which was evaluated. + * @param rule The rule which was evaluated. * @param message The message to display to a user. * @param details Additional contextual details related to the invalid state. - * * @return A {@link Validated} instance representing an invalid state according to the rule. */ public static Validated invalid(ValidationRule rule, String message, String details) { @@ -71,7 +70,6 @@ public abstract class Validated { * Creates an instance of an {@link Valid} validation state. * * @param rule The rule which was evaluated. - * * @return A {@link Validated} instance representing a valid state according to the rule. */ public static Validated valid(ValidationRule rule) { diff --git a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/ValidationResult.java b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/ValidationResult.java index 628a11a225c..101d1609fd8 100644 --- a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/ValidationResult.java +++ b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/ValidationResult.java @@ -49,7 +49,7 @@ public final class ValidationResult { * @return All validated results. */ public List getAll() { - return validations; + return validations; } /** @@ -57,8 +57,8 @@ public final class ValidationResult { * * @return A list containing only {@link Valid} states. */ - public List getValid(){ - return validations.stream().filter(Validated::isValid).map(it -> (Valid)it).collect(Collectors.toList()); + public List getValid() { + return validations.stream().filter(Validated::isValid).map(it -> (Valid) it).collect(Collectors.toList()); } /** @@ -66,10 +66,10 @@ public final class ValidationResult { * * @return A list of all validation errors. */ - public List getErrors(){ + public List getErrors() { return validations.stream() .filter(it -> !it.isValid()) - .map(it -> (Invalid)it) + .map(it -> (Invalid) it) .filter(it -> it.getSeverity().equals(Severity.ERROR)) .collect(Collectors.toList()); } @@ -79,10 +79,10 @@ public final class ValidationResult { * * @return A list of all validation warnings. */ - public List getWarnings(){ + public List getWarnings() { return validations.stream() .filter(it -> !it.isValid()) - .map(it -> (Invalid)it) + .map(it -> (Invalid) it) .filter(it -> it.getSeverity().equals(Severity.WARNING)) .collect(Collectors.toList()); } diff --git a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/ValidationRule.java b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/ValidationRule.java index c20773364b3..6472074cd96 100644 --- a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/ValidationRule.java +++ b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/ValidationRule.java @@ -31,11 +31,11 @@ public class ValidationRule { /** * Constructs a new instance of {@link ValidationRule} * - * @param severity The declared severity if this validation rule fails. - * @param description A description to help differentiate this rule from others (not intended to be user-facing). + * @param severity The declared severity if this validation rule fails. + * @param description A description to help differentiate this rule from others (not intended to be user-facing). * @param failureMessage The message to be displayed in the event of a test failure (intended to be user-facing). - * @param test The test condition to be applied as a part of this rule, when this function returns true, - * the evaluated instance will be considered "valid" according to this rule. + * @param test The test condition to be applied as a part of this rule, when this function returns true, + * the evaluated instance will be considered "valid" according to this rule. */ ValidationRule(Severity severity, String description, String failureMessage, Function test) { this.severity = severity; @@ -57,7 +57,6 @@ public class ValidationRule { * Evaluate an instance of an object against this rule. * * @param input The instance to be evaluated. - * * @return true if the object state is valid according to this rule, otherwise false. */ public Result evaluate(Object input) { @@ -90,19 +89,18 @@ public class ValidationRule { * @return An "empty" rule. */ static ValidationRule empty() { - return new ValidationRule(Severity.ERROR, "empty", "failure message", (i) -> Fail.empty() ); + return new ValidationRule(Severity.ERROR, "empty", "failure message", (i) -> Fail.empty()); } /** * Create an instance of a {@link ValidationRule} * - * @param severity The declared severity if this validation rule fails. - * @param description A description to help differentiate this rule from others (not intended to be user-facing). + * @param severity The declared severity if this validation rule fails. + * @param description A description to help differentiate this rule from others (not intended to be user-facing). * @param failureMessage The message to be displayed in the event of a test failure (intended to be user-facing). - * @param fn The test condition to be applied as a part of this rule, when this function returns true, - * the evaluated instance will be considered "valid" according to this rule. - * @param The type of the object being evaluated. - * + * @param fn The test condition to be applied as a part of this rule, when this function returns true, + * the evaluated instance will be considered "valid" according to this rule. + * @param The type of the object being evaluated. * @return A new instance of a {@link ValidationRule} */ @SuppressWarnings("unchecked") @@ -114,10 +112,9 @@ public class ValidationRule { * Create an instance of a {@link ValidationRule} which should result in an error should the evaluate of this rule fail. * * @param failureMessage The message to be displayed in the event of a test failure (intended to be user-facing). - * @param fn The test condition to be applied as a part of this rule, when this function returns true, - * the evaluated instance will be considered "valid" according to this rule. - * @param The type of the object being evaluated. - * + * @param fn The test condition to be applied as a part of this rule, when this function returns true, + * the evaluated instance will be considered "valid" according to this rule. + * @param The type of the object being evaluated. * @return A new instance of a {@link ValidationRule} */ @SuppressWarnings("unchecked") @@ -128,12 +125,11 @@ public class ValidationRule { /** * Create an instance of a {@link ValidationRule} which should result in a warning should the evaluate of this rule fail. * - * @param description A description to help differentiate this rule from others (not intended to be user-facing). + * @param description A description to help differentiate this rule from others (not intended to be user-facing). * @param failureMessage The message to be displayed in the event of a test failure (intended to be user-facing). - * @param fn The test condition to be applied as a part of this rule, when this function returns true, - * the evaluated instance will be considered "valid" according to this rule. - * @param The type of the object being evaluated. - * + * @param fn The test condition to be applied as a part of this rule, when this function returns true, + * the evaluated instance will be considered "valid" according to this rule. + * @param The type of the object being evaluated. * @return A new instance of a {@link ValidationRule} */ @SuppressWarnings("unchecked") @@ -164,17 +160,24 @@ public class ValidationRule { } public abstract boolean passed(); - public final boolean failed() { return !passed(); } + + public final boolean failed() { + return !passed(); + } public Throwable getThrowable() { return throwable; } - public boolean thrown() { return this.throwable == null; } + public boolean thrown() { + return this.throwable == null; + } } public static final class Pass extends Result { - public static Result empty() { return new Pass(); } + public static Result empty() { + return new Pass(); + } public Pass() { super(); @@ -192,7 +195,9 @@ public class ValidationRule { } public static final class Fail extends Result { - public static Result empty() { return new Fail(); } + public static Result empty() { + return new Fail(); + } public Fail() { super(); diff --git a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/Validator.java b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/Validator.java index fdf23fb3661..fbdac636104 100644 --- a/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/Validator.java +++ b/modules/openapi-generator-core/src/main/java/org/openapitools/codegen/validation/Validator.java @@ -27,7 +27,6 @@ public interface Validator { * Validates input, resulting in a instance of {@link ValidationResult} which provides details on all validations performed (success, error, warning). * * @param input The object instance to be validated. - * * @return A {@link ValidationResult} which details the success, error, and warning validation results. */ ValidationResult validate(TInput input); diff --git a/modules/openapi-generator-core/src/test/java/org/openapitools/codegen/config/WorkflowSettingsTest.java b/modules/openapi-generator-core/src/test/java/org/openapitools/codegen/config/WorkflowSettingsTest.java index 4b417c75a6e..1ae078841d1 100644 --- a/modules/openapi-generator-core/src/test/java/org/openapitools/codegen/config/WorkflowSettingsTest.java +++ b/modules/openapi-generator-core/src/test/java/org/openapitools/codegen/config/WorkflowSettingsTest.java @@ -25,7 +25,7 @@ import static org.testng.Assert.*; public class WorkflowSettingsTest { @Test - public void defaultValuesNotOverriddenByNulls(){ + public void defaultValuesNotOverriddenByNulls() { WorkflowSettings settings = WorkflowSettings.newBuilder() .withOutputDir(null) .withVerbose(null) @@ -50,7 +50,7 @@ public class WorkflowSettingsTest { } @Test - public void newBuilderFromCopyShouldMutateGlobalProperties(){ + public void newBuilderFromCopyShouldMutateGlobalProperties() { WorkflowSettings original = WorkflowSettings.newBuilder() .withOutputDir("output") .withVerbose(true) @@ -110,16 +110,17 @@ public class WorkflowSettingsTest { } @Test - public void defaultValuesCanBeChangedClassConstructor(){ + public void defaultValuesCanBeChangedClassConstructor() { WorkflowSettings defaults = new WorkflowSettings(); assertOnChangesToDefaults(defaults); } @Test - public void defaultValuesCanBeChangedBuilder(){ + public void defaultValuesCanBeChangedBuilder() { WorkflowSettings defaults = WorkflowSettings.newBuilder().build(); assertOnChangesToDefaults(defaults); } + @Test public void customOutputDirIsSet() { WorkflowSettings settings = WorkflowSettings.newBuilder() diff --git a/modules/openapi-generator-core/src/test/java/org/openapitools/codegen/validation/GenericValidatorTest.java b/modules/openapi-generator-core/src/test/java/org/openapitools/codegen/validation/GenericValidatorTest.java index 3fa8874ff19..9919f49964b 100644 --- a/modules/openapi-generator-core/src/test/java/org/openapitools/codegen/validation/GenericValidatorTest.java +++ b/modules/openapi-generator-core/src/test/java/org/openapitools/codegen/validation/GenericValidatorTest.java @@ -18,12 +18,13 @@ package org.openapitools.codegen.validation; import org.testng.annotations.Test; -import static org.testng.Assert.*; - import java.util.Arrays; import java.util.List; import java.util.Optional; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertTrue; + public class GenericValidatorTest { static class Person { private int age; @@ -53,7 +54,7 @@ public class GenericValidatorTest { } private static ValidationRule.Result checkNameNormalLength(Person person) { - return person.name.length() < 10? ValidationRule.Pass.empty() : ValidationRule.Fail.empty(); + return person.name.length() < 10 ? ValidationRule.Pass.empty() : ValidationRule.Fail.empty(); } private List validationRules = Arrays.asList( @@ -65,7 +66,7 @@ public class GenericValidatorTest { ); @Test - public void testGenericValidatorSuccesses(){ + public void testGenericValidatorSuccesses() { Person person = new Person("Jim", 23); GenericValidator validator = new GenericValidator<>(validationRules); ValidationResult result = validator.validate(person); @@ -79,7 +80,7 @@ public class GenericValidatorTest { } @Test - public void testGenericValidatorSingleConditionFails(){ + public void testGenericValidatorSingleConditionFails() { Person person = new Person("Jim", 3); GenericValidator validator = new GenericValidator<>(validationRules); ValidationResult result = validator.validate(person); @@ -98,7 +99,7 @@ public class GenericValidatorTest { } @Test - public void testGenericValidatorMultipleConditionsFail(){ + public void testGenericValidatorMultipleConditionsFail() { Person person = new Person("asdf", 3); GenericValidator validator = new GenericValidator<>(validationRules); ValidationResult result = validator.validate(person); @@ -122,7 +123,7 @@ public class GenericValidatorTest { } @Test - public void testGenericValidatorErrorsAndWarnings(){ + public void testGenericValidatorErrorsAndWarnings() { Person person = new Person("0123456789asdfghjkl", 3); GenericValidator validator = new GenericValidator<>(validationRules); ValidationResult result = validator.validate(person); diff --git a/modules/openapi-generator-core/src/test/java/org/openapitools/codegen/validation/ValidatedTest.java b/modules/openapi-generator-core/src/test/java/org/openapitools/codegen/validation/ValidatedTest.java index 44cf125f5c7..70bea9ea9f1 100644 --- a/modules/openapi-generator-core/src/test/java/org/openapitools/codegen/validation/ValidatedTest.java +++ b/modules/openapi-generator-core/src/test/java/org/openapitools/codegen/validation/ValidatedTest.java @@ -18,17 +18,18 @@ package org.openapitools.codegen.validation; import org.testng.annotations.Test; -import static org.testng.Assert.*; +import static org.testng.Assert.assertFalse; +import static org.testng.Assert.assertTrue; public class ValidatedTest { @Test - public void isValidTrueForValidType(){ + public void isValidTrueForValidType() { boolean isValid = Validated.valid(ValidationRule.empty()).isValid(); assertTrue(isValid); } @Test - public void isValidFalseForInvalidType(){ + public void isValidFalseForInvalidType() { boolean isValid = Validated.invalid(ValidationRule.empty(), "test").isValid(); assertFalse(isValid); } diff --git a/modules/openapi-generator-core/src/test/java/org/openapitools/codegen/validation/ValidationRuleTest.java b/modules/openapi-generator-core/src/test/java/org/openapitools/codegen/validation/ValidationRuleTest.java index f75389aafa5..857191e8502 100644 --- a/modules/openapi-generator-core/src/test/java/org/openapitools/codegen/validation/ValidationRuleTest.java +++ b/modules/openapi-generator-core/src/test/java/org/openapitools/codegen/validation/ValidationRuleTest.java @@ -18,7 +18,8 @@ package org.openapitools.codegen.validation; import org.testng.annotations.Test; -import static org.testng.Assert.*; +import static org.testng.Assert.assertFalse; +import static org.testng.Assert.assertTrue; public class ValidationRuleTest { static class Sample { @@ -39,11 +40,11 @@ public class ValidationRuleTest { private static ValidationRule.Result checkPattern(Sample input) { String pattern = "^[A-Z][a-z]*$"; - return (input.getName() != null && input.getName().matches(pattern)) ? ValidationRule.Pass.empty() : ValidationRule.Fail.empty(); + return (input.getName() != null && input.getName().matches(pattern)) ? ValidationRule.Pass.empty() : ValidationRule.Fail.empty(); } @Test - public void createMethodUsingMethodReference(){ + public void createMethodUsingMethodReference() { Sample nil = new Sample(null); Sample six = new Sample("123456"); Sample seven = new Sample("1234567"); @@ -56,11 +57,11 @@ public class ValidationRuleTest { } @Test - public void createMethodUsingLambda(){ + public void createMethodUsingLambda() { Sample nil = new Sample(null); Sample lowercase = new Sample("jim"); Sample titlecase = new Sample("Jim"); - ValidationRule result = ValidationRule.error("test", i -> checkPattern((Sample)i)); + ValidationRule result = ValidationRule.error("test", i -> checkPattern((Sample) i)); assertFalse(result.evaluate(nil).passed()); assertFalse(result.evaluate(lowercase).passed()); assertTrue(result.evaluate(titlecase).passed()); diff --git a/modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/CodeGenMojo.java b/modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/CodeGenMojo.java index 11112e96fa5..e1aa64b3f1e 100644 --- a/modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/CodeGenMojo.java +++ b/modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/CodeGenMojo.java @@ -30,11 +30,13 @@ import lombok.Setter; import org.apache.commons.io.FileUtils; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.maven.artifact.Artifact; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecution; import org.apache.maven.plugin.MojoExecutionException; -import org.apache.maven.plugins.annotations.*; +import org.apache.maven.plugins.annotations.Component; +import org.apache.maven.plugins.annotations.LifecyclePhase; +import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; import org.apache.maven.project.MavenProjectHelper; import org.openapitools.codegen.*; @@ -49,7 +51,10 @@ import org.sonatype.plexus.build.incremental.DefaultBuildContext; import java.io.File; import java.io.IOException; -import java.net.*; +import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; import java.nio.charset.StandardCharsets; import java.nio.file.Path; import java.text.MessageFormat; @@ -156,7 +161,7 @@ public class CodeGenMojo extends AbstractMojo { /** * The name of templating engine to use, "mustache" (default) or "handlebars" (beta) */ - @Parameter(name = "engine", defaultValue = "mustache", property="openapi.generator.maven.plugin.engine") + @Parameter(name = "engine", defaultValue = "mustache", property = "openapi.generator.maven.plugin.engine") private String engine; /** @@ -541,7 +546,7 @@ public class CodeGenMojo extends AbstractMojo { if (StringUtils.isNotBlank(inputSpecRootDirectory)) { inputSpec = new MergedSpecBuilder(inputSpecRootDirectory, mergedFileName) - .buildMergedSpec(); + .buildMergedSpec(); LOGGER.info("Merge input spec would be used - {}", inputSpec); } @@ -572,7 +577,7 @@ public class CodeGenMojo extends AbstractMojo { return; } - if (buildContext != null && inputSpec != null ) { + if (buildContext != null && inputSpec != null) { if (buildContext.isIncremental() && inputSpecFile.exists() && !buildContext.hasDelta(inputSpecFile)) { @@ -664,7 +669,7 @@ public class CodeGenMojo extends AbstractMojo { configurator.setEnablePostProcessFile(enablePostProcessFile); } - if (generateAliasAsModel != null) { + if (generateAliasAsModel != null) { configurator.setGenerateAliasAsModel(generateAliasAsModel); } @@ -974,7 +979,7 @@ public class CodeGenMojo extends AbstractMojo { File parent = new File(storedInputSpecHashFile.getParent()); if (!parent.mkdirs()) { throw new RuntimeException("Failed to create the folder " + parent.getAbsolutePath() + - " to store the checksum of the input spec."); + " to store the checksum of the input spec."); } } @@ -993,7 +998,7 @@ public class CodeGenMojo extends AbstractMojo { } /** - * Calculate an SHA256 hash for the openapi specification. + * Calculate an SHA256 hash for the openapi specification. * If the specification is hosted on a remote resource it is downloaded first. * * @param inputSpec - Openapi specification input file. Can denote a URL or file path. @@ -1002,18 +1007,19 @@ public class CodeGenMojo extends AbstractMojo { private String calculateInputSpecHash(String inputSpec) { final ParseOptions parseOptions = new ParseOptions(); parseOptions.setResolve(true); - + final URL remoteUrl = inputSpecRemoteUrl(); final List authorizationValues = AuthParser.parse(this.auth); return Hashing.sha256().hashBytes( - new OpenAPIParser().readLocation(remoteUrl == null ? inputSpec : remoteUrl.toString(), authorizationValues, parseOptions) - .getOpenAPI().toString().getBytes(StandardCharsets.UTF_8) + new OpenAPIParser().readLocation(remoteUrl == null ? inputSpec : remoteUrl.toString(), authorizationValues, parseOptions) + .getOpenAPI().toString().getBytes(StandardCharsets.UTF_8) ).toString(); } /** * Try to parse inputSpec setting string into URL + * * @return A valid URL or null if inputSpec is not a valid URL */ private URL inputSpecRemoteUrl() { @@ -1026,8 +1032,9 @@ public class CodeGenMojo extends AbstractMojo { /** * Get specification hash file + * * @param inputSpecFile - Openapi specification input file to calculate its hash. - * Does not take into account if input spec is hosted on remote resource + * Does not take into account if input spec is hosted on remote resource * @return a file with previously calculated hash */ private File getHashFile(File inputSpecFile) { diff --git a/modules/openapi-generator-maven-plugin/src/test/java/org/openapitools/codegen/plugin/CodeGenMojoTest.java b/modules/openapi-generator-maven-plugin/src/test/java/org/openapitools/codegen/plugin/CodeGenMojoTest.java index d7fad6c2b6b..3ee158240d7 100644 --- a/modules/openapi-generator-maven-plugin/src/test/java/org/openapitools/codegen/plugin/CodeGenMojoTest.java +++ b/modules/openapi-generator-maven-plugin/src/test/java/org/openapitools/codegen/plugin/CodeGenMojoTest.java @@ -94,13 +94,13 @@ public class CodeGenMojoTest extends BaseTestCase { // THEN assertTrue(Files.exists(tempDir.resolve( - "target/generated-sources/common-maven/remote-openapi/.openapi-generator/petstore.yaml-executionId.sha256" + "target/generated-sources/common-maven/remote-openapi/.openapi-generator/petstore.yaml-executionId.sha256" ))); } /** * For a Pom file which refers to an input file which will be on the classpath, as opposed to a file path, - * test that the spec is not regenerated when the hash has not changed. + * test that the spec is not regenerated when the hash has not changed. */ public void testSkipRegenerationForClasspathSpecFileNoChange() throws Exception { //GIVEN @@ -114,7 +114,7 @@ public class CodeGenMojoTest extends BaseTestCase { /* Check the hash file was created */ final Path generatedDir = tempDir.resolve("target/generated-sources/common-maven/remote-openapi"); assertTrue(Files.exists( - generatedDir.resolve(".openapi-generator/petstore-on-classpath.yaml-executionId.sha256") + generatedDir.resolve(".openapi-generator/petstore-on-classpath.yaml-executionId.sha256") )); /* Remove the generated source */ @@ -134,7 +134,7 @@ public class CodeGenMojoTest extends BaseTestCase { /** * For a Pom file which refers to an input file which will be on the classpath, as opposed to a file path, - * test that the generated source is regenerated when the hash has changed. + * test that the generated source is regenerated when the hash has changed. */ public void testSkipRegenerationForClasspathSpecFileWithChange() throws Exception { //GIVEN @@ -151,12 +151,12 @@ public class CodeGenMojoTest extends BaseTestCase { /* Update the hash contents to be a different value, simulating a spec change */ Files.write( - generatedDir.resolve(".openapi-generator/petstore-on-classpath.yaml-executionId.sha256"), - List.of("bd1bf4a953c858f9d47b67ed6029daacf1707e5cbd3d2e4b01383ba30363366f") + generatedDir.resolve(".openapi-generator/petstore-on-classpath.yaml-executionId.sha256"), + List.of("bd1bf4a953c858f9d47b67ed6029daacf1707e5cbd3d2e4b01383ba30363366f") ); /* Remove the generated source */ - try(Stream files = Files.walk(generatedDir.resolve("src"))) { + try (Stream files = Files.walk(generatedDir.resolve("src"))) { //noinspection ResultOfMethodCallIgnored files.sorted(Comparator.reverseOrder()).map(Path::toFile).forEach(File::delete); } @@ -181,7 +181,7 @@ public class CodeGenMojoTest extends BaseTestCase { // THEN assertTrue(Files.exists( - tempDir.resolve("target/generated-sources/common-maven/remote-openapi/petstore-full-spec.yaml") + tempDir.resolve("target/generated-sources/common-maven/remote-openapi/petstore-full-spec.yaml") )); } @@ -194,8 +194,8 @@ public class CodeGenMojoTest extends BaseTestCase { // THEN List matchingArtifacts = mojo.mavenProject.getAttachedArtifacts().stream() - .filter(artifact -> artifact.getFile().getName().equals("petstore-full-spec.yaml")) - .collect(Collectors.toList()); + .filter(artifact -> artifact.getFile().getName().equals("petstore-full-spec.yaml")) + .collect(Collectors.toList()); assertEquals(1, matchingArtifacts.size()); } @@ -242,7 +242,7 @@ public class CodeGenMojoTest extends BaseTestCase { var currentHash = Files.readString(hashFile); // read hash FileUtils.deleteDirectory(generatedDir.resolve("src").toFile()); // Remove the generated source Files.writeString( // change schema definition in external file - tempDir.resolve("schemas/Pet.yaml"),"\n wrapped: true", StandardOpenOption.APPEND + tempDir.resolve("schemas/Pet.yaml"), "\n wrapped: true", StandardOpenOption.APPEND ); // WHEN @@ -250,8 +250,8 @@ public class CodeGenMojoTest extends BaseTestCase { // THEN assertNotEquals( - Files.readString(hashFile), currentHash, "Checksum should not be the same after external file change" - ); + Files.readString(hashFile), currentHash, "Checksum should not be the same after external file change" + ); assertTrue("Src directory should have been regenerated", Files.exists(generatedDir.resolve("src"))); } @@ -269,7 +269,7 @@ public class CodeGenMojoTest extends BaseTestCase { } private MojoExecution copyWithExecutionId(String executionId, MojoExecution execution) { - MojoExecution executionWithId = new MojoExecution(execution.getMojoDescriptor(), executionId); + MojoExecution executionWithId = new MojoExecution(execution.getMojoDescriptor(), executionId); executionWithId.setConfiguration(execution.getConfiguration()); return executionWithId; } @@ -278,18 +278,18 @@ public class CodeGenMojoTest extends BaseTestCase { LocalRepository localRepo = new LocalRepository(basedir.resolve("local-repo").toFile()); DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession(); session.setLocalRepositoryManager( - new SimpleLocalRepositoryManagerFactory(new DefaultLocalPathComposer()).newInstance(session, localRepo) + new SimpleLocalRepositoryManagerFactory(new DefaultLocalPathComposer()).newInstance(session, localRepo) ); MavenExecutionRequest request = new DefaultMavenExecutionRequest().setBaseDirectory(basedir.toFile()); if (profile != null) { request.addActiveProfile(profile); } ProjectBuildingRequest configuration = request.getProjectBuildingRequest() - .setRepositorySession(session) - .setResolveDependencies(true); + .setRepositorySession(session) + .setResolveDependencies(true); MavenProject project = lookup(ProjectBuilder.class) - .build(basedir.resolve("pom.xml").toFile(), configuration) - .getProject(); + .build(basedir.resolve("pom.xml").toFile(), configuration) + .getProject(); assertNotNull(project); return project; } diff --git a/modules/openapi-generator-maven-plugin/src/test/java/org/openapitools/codegen/plugin/stubs/CommonMavenProjectStub.java b/modules/openapi-generator-maven-plugin/src/test/java/org/openapitools/codegen/plugin/stubs/CommonMavenProjectStub.java index 9577061f0a8..50229f67002 100644 --- a/modules/openapi-generator-maven-plugin/src/test/java/org/openapitools/codegen/plugin/stubs/CommonMavenProjectStub.java +++ b/modules/openapi-generator-maven-plugin/src/test/java/org/openapitools/codegen/plugin/stubs/CommonMavenProjectStub.java @@ -20,6 +20,6 @@ import org.apache.maven.plugin.testing.stubs.MavenProjectStub; public class CommonMavenProjectStub extends MavenProjectStub { public CommonMavenProjectStub() { - StubUtility.configureStub(this,"common-maven", "common-maven.xml"); + StubUtility.configureStub(this, "common-maven", "common-maven.xml"); } } diff --git a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/OpenAPI2SpringBoot.java b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/OpenAPI2SpringBoot.java index c81012e09f6..6297bcb2ed6 100644 --- a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/OpenAPI2SpringBoot.java +++ b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/OpenAPI2SpringBoot.java @@ -28,7 +28,7 @@ import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @SpringBootApplication -@ComponentScan(basePackages = { "org.openapitools.codegen.online", "org.openapitools.codegen.online.api", "org.openapitools.codegen.online.configuration"}) +@ComponentScan(basePackages = {"org.openapitools.codegen.online", "org.openapitools.codegen.online.api", "org.openapitools.codegen.online.configuration"}) public class OpenAPI2SpringBoot implements CommandLineRunner { @Override diff --git a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/RFC3339DateFormat.java b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/RFC3339DateFormat.java index fa2752bd6f8..756e0b865ca 100644 --- a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/RFC3339DateFormat.java +++ b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/RFC3339DateFormat.java @@ -26,14 +26,14 @@ import java.util.Date; public class RFC3339DateFormat extends ISO8601DateFormat { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 1L; - // Same as ISO8601DateFormat but serializing milliseconds. - @Override - public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) { - String value = ISO8601Utils.format(date, true); - toAppendTo.append(value); - return toAppendTo; - } + // Same as ISO8601DateFormat but serializing milliseconds. + @Override + public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) { + String value = ISO8601Utils.format(date, true); + toAppendTo.append(value); + return toAppendTo; + } } \ No newline at end of file diff --git a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/api/ApiOriginFilter.java b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/api/ApiOriginFilter.java index fe721809dc3..a3594aae143 100644 --- a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/api/ApiOriginFilter.java +++ b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/api/ApiOriginFilter.java @@ -17,16 +17,15 @@ package org.openapitools.codegen.online.api; -import java.io.IOException; - import javax.servlet.*; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; public class ApiOriginFilter implements javax.servlet.Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, - FilterChain chain) throws IOException, ServletException { + FilterChain chain) throws IOException, ServletException { HttpServletResponse res = (HttpServletResponse) response; res.addHeader("Access-Control-Allow-Origin", "*"); res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); diff --git a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/api/GenApi.java b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/api/GenApi.java index 220a2274459..70e077cacec 100644 --- a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/api/GenApi.java +++ b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/api/GenApi.java @@ -42,9 +42,9 @@ import java.util.Map; public interface GenApi { GenApiDelegate getDelegate(); - @ApiOperation(value = "Gets languages supported by the client generator", nickname = "clientOptions", notes = "", response = String.class, responseContainer = "List", tags={ "clients", }) + @ApiOperation(value = "Gets languages supported by the client generator", nickname = "clientOptions", notes = "", response = String.class, responseContainer = "List", tags = {"clients",}) @ApiResponses(value = { - @ApiResponse(code = 200, message = "successful operation", response = String.class, responseContainer = "List") }) + @ApiResponse(code = 200, message = "successful operation", response = String.class, responseContainer = "List")}) @RequestMapping(value = "/gen/clients", method = RequestMethod.GET) default ResponseEntity> clientOptions() { @@ -52,62 +52,62 @@ public interface GenApi { } - @ApiOperation(value = "Downloads a pre-generated file", nickname = "downloadFile", notes = "A valid `fileId` is generated by the `/clients/{language}` or `/servers/{language}` POST operations. The fileId code can be used just once, after which a new `fileId` will need to be requested.", response = MultipartFile.class, tags={ "clients","servers", }) + @ApiOperation(value = "Downloads a pre-generated file", nickname = "downloadFile", notes = "A valid `fileId` is generated by the `/clients/{language}` or `/servers/{language}` POST operations. The fileId code can be used just once, after which a new `fileId` will need to be requested.", response = MultipartFile.class, tags = {"clients", "servers",}) @ApiResponses(value = { - @ApiResponse(code = 200, message = "successful operation", response = MultipartFile.class) }) + @ApiResponse(code = 200, message = "successful operation", response = MultipartFile.class)}) @RequestMapping(value = "/gen/download/{fileId}", - produces = { "application/octet-stream" }, + produces = {"application/octet-stream"}, method = RequestMethod.GET) - default ResponseEntity downloadFile(@ApiParam(value = "",required=true) @PathVariable("fileId") String fileId) { + default ResponseEntity downloadFile(@ApiParam(value = "", required = true) @PathVariable("fileId") String fileId) { return getDelegate().downloadFile(fileId); } - @ApiOperation(value = "Generates a client library", nickname = "generateClient", notes = "Accepts a `GeneratorInput` options map for spec location and generation options", response = ResponseCode.class, tags={ "clients", }) + @ApiOperation(value = "Generates a client library", nickname = "generateClient", notes = "Accepts a `GeneratorInput` options map for spec location and generation options", response = ResponseCode.class, tags = {"clients",}) @ApiResponses(value = { - @ApiResponse(code = 200, message = "successful operation", response = ResponseCode.class) }) + @ApiResponse(code = 200, message = "successful operation", response = ResponseCode.class)}) @RequestMapping(value = "/gen/clients/{language}", method = RequestMethod.POST) - default ResponseEntity generateClient(@ApiParam(value = "The target language for the client library",required=true) @PathVariable("language") String language,@ApiParam(value = "Configuration for building the client library" ,required=true ) @Valid @RequestBody GeneratorInput generatorInput) { + default ResponseEntity generateClient(@ApiParam(value = "The target language for the client library", required = true) @PathVariable("language") String language, @ApiParam(value = "Configuration for building the client library", required = true) @Valid @RequestBody GeneratorInput generatorInput) { return getDelegate().generateClient(language, generatorInput); } - @ApiOperation(value = "Generates a server library", nickname = "generateServerForLanguage", notes = "Accepts a `GeneratorInput` options map for spec location and generation options.", response = ResponseCode.class, tags={ "servers", }) + @ApiOperation(value = "Generates a server library", nickname = "generateServerForLanguage", notes = "Accepts a `GeneratorInput` options map for spec location and generation options.", response = ResponseCode.class, tags = {"servers",}) @ApiResponses(value = { - @ApiResponse(code = 200, message = "successful operation", response = ResponseCode.class) }) + @ApiResponse(code = 200, message = "successful operation", response = ResponseCode.class)}) @RequestMapping(value = "/gen/servers/{framework}", method = RequestMethod.POST) - default ResponseEntity generateServerForLanguage(@ApiParam(value = "framework",required=true) @PathVariable("framework") String framework,@ApiParam(value = "parameters" ,required=true ) @Valid @RequestBody GeneratorInput generatorInput) { + default ResponseEntity generateServerForLanguage(@ApiParam(value = "framework", required = true) @PathVariable("framework") String framework, @ApiParam(value = "parameters", required = true) @Valid @RequestBody GeneratorInput generatorInput) { return getDelegate().generateServerForLanguage(framework, generatorInput); } - @ApiOperation(value = "Returns options for a client library", nickname = "getClientOptions", notes = "", tags={ "clients", }) + @ApiOperation(value = "Returns options for a client library", nickname = "getClientOptions", notes = "", tags = {"clients",}) @ApiResponses(value = { - @ApiResponse(code = 200, message = "successful operation") }) + @ApiResponse(code = 200, message = "successful operation")}) @RequestMapping(value = "/gen/clients/{language}", - produces = { "application/json" }, + produces = {"application/json"}, method = RequestMethod.GET) - default ResponseEntity> getClientOptions(@ApiParam(value = "The target language for the client library",required=true) @PathVariable("language") String language) { + default ResponseEntity> getClientOptions(@ApiParam(value = "The target language for the client library", required = true) @PathVariable("language") String language) { return getDelegate().getClientOptions(language); } - @ApiOperation(value = "Returns options for a server framework", nickname = "getServerOptions", notes = "", tags={ "servers", }) + @ApiOperation(value = "Returns options for a server framework", nickname = "getServerOptions", notes = "", tags = {"servers",}) @ApiResponses(value = { - @ApiResponse(code = 200, message = "successful operation") }) + @ApiResponse(code = 200, message = "successful operation")}) @RequestMapping(value = "/gen/servers/{framework}", - produces = { "application/json" }, + produces = {"application/json"}, method = RequestMethod.GET) - default ResponseEntity> getServerOptions(@ApiParam(value = "The target language for the server framework",required=true) @PathVariable("framework") String framework) { + default ResponseEntity> getServerOptions(@ApiParam(value = "The target language for the server framework", required = true) @PathVariable("framework") String framework) { return getDelegate().getServerOptions(framework); } - @ApiOperation(value = "Gets languages supported by the server generator", nickname = "serverOptions", notes = "", response = String.class, responseContainer = "List", tags={ "servers", }) + @ApiOperation(value = "Gets languages supported by the server generator", nickname = "serverOptions", notes = "", response = String.class, responseContainer = "List", tags = {"servers",}) @ApiResponses(value = { - @ApiResponse(code = 200, message = "successful operation", response = String.class, responseContainer = "List") }) + @ApiResponse(code = 200, message = "successful operation", response = String.class, responseContainer = "List")}) @RequestMapping(value = "/gen/servers", method = RequestMethod.GET) default ResponseEntity> serverOptions() { diff --git a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/api/GenApiDelegate.java b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/api/GenApiDelegate.java index e2f6be0dae2..3351e57c464 100644 --- a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/api/GenApiDelegate.java +++ b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/api/GenApiDelegate.java @@ -42,12 +42,12 @@ public interface GenApiDelegate { } /** - * @see GenApi#clientOptions * @return A {@link ResponseEntity} listing options for the target client generator. + * @see GenApi#clientOptions */ default ResponseEntity> clientOptions() { getRequest().ifPresent(request -> { - for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + for (MediaType mediaType : MediaType.parseMediaTypes(request.getHeader("Accept"))) { if (mediaType.isCompatibleWith(MediaType.valueOf("*/*"))) { ApiUtil.setExampleResponse(request, "*/*", "\"\""); break; @@ -60,24 +60,24 @@ public interface GenApiDelegate { /** * @param fileId The unique id of the file, provided in a {@link ResponseCode} response. - * @see GenApi#downloadFile * @return A {@link ResponseEntity} of the requested {@link Resource}. + * @see GenApi#downloadFile */ - default ResponseEntity downloadFile(String fileId) { + default ResponseEntity downloadFile(String fileId) { return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); } /** - * @param language The target generator (language is a misnomer here, but kept for API consistency). + * @param language The target generator (language is a misnomer here, but kept for API consistency). * @param generatorInput The configuration settings to be used during client generation. - * @see GenApi#generateClient * @return A {@link ResponseEntity} referencing the unique download id and a link to download the requested client code. + * @see GenApi#generateClient */ - default ResponseEntity generateClient( String language, - GeneratorInput generatorInput) { + default ResponseEntity generateClient(String language, + GeneratorInput generatorInput) { getRequest().ifPresent(request -> { - for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + for (MediaType mediaType : MediaType.parseMediaTypes(request.getHeader("Accept"))) { if (mediaType.isCompatibleWith(MediaType.valueOf("*/*"))) { ApiUtil.setExampleResponse(request, "*/*", "{ \"code\" : \"d40029be-eda6-4d62-b1ef-d05e2e91a72a\", \"link\" : \"http://localhost:80/api/gen/download/d40029be-eda6-4d62-b1ef-d05e2e91a72a\"}"); break; @@ -89,15 +89,15 @@ public interface GenApiDelegate { } /** - * @param framework The target generator name (framework is a slight misnomer here, as we may have a framework like Spring implemented in multiple languages). + * @param framework The target generator name (framework is a slight misnomer here, as we may have a framework like Spring implemented in multiple languages). * @param generatorInput The configuration settings to be used during server generation. - * @see GenApi#generateServerForLanguage * @return A {@link ResponseEntity} referencing the unique download id and a link to download the requested server code. + * @see GenApi#generateServerForLanguage */ - default ResponseEntity generateServerForLanguage( String framework, - GeneratorInput generatorInput) { + default ResponseEntity generateServerForLanguage(String framework, + GeneratorInput generatorInput) { getRequest().ifPresent(request -> { - for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + for (MediaType mediaType : MediaType.parseMediaTypes(request.getHeader("Accept"))) { if (mediaType.isCompatibleWith(MediaType.valueOf("*/*"))) { ApiUtil.setExampleResponse(request, "*/*", "{ \"code\" : \"d40029be-eda6-4d62-b1ef-d05e2e91a72a\", \"link\" : \"http://localhost:80/api/gen/download/d40029be-eda6-4d62-b1ef-d05e2e91a72a\"}"); break; @@ -110,31 +110,31 @@ public interface GenApiDelegate { /** * @param language The target generator (language is a misnomer here, but kept for API consistency). - * @see GenApi#getClientOptions * @return A {@link ResponseEntity} of {@link CliOption}, grouped by language (generator name). + * @see GenApi#getClientOptions */ - default ResponseEntity> getClientOptions(String language) { + default ResponseEntity> getClientOptions(String language) { return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); } /** * @param framework The target generator name (framework is a slight misnomer here, as we may have a framework like Spring implemented in multiple languages). - * @see GenApi#getServerOptions * @return A {@link ResponseEntity} of {@link CliOption}, grouped by framework (generator name). + * @see GenApi#getServerOptions */ - default ResponseEntity> getServerOptions( String framework) { + default ResponseEntity> getServerOptions(String framework) { return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); } /** - * @see GenApi#serverOptions * @return A {@link ResponseEntity} listing options for the target server generator. + * @see GenApi#serverOptions */ default ResponseEntity> serverOptions() { getRequest().ifPresent(request -> { - for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { + for (MediaType mediaType : MediaType.parseMediaTypes(request.getHeader("Accept"))) { if (mediaType.isCompatibleWith(MediaType.valueOf("*/*"))) { ApiUtil.setExampleResponse(request, "*/*", "\"\""); break; diff --git a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/configuration/OpenAPIDocumentationConfig.java b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/configuration/OpenAPIDocumentationConfig.java index 3169c5e8739..26e9b34856d 100644 --- a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/configuration/OpenAPIDocumentationConfig.java +++ b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/configuration/OpenAPIDocumentationConfig.java @@ -18,6 +18,9 @@ package org.openapitools.codegen.online.configuration; import com.fasterxml.jackson.databind.JsonNode; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.Resource; @@ -28,17 +31,14 @@ import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; -import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.io.IOException; import java.io.InputStream; import java.net.URI; import java.net.URISyntaxException; +import java.util.HashSet; import java.util.Properties; import java.util.Set; -import java.util.HashSet; @Configuration @@ -59,22 +59,22 @@ public class OpenAPIDocumentationConfig { String version = properties.getProperty("version", "unknown"); return new ApiInfoBuilder() - .title("OpenAPI Generator Online") - .description("This is an online openapi generator server. You can find out more at https://github.com/OpenAPITools/openapi-generator.") - .license("Apache 2.0") - .licenseUrl("https://www.apache.org/licenses/LICENSE-2.0.html") - .termsOfServiceUrl("") - .version(version) - .contact(new Contact("","", "")) - .build(); + .title("OpenAPI Generator Online") + .description("This is an online openapi generator server. You can find out more at https://github.com/OpenAPITools/openapi-generator.") + .license("Apache 2.0") + .licenseUrl("https://www.apache.org/licenses/LICENSE-2.0.html") + .termsOfServiceUrl("") + .version(version) + .contact(new Contact("", "", "")) + .build(); } @Bean - public Docket customImplementation(){ + public Docket customImplementation() { Docket docket = new Docket(DocumentationType.SWAGGER_2) .select() - .apis(RequestHandlerSelectors.basePackage("org.openapitools.codegen.online.api")) - .build() + .apis(RequestHandlerSelectors.basePackage("org.openapitools.codegen.online.api")) + .build() .forCodeGeneration(true) .directModelSubstitute(java.time.LocalDate.class, java.sql.Date.class) .directModelSubstitute(java.time.OffsetDateTime.class, java.util.Date.class) @@ -99,7 +99,7 @@ public class OpenAPIDocumentationConfig { docket.host(authority); } docket.pathMapping(hostURI.getPath()); - } catch(URISyntaxException e) { + } catch (URISyntaxException e) { LOGGER.warn("Could not parse configured GENERATOR_HOST '" + hostString + "': " + e.getMessage()); } } diff --git a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/model/ApiResponse.java b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/model/ApiResponse.java index 3362e09d346..9bbc4457bd4 100644 --- a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/model/ApiResponse.java +++ b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/model/ApiResponse.java @@ -35,7 +35,8 @@ public class ApiResponse { @Getter String type; @Getter String message; - public ApiResponse() {} + public ApiResponse() { + } public ApiResponse(int code, String message) { this.code = code; diff --git a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/model/Generated.java b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/model/Generated.java index 709ec3b8b1d..eae92ca52af 100644 --- a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/model/Generated.java +++ b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/model/Generated.java @@ -20,7 +20,8 @@ package org.openapitools.codegen.online.model; import lombok.Getter; import lombok.Setter; -@Getter @Setter +@Getter +@Setter public class Generated { private String filename; private String friendlyName; diff --git a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/model/ResponseCode.java b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/model/ResponseCode.java index 85529434ab8..a343f647e91 100644 --- a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/model/ResponseCode.java +++ b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/model/ResponseCode.java @@ -22,7 +22,9 @@ import lombok.AllArgsConstructor; import lombok.NoArgsConstructor; import lombok.Setter; -@Setter @NoArgsConstructor @AllArgsConstructor +@Setter +@NoArgsConstructor +@AllArgsConstructor public class ResponseCode { private String code; private String link; diff --git a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/service/Generator.java b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/service/Generator.java index aa3993fbd85..91037fed960 100644 --- a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/service/Generator.java +++ b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/service/Generator.java @@ -22,11 +22,7 @@ import io.swagger.parser.OpenAPIParser; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.parser.core.models.AuthorizationValue; import io.swagger.v3.parser.core.models.ParseOptions; -import org.openapitools.codegen.CliOption; -import org.openapitools.codegen.ClientOptInput; -import org.openapitools.codegen.CodegenConfig; -import org.openapitools.codegen.CodegenConfigLoader; -import org.openapitools.codegen.DefaultGenerator; +import org.openapitools.codegen.*; import org.openapitools.codegen.online.model.GeneratorInput; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,11 +31,7 @@ import org.springframework.web.server.ResponseStatusException; import java.io.File; import java.nio.file.Files; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; +import java.util.*; public class Generator { private static Logger LOGGER = LoggerFactory.getLogger(Generator.class); @@ -49,7 +41,7 @@ public class Generator { try { config = CodegenConfigLoader.forName(language); } catch (Exception e) { - throw new ResponseStatusException(HttpStatus.NOT_FOUND, String.format(Locale.ROOT,"Unsupported target %s supplied. %s", + throw new ResponseStatusException(HttpStatus.NOT_FOUND, String.format(Locale.ROOT, "Unsupported target %s supplied. %s", language, e)); } Map map = new LinkedHashMap<>(); @@ -82,7 +74,7 @@ public class Generator { } private static String generate(String language, GeneratorInput opts, Type type) { - LOGGER.debug(String.format(Locale.ROOT,"generate %s for %s", type.getTypeName(), language)); + LOGGER.debug(String.format(Locale.ROOT, "generate %s for %s", type.getTypeName(), language)); if (opts == null) { throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "No options were supplied"); } @@ -141,13 +133,13 @@ public class Generator { codegenConfig.additionalProperties().put("openAPI", openapi); } - if(opts.getOpenapiNormalizer() != null && !opts.getOpenapiNormalizer().isEmpty()){ - for(String rule: opts.getOpenapiNormalizer()){ + if (opts.getOpenapiNormalizer() != null && !opts.getOpenapiNormalizer().isEmpty()) { + for (String rule : opts.getOpenapiNormalizer()) { String[] ruleOperands = rule.split("="); - if(ruleOperands.length != 2) { + if (ruleOperands.length != 2) { throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "In rule: " + rule + "the operands were not provided in the form of ="); } - codegenConfig.openapiNormalizer().put(ruleOperands[0],ruleOperands[1]); + codegenConfig.openapiNormalizer().put(ruleOperands[0], ruleOperands[1]); } } diff --git a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/service/ZipUtil.java b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/service/ZipUtil.java index 25d1aad7edb..435c724ed57 100644 --- a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/service/ZipUtil.java +++ b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/service/ZipUtil.java @@ -17,12 +17,7 @@ package org.openapitools.codegen.online.service; -import java.io.BufferedInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; +import java.io.*; import java.util.List; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -32,7 +27,6 @@ import java.util.zip.ZipOutputStream; * sub files and sub directories, recursively. * * @author Ha Minh Nam - * */ public class ZipUtil { /** @@ -43,10 +37,10 @@ public class ZipUtil { /** * Compresses a collection of files to a destination zip file. * - * @param listFiles A collection of files and directories + * @param listFiles A collection of files and directories * @param destZipFile The path of the destination zip file * @throws FileNotFoundException if file not found - * @throws IOException if IO exception occurs + * @throws IOException if IO exception occurs */ public void compressFiles(List listFiles, String destZipFile) throws IOException { @@ -69,11 +63,11 @@ public class ZipUtil { /** * Adds a directory to the current zip output stream. * - * @param folder the directory to be added + * @param folder the directory to be added * @param parentFolder the path of parent directory - * @param zos the current zip output stream + * @param zos the current zip output stream * @throws FileNotFoundException if file not found - * @throws IOException if IO exception occurs + * @throws IOException if IO exception occurs */ private void addFolderToZip(File folder, String parentFolder, ZipOutputStream zos) throws FileNotFoundException, IOException { @@ -103,9 +97,9 @@ public class ZipUtil { * Adds a file to the current zip output stream. * * @param file the file to be added - * @param zos the current zip output stream + * @param zos the current zip output stream * @throws FileNotFoundException if file not found - * @throws IOException if IO exception occurs + * @throws IOException if IO exception occurs */ private static void addFileToZip(File file, ZipOutputStream zos) throws FileNotFoundException, IOException { diff --git a/modules/openapi-generator-online/src/test/java/org/openapitools/codegen/online/api/GenApiControllerTest.java b/modules/openapi-generator-online/src/test/java/org/openapitools/codegen/online/api/GenApiControllerTest.java index 7855d3405a4..81dfe342577 100644 --- a/modules/openapi-generator-online/src/test/java/org/openapitools/codegen/online/api/GenApiControllerTest.java +++ b/modules/openapi-generator-online/src/test/java/org/openapitools/codegen/online/api/GenApiControllerTest.java @@ -88,8 +88,8 @@ public class GenApiControllerTest { private void generateAndDownload(String type, String name) throws Exception { String result = mockMvc.perform(post("http://test.com:1234/api/gen/" + type + "/" + name) - .contentType(MediaType.APPLICATION_JSON) - .content("{\"openAPIUrl\": \"" + OPENAPI_URL + "\"}")) + .contentType(MediaType.APPLICATION_JSON) + .content("{\"openAPIUrl\": \"" + OPENAPI_URL + "\"}")) .andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON)) .andExpect(jsonPath("$.code").value(matchesPattern(UUID_REGEX))) @@ -107,11 +107,11 @@ public class GenApiControllerTest { @Test public void generateWIthForwardedHeaders() throws Exception { String result = mockMvc.perform(post("http://test.com:1234/api/gen/clients/java") - .contentType(MediaType.APPLICATION_JSON) - .header("X-Forwarded-Proto", "https") - .header("X-Forwarded-Host", "forwarded.com") - .header("X-Forwarded-Port", "5678") - .content("{\"openAPIUrl\": \"" + OPENAPI_URL + "\"}")) + .contentType(MediaType.APPLICATION_JSON) + .header("X-Forwarded-Proto", "https") + .header("X-Forwarded-Host", "forwarded.com") + .header("X-Forwarded-Port", "5678") + .content("{\"openAPIUrl\": \"" + OPENAPI_URL + "\"}")) .andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON)) .andExpect(jsonPath("$.code").value(matchesPattern(UUID_REGEX))) @@ -141,8 +141,8 @@ public class GenApiControllerTest { String withoutOpenAPINormalizer = "{\"openAPIUrl\":\"https://raw.githubusercontent.com/OpenAPITools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml\",\"options\":{},\"spec\":{}}"; String responseOfNormalized = mockMvc.perform(post("http://test.com:1234/api/gen/clients/java") - .contentType(MediaType.APPLICATION_JSON) - .content(withOpenAPINormalizer)) + .contentType(MediaType.APPLICATION_JSON) + .content(withOpenAPINormalizer)) .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); String codeOfNormalized = new ObjectMapper().readValue(responseOfNormalized, ResponseCode.class).getCode(); Long lengthOfNormalized = Long.parseLong(mockMvc.perform(get("http://test.com:1234/api/gen/download/" + codeOfNormalized)) @@ -159,7 +159,7 @@ public class GenApiControllerTest { .andExpect(content().contentType("application/zip")) .andExpect(status().isOk()).andReturn().getResponse().getHeader("Content-Length")); - Assert.isTrue(lengthOfNormalized <= lengthOfNotNormalized,"Using the normalizer should result in a smaller or equal file size"); + Assert.isTrue(lengthOfNormalized <= lengthOfNotNormalized, "Using the normalizer should result in a smaller or equal file size"); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CliOption.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CliOption.java index f4a04b8fd32..484ddae0827 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CliOption.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CliOption.java @@ -60,7 +60,7 @@ public class CliOption { } public void setOptValue(String optValue) { - if (this.enumValues!=null && this.enumValues.containsKey(optValue)) { + if (this.enumValues != null && this.enumValues.containsKey(optValue)) { this.optValue = optValue; } else { this.optValue = null; @@ -88,7 +88,7 @@ public class CliOption { /** * Create new boolean command line option with a default of false * - * @param opt Option name + * @param opt Option name * @param description Option description * @return the CliOption created */ @@ -99,8 +99,8 @@ public class CliOption { /** * Create new boolean command line option with the provided value as default * - * @param opt Option name - * @param description Option description + * @param opt Option name + * @param description Option description * @param defaultValue the default value to use if option not specified * @return the CliOption created */ @@ -115,7 +115,7 @@ public class CliOption { @JsonIgnore public String getOptionHelp() { StringBuilder sb = new StringBuilder(description); - if(defaultValue != null) { + if (defaultValue != null) { sb.append(" (Default: ").append(defaultValue).append(")"); } if (enumValues != null) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ClientOptInput.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ClientOptInput.java index 519a390a0d5..6825bbc1acb 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ClientOptInput.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ClientOptInput.java @@ -19,7 +19,6 @@ package org.openapitools.codegen; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.parser.core.models.AuthorizationValue; - import lombok.Getter; import org.openapitools.codegen.api.TemplateDefinition; import org.openapitools.codegen.auth.AuthParser; @@ -84,8 +83,8 @@ public class ClientOptInput { /** * Sets the generator/config instance * - * @deprecated use {@link #config(CodegenConfig)} instead * @param config codegen config + * @deprecated use {@link #config(CodegenConfig)} instead */ @Deprecated public void setConfig(CodegenConfig config) { @@ -118,8 +117,8 @@ public class ClientOptInput { /** * Sets the OpenAPI document * - * @deprecated use {@link #openAPI(OpenAPI)} instead * @param openAPI the specification + * @deprecated use {@link #openAPI(OpenAPI)} instead */ @Deprecated public void setOpenAPI(OpenAPI openAPI) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenCallback.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenCallback.java index 194e0234cc0..36843988319 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenCallback.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenCallback.java @@ -38,6 +38,7 @@ public class CodegenCallback { return Objects.equals(that.expression, expression) && Objects.equals(that.requests, requests) && Objects.equals(that.vendorExtensions, vendorExtensions); } + @Override public int hashCode() { return Objects.hash(expression, requests, vendorExtensions); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenComposedSchemas.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenComposedSchemas.java index 08e261c165e..41f5ee32487 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenComposedSchemas.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenComposedSchemas.java @@ -19,9 +19,11 @@ package org.openapitools.codegen; import lombok.Getter; import lombok.Setter; -import java.util.*; +import java.util.List; +import java.util.Objects; -@Getter @Setter +@Getter +@Setter public class CodegenComposedSchemas { private List allOf; private List oneOf; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java index 70d58617e02..83b8cd3386c 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java @@ -372,9 +372,9 @@ public class CodegenConstants { public static final String GENERATE_ALIAS_AS_MODEL = "generateAliasAsModel"; public static final String GENERATE_ALIAS_AS_MODEL_DESC = "Generate model implementation for aliases to map and array schemas. " + - "An 'alias' is an array, map, or list which is defined inline in a OpenAPI document and becomes a model in the generated code. " + - "A 'map' schema is an object that can have undeclared properties, i.e. the 'additionalproperties' attribute is set on that object. " + - "An 'array' schema is a list of sub schemas in a OAS document"; + "An 'alias' is an array, map, or list which is defined inline in a OpenAPI document and becomes a model in the generated code. " + + "A 'map' schema is an object that can have undeclared properties, i.e. the 'additionalproperties' attribute is set on that object. " + + "An 'array' schema is a list of sub schemas in a OAS document"; public static final String USE_COMPARE_NET_OBJECTS = "useCompareNetObjects"; public static final String USE_COMPARE_NET_OBJECTS_DESC = "Use KellermanSoftware.CompareNetObjects for deep recursive object comparison. WARNING: this option incurs potential performance impact."; @@ -405,16 +405,16 @@ public class CodegenConstants { public static final String DISALLOW_ADDITIONAL_PROPERTIES_IF_NOT_PRESENT = "disallowAdditionalPropertiesIfNotPresent"; public static final String DISALLOW_ADDITIONAL_PROPERTIES_IF_NOT_PRESENT_DESC = - "If false, the 'additionalProperties' implementation (set to true by default) is compliant with the OAS and JSON schema specifications. " + - "If true (default), keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default."; + "If false, the 'additionalProperties' implementation (set to true by default) is compliant with the OAS and JSON schema specifications. " + + "If true (default), keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default."; public static final String UNSUPPORTED_V310_SPEC_MSG = - "OpenAPI 3.1 support is still in beta. To report an issue related to 3.1 spec, please kindly open an issue in the Github repo: https://github.com/openAPITools/openapi-generator."; + "OpenAPI 3.1 support is still in beta. To report an issue related to 3.1 spec, please kindly open an issue in the Github repo: https://github.com/openAPITools/openapi-generator."; public static final String ENUM_UNKNOWN_DEFAULT_CASE = "enumUnknownDefaultCase"; public static final String ENUM_UNKNOWN_DEFAULT_CASE_DESC = "If the server adds new enum cases, that are unknown by an old spec/client, the client will fail to parse the network response." + - "With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the server sends an enum case that is not known by the client/spec, they can safely fallback to this case."; + "With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the server sends an enum case that is not known by the client/spec, they can safely fallback to this case."; public static final String USE_ONEOF_DISCRIMINATOR_LOOKUP = "useOneOfDiscriminatorLookup"; public static final String USE_ONEOF_DISCRIMINATOR_LOOKUP_DESC = "Use the discriminator's mapping in oneOf to speed up the model lookup. IMPORTANT: Validation (e.g. one and only one match in oneOf's schemas) will be skipped."; @@ -438,7 +438,7 @@ public class CodegenConstants { public static final String FASTAPI_IMPLEMENTATION_PACKAGE = "fastapiImplementationPackage"; public static final String WITH_XML = "withXml"; - + public static final String WITH_GO_MOD = "withGoMod"; public static final String GENERATE_MARSHAL_JSON = "generateMarshalJSON"; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenDiscriminator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenDiscriminator.java index fdc41c984fa..d995668041a 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenDiscriminator.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenDiscriminator.java @@ -8,7 +8,7 @@ import java.util.*; /** * This class encapsulates the OpenAPI discriminator construct, as specified at * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#discriminatorObject. - * + *

* When request bodies or response payloads may be one of a number of different schemas, * a discriminator object can be used to aid in serialization, deserialization, and validation. * The discriminator is a specific object in a schema which is used to inform the consumer of @@ -57,18 +57,18 @@ public class CodegenDiscriminator { public void setIsEnum(boolean isEnum) { this.isEnum = isEnum; } - + /** * An object to hold discriminator mappings between payload values and schema names or * references. - * + *

* In the OpenAPI document, the discriminator "mapping" attribute is optional. * In scenarios where the value of the discriminator field does not match the schema name * or implicit mapping is not possible, an optional mapping definition MAY be used. * In OpenAPITools codegen, the MappedModel is the union of all the discriminator mappings, * both explicitly defined in the OpenAPI document and inherited from oneOf/allOf/anyOf. */ - public static class MappedModel implements Comparable{ + public static class MappedModel implements Comparable { // The value of the discriminator property in the payload. @Getter @Setter private String mappingName; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenMediaType.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenMediaType.java index 55222dc2ceb..9d0bd052603 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenMediaType.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenMediaType.java @@ -8,7 +8,8 @@ import java.util.LinkedHashMap; import java.util.Map; import java.util.Objects; -@Getter public class CodegenMediaType { +@Getter +public class CodegenMediaType { private CodegenProperty schema; private LinkedHashMap encoding; private HashMap testCases = new HashMap<>(); @@ -47,7 +48,7 @@ import java.util.Objects; if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; CodegenMediaType that = (CodegenMediaType) o; - return Objects.equals(schema,that.getSchema()) && + return Objects.equals(schema, that.getSchema()) && Objects.equals(encoding, that.getEncoding()) && Objects.equals(vendorExtensions, that.vendorExtensions); } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java index 28735ad2df3..581896ab6e6 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java @@ -19,13 +19,12 @@ package org.openapitools.codegen; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import io.swagger.v3.oas.models.ExternalDocumentation; - -import java.util.*; - import lombok.Getter; import lombok.Setter; import org.apache.commons.lang3.StringUtils; +import java.util.*; + /** * CodegenModel represents a schema object in a OpenAPI document. */ @@ -85,39 +84,39 @@ public class CodegenModel implements IJsonSchemaValidationProperties { public String unescapedDescription; /** * -- GETTER -- - * Returns the discriminator for this schema object, or null if no discriminator has been specified. - * The list of all possible schema discriminator mapping values is obtained - * from explicit discriminator mapping values in the OpenAPI document, and from - * inherited discriminators through oneOf, allOf, anyOf. - * For example, a discriminator may be defined in a 'Pet' schema as shown below. - * The Dog and Cat schemas inherit the discriminator through the allOf reference. - * In the 'Pet' schema, the supported discriminator mapping values for the - * 'objectType' properties are 'Dog' and 'Cat'. - * The allowed discriminator mapping value for the Dog schema is 'Dog'. - * The allowed discriminator mapping value for the Cat schema is 'Dog'. - * Pet: - * type: object - * discriminator: - * propertyName: objectType - * required: - * - objectType - * properties: - * objectType: - * type: string - * Dog: - * allOf: - * - $ref: '#/components/schemas/Pet' - * - type: object - * properties: - * p1: - * type: string - * Cat: - * allOf: - * - $ref: '#/components/schemas/Pet' - * - type: object - * properties: - * p2: - * type: string + * Returns the discriminator for this schema object, or null if no discriminator has been specified. + * The list of all possible schema discriminator mapping values is obtained + * from explicit discriminator mapping values in the OpenAPI document, and from + * inherited discriminators through oneOf, allOf, anyOf. + * For example, a discriminator may be defined in a 'Pet' schema as shown below. + * The Dog and Cat schemas inherit the discriminator through the allOf reference. + * In the 'Pet' schema, the supported discriminator mapping values for the + * 'objectType' properties are 'Dog' and 'Cat'. + * The allowed discriminator mapping value for the Dog schema is 'Dog'. + * The allowed discriminator mapping value for the Cat schema is 'Dog'. + * Pet: + * type: object + * discriminator: + * propertyName: objectType + * required: + * - objectType + * properties: + * objectType: + * type: string + * Dog: + * allOf: + * - $ref: '#/components/schemas/Pet' + * - type: object + * properties: + * p1: + * type: string + * Cat: + * allOf: + * - $ref: '#/components/schemas/Pet' + * - type: object + * properties: + * p2: + * type: string * * @return the discriminator. */ @@ -174,7 +173,9 @@ public class CodegenModel implements IJsonSchemaValidationProperties { public boolean isArray; public boolean hasChildren; public boolean isMap; - /** datatype is the generic inner parameter of a std::optional for C++, or Optional (Java) */ + /** + * datatype is the generic inner parameter of a std::optional for C++, or Optional (Java) + */ public boolean isOptional; public boolean isNull; public boolean isVoid = false; @@ -208,7 +209,7 @@ public class CodegenModel implements IJsonSchemaValidationProperties { /** * The type of the value for the additionalProperties keyword in the OAS document. * Used in map like objects, including composed schemas. - * + *

* In most programming languages, the additional (undeclared) properties are stored * in a map data structure, such as HashMap in Java, map in golang, or a dict in Python. * There are multiple ways to implement the additionalProperties keyword, depending @@ -218,24 +219,23 @@ public class CodegenModel implements IJsonSchemaValidationProperties { * In that case 'CodegenModel.parent' is set to represent the class hierarchy. * Another way is to use CodegenModel.additionalPropertiesType. A code generator * such as Python does not use class inheritance to model additional properties. - * + *

* For example, in the OAS schema below, the schema has a declared 'id' property * and additional, undeclared properties of type 'integer' are allowed. - * + *

* type: object * properties: - * id: - * type: integer + * id: + * type: integer * additionalProperties: - * type: integer - * + * type: integer */ @Getter @Setter public String additionalPropertiesType; /** * True if additionalProperties is set to true (boolean value), any type, free form object, etc - * + *

* TODO: we may rename this to isAdditionalPropertiesEnabled or something * else to avoid confusions */ @@ -758,14 +758,22 @@ public class CodegenModel implements IJsonSchemaValidationProperties { } @Override - public boolean getIsUuid() { return isUuid; } + public boolean getIsUuid() { + return isUuid; + } @Override - public void setIsUuid(boolean isUuid) { this.isUuid = isUuid; } + public void setIsUuid(boolean isUuid) { + this.isUuid = isUuid; + } - public boolean getIsUri() { return isUri; } + public boolean getIsUri() { + return isUri; + } - public void setIsUri(boolean isUri) { this.isUri = isUri; } + public void setIsUri(boolean isUri) { + this.isUri = isUri; + } @Override public void setComposedSchemas(CodegenComposedSchemas composedSchemas) { @@ -833,7 +841,8 @@ public class CodegenModel implements IJsonSchemaValidationProperties { } @Override - public void setIsBinary(boolean isBinary) {} + public void setIsBinary(boolean isBinary) { + } @Override public boolean getIsByteArray() { @@ -841,7 +850,8 @@ public class CodegenModel implements IJsonSchemaValidationProperties { } @Override - public void setIsByteArray(boolean isByteArray) {} + public void setIsByteArray(boolean isByteArray) { + } @Override public boolean getIsDecimal() { @@ -1005,7 +1015,7 @@ public class CodegenModel implements IJsonSchemaValidationProperties { sb.append(", parent='").append(parent).append('\''); sb.append(", parentSchema='").append(parentSchema).append('\''); sb.append(", interfaces=").append(interfaces); - sb.append(", interfaceModels=").append(interfaceModels !=null ? interfaceModels.size() : "[]"); + sb.append(", interfaceModels=").append(interfaceModels != null ? interfaceModels.size() : "[]"); sb.append(", allParents=").append(allParents); sb.append(", parentModel=").append(parentModel); sb.append(", children=").append(children != null ? children.size() : "[]"); @@ -1141,10 +1151,14 @@ public class CodegenModel implements IJsonSchemaValidationProperties { } @Override - public Map getRequiredVarsMap() { return requiredVarsMap; } + public Map getRequiredVarsMap() { + return requiredVarsMap; + } @Override - public void setRequiredVarsMap(Map requiredVarsMap) { this.requiredVarsMap=requiredVarsMap; } + public void setRequiredVarsMap(Map requiredVarsMap) { + this.requiredVarsMap = requiredVarsMap; + } /** * Remove duplicated properties in all variable list diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModelFactory.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModelFactory.java index 580cc1e77f1..bf0b737a59e 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModelFactory.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModelFactory.java @@ -24,7 +24,8 @@ public final class CodegenModelFactory { public static T newInstance(CodegenModelType type) { try { return (T) type.getDefaultImplementation().getDeclaredConstructor().newInstance(); - } catch (IllegalAccessException | InstantiationException | NoSuchMethodException | InvocationTargetException e) { + } catch (IllegalAccessException | InstantiationException | NoSuchMethodException | + InvocationTargetException e) { throw new RuntimeException(e); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModelType.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModelType.java index 6627b81a22c..d9e45c5a15f 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModelType.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModelType.java @@ -19,7 +19,8 @@ package org.openapitools.codegen; import lombok.Getter; -@Getter public enum CodegenModelType { +@Getter +public enum CodegenModelType { MODEL(CodegenModel.class), OPERATION(CodegenOperation.class), diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java index 74ddd477387..3c0ff1155ba 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java @@ -220,7 +220,9 @@ public class CodegenOperation { * * @return true if responses contain only 1 entry and it's a default response, false otherwise */ - public boolean getHasOnlyDefaultResponse() { return responses.size() == 1 && getHasDefaultResponse(); } + public boolean getHasOnlyDefaultResponse() { + return responses.size() == 1 && getHasDefaultResponse(); + } public boolean getAllResponsesAreErrors() { return responses.stream().allMatch(response -> response.is4xx || response.is5xx); @@ -237,7 +239,7 @@ public class CodegenOperation { return null; } LinkedHashMap content = bodyParam.getContent(); - for (String contentType: content.keySet()) { + for (String contentType : content.keySet()) { contentTypeToOperation.put(contentType, this); } return contentTypeToOperation; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenParameter.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenParameter.java index 0497bf49c55..72138c5b73d 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenParameter.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenParameter.java @@ -17,17 +17,12 @@ package org.openapitools.codegen; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; - import io.swagger.v3.oas.models.examples.Example; import lombok.Getter; import lombok.Setter; +import java.util.*; + /** * Describes a single operation parameter in the OAS specification. * A unique parameter is defined by a combination of a name and location. @@ -50,7 +45,9 @@ public class CodegenParameter implements IJsonSchemaValidationProperties { public boolean isString, isNumeric, isInteger, isLong, isNumber, isFloat, isDouble, isDecimal, isByteArray, isBinary, isBoolean, isDate, isDateTime, isUuid, isUri, isEmail, isPassword, isFreeFormObject, isAnyType, isShort, isUnboundedInteger; public boolean isArray, isMap; - /** datatype is the generic inner parameter of a std::optional for C++, or Optional (Java) */ + /** + * datatype is the generic inner parameter of a std::optional for C++, or Optional (Java) + */ public boolean isOptional; public boolean isFile; public boolean isEnum; @@ -291,7 +288,7 @@ public class CodegenParameter implements IJsonSchemaValidationProperties { items, mostInnerItems, additionalProperties, vars, requiredVars, vendorExtensions, hasValidation, getMaxProperties(), getMinProperties(), isNullable, isDeprecated, required, getMaximum(), getExclusiveMaximum(), getMinimum(), getExclusiveMinimum(), getMaxLength(), getMinLength(), - getPattern(), getMaxItems(), getMinItems(), getUniqueItems(), contentType, multipleOf, isNull,isVoid, + getPattern(), getMaxItems(), getMinItems(), getUniqueItems(), contentType, multipleOf, isNull, isVoid, additionalPropertiesIsAnyType, hasVars, hasRequired, isShort, isUnboundedInteger, hasDiscriminatorWithNonEmptyMapping, composedSchemas, hasMultipleTypes, schema, content, requiredVarsMap, ref, uniqueItemsBoolean, schemaIsFromAdditionalProperties, diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenProperty.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenProperty.java index dddec1c620c..cdf9bc95977 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenProperty.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenProperty.java @@ -20,12 +20,7 @@ package org.openapitools.codegen; import lombok.Getter; import lombok.Setter; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperties { /** @@ -178,7 +173,9 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti public boolean isAnyType; public boolean isArray; public boolean isMap; - /** datatype is the generic inner parameter of a std::optional for C++, or Optional (Java) */ + /** + * datatype is the generic inner parameter of a std::optional for C++, or Optional (Java) + */ public boolean isOptional; public boolean isEnum; // true if the enum is defined inline public boolean isInnerEnum; // Enums declared inline will be located inside the generic model, changing how the enum is referenced in some cases. @@ -243,7 +240,9 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti private boolean hasDiscriminatorWithNonEmptyMapping; private CodegenComposedSchemas composedSchemas = null; private boolean hasMultipleTypes = false; - /** true if the property's baseName != name, e.g. baseName = '_prop.value', name = 'propValue' after sanitization */ + /** + * true if the property's baseName != name, e.g. baseName = '_prop.value', name = 'propValue' after sanitization + */ private boolean hasSanitizedName = false; private Map requiredVarsMap; private String ref; @@ -849,7 +848,9 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti return hasSanitizedName; } - public void setHasSanitizedName(boolean hasSanitizedName) { this.hasSanitizedName = hasSanitizedName; } + public void setHasSanitizedName(boolean hasSanitizedName) { + this.hasSanitizedName = hasSanitizedName; + } @Override public boolean getIsUuid() { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenResponse.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenResponse.java index 9c8dc08aaa5..aa06a9de135 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenResponse.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenResponse.java @@ -63,7 +63,9 @@ public class CodegenResponse implements IJsonSchemaValidationProperties { public boolean simpleType; public boolean primitiveType; public boolean isMap; - /** datatype is the generic inner parameter of a std::optional for C++, or Optional (Java) */ + /** + * datatype is the generic inner parameter of a std::optional for C++, or Optional (Java) + */ public boolean isOptional; public boolean isArray; public boolean isBinary = false; @@ -212,7 +214,8 @@ public class CodegenResponse implements IJsonSchemaValidationProperties { // use content.mediaType.schema.setContains instead of this @Override - public void setContains(CodegenProperty contains) {} + public void setContains(CodegenProperty contains) { + } // use content.mediaType.schema.getDependentRequired instead of this @Override @@ -222,7 +225,8 @@ public class CodegenResponse implements IJsonSchemaValidationProperties { // use content.mediaType.schema.setDependentRequired instead of this @Override - public void setDependentRequired(LinkedHashMap> dependentRequired) {} + public void setDependentRequired(LinkedHashMap> dependentRequired) { + } // use content.mediaType.schema.getIsBooleanSchemaTrue instead of this @Override @@ -232,7 +236,8 @@ public class CodegenResponse implements IJsonSchemaValidationProperties { // use content.mediaType.schema.setIsBooleanSchemaTrue instead of this @Override - public void setIsBooleanSchemaTrue(boolean isBooleanSchemaTrue) {} + public void setIsBooleanSchemaTrue(boolean isBooleanSchemaTrue) { + } // use content.mediaType.schema.getIsBooleanSchemaFalse instead of this @Override @@ -242,7 +247,8 @@ public class CodegenResponse implements IJsonSchemaValidationProperties { // use content.mediaType.schema.setIsBooleanSchemaFalse instead of this @Override - public void setIsBooleanSchemaFalse(boolean isBooleanSchemaFalse) {} + public void setIsBooleanSchemaFalse(boolean isBooleanSchemaFalse) { + } // use content.mediaType.schema.getFormat instead of this @Override @@ -252,7 +258,8 @@ public class CodegenResponse implements IJsonSchemaValidationProperties { // use content.mediaType.schema.setFormat instead of this @Override - public void setFormat(String format) {} + public void setFormat(String format) { + } @Override public String getPattern() { @@ -782,16 +789,24 @@ public class CodegenResponse implements IJsonSchemaValidationProperties { } @Override - public Map getRequiredVarsMap() { return requiredVarsMap; } + public Map getRequiredVarsMap() { + return requiredVarsMap; + } @Override - public void setRequiredVarsMap(Map requiredVarsMap) { this.requiredVarsMap=requiredVarsMap; } + public void setRequiredVarsMap(Map requiredVarsMap) { + this.requiredVarsMap = requiredVarsMap; + } @Override - public String getRef() { return ref; } + public String getRef() { + return ref; + } @Override - public void setRef(String ref) { this.ref=ref; } + public void setRef(String ref) { + this.ref = ref; + } @Override public boolean getSchemaIsFromAdditionalProperties() { @@ -889,5 +904,6 @@ public class CodegenResponse implements IJsonSchemaValidationProperties { } @Override - public void setIsEnum(boolean isEnum) {} + public void setIsEnum(boolean isEnum) { + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenSecurity.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenSecurity.java index f165639ad18..00b4c2e1e0b 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenSecurity.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenSecurity.java @@ -17,11 +17,7 @@ package org.openapitools.codegen; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; public class CodegenSecurity { @@ -49,10 +45,10 @@ public class CodegenSecurity { // OpenId specific public String openIdConnectUrl; - public CodegenSecurity () { + public CodegenSecurity() { } - public CodegenSecurity (CodegenSecurity original) { + public CodegenSecurity(CodegenSecurity original) { this.name = original.name; this.description = original.description; this.type = original.type; @@ -97,8 +93,8 @@ public class CodegenSecurity { // In such cases, no filtering is performed. if (!(Boolean.TRUE.equals(isOAuth) || Boolean.TRUE.equals(isOpenId))) { filteredSecurity.scopes = filterScopes.stream() - .map(s -> new HashMap(Map.of("scope", s))) - .collect(Collectors.toList()); + .map(s -> new HashMap(Map.of("scope", s))) + .collect(Collectors.toList()); return filteredSecurity; } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java index 741c6680f1b..be35976665e 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java @@ -70,10 +70,10 @@ import org.openapitools.codegen.utils.OneOfImplementorAdditionalData; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.File; import java.io.BufferedReader; -import java.io.InputStreamReader; +import java.io.File; import java.io.IOException; +import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; import java.util.*; import java.util.Map.Entry; @@ -350,7 +350,6 @@ public class DefaultCodegen implements CodegenConfig { * first from additionalProperties * then from the getter in this instance * then from the fields in this instance - * */ protected void useCodegenAsMustacheParentContext() { additionalProperties.put(CodegenConstants.MUSTACHE_PARENT_CONTEXT, this); @@ -392,7 +391,7 @@ public class DefaultCodegen implements CodegenConfig { convertPropertyToBooleanAndWriteBack(CodegenConstants.DISALLOW_ADDITIONAL_PROPERTIES_IF_NOT_PRESENT, this::setDisallowAdditionalPropertiesIfNotPresent); convertPropertyToBooleanAndWriteBack(CodegenConstants.ENUM_UNKNOWN_DEFAULT_CASE, this::setEnumUnknownDefaultCase); convertPropertyToBooleanAndWriteBack(CodegenConstants.AUTOSET_CONSTANTS, this::setAutosetConstants); - } + } /*** @@ -546,6 +545,7 @@ public class DefaultCodegen implements CodegenConfig { * This usually occurs when the data type is different. * We can also consider discriminators as new because the derived class discriminator will have to be defined again * to contain a new value. Doing so prevents having to include the discriminator in the constructor. + * * @param model * @param property * @return @@ -553,9 +553,9 @@ public class DefaultCodegen implements CodegenConfig { private boolean codegenPropertyIsNew(CodegenModel model, CodegenProperty property) { return model.parentModel == null ? false - : model.parentModel.allVars.stream().anyMatch(p -> - p.name.equals(property.name) && - (p.dataType.equals(property.dataType) == false || p.datatypeWithEnum.equals(property.datatypeWithEnum) == false)); + : model.parentModel.allVars.stream().anyMatch(p -> + p.name.equals(property.name) && + (p.dataType.equals(property.dataType) == false || p.datatypeWithEnum.equals(property.datatypeWithEnum) == false)); } /** @@ -874,8 +874,8 @@ public class DefaultCodegen implements CodegenConfig { /** * Return the enum default value in the language specified format * - * @param property The codegen property to create the default for. - * @param value Enum variable name + * @param property The codegen property to create the default for. + * @param value Enum variable name * @return the default value for the enum */ public String toEnumDefaultValue(CodegenProperty property, String value) { @@ -1133,6 +1133,7 @@ public class DefaultCodegen implements CodegenConfig { /** * This method escapes text to be used in a single quoted string + * * @param input the input string * @return the escaped string */ @@ -3275,7 +3276,7 @@ public class DefaultCodegen implements CodegenConfig { } if (refSchema.getProperties() != null && refSchema.getProperties().get(discPropName) != null) { - Schema discSchema = ModelUtils.getReferencedSchema(openAPI, (Schema)refSchema.getProperties().get(discPropName)); + Schema discSchema = ModelUtils.getReferencedSchema(openAPI, (Schema) refSchema.getProperties().get(discPropName)); CodegenProperty cp = new CodegenProperty(); if (ModelUtils.isStringSchema(discSchema)) { cp.isString = true; @@ -6904,7 +6905,7 @@ public class DefaultCodegen implements CodegenConfig { * writes it back to additionalProperties to be usable as a boolean in * mustache files. * - * @param propertyKey property key + * @param propertyKey property key * @param booleanSetter the setter function reference * @return property value as boolean or false if it does not exist */ @@ -6923,7 +6924,7 @@ public class DefaultCodegen implements CodegenConfig { * writes it back to additionalProperties to be usable as a string in * mustache files. * - * @param propertyKey property key + * @param propertyKey property key * @param stringSetter the setter function reference * @return property value as String or null if not found */ @@ -6936,7 +6937,7 @@ public class DefaultCodegen implements CodegenConfig { * writes it back to additionalProperties to be usable as T in * mustache files. * - * @param propertyKey property key + * @param propertyKey property key * @param genericTypeSetter the setter function reference * @return property value as instance of type T or null if not found */ @@ -8237,7 +8238,7 @@ public class DefaultCodegen implements CodegenConfig { int exitValue = p.exitValue(); if (exitValue != 0) { try (InputStreamReader inputStreamReader = new InputStreamReader(p.getErrorStream(), StandardCharsets.UTF_8); - BufferedReader br = new BufferedReader(inputStreamReader)) { + BufferedReader br = new BufferedReader(inputStreamReader)) { StringBuilder sb = new StringBuilder(); String line; while ((line = br.readLine()) != null) { @@ -8391,7 +8392,8 @@ public class DefaultCodegen implements CodegenConfig { public void addImportsToOneOfInterface(List> imports) { } - //// End of methods related to the "useOneOfInterfaces" feature + + /// / End of methods related to the "useOneOfInterfaces" feature protected void modifyFeatureSet(Consumer processor) { FeatureSet.Builder builder = getFeatureSet().modify(); @@ -8403,7 +8405,8 @@ public class DefaultCodegen implements CodegenConfig { /** * An map entry for cached sanitized names. */ - @Getter private static class SanitizeNameOptions { + @Getter + private static class SanitizeNameOptions { public SanitizeNameOptions(String name, String removeCharRegEx, List exceptions) { this.name = name; this.removeCharRegEx = removeCharRegEx; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java index 0e377c2bd65..1d913e1c737 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java @@ -18,11 +18,7 @@ package org.openapitools.codegen; import io.swagger.v3.core.util.Json; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.Operation; -import io.swagger.v3.oas.models.PathItem; -import io.swagger.v3.oas.models.Paths; -import io.swagger.v3.oas.models.SpecVersion; +import io.swagger.v3.oas.models.*; import io.swagger.v3.oas.models.info.Contact; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.info.License; @@ -35,12 +31,8 @@ import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOCase; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; -import org.openapitools.codegen.api.TemplateDefinition; -import org.openapitools.codegen.api.TemplatePathLocator; -import org.openapitools.codegen.api.TemplateProcessor; +import org.openapitools.codegen.api.*; import org.openapitools.codegen.config.GlobalSettings; -import org.openapitools.codegen.api.TemplatingEngineAdapter; -import org.openapitools.codegen.api.TemplateFileType; import org.openapitools.codegen.ignore.CodegenIgnoreProcessor; import org.openapitools.codegen.meta.GeneratorMetadata; import org.openapitools.codegen.meta.Stability; @@ -50,15 +42,13 @@ import org.openapitools.codegen.templating.CommonTemplateContentLocator; import org.openapitools.codegen.templating.GeneratorTemplateContentLocator; import org.openapitools.codegen.templating.MustacheEngineAdapter; import org.openapitools.codegen.templating.TemplateManagerOptions; -import org.openapitools.codegen.utils.ImplementationVersion; -import org.openapitools.codegen.utils.ModelUtils; -import org.openapitools.codegen.utils.ProcessUtils; -import org.openapitools.codegen.utils.URLPathUtils; -import org.openapitools.codegen.utils.SemVer; +import org.openapitools.codegen.utils.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.*; +import java.io.File; +import java.io.IOException; +import java.io.Writer; import java.net.URL; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -97,8 +87,8 @@ public class DefaultGenerator implements Generator { private String contextPath; private Map generatorPropertyDefaults = new HashMap<>(); /** - * Retrieves an instance to the configured template processor, available after user-defined options are - * applied via + * Retrieves an instance to the configured template processor, available after user-defined options are + * applied via */ @Getter protected TemplateProcessor templateProcessor = null; @@ -461,7 +451,7 @@ public class DefaultGenerator implements Generator { } Set modelKeys = modelKeysSupplier.get(); - if(modelKeys.isEmpty()) { + if (modelKeys.isEmpty()) { return; } @@ -536,11 +526,11 @@ public class DefaultGenerator implements Generator { allProcessedModels = config.postProcessAllModels(allProcessedModels); if (generateRecursiveDependentModels) { - for(ModelsMap modelsMap : allProcessedModels.values()) { - for(ModelMap mm: modelsMap.getModels()) { + for (ModelsMap modelsMap : allProcessedModels.values()) { + for (ModelMap mm : modelsMap.getModels()) { CodegenModel cm = mm.getModel(); if (cm != null) { - for(CodegenProperty variable : cm.getVars()) { + for (CodegenProperty variable : cm.getVars()) { generateModelsForVariable(files, allModels, unusedModels, aliasModels, processedModels, variable); } //TODO: handle interfaces @@ -552,7 +542,7 @@ public class DefaultGenerator implements Generator { } } } - + // generate files based on processed models for (String modelName : allProcessedModels.keySet()) { ModelsMap models = allProcessedModels.get(modelName); @@ -616,10 +606,10 @@ public class DefaultGenerator implements Generator { if (!processedModels.contains(key) && allSchemas.containsKey(key)) { generateModels(files, allModels, unusedModels, aliasModels, processedModels, () -> Set.of(key)); } else { - LOGGER.info("Type " + variable.getComplexType()+" of variable " + variable.getName() + " could not be resolve because it is not declared as a model."); + LOGGER.info("Type " + variable.getComplexType() + " of variable " + variable.getName() + " could not be resolve because it is not declared as a model."); } } else { - LOGGER.info("Type " + variable.getOpenApiType()+" of variable " + variable.getName() + " could not be resolve because it is not declared as a model."); + LOGGER.info("Type " + variable.getOpenApiType() + " of variable " + variable.getName() + " could not be resolve because it is not declared as a model."); } } @@ -627,7 +617,7 @@ public class DefaultGenerator implements Generator { Map schemaMap = ModelUtils.getSchemas(this.openAPI); Set keys = schemaMap.keySet(); String simpleRef; - if(keys.contains(type)) { + if (keys.contains(type)) { return type; } else if (keys.contains(simpleRef = ModelUtils.getSimpleRef(ref))) { return simpleRef; @@ -688,7 +678,7 @@ public class DefaultGenerator implements Generator { for (String tag : paths.keySet()) { try { List ops = paths.get(tag); - if(!this.config.isSkipSortingOperations()) { + if (!this.config.isSkipSortingOperations()) { // sort operations by operationId ops.sort((one, another) -> ObjectUtils.compare(one.operationId, another.operationId)); } @@ -931,17 +921,17 @@ public class DefaultGenerator implements Generator { String outputDir = config.getOutputDir() + File.separator + config.templateOutputDirs().get(templateName); String filename = config.apiFilename(templateName, tag, outputDir); // do not overwrite apiController file for spring server - if (apiFilePreCheck(filename, generatorCheck, templateName, templateCheck)){ + if (apiFilePreCheck(filename, generatorCheck, templateName, templateCheck)) { written = processTemplateToFile(operation, templateName, filename, generateWebhooks, CodegenConstants.WEBHOOKS, outputDir); } else { - LOGGER.info("Implementation file {} is not overwritten",filename); + LOGGER.info("Implementation file {} is not overwritten", filename); } } else { String filename = config.apiFilename(templateName, tag); - if(apiFilePreCheck(filename, generatorCheck, templateName, templateCheck)){ + if (apiFilePreCheck(filename, generatorCheck, templateName, templateCheck)) { written = processTemplateToFile(operation, templateName, filename, generateWebhooks, CodegenConstants.WEBHOOKS); } else { - LOGGER.info("Implementation file {} is not overwritten",filename); + LOGGER.info("Implementation file {} is not overwritten", filename); } } if (written != null) { @@ -1218,9 +1208,9 @@ public class DefaultGenerator implements Generator { *

* Examples: *

- * boolean hasOAuthMethods + * boolean hasOAuthMethods *

- * List<CodegenSecurity> oauthMethods + * List<CodegenSecurity> oauthMethods * * @param bundle the map which the booleans and collections will be added */ @@ -1490,7 +1480,7 @@ public class DefaultGenerator implements Generator { return ops; } - public Map> processWebhooks(Map webhooks) { + public Map> processWebhooks(Map webhooks) { Map> ops = new TreeMap<>(); // when input file is not valid and doesn't contain any paths if (webhooks == null) { @@ -1619,7 +1609,7 @@ public class DefaultGenerator implements Generator { } private static String generateParameterId(Parameter parameter) { - return null == parameter.get$ref() ? parameter.getName() + ":" + parameter.getIn() : parameter.get$ref() ; + return null == parameter.get$ref() ? parameter.getName() + ":" + parameter.getIn() : parameter.get$ref(); } private OperationsMap processOperations(CodegenConfig config, String tag, List ops, List allModels) { @@ -2013,7 +2003,7 @@ public class DefaultGenerator implements Generator { } }); - Collections.sort(relativePaths, (a, b) -> IOCase.SENSITIVE.checkCompareTo(a,b)); + Collections.sort(relativePaths, (a, b) -> IOCase.SENSITIVE.checkCompareTo(a, b)); relativePaths.forEach(relativePath -> { sb.append(relativePath).append(System.lineSeparator()); }); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DryRunStatus.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DryRunStatus.java index 862d29b4861..a37e1dd26c3 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DryRunStatus.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DryRunStatus.java @@ -9,25 +9,26 @@ import java.util.Locale; /** * Holds details about a file's write status for display via the --dry-run option of CLI */ -@Getter class DryRunStatus { +@Getter +class DryRunStatus { /** * -- GETTER -- - * Gets the target path of the file write operation + * Gets the target path of the file write operation * * @return a {@link Path} instance */ private final Path path; /** * -- GETTER -- - * Gets the - * as determined by the generator's workflow + * Gets the + * as determined by the generator's workflow * * @return A {@link State} enum detailing the expected operation of the generator's workflow */ private State state; /** * -- GETTER -- - * Gets the reason for the file's + * Gets the reason for the file's * * @return A human-readable string which explains why this file's dry-run resulted in the defined {@link State} */ @@ -110,7 +111,8 @@ import java.util.Locale; /** * Represents the possible states of a file write operation as determined by the Generator */ - @Getter enum State { + @Getter + enum State { Write("w", "Write"), WriteIfNewer("n", "Write if New/Updated"), Ignored("i", "Ignored"), @@ -120,14 +122,14 @@ import java.util.Locale; /** * -- GETTER -- - * Gets the short value used for display + * Gets the short value used for display * * @return A character representing this state */ private final String shortDisplay; /** * -- GETTER -- - * Gets a description of the state which is more human-readable than the enum's name + * Gets a description of the state which is more human-readable than the enum's name * * @return A human-readable description */ diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DryRunTemplateManager.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DryRunTemplateManager.java index d9de181e2f2..b42b89395ad 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DryRunTemplateManager.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DryRunTemplateManager.java @@ -18,7 +18,7 @@ import java.util.Map; public class DryRunTemplateManager implements TemplateProcessor { private final TemplateManagerOptions options; private final Map dryRunStatusMap = new HashMap<>(); - + private final Map> capturedTemplateData = new HashMap<>(); private boolean recordTemplateData = false; @@ -65,9 +65,9 @@ public class DryRunTemplateManager implements TemplateProcessor { if (outputFile.exists()) { if (this.options.isSkipOverwrite()) { status = new DryRunStatus( - path, - DryRunStatus.State.SkippedOverwrite, - "File exists and skip overwrite option is enabled." + path, + DryRunStatus.State.SkippedOverwrite, + "File exists and skip overwrite option is enabled." ); } else if (this.options.isMinimalUpdate()) { status.setState(DryRunStatus.State.WriteIfNewer); @@ -118,10 +118,11 @@ public class DryRunTemplateManager implements TemplateProcessor { } /** - * Retrieve the captured template data for a specific file. Capturing must have + * Retrieve the captured template data for a specific file. Capturing must have * been enabled via {@link #enableTemplateDataCapturing()} prior to generation.
* Note: Not all files have template data (e.g. Metadata files) – in such case an empty * map is returned. + * * @param generatedFile An absolute path to the generated file * @return Typically one of the *Map types found in {@link org.openapitools.codegen.model} */ diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/IJsonSchemaValidationProperties.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/IJsonSchemaValidationProperties.java index 47fef0eddf5..2666c1a81f4 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/IJsonSchemaValidationProperties.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/IJsonSchemaValidationProperties.java @@ -1,20 +1,13 @@ package org.openapitools.codegen; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.stream.Stream; - +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.media.Schema; import org.openapitools.codegen.meta.FeatureSet; import org.openapitools.codegen.meta.features.SchemaSupportFeature; import org.openapitools.codegen.utils.ModelUtils; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.media.Schema; +import java.util.*; +import java.util.stream.Stream; public interface IJsonSchemaValidationProperties { CodegenProperty getContains(); @@ -108,14 +101,15 @@ public interface IJsonSchemaValidationProperties { /** * Tells if the datatype is a generic inner parameter of a std::optional for C++, or Optional (Java)
- * to resolve cases (detected in issue #6726) where :
- * - categoryOneOf is a parameter of class GetAccountVideos_categoryOneOf_parameter, a model parameter that correctly prefixed by its namespace: org::openapitools::server::model::GetAccountVideos_categoryOneOf_parameter
- * - but that GetAccountVideos_categoryOneOf_parameter class is inside an std::optional
- *
- * Then a correct generation of that parameter can be (for C++) const std::optional<org::openapitools::server::model::GetAccountVideos_categoryOneOf_parameter> &categoryOneOf
- * but using #isModel alone without #isOptional in mustache might produce const org::openapitools::server::model::std::optional<org::openapitools::server::model::GetAccountVideos_categoryOneOf_parameter> &categoryOneOf instead, that do not compile. + * to resolve cases (detected in issue #6726) where :
+ * - categoryOneOf is a parameter of class GetAccountVideos_categoryOneOf_parameter, a model parameter that correctly prefixed by its namespace: org::openapitools::server::model::GetAccountVideos_categoryOneOf_parameter
+ * - but that GetAccountVideos_categoryOneOf_parameter class is inside an std::optional
+ *
+ * Then a correct generation of that parameter can be (for C++) const std::optional<org::openapitools::server::model::GetAccountVideos_categoryOneOf_parameter> &categoryOneOf
+ * but using #isModel alone without #isOptional in mustache might produce const org::openapitools::server::model::std::optional<org::openapitools::server::model::GetAccountVideos_categoryOneOf_parameter> &categoryOneOf instead, that do not compile. */ boolean getIsOptional(); + void setIsOptional(boolean isOptional); boolean getIsArray(); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/InlineModelResolver.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/InlineModelResolver.java index e45cc3df9b9..565cda9194d 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/InlineModelResolver.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/InlineModelResolver.java @@ -22,8 +22,6 @@ import com.fasterxml.jackson.core.util.DefaultPrettyPrinter; import com.fasterxml.jackson.databind.MapperFeature; import com.fasterxml.jackson.databind.ObjectMapper; import io.swagger.v3.core.util.Json; -import io.swagger.v3.oas.annotations.Webhook; -import io.swagger.v3.oas.annotations.Webhooks; import io.swagger.v3.oas.models.*; import io.swagger.v3.oas.models.PathItem.HttpMethod; import io.swagger.v3.oas.models.callbacks.Callback; @@ -37,7 +35,6 @@ import org.openapitools.codegen.utils.ModelUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.nio.file.Path; import java.util.*; public class InlineModelResolver { @@ -118,7 +115,7 @@ public class InlineModelResolver { * Flatten inline models in Webhooks */ private void flattenWebhooks() { - Map webhooks = openAPI.getWebhooks(); + Map webhooks = openAPI.getWebhooks(); if (webhooks == null) { return; } @@ -536,8 +533,8 @@ public class InlineModelResolver { /** * Flatten inline models in parameters * - * @param modelName model name - * @param parameters list of parameters + * @param modelName model name + * @param parameters list of parameters * @param operationId operation Id (optional) */ private void flattenParameters(String modelName, List parameters, String operationId) { @@ -619,18 +616,18 @@ public class InlineModelResolver { * allOf: * - $ref: '#/components/schemas/Animal' * - type: object - * properties: - * name: - * type: string - * age: - * type: string + * properties: + * name: + * type: string + * age: + * type: string * - type: object - * properties: - * breed: - * type: string + * properties: + * breed: + * type: string * - * @param key a unique name for the composed schema. - * @param children the list of nested schemas within a composed schema (allOf, anyOf, oneOf). + * @param key a unique name for the composed schema. + * @param children the list of nested schemas within a composed schema (allOf, anyOf, oneOf). * @param skipAllOfInlineSchemas true if allOf inline schemas need to be skipped. */ private void flattenComposedChildren(String key, List children, boolean skipAllOfInlineSchemas) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ObjectWithTypeBooleans.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ObjectWithTypeBooleans.java index 28038f46912..ba75b76da9f 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ObjectWithTypeBooleans.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ObjectWithTypeBooleans.java @@ -20,23 +20,24 @@ public class ObjectWithTypeBooleans { * Other booleans: isUnboundedInteger/isNumber/isString/isMap/isArray/isBoolean/isNull * allow generator templates to decide how to render each payload into code * based upon what type it is. The booleans isX describe the value in value. + * * @param value the input payload that is stored */ public ObjectWithTypeBooleans(Object value) { Object usedValue = null; - if (value instanceof Integer){ + if (value instanceof Integer) { this.isUnboundedInteger = true; this.value = value; - } else if (value instanceof Double || value instanceof Float){ + } else if (value instanceof Double || value instanceof Float) { this.isNumber = true; this.value = value; } else if (value instanceof String) { - this.isString = true; + this.isString = true; this.value = value; } else if (value instanceof LinkedHashMap) { LinkedHashMap castValue = (LinkedHashMap) value; LinkedHashMap castMap = new LinkedHashMap<>(); - for (Map.Entry entry: castValue.entrySet()) { + for (Map.Entry entry : castValue.entrySet()) { ObjectWithTypeBooleans entryKey = new ObjectWithTypeBooleans(entry.getKey()); ObjectWithTypeBooleans entryValue = new ObjectWithTypeBooleans(entry.getValue()); castMap.put(entryKey, entryValue); @@ -45,7 +46,7 @@ public class ObjectWithTypeBooleans { this.isMap = true; } else if (value instanceof ArrayList) { ArrayList castList = new ArrayList<>(); - for (Object item: (ArrayList) value) { + for (Object item : (ArrayList) value) { castList.add(new ObjectWithTypeBooleans(item)); } this.value = castList; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/OpenAPINormalizer.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/OpenAPINormalizer.java index 263b81a6ede..9e511d10fcd 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/OpenAPINormalizer.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/OpenAPINormalizer.java @@ -35,7 +35,6 @@ import java.util.*; import java.util.stream.Collectors; import static org.openapitools.codegen.utils.StringUtils.getUniqueString; -import static org.openapitools.codegen.utils.StringUtils.underscore; public class OpenAPINormalizer { private OpenAPI openAPI; @@ -546,7 +545,7 @@ public class OpenAPINormalizer { return; } - for (Map.Entry entry : apiResponses.entrySet()) { + for (Map.Entry entry : apiResponses.entrySet()) { normalizeResponse(entry.getValue()); } } @@ -1013,7 +1012,6 @@ public class OpenAPINormalizer { } - /** * If the schema contains anyOf/oneOf and properties, remove oneOf/anyOf as these serve as rules to * ensure inter-dependency between properties. It's a workaround as such validation is not supported at the moment. diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/SpecValidationException.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/SpecValidationException.java index 704fedc44f3..a4c2265146c 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/SpecValidationException.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/SpecValidationException.java @@ -6,7 +6,8 @@ import lombok.Setter; import java.util.Optional; import java.util.Set; -@Getter @Setter +@Getter +@Setter public class SpecValidationException extends RuntimeException { private Set errors; @@ -100,8 +101,8 @@ public class SpecValidationException extends RuntimeException { StringBuilder sb = new StringBuilder(); sb.append(System.lineSeparator()) - .append("Errors: ") - .append(System.lineSeparator()); + .append("Errors: ") + .append(System.lineSeparator()); Optional.ofNullable(errors).ifPresent(_errors -> { for (String msg : errors) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/SupportingFile.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/SupportingFile.java index 9202a81e94f..90ddaf91f2f 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/SupportingFile.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/SupportingFile.java @@ -27,11 +27,12 @@ import java.util.StringJoiner; /** * Defines the template definition for a "supporting file", that is any file which is generic and not bound to * api/model definitions and their relevant docs or tests. - * + *

* Supporting files are generated once for an entire application while api/model bound definitions are generated multiple * times according to their target use. */ -@Getter public class SupportingFile extends TemplateDefinition { +@Getter +public class SupportingFile extends TemplateDefinition { private boolean canOverwrite = true; public SupportingFile(String templateFile, String destinationFilename) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/TemplateManager.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/TemplateManager.java index 691096b39f6..5fce684170e 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/TemplateManager.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/TemplateManager.java @@ -13,8 +13,14 @@ import org.slf4j.LoggerFactory; import java.io.*; import java.nio.charset.StandardCharsets; -import java.nio.file.*; -import java.util.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.util.Arrays; +import java.util.Map; +import java.util.Objects; +import java.util.Scanner; import java.util.regex.Pattern; /** @@ -30,8 +36,8 @@ public class TemplateManager implements TemplatingExecutor, TemplateProcessor { /** * Constructs a new instance of a {@link TemplateManager} * - * @param options The {@link TemplateManagerOptions} for reading and writing templates - * @param engineAdapter The adaptor to underlying templating engine + * @param options The {@link TemplateManagerOptions} for reading and writing templates + * @param engineAdapter The adaptor to underlying templating engine * @param templateLoaders Loaders which define where we look for templates */ public TemplateManager( @@ -87,7 +93,6 @@ public class TemplateManager implements TemplatingExecutor, TemplateProcessor { * Gets a normalized classpath resource location according to OS-specific file separator * * @param name The name of the resource file/directory to find - * * @return A normalized string according to OS-specific file separator */ public static String getCPResourcePath(final String name) { @@ -152,8 +157,7 @@ public class TemplateManager implements TemplatingExecutor, TemplateProcessor { * * @param data Input data * @param template Input template location - * @param target The targeted file output location - * + * @param target The targeted file output location * @return The actual file */ @Override diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/VendorExtension.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/VendorExtension.java index 61cee17f86f..2f175b564d7 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/VendorExtension.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/VendorExtension.java @@ -6,7 +6,8 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; -@Getter public enum VendorExtension { +@Getter +public enum VendorExtension { X_IMPLEMENTS("x-implements", ExtensionLevel.MODEL, "Ability to specify interfaces that model must implements", "empty array"), X_SPRING_PAGINATED("x-spring-paginated", ExtensionLevel.OPERATION, "Add org.springframework.data.domain.Pageable to controller method. Can be used to handle page & size query parameters", "false"), diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/auth/AuthParser.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/auth/AuthParser.java index 0254798d927..78cd88e3fd1 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/auth/AuthParser.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/auth/AuthParser.java @@ -41,9 +41,9 @@ public class AuthParser { String[] kvPair = part.split(":"); if (kvPair.length == 2) { auths.add(new AuthorizationValue( - URLDecoder.decode(kvPair[0], StandardCharsets.UTF_8), - URLDecoder.decode(kvPair[1], StandardCharsets.UTF_8), - "header" + URLDecoder.decode(kvPair[0], StandardCharsets.UTF_8), + URLDecoder.decode(kvPair[1], StandardCharsets.UTF_8), + "header" )); } } @@ -59,7 +59,7 @@ public class AuthParser { b.append(","); } b.append(URLEncoder.encode(v.getKeyName(), StandardCharsets.UTF_8)) - .append(":").append(URLEncoder.encode(v.getValue(), StandardCharsets.UTF_8)); + .append(":").append(URLEncoder.encode(v.getValue(), StandardCharsets.UTF_8)); } return b.toString(); } else { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/CodegenConfigurator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/CodegenConfigurator.java index 90a35cd5641..3340bee7fa5 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/CodegenConfigurator.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/CodegenConfigurator.java @@ -48,7 +48,7 @@ import static org.apache.commons.lang3.StringUtils.isNotEmpty; /** * A class which manages the contextual configuration for code generation. * This includes configuring the generator, templating, and the workflow which orchestrates these. - * + *

* This helper also enables the deserialization of {@link GeneratorSettings} via application-specific Jackson JSON usage * (see {@link DynamicSettings}. */ @@ -109,55 +109,55 @@ public class CodegenConfigurator { if (workflowSettings.getGlobalProperties() != null) { configurator.globalProperties.putAll(workflowSettings.getGlobalProperties()); } - if(generatorSettings.getInstantiationTypes() != null) { + if (generatorSettings.getInstantiationTypes() != null) { configurator.instantiationTypes.putAll(generatorSettings.getInstantiationTypes()); } - if(generatorSettings.getTypeMappings() != null) { + if (generatorSettings.getTypeMappings() != null) { configurator.typeMappings.putAll(generatorSettings.getTypeMappings()); } - if(generatorSettings.getAdditionalProperties() != null) { + if (generatorSettings.getAdditionalProperties() != null) { configurator.additionalProperties.putAll(generatorSettings.getAdditionalProperties()); } - if(generatorSettings.getImportMappings() != null) { + if (generatorSettings.getImportMappings() != null) { configurator.importMappings.putAll(generatorSettings.getImportMappings()); } - if(generatorSettings.getSchemaMappings() != null) { + if (generatorSettings.getSchemaMappings() != null) { configurator.schemaMappings.putAll(generatorSettings.getSchemaMappings()); } - if(generatorSettings.getInlineSchemaNameMappings() != null) { + if (generatorSettings.getInlineSchemaNameMappings() != null) { configurator.inlineSchemaNameMappings.putAll(generatorSettings.getInlineSchemaNameMappings()); } - if(generatorSettings.getInlineSchemaOptions() != null) { + if (generatorSettings.getInlineSchemaOptions() != null) { configurator.inlineSchemaOptions.putAll(generatorSettings.getInlineSchemaOptions()); } - if(generatorSettings.getNameMappings() != null) { + if (generatorSettings.getNameMappings() != null) { configurator.nameMappings.putAll(generatorSettings.getNameMappings()); } - if(generatorSettings.getParameterNameMappings() != null) { + if (generatorSettings.getParameterNameMappings() != null) { configurator.parameterNameMappings.putAll(generatorSettings.getParameterNameMappings()); } - if(generatorSettings.getModelNameMappings() != null) { + if (generatorSettings.getModelNameMappings() != null) { configurator.modelNameMappings.putAll(generatorSettings.getModelNameMappings()); } - if(generatorSettings.getEnumNameMappings() != null) { + if (generatorSettings.getEnumNameMappings() != null) { configurator.enumNameMappings.putAll(generatorSettings.getEnumNameMappings()); } - if(generatorSettings.getOperationIdNameMappings() != null) { + if (generatorSettings.getOperationIdNameMappings() != null) { configurator.operationIdNameMappings.putAll(generatorSettings.getOperationIdNameMappings()); } - if(generatorSettings.getOpenapiNormalizer() != null) { + if (generatorSettings.getOpenapiNormalizer() != null) { configurator.openapiNormalizer.putAll(generatorSettings.getOpenapiNormalizer()); } - if(generatorSettings.getLanguageSpecificPrimitives() != null) { + if (generatorSettings.getLanguageSpecificPrimitives() != null) { configurator.languageSpecificPrimitives.addAll(generatorSettings.getLanguageSpecificPrimitives()); } - if(generatorSettings.getOpenapiGeneratorIgnoreList() != null) { + if (generatorSettings.getOpenapiGeneratorIgnoreList() != null) { configurator.openapiGeneratorIgnoreList.addAll(generatorSettings.getOpenapiGeneratorIgnoreList()); } - if(generatorSettings.getReservedWordsMappings() != null) { + if (generatorSettings.getReservedWordsMappings() != null) { configurator.reservedWordsMappings.putAll(generatorSettings.getReservedWordsMappings()); } - if(generatorSettings.getServerVariables() != null) { + if (generatorSettings.getServerVariables() != null) { configurator.serverVariables.putAll(generatorSettings.getServerVariables()); } @@ -700,12 +700,12 @@ public class CodegenConfigurator { // Wrap the getUnusedSchemas() in try catch block so it catches the NPE // when the input spec file is not correct - try{ + try { List unusedModels = ModelUtils.getUnusedSchemas(specification); if (unusedModels != null) { unusedModels.forEach(name -> warnings.add("Unused model: " + name)); } - } catch (Exception e){ + } catch (Exception e) { System.err.println("[error] There is an error with OpenAPI specification parsed from the input spec file: " + inputSpec); System.err.println("[error] Please make sure the spec file has correct format and all required fields are populated with valid value."); } @@ -808,6 +808,6 @@ public class CodegenConfigurator { .generatorSettings(generatorSettings) .userDefinedTemplates(userDefinedTemplates); - return input.openAPI((OpenAPI)context.getSpecDocument()); + return input.openAPI((OpenAPI) context.getSpecDocument()); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/DynamicSettings.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/DynamicSettings.java index 66165692d1a..975728ba636 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/DynamicSettings.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/DynamicSettings.java @@ -23,7 +23,7 @@ import java.util.stream.Collectors; public class DynamicSettings { /** * -- GETTER -- - * Gets all "custom" properties included in the config object. + * Gets all "custom" properties included in the config object. * * @return All user-specified custom properties. */ @@ -96,9 +96,10 @@ public class DynamicSettings { *

Constructor for DynamicSettings.

*/ @JsonCreator - public DynamicSettings() { } + public DynamicSettings() { + } - private void excludeSettingsFromDynamicProperties(){ + private void excludeSettingsFromDynamicProperties() { Set fieldNames = new HashSet<>(); for (Field field : GeneratorSettings.class.getDeclaredFields()) { fieldNames.add(field.getName()); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/GlobalSettings.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/GlobalSettings.java index 5f7fad79627..12e9052c79f 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/GlobalSettings.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/GlobalSettings.java @@ -27,7 +27,7 @@ import java.util.Properties; * GlobalSettings encapsulates SystemProperties, since the codegen mechanism heavily relies on a stable, * non-changing System Property Basis. Using plain System.(get|set|clear)Property raises Race-Conditions in combination * with Code, that uses System.setProperties (e.g. maven-surefire-plugin). - * + *

* This provides a set of properties specific to the executing thread, such that the generator may not modify system properties * consumed by other threads. * diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/MergedSpecBuilder.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/MergedSpecBuilder.java index 63443c1a8f6..bdbea3122ba 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/MergedSpecBuilder.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/MergedSpecBuilder.java @@ -1,32 +1,24 @@ package org.openapitools.codegen.config; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; +import com.google.common.collect.ImmutableMap; +import io.swagger.parser.OpenAPIParser; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.parser.core.models.ParseOptions; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardOpenOption; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; -import com.google.common.collect.ImmutableMap; - -import io.swagger.parser.OpenAPIParser; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.parser.core.models.ParseOptions; - public class MergedSpecBuilder { private static final Logger LOGGER = LoggerFactory.getLogger(MergedSpecBuilder.class); @@ -59,8 +51,8 @@ public class MergedSpecBuilder { LOGGER.info("Reading spec: {}", specPath); OpenAPI result = new OpenAPIParser() - .readLocation(specPath, new ArrayList<>(), options) - .getOpenAPI(); + .readLocation(specPath, new ArrayList<>(), options) + .getOpenAPI(); if (openapiVersion == null) { openapiVersion = result.getOpenapi(); @@ -93,11 +85,11 @@ public class MergedSpecBuilder { Map paths = new HashMap<>(); spec.put("paths", paths); - for(SpecWithPaths specWithPaths : allPaths) { + for (SpecWithPaths specWithPaths : allPaths) { for (String path : specWithPaths.paths) { String specRelatedPath = "./" + specWithPaths.specRelatedPath + "#/paths/" + path.replace("/", "~1"); paths.put(path, ImmutableMap.of( - "$ref", specRelatedPath + "$ref", specRelatedPath )); } } @@ -109,12 +101,12 @@ public class MergedSpecBuilder { Map map = new HashMap<>(); map.put("openapi", openapiVersion); map.put("info", ImmutableMap.of( - "title", "merged spec", - "description", "merged spec", - "version", "1.0.0" + "title", "merged spec", + "description", "merged spec", + "version", "1.0.0" )); map.put("servers", Collections.singleton( - ImmutableMap.of("url", "http://localhost:8080") + ImmutableMap.of("url", "http://localhost:8080") )); return map; } @@ -123,9 +115,9 @@ public class MergedSpecBuilder { Path rootDirectory = new File(inputSpecRootDirectory).toPath(); try (Stream pathStream = Files.walk(rootDirectory)) { return pathStream - .filter(path -> !Files.isDirectory(path)) - .map(path -> rootDirectory.relativize(path).toString()) - .collect(Collectors.toList()); + .filter(path -> !Files.isDirectory(path)) + .map(path -> rootDirectory.relativize(path).toString()) + .collect(Collectors.toList()); } catch (IOException e) { throw new RuntimeException("Exception while listing files in spec root directory: " + inputSpecRootDirectory, e); } @@ -134,10 +126,12 @@ public class MergedSpecBuilder { private void deleteMergedFileFromPreviousRun() { try { Files.deleteIfExists(Paths.get(inputSpecRootDirectory + File.separator + mergeFileName + ".json")); - } catch (IOException e) { } + } catch (IOException e) { + } try { Files.deleteIfExists(Paths.get(inputSpecRootDirectory + File.separator + mergeFileName + ".yaml")); - } catch (IOException e) { } + } catch (IOException e) { + } } private static class SpecWithPaths { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/examples/ExampleGenerator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/examples/ExampleGenerator.java index 48ade3ebc5c..6ba0cdaceed 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/examples/ExampleGenerator.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/examples/ExampleGenerator.java @@ -248,7 +248,7 @@ public class ExampleGenerator { } else if (ModelUtils.isArraySchema(property)) { Schema innerType = ModelUtils.getSchemaItems(property); if (innerType != null) { - int arrayLength = null == property.getMaxItems() ? 2 : property.getMaxItems(); + int arrayLength = null == property.getMaxItems() ? 2 : property.getMaxItems(); // avoid memory issues by limiting to max. 5 items arrayLength = Math.min(arrayLength, 5); Object[] objectProperties = new Object[arrayLength]; @@ -398,10 +398,11 @@ public class ExampleGenerator { /** * Transverse and resolves all property examples for `allOf` composed schemas into `values` map object - * @param mediaType MIME type - * @param schema OAS schema + * + * @param mediaType MIME type + * @param schema OAS schema * @param processedModels Set containing all processed models - * @param values Example value map + * @param values Example value map */ private void resolveAllOfSchemaProperties(String mediaType, Schema schema, Set processedModels, Map values) { List interfaces = schema.getAllOf(); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/examples/XmlExampleGenerator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/examples/XmlExampleGenerator.java index 70cd50cbdd2..0623469278f 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/examples/XmlExampleGenerator.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/examples/XmlExampleGenerator.java @@ -172,7 +172,7 @@ public class XmlExampleGenerator { /** * Get the example string value for the given schema. - * + *

* If an example value was not provided in the specification, a default will be generated. * * @param schema Schema to get example string for diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/exceptions/ProtoBufIndexComputationException.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/exceptions/ProtoBufIndexComputationException.java index 132eb147c86..e2e7120d478 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/exceptions/ProtoBufIndexComputationException.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/exceptions/ProtoBufIndexComputationException.java @@ -2,8 +2,8 @@ package org.openapitools.codegen.exceptions; public class ProtoBufIndexComputationException extends Exception { - public ProtoBufIndexComputationException(String reason) { - super(reason); - } + public ProtoBufIndexComputationException(String reason) { + super(reason); + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/CodegenIgnoreProcessor.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/CodegenIgnoreProcessor.java index c33d4fbb44a..82239a7efe2 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/CodegenIgnoreProcessor.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/CodegenIgnoreProcessor.java @@ -25,7 +25,10 @@ import org.slf4j.LoggerFactory; import java.io.*; import java.nio.charset.StandardCharsets; import java.nio.file.Files; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Locale; import static java.nio.file.StandardCopyOption.REPLACE_EXISTING; @@ -113,15 +116,15 @@ public class CodegenIgnoreProcessor { // NOTE: Comments that start with a : (e.g. //:) are pulled from git documentation for .gitignore // see: https://github.com/git/git/blob/90f7b16b3adc78d4bbabbd426fb69aa78c714f71/Documentation/gitignore.txt while ((line = reader.readLine()) != null) { - if( + if ( //: A blank line matches no files, so it can serve as a separator for readability. - line.length() == 0 + line.length() == 0 ) continue; Rule rule = Rule.create(line); // rule could be null here if it's a COMMENT, for example - if(rule != null) { + if (rule != null) { if (Boolean.TRUE.equals(rule.getNegated())) { inclusionRules.add(rule); } else { @@ -140,12 +143,12 @@ public class CodegenIgnoreProcessor { * @return {@code false} if file matches any pattern in the ignore file (disallowed), otherwise {@code true} (allowed). */ public boolean allowsFile(final File targetFile) { - if(this.ignoreFile == null) return true; + if (this.ignoreFile == null) return true; File file = new File(this.ignoreFile.getAbsoluteFile().getParentFile().toURI().relativize(targetFile.toURI()).getPath()); boolean directoryExcluded = false; boolean exclude = false; - if(exclusionRules.size() == 0 && inclusionRules.size() == 0) { + if (exclusionRules.size() == 0 && inclusionRules.size() == 0) { return true; } @@ -154,12 +157,12 @@ public class CodegenIgnoreProcessor { Rule current = exclusionRules.get(i); Rule.Operation op = current.evaluate(file.getPath()); - switch (op){ + switch (op) { case EXCLUDE: exclude = true; // Include rule can't override rules that exclude a file by some parent directory. - if(current instanceof DirectoryRule) { + if (current instanceof DirectoryRule) { directoryExcluded = true; } break; @@ -174,7 +177,7 @@ public class CodegenIgnoreProcessor { } } - if(exclude) { + if (exclude) { // Only need to process inclusion rules if we've been excluded for (int i = 0; exclude && i < inclusionRules.size(); i++) { Rule current = inclusionRules.get(i); @@ -182,8 +185,8 @@ public class CodegenIgnoreProcessor { // At this point exclude=true means the file should be ignored. // op == INCLUDE means we have to flip that flag. - if(op.equals(Rule.Operation.INCLUDE)) { - if(current instanceof DirectoryRule && directoryExcluded) { + if (op.equals(Rule.Operation.INCLUDE)) { + if (current instanceof DirectoryRule && directoryExcluded) { // e.g // baz/ // !foo/bar/baz/ @@ -216,7 +219,7 @@ public class CodegenIgnoreProcessor { /** * Allows a consumer to manually inspect all "exclusion rules". That is, patterns in the ignore file which represent * files and directories to be excluded, unless explicitly overridden by {@link CodegenIgnoreProcessor#getInclusionRules()} rules. - * + *

* NOTE: Existence in this list doesn't mean a file is excluded. The rule can be overridden by {@link CodegenIgnoreProcessor#getInclusionRules()} rules. * * @return A {@link Collections#unmodifiableList(List)} of rules which define exclusions by patterns in the ignore file. diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/DirectoryRule.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/DirectoryRule.java index 6081fc4c13b..a839bd6f71c 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/DirectoryRule.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/DirectoryRule.java @@ -32,7 +32,7 @@ public class DirectoryRule extends FileRule { StringBuilder sb = new StringBuilder(); sb.append("glob:"); sb.append(pattern); - if(!pattern.endsWith("/")) sb.append("/"); + if (!pattern.endsWith("/")) sb.append("/"); directoryMatcher = FileSystems.getDefault().getPathMatcher(sb.toString()); sb.append("**"); contentsMatcher = FileSystems.getDefault().getPathMatcher(sb.toString()); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/EverythingRule.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/EverythingRule.java index b50222f0206..56214e472ea 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/EverythingRule.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/EverythingRule.java @@ -33,5 +33,7 @@ public class EverythingRule extends Rule { } @Override - protected Operation getExcludeOperation(){ return Operation.EXCLUDE_AND_TERMINATE; } + protected Operation getExcludeOperation() { + return Operation.EXCLUDE_AND_TERMINATE; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/FileRule.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/FileRule.java index c5f731f597a..75616f70a37 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/FileRule.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/FileRule.java @@ -27,7 +27,7 @@ public class FileRule extends Rule { FileRule(List syntax, String definition) { super(syntax, definition); - matcher = FileSystems.getDefault().getPathMatcher("glob:"+this.getPattern()); + matcher = FileSystems.getDefault().getPathMatcher("glob:" + this.getPattern()); } @Override diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/IgnoreLineParser.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/IgnoreLineParser.java index 2702c036d2b..e49e1b00c5f 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/IgnoreLineParser.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/IgnoreLineParser.java @@ -23,7 +23,8 @@ import java.util.ArrayList; import java.util.List; public class IgnoreLineParser { - @Getter enum Token { + @Getter + enum Token { MATCH_ALL("**"), MATCH_ANY("*"), ESCAPED_EXCLAMATION("\\!"), @@ -84,8 +85,8 @@ public class IgnoreLineParser { if (Token.MATCH_ANY.pattern.equals(next)) { // peek ahead for invalid pattern. Slightly inefficient, but acceptable. - if ((i+2 < totalLength - 1) && - String.valueOf(characters[i+2]).equals(Token.MATCH_ANY.pattern)) { + if ((i + 2 < totalLength - 1) && + String.valueOf(characters[i + 2]).equals(Token.MATCH_ANY.pattern)) { // It doesn't matter where we are in the pattern, *** is invalid. throw new ParserException("The pattern *** is invalid."); } @@ -129,7 +130,7 @@ public class IgnoreLineParser { } parts.add(new Part(Token.PATH_DELIM)); - if(Token.PATH_DELIM.pattern.equals(next)) { + if (Token.PATH_DELIM.pattern.equals(next)) { // ignore doubled path delims. NOTE: doesn't do full lookahead, so /// will result in // i++; } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/InvalidRule.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/InvalidRule.java index 00c126db7d5..a87c0efb43a 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/InvalidRule.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/InvalidRule.java @@ -21,7 +21,8 @@ import lombok.Getter; import java.util.List; -@Getter public class InvalidRule extends Rule { +@Getter +public class InvalidRule extends Rule { private final String reason; InvalidRule(List syntax, String definition, String reason) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/Part.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/Part.java index e5cb6dff23d..757d3575d9a 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/Part.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/Part.java @@ -19,7 +19,8 @@ package org.openapitools.codegen.ignore.rules; import lombok.Getter; -@Getter class Part { +@Getter +class Part { private final IgnoreLineParser.Token token; private final String value; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/RootedFileRule.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/RootedFileRule.java index 9ac1d3825a1..e4eab6a2527 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/RootedFileRule.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/RootedFileRule.java @@ -36,12 +36,12 @@ public class RootedFileRule extends Rule { definedExtension = getExtensionPart(definition, separatorIndex); } - private String getFilenamePart(final String input, int stopIndex){ + private String getFilenamePart(final String input, int stopIndex) { return input.substring('/' == input.charAt(0) ? 1 : 0, stopIndex > 0 ? stopIndex : input.length()); } private String getExtensionPart(final String input, int stopIndex) { - return input.substring(stopIndex > 0 ? stopIndex+1: input.length()); + return input.substring(stopIndex > 0 ? stopIndex + 1 : input.length()); } @Override @@ -51,13 +51,13 @@ public class RootedFileRule extends Rule { // relativePath will be passed by CodegenIgnoreProcessor and is relative to .codegen-ignore. boolean isSingleFile = relativePath.lastIndexOf("/") <= 0; - if(isSingleFile) { + if (isSingleFile) { int separatorIndex = relativePath.lastIndexOf("."); final String filename = getFilenamePart(relativePath, separatorIndex); final String extension = getExtensionPart(relativePath, separatorIndex); boolean extensionMatches = definedExtension.equals(extension) || definedExtension.equals(IgnoreLineParser.Token.MATCH_ANY.getPattern()); - if(extensionMatches && definedFilename.contains(IgnoreLineParser.Token.MATCH_ANY.getPattern())) { + if (extensionMatches && definedFilename.contains(IgnoreLineParser.Token.MATCH_ANY.getPattern())) { // TODO: Evaluate any other escape requirements here. Pattern regex = Pattern.compile( definedFilename diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/Rule.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/Rule.java index 40f1bb1e756..a27e385912d 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/Rule.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/Rule.java @@ -38,7 +38,7 @@ public abstract class Rule { public abstract Boolean matches(String relativePath); protected String getPattern() { - if(syntax == null) return this.definition; + if (syntax == null) return this.definition; StringBuilder sb = new StringBuilder(); for (Part current : syntax) { @@ -75,7 +75,7 @@ public abstract class Rule { public Operation evaluate(String relativePath) { if (Boolean.TRUE.equals(matches(relativePath))) { - if(Boolean.TRUE.equals(this.getNegated())) { + if (Boolean.TRUE.equals(this.getNegated())) { return this.getIncludeOperation(); } return this.getExcludeOperation(); @@ -83,8 +83,13 @@ public abstract class Rule { return Operation.NOOP; } - protected Operation getIncludeOperation(){ return Operation.INCLUDE; } - protected Operation getExcludeOperation(){ return Operation.EXCLUDE; } + protected Operation getIncludeOperation() { + return Operation.INCLUDE; + } + + protected Operation getExcludeOperation() { + return Operation.EXCLUDE; + } public static Rule create(String definition) { // NOTE: Comments that start with a : (e.g. //:) are pulled from git documentation for .gitignore diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractAdaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractAdaCodegen.java index 39efaf8f924..4762205e7e1 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractAdaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractAdaCodegen.java @@ -27,12 +27,7 @@ import io.swagger.v3.oas.models.servers.Server; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.*; -import org.openapitools.codegen.meta.features.ClientModificationFeature; -import org.openapitools.codegen.meta.features.DocumentationFeature; -import org.openapitools.codegen.meta.features.GlobalFeature; -import org.openapitools.codegen.meta.features.SchemaSupportFeature; -import org.openapitools.codegen.meta.features.SecurityFeature; -import org.openapitools.codegen.meta.features.WireFormatFeature; +import org.openapitools.codegen.meta.features.*; import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.ModelsMap; import org.openapitools.codegen.model.OperationMap; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java index aac27c6be9a..8d832cdce9c 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java @@ -18,10 +18,9 @@ package org.openapitools.codegen.languages; import com.google.common.collect.ImmutableMap; -import com.samskivert.mustache.Mustache.Lambda; import com.samskivert.mustache.Mustache; +import com.samskivert.mustache.Mustache.Lambda; import com.samskivert.mustache.Template; - import io.swagger.v3.oas.models.media.Schema; import lombok.Getter; import lombok.Setter; @@ -504,7 +503,9 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen { } } - /** If the value can be parsed as a double, returns the value, otherwise returns null */ + /** + * If the value can be parsed as a double, returns the value, otherwise returns null + */ public static Double asDouble(String strNum) { if (strNum == null) { return null; @@ -516,7 +517,9 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen { } } - /** If the value can be parsed as an integer, returns the value, otherwise returns null */ + /** + * If the value can be parsed as an integer, returns the value, otherwise returns null + */ public static Integer asInteger(String strNum) { if (strNum == null) { return null; @@ -751,7 +754,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen { property.name = patchPropertyName(model, property.name); - String[] nestedTypes = { "List", "Collection", "ICollection", "Dictionary" }; + String[] nestedTypes = {"List", "Collection", "ICollection", "Dictionary"}; Arrays.stream(nestedTypes).forEach(nestedType -> { // fix incorrect data types for maps of maps @@ -835,6 +838,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen { httpStatusesWithReturn.add(status); } } + private HashMap duplicateOf = new HashMap(); @Override @@ -876,7 +880,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen { } String code = response.code.toLowerCase(Locale.ROOT); - switch(code) { + switch (code) { case "default": case "0": postProcessResponseCode(response, "Default", httpStatusesWithReturn); @@ -1242,7 +1246,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen { } protected void processOperation(CodegenOperation operation) { - String[] nestedTypes = { "List", "Collection", "ICollection", "Dictionary" }; + String[] nestedTypes = {"List", "Collection", "ICollection", "Dictionary"}; Arrays.stream(nestedTypes).forEach(nestedType -> { if (operation.returnProperty != null && operation.returnType.contains("<" + nestedType + ">") && operation.returnProperty.items != null) { @@ -1707,8 +1711,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen { * @param name The original name * @return The adjusted name */ - private String adjustNamingStyle(String name) - { + private String adjustNamingStyle(String name) { switch (getEnumPropertyNaming()) { case camelCase: // NOTE: Removes hyphens and underscores @@ -1765,7 +1768,9 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen { return (this.getValueTypes().contains(var.dataType) || var.isEnum); } - protected boolean useNet60OrLater() { return false; } + protected boolean useNet60OrLater() { + return false; + } protected boolean useDateOnly() { return useNet60OrLater() && !useDateTimeForDateFlag; @@ -1915,7 +1920,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen { // only process files with .cs extension if ("cs".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {csharpPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{csharpPostProcessFile, file.toString()}); } } @@ -1936,12 +1941,12 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen { Pattern hasModifiers = Pattern.compile(".*/[gmiyuvsdlnx]+$"); int end = hasModifiers.matcher(pattern).find() - ? pattern.lastIndexOf('/') - : pattern.length() - 1; + ? pattern.lastIndexOf('/') + : pattern.length() - 1; int start = pattern.startsWith("/") - ? 1 - : 0; + ? 1 + : 0; Map optionsMap = new HashMap(); optionsMap.put('i', "IgnoreCase"); @@ -1956,7 +1961,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen { for (char c : pattern.substring(end).toCharArray()) { if (optionsMap.containsKey(c)) { modifiers.add(optionsMap.get(c)); - } else if (c == 'l'){ + } else if (c == 'l') { modifiers.remove("CultureInvariant"); } else { vendorExtensions.put("x-modifier-" + c, c); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCppCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCppCodegen.java index 3d7dea3dab8..8950c1d4b76 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCppCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCppCodegen.java @@ -19,15 +19,14 @@ package org.openapitools.codegen.languages; import com.google.common.collect.ImmutableMap; import com.samskivert.mustache.Mustache.Lambda; - import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.servers.Server; -import io.swagger.v3.oas.models.servers.ServerVariables; import io.swagger.v3.oas.models.servers.ServerVariable; -import org.openapitools.codegen.*; +import io.swagger.v3.oas.models.servers.ServerVariables; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang3.StringUtils; +import org.openapitools.codegen.*; import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.ModelsMap; import org.openapitools.codegen.templating.mustache.IndentedLambda; @@ -38,11 +37,7 @@ import org.slf4j.LoggerFactory; import java.io.File; import java.net.URL; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; -import java.util.Map; +import java.util.*; abstract public class AbstractCppCodegen extends DefaultCodegen implements CodegenConfig { private final Logger LOGGER = LoggerFactory.getLogger(AbstractCppCodegen.class); @@ -348,7 +343,7 @@ abstract public class AbstractCppCodegen extends DefaultCodegen implements Codeg } // only process files with cpp extension if ("cpp".equals(FilenameUtils.getExtension(file.toString())) || "h".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {cppPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{cppPostProcessFile, file.toString()}); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractDartCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractDartCodegen.java index 3c3c91b9c7b..79bcdf1f5b0 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractDartCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractDartCodegen.java @@ -806,7 +806,7 @@ public abstract class AbstractDartCodegen extends DefaultCodegen { // process all files with dart extension if ("dart".equals(FilenameUtils.getExtension(file.toString()))) { // currently supported is "dartfmt -w" and "dart format" - this.executePostProcessor(new String[] {dartPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{dartPostProcessFile, file.toString()}); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractEiffelCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractEiffelCodegen.java index 58a1e0bec04..83f3fac174f 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractEiffelCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractEiffelCodegen.java @@ -632,5 +632,7 @@ public abstract class AbstractEiffelCodegen extends DefaultCodegen implements Co } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.EIFFEL; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.EIFFEL; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractFSharpCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractFSharpCodegen.java index a0e688c8fbc..5707dec3281 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractFSharpCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractFSharpCodegen.java @@ -18,7 +18,6 @@ package org.openapitools.codegen.languages; import com.google.common.collect.ImmutableMap; import com.samskivert.mustache.Mustache.Lambda; - import io.swagger.v3.core.util.Json; import io.swagger.v3.oas.models.media.Schema; import lombok.Getter; @@ -30,7 +29,7 @@ import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.ModelsMap; import org.openapitools.codegen.model.OperationMap; import org.openapitools.codegen.model.OperationsMap; -import org.openapitools.codegen.templating.mustache.*; +import org.openapitools.codegen.templating.mustache.CamelCaseAndSanitizeLambda; import org.openapitools.codegen.utils.ModelUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -1050,7 +1049,7 @@ public abstract class AbstractFSharpCodegen extends DefaultCodegen implements Co // only process files with .fs extension if ("fs".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {fsharpPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{fsharpPostProcessFile, file.toString()}); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java index 39616a88d02..fc2a254585b 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java @@ -1005,7 +1005,7 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege if ("go".equals(FilenameUtils.getExtension(file.toString()))) { // e.g. "gofmt -w yourcode.go" // e.g. "go fmt path/to/your/package" - this.executePostProcessor(new String[] {goPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{goPostProcessFile, file.toString()}); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java index 7a6e0f73f2d..66175b1b954 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java @@ -26,7 +26,10 @@ import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.Operation; import io.swagger.v3.oas.models.PathItem; import io.swagger.v3.oas.models.examples.Example; -import io.swagger.v3.oas.models.media.*; +import io.swagger.v3.oas.models.media.Content; +import io.swagger.v3.oas.models.media.MediaType; +import io.swagger.v3.oas.models.media.Schema; +import io.swagger.v3.oas.models.media.StringSchema; import io.swagger.v3.oas.models.parameters.Parameter; import io.swagger.v3.oas.models.parameters.RequestBody; import io.swagger.v3.oas.models.servers.Server; @@ -144,7 +147,8 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code @Getter @Setter protected String testFolder = projectTestFolder + "/java"; - protected static enum ENUM_PROPERTY_NAMING_TYPE {MACRO_CASE, legacy}; + protected enum ENUM_PROPERTY_NAMING_TYPE {MACRO_CASE, legacy} + protected static final String ENUM_PROPERTY_NAMING_DESC = "Naming convention for enum properties: 'MACRO_CASE' and 'legacy'"; @Getter protected ENUM_PROPERTY_NAMING_TYPE enumPropertyNaming = ENUM_PROPERTY_NAMING_TYPE.MACRO_CASE; @@ -428,10 +432,10 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code convertPropertyToStringAndWriteBack(BOOLEAN_GETTER_PREFIX, this::setBooleanGetterPrefix); convertPropertyToBooleanAndWriteBack(IGNORE_ANYOF_IN_ENUM, this::setIgnoreAnyOfInEnum); convertPropertyToTypeAndWriteBack(ADDITIONAL_MODEL_TYPE_ANNOTATIONS, - annotations-> Arrays.asList(annotations.trim().split("\\s*(;|\\r?\\n)\\s*")), + annotations -> Arrays.asList(annotations.trim().split("\\s*(;|\\r?\\n)\\s*")), this::setAdditionalModelTypeAnnotations); convertPropertyToTypeAndWriteBack(ADDITIONAL_ONE_OF_TYPE_ANNOTATIONS, - annotations-> Arrays.asList(annotations.trim().split("\\s*(;|\\r?\\n)\\s*")), + annotations -> Arrays.asList(annotations.trim().split("\\s*(;|\\r?\\n)\\s*")), this::setAdditionalOneOfTypeAnnotations); convertPropertyToTypeAndWriteBack(ADDITIONAL_ENUM_TYPE_ANNOTATIONS, annotations -> Arrays.asList(annotations.split(";")), @@ -549,7 +553,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code convertPropertyToStringAndWriteBack(CodegenConstants.SOURCE_FOLDER, this::setSourceFolder); convertPropertyToBooleanAndWriteBack(CodegenConstants.SERIALIZABLE_MODEL, this::setSerializableModel); convertPropertyToStringAndWriteBack(CodegenConstants.LIBRARY, this::setLibrary); - convertPropertyToBooleanAndWriteBack(CodegenConstants.SERIALIZE_BIG_DECIMAL_AS_STRING, this::setSerializeBigDecimalAsString ); + convertPropertyToBooleanAndWriteBack(CodegenConstants.SERIALIZE_BIG_DECIMAL_AS_STRING, this::setSerializeBigDecimalAsString); // need to put back serializableModel (boolean) into additionalProperties as value in additionalProperties is string // additionalProperties.put(CodegenConstants.SERIALIZABLE_MODEL, serializableModel); @@ -655,7 +659,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code additionalProperties.put("sanitizeGeneric", (Mustache.Lambda) (fragment, writer) -> { String content = removeAnnotations(fragment.execute()); - for (final String s: List.of("<", ">", ",", " ")) { + for (final String s : List.of("<", ">", ",", " ")) { content = content.replace(s, ""); } writer.write(content); @@ -667,6 +671,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code /** * Analyse and post process all Models. + * * @param objs the models map. * @return the processed models map. **/ @@ -715,7 +720,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code propertyHash.put(property.name, property); } List parentModelList = getParentModelList(codegenModel); - for (CodegenModel parentCodegenModel: parentModelList) { + for (CodegenModel parentCodegenModel : parentModelList) { for (final CodegenProperty property : parentCodegenModel.vars) { // helper list of parentVars simplifies templating if (!propertyHash.containsKey(property.name)) { @@ -739,10 +744,10 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code codegenModel.parentRequiredVars = new ArrayList<>(codegenModel.getParentModel().requiredVars); } // There must be a better way ... - for (String imp: inheritedImports) { + for (String imp : inheritedImports) { String qimp = importMapping().get(imp); if (qimp != null) { - Map toAdd = new HashMap<>(); + Map toAdd = new HashMap<>(); toAdd.put("import", qimp); modelsAttrs.getImports().add(toAdd); } @@ -1052,7 +1057,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code int idxLt = typeDeclaration.indexOf('<'); int idx = idxLt < 0 ? - typeDeclaration.lastIndexOf('.'): + typeDeclaration.lastIndexOf('.') : // last dot before the generic like in List typeDeclaration.substring(0, idxLt).lastIndexOf('.'); if (idx > 0) { @@ -1410,16 +1415,16 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code private String getDefaultCollectionType(Schema schema, String defaultValues) { String arrayFormat = "new %s<>(Arrays.asList(%s))"; - if(defaultValues == null || defaultValues.isEmpty()){ + if (defaultValues == null || defaultValues.isEmpty()) { defaultValues = ""; arrayFormat = "new %s<>()"; } if (ModelUtils.isSet(schema)) { return String.format(Locale.ROOT, arrayFormat, - instantiationTypes().getOrDefault("set", "LinkedHashSet"),defaultValues); + instantiationTypes().getOrDefault("set", "LinkedHashSet"), defaultValues); } - return String.format(Locale.ROOT, arrayFormat, instantiationTypes().getOrDefault("array", "ArrayList"),defaultValues); + return String.format(Locale.ROOT, arrayFormat, instantiationTypes().getOrDefault("array", "ArrayList"), defaultValues); } @Override @@ -1642,7 +1647,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code public String toExampleValue(Schema p) { if (p.getExample() != null) { if (p.getExample() instanceof Date) { - Date date = (Date)p.getExample(); + Date date = (Date) p.getExample(); return DateTimeFormatter.ISO_LOCAL_DATE.format(ZonedDateTime.ofInstant(date.toInstant(), UTC)); } return escapeText(p.getExample().toString()); @@ -1725,7 +1730,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code } private void addAdditionalImports(CodegenModel model, CodegenComposedSchemas composedSchemas) { - if(composedSchemas == null) { + if (composedSchemas == null) { return; } @@ -1733,9 +1738,8 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code composedSchemas.getAnyOf(), composedSchemas.getOneOf(), composedSchemas.getAllOf()); - for(final List propertyList : propertyLists){ - if(propertyList == null) - { + for (final List propertyList : propertyLists) { + if (propertyList == null) { continue; } for (CodegenProperty cp : propertyList) { @@ -1820,7 +1824,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code /** * Remove annotations from the given data type string. - * + *

* For example: *

    *
  • {@code @Min(0) @Max(10)Integer} -> {@code Integer}
  • @@ -1873,7 +1877,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code Pattern pattern = Pattern.compile(regexp); for (String annotation : additionalModelTypeAnnotations) { Matcher matcher = pattern.matcher(annotation); - if (matcher.find()) { + if (matcher.find()) { String className = matcher.group("ClassName"); lombokOptions.put(className, true); } @@ -1996,9 +2000,9 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code private static String[] getAccepts(OpenAPI openAPIArg, Operation operation) { final Set producesInfo = getProducesInfo(openAPIArg, operation); if (producesInfo != null && !producesInfo.isEmpty()) { - return producesInfo.toArray(new String[] {}); + return producesInfo.toArray(new String[]{}); } - return new String[] { "application/json" }; // default media type + return new String[]{"application/json"}; // default media type } @Override @@ -2285,7 +2289,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code // only process files with java extension if ("java".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {javaPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{javaPostProcessFile, file.toString()}); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaJAXRSServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaJAXRSServerCodegen.java index 6afd7553ae9..287b0ab8d5b 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaJAXRSServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaJAXRSServerCodegen.java @@ -49,7 +49,8 @@ public abstract class AbstractJavaJAXRSServerCodegen extends AbstractJavaCodegen protected static final String X_MICROPROFILE_OPEN_API_RETURN_UNIQUE_ITEMS = "x-microprofile-open-api-return-unique-items"; protected static final String X_MICROPROFILE_OPEN_API_SCHEMA_TYPE = "x-microprofile-open-api-schema-type"; protected static final String SCHEMA_TYPE_ARRAY = "org.eclipse.microprofile.openapi.annotations.enums.SchemaType.ARRAY"; - protected static final Map ARRAY_OF_MICROPROFILE_OPEN_API_SCHEMA_TYPES; + protected static final Map ARRAY_OF_MICROPROFILE_OPEN_API_SCHEMA_TYPES; + static { final Map schemaTypes = new HashMap<>(); schemaTypes.put("integer", "org.eclipse.microprofile.openapi.annotations.enums.SchemaType.INTEGER"); @@ -96,7 +97,7 @@ public abstract class AbstractJavaJAXRSServerCodegen extends AbstractJavaCodegen cliOptions.add(new CliOption(CodegenConstants.IMPL_FOLDER, CodegenConstants.IMPL_FOLDER_DESC).defaultValue(implFolder)); cliOptions.add(new CliOption("title", "a title describing the application").defaultValue(title)); - cliOptions.add(CliOption.newBoolean(USE_BEANVALIDATION, "Use BeanValidation API annotations",useBeanValidation)); + cliOptions.add(CliOption.newBoolean(USE_BEANVALIDATION, "Use BeanValidation API annotations", useBeanValidation)); cliOptions.add(new CliOption(SERVER_PORT, "The port on which the server should be started").defaultValue(serverPort)); cliOptions.add(CliOption.newBoolean(USE_TAGS, "use tags for creating interface and controller classnames")); } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJuliaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJuliaCodegen.java index faed1d91c8e..a4eab1f20e5 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJuliaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJuliaCodegen.java @@ -16,16 +16,24 @@ package org.openapitools.codegen.languages; +import com.google.common.base.CaseFormat; +import com.google.common.collect.ImmutableMap; +import com.samskivert.mustache.Mustache.Lambda; +import io.swagger.v3.oas.models.Operation; +import io.swagger.v3.oas.models.media.Schema; +import io.swagger.v3.oas.models.parameters.Parameter; +import io.swagger.v3.oas.models.servers.Server; import lombok.Setter; +import org.apache.commons.lang3.StringUtils; +import org.joda.time.DateTime; import org.openapitools.codegen.*; -import org.openapitools.codegen.meta.features.ClientModificationFeature; -import org.openapitools.codegen.meta.features.DocumentationFeature; -import org.openapitools.codegen.meta.features.GlobalFeature; -import org.openapitools.codegen.meta.features.ParameterFeature; -import org.openapitools.codegen.meta.features.SchemaSupportFeature; -import org.openapitools.codegen.meta.features.SecurityFeature; -import org.openapitools.codegen.meta.features.WireFormatFeature; +import org.openapitools.codegen.meta.features.*; import org.openapitools.codegen.model.ModelsMap; +import org.openapitools.codegen.templating.mustache.EscapeChar; +import org.openapitools.codegen.utils.CamelizeOption; +import org.openapitools.codegen.utils.ModelUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.File; import java.text.SimpleDateFormat; @@ -33,27 +41,8 @@ import java.time.OffsetDateTime; import java.time.format.DateTimeFormatter; import java.util.*; -import io.swagger.v3.oas.models.media.Schema; -import io.swagger.v3.oas.models.parameters.Parameter; -import io.swagger.v3.oas.models.Operation; -import io.swagger.v3.oas.models.servers.Server; - -import org.apache.commons.lang3.StringUtils; -import org.joda.time.DateTime; - import static org.openapitools.codegen.utils.StringUtils.camelize; -import org.openapitools.codegen.utils.CamelizeOption; -import org.openapitools.codegen.utils.ModelUtils; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.common.base.CaseFormat; -import com.google.common.collect.ImmutableMap; -import com.samskivert.mustache.Mustache.Lambda; -import org.openapitools.codegen.templating.mustache.EscapeChar; - public abstract class AbstractJuliaCodegen extends DefaultCodegen { protected final Logger LOGGER = LoggerFactory.getLogger(AbstractJuliaCodegen.class); @@ -72,22 +61,22 @@ public abstract class AbstractJuliaCodegen extends DefaultCodegen { protected final SimpleDateFormat DATE_TIME_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX", Locale.ROOT); protected final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd", Locale.ROOT); protected final List UNQUOTED_DATATYPES = Arrays.asList( - "int", - "integer", - "long", - "short", - "byte", - "float", - "double", - "number", - "decimal", - "boolean", - "Int64", - "Int32", - "UInt8", - "Float32", - "Float64", - "Bool" + "int", + "integer", + "long", + "short", + "byte", + "float", + "double", + "number", + "decimal", + "boolean", + "Int64", + "Int32", + "UInt8", + "Float32", + "Float64", + "Bool" ); @@ -419,9 +408,9 @@ public abstract class AbstractJuliaCodegen extends DefaultCodegen { Object _default_obj = schema.getDefault(); String _default; if (_default_obj instanceof DateTime) { - _default = DATE_TIME_FORMAT.format((DateTime)_default_obj); + _default = DATE_TIME_FORMAT.format((DateTime) _default_obj); } else if (_default_obj instanceof OffsetDateTime) { - _default = OFFSET_DATE_TIME_FORMAT.format((OffsetDateTime)_default_obj); + _default = OFFSET_DATE_TIME_FORMAT.format((OffsetDateTime) _default_obj); } else { _default = _default_obj.toString(); } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java index 456b972244a..35795188b6f 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java @@ -363,7 +363,7 @@ public abstract class AbstractKotlinCodegen extends DefaultCodegen implements Co Schema schema = unaliasSchema(p); Schema target = ModelUtils.isGenerateAliasAsModel() ? p : schema; if (ModelUtils.isArraySchema(target)) { - Schema items = ModelUtils.getSchemaItems( schema); + Schema items = ModelUtils.getSchemaItems(schema); return getSchemaType(target) + "<" + getItemsTypeDeclaration(items) + ">"; } else if (ModelUtils.isMapSchema(target)) { // Note: ModelUtils.isMapSchema(p) returns true when p is a composed schema that also defines @@ -977,7 +977,7 @@ public abstract class AbstractKotlinCodegen extends DefaultCodegen implements Co // only process files with kt extension if ("kt".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {kotlinPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{kotlinPostProcessFile, file.toString()}); } } @@ -1012,18 +1012,15 @@ public abstract class AbstractKotlinCodegen extends DefaultCodegen implements Co if (schema.getDefault() != null) { return fixNumberValue(schema.getDefault().toString(), schema); } - } - else if (ModelUtils.isIntegerSchema(schema)) { + } else if (ModelUtils.isIntegerSchema(schema)) { if (schema.getDefault() != null) { return fixNumberValue(schema.getDefault().toString(), schema); } - } - else if (ModelUtils.isURISchema(schema)) { + } else if (ModelUtils.isURISchema(schema)) { if (schema.getDefault() != null) { return importMapping.get("URI") + ".create(\"" + schema.getDefault() + "\")"; } - } - else if (ModelUtils.isArraySchema(schema)) { + } else if (ModelUtils.isArraySchema(schema)) { return toArrayDefaultValue(cp, schema); } else if (ModelUtils.isStringSchema(schema)) { if (schema.getDefault() != null) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPhpCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPhpCodegen.java index a6f50548fc9..35a411d708a 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPhpCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPhpCodegen.java @@ -34,8 +34,8 @@ import org.slf4j.LoggerFactory; import java.io.File; import java.util.*; -import java.util.regex.Pattern; import java.util.regex.Matcher; +import java.util.regex.Pattern; import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER; import static org.openapitools.codegen.utils.CamelizeOption.UPPERCASE_FIRST_CHAR; @@ -509,7 +509,7 @@ public abstract class AbstractPhpCodegen extends DefaultCodegen implements Codeg if (modelNameMapping.containsKey(name)) { return modelNameMapping.get(name); } - + // memoization String origName = name; if (schemaKeyToModelNameCache.containsKey(origName)) { @@ -650,7 +650,7 @@ public abstract class AbstractPhpCodegen extends DefaultCodegen implements Codeg if ("String".equalsIgnoreCase(type) || p.isString) { if (example == null) { - example = "'" + escapeTextInSingleQuotes(p.paramName) + "_example'"; + example = "'" + escapeTextInSingleQuotes(p.paramName) + "_example'"; } else { example = escapeText(example); } @@ -887,7 +887,7 @@ public abstract class AbstractPhpCodegen extends DefaultCodegen implements Codeg } // only process files with php extension if ("php".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {phpPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{phpPostProcessFile, file.toString()}); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonCodegen.java index 9fa261694f6..3cb5727c37c 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonCodegen.java @@ -16,44 +16,14 @@ package org.openapitools.codegen.languages; -import static org.openapitools.codegen.utils.StringUtils.camelize; -import static org.openapitools.codegen.utils.StringUtils.escape; -import static org.openapitools.codegen.utils.StringUtils.underscore; - -import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Random; -import java.util.Set; -import java.util.TreeSet; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.stream.Collectors; - -import javax.annotation.Nullable; - +import com.github.curiousoddman.rgxgen.RgxGen; +import io.swagger.v3.oas.models.examples.Example; +import io.swagger.v3.oas.models.media.Schema; +import io.swagger.v3.oas.models.parameters.Parameter; import lombok.Setter; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang3.StringUtils; -import org.openapitools.codegen.CodegenConfig; -import org.openapitools.codegen.CodegenConstants; -import org.openapitools.codegen.CodegenMediaType; -import org.openapitools.codegen.CodegenModel; -import org.openapitools.codegen.CodegenOperation; -import org.openapitools.codegen.CodegenParameter; -import org.openapitools.codegen.CodegenProperty; -import org.openapitools.codegen.CodegenResponse; -import org.openapitools.codegen.DefaultCodegen; -import org.openapitools.codegen.GeneratorLanguage; -import org.openapitools.codegen.IJsonSchemaValidationProperties; +import org.openapitools.codegen.*; import org.openapitools.codegen.meta.features.SecurityFeature; import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.ModelsMap; @@ -63,14 +33,14 @@ import org.openapitools.codegen.utils.ModelUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.github.curiousoddman.rgxgen.RgxGen; - -import io.swagger.v3.oas.models.examples.Example; -import io.swagger.v3.oas.models.media.Schema; -import io.swagger.v3.oas.models.parameters.Parameter; - - +import javax.annotation.Nullable; +import java.io.File; +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; +import static org.openapitools.codegen.utils.StringUtils.*; public abstract class AbstractPythonCodegen extends DefaultCodegen implements CodegenConfig { @@ -364,7 +334,7 @@ public abstract class AbstractPythonCodegen extends DefaultCodegen implements Co // only process files with py extension if ("py".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {pythonPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{pythonPostProcessFile, file.toString()}); } } @@ -884,12 +854,12 @@ public abstract class AbstractPythonCodegen extends DefaultCodegen implements Co CodegenModel model = m.getModel(); PydanticType pydantic = new PydanticType( - modelImports, - exampleImports, - postponedModelImports, - postponedExampleImports, - moduleImports, - model.classname + modelImports, + exampleImports, + postponedModelImports, + postponedExampleImports, + moduleImports, + model.classname ); // handle null type in oneOf @@ -934,9 +904,9 @@ public abstract class AbstractPythonCodegen extends DefaultCodegen implements Co if (!model.allOf.isEmpty()) { // allOf for (CodegenProperty cp : model.allVars) { if (!cp.isPrimitiveType || cp.isModel) { - if (cp.isArray || cp.isMap){ // if array or map + if (cp.isArray || cp.isMap) { // if array or map modelImports.add(cp.items.dataType); - }else{ // if model + } else { // if model modelImports.add(cp.getDataType()); } } @@ -948,7 +918,7 @@ public abstract class AbstractPythonCodegen extends DefaultCodegen implements Co moduleImports.add("typing", "ClassVar"); moduleImports.add("typing", "Dict"); moduleImports.add("typing", "Any"); - if(this.disallowAdditionalPropertiesIfNotPresent || model.isAdditionalPropertiesTrue) { + if (this.disallowAdditionalPropertiesIfNotPresent || model.isAdditionalPropertiesTrue) { moduleImports.add("typing", "List"); } } @@ -1004,7 +974,7 @@ public abstract class AbstractPythonCodegen extends DefaultCodegen implements Co model.getVendorExtensions().putIfAbsent("x-py-readonly", readOnlyFields); // remove the items of postponedModelImports in modelImports to avoid circular imports error - if (!modelImports.isEmpty() && !postponedModelImports.isEmpty()){ + if (!modelImports.isEmpty() && !postponedModelImports.isEmpty()) { modelImports.removeAll(postponedModelImports); } @@ -1060,19 +1030,19 @@ public abstract class AbstractPythonCodegen extends DefaultCodegen implements Co * */ private PythonType getPydanticType(CodegenProperty cp, - Set modelImports, - Set exampleImports, - Set postponedModelImports, - Set postponedExampleImports, - PythonImports moduleImports, - String classname) { + Set modelImports, + Set exampleImports, + Set postponedModelImports, + Set postponedExampleImports, + PythonImports moduleImports, + String classname) { PydanticType pt = new PydanticType( - modelImports, - exampleImports, - postponedModelImports, - postponedExampleImports, - moduleImports, - classname + modelImports, + exampleImports, + postponedModelImports, + postponedExampleImports, + moduleImports, + classname ); return pt.getType(cp); @@ -1240,12 +1210,12 @@ public abstract class AbstractPythonCodegen extends DefaultCodegen implements Co for (CodegenParameter cp : params) { PydanticType pydantic = new PydanticType( - modelImports, - exampleImports, - postponedModelImports, - postponedExampleImports, - moduleImports, - null + modelImports, + exampleImports, + postponedModelImports, + postponedExampleImports, + moduleImports, + null ); String typing = pydantic.generatePythonType(cp); cp.vendorExtensions.put("x-py-typing", typing); @@ -1255,13 +1225,13 @@ public abstract class AbstractPythonCodegen extends DefaultCodegen implements Co if (!StringUtils.isEmpty(operation.returnType)) { // Not interested in the result, only in the update of the imports getPydanticType( - operation.returnProperty, - modelImports, - exampleImports, - postponedModelImports, - postponedExampleImports, - moduleImports, - null + operation.returnProperty, + modelImports, + exampleImports, + postponedModelImports, + postponedExampleImports, + moduleImports, + null ); } @@ -1624,14 +1594,14 @@ public abstract class AbstractPythonCodegen extends DefaultCodegen implements Co // There can be no constraints nor annotations, in which case we // simply won't build a Field object. List fieldParams = new ArrayList<>(); - for (Map.Entry entry: this.constraints.entrySet()) { + for (Map.Entry entry : this.constraints.entrySet()) { String ans = entry.getKey() + "="; ans += entry.getValue().toString(); fieldParams.add(ans); } if (withAnnotations) { - for (Map.Entry entry: this.annotations.entrySet()) { + for (Map.Entry entry : this.annotations.entrySet()) { String ans = entry.getKey() + "="; ans += entry.getValue().toString(); fieldParams.add(ans); @@ -1673,7 +1643,7 @@ public abstract class AbstractPythonCodegen extends DefaultCodegen implements Co ants.add("default=" + defaultValue); } - for (Map.Entry entry: this.annotations.entrySet()) { + for (Map.Entry entry : this.annotations.entrySet()) { String ans = entry.getKey() + "="; ans += entry.getValue().toString(); ants.add(ans); @@ -1731,8 +1701,8 @@ public abstract class AbstractPythonCodegen extends DefaultCodegen implements Co for (Map.Entry> entry : imports.entrySet()) { String importLine = String.format( - Locale.ROOT, "from %s import %s", - entry.getKey(), StringUtils.join(entry.getValue(), ", ")); + Locale.ROOT, "from %s import %s", + entry.getKey(), StringUtils.join(entry.getValue(), ", ")); results.add(importLine); } @@ -1753,12 +1723,12 @@ public abstract class AbstractPythonCodegen extends DefaultCodegen implements Co private String classname; public PydanticType( - Set modelImports, - Set exampleImports, - Set postponedModelImports, - Set postponedExampleImports, - PythonImports moduleImports, - String classname + Set modelImports, + Set exampleImports, + Set postponedModelImports, + Set postponedExampleImports, + PythonImports moduleImports, + String classname ) { this.modelImports = modelImports; this.exampleImports = exampleImports; @@ -1773,7 +1743,7 @@ public abstract class AbstractPythonCodegen extends DefaultCodegen implements Co if (cp.getMaxItems() != null) { pt.constrain("max_length", cp.getMaxItems()); } - if (cp.getMinItems()!= null) { + if (cp.getMinItems() != null) { pt.constrain("min_length", cp.getMinItems()); } if (cp.getUniqueItems()) { @@ -2218,10 +2188,10 @@ public abstract class AbstractPythonCodegen extends DefaultCodegen implements Co if (result == null) { if (!cp.isPrimitiveType) { // add model prefix - hasModelsToImport = true; - modelImports.add(cp.getDataType()); - exampleImports.add(cp.getDataType()); - result = new PythonType(cp.getDataType()); + hasModelsToImport = true; + modelImports.add(cp.getDataType()); + exampleImports.add(cp.getDataType()); + result = new PythonType(cp.getDataType()); } else if (cp.getContent() != null) { LinkedHashMap contents = cp.getContent(); for (String key : contents.keySet()) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonConnexionServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonConnexionServerCodegen.java index 6062a561bc2..8c2686764c2 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonConnexionServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonConnexionServerCodegen.java @@ -16,30 +16,6 @@ package org.openapitools.codegen.languages; -import java.io.File; -import java.io.IOException; -import java.util.*; - -import org.apache.commons.lang3.StringUtils; -import org.openapitools.codegen.CliOption; -import org.openapitools.codegen.CodegenConfig; -import org.openapitools.codegen.CodegenConstants; -import org.openapitools.codegen.CodegenModel; -import org.openapitools.codegen.CodegenOperation; -import org.openapitools.codegen.CodegenParameter; -import org.openapitools.codegen.CodegenProperty; -import org.openapitools.codegen.CodegenType; -import org.openapitools.codegen.SupportingFile; -import org.openapitools.codegen.meta.features.DocumentationFeature; -import org.openapitools.codegen.model.ApiInfoMap; -import org.openapitools.codegen.model.ModelMap; -import org.openapitools.codegen.model.ModelsMap; -import org.openapitools.codegen.model.OperationMap; -import org.openapitools.codegen.model.OperationsMap; -import org.openapitools.codegen.utils.ModelUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonSerializer; @@ -49,7 +25,6 @@ import com.fasterxml.jackson.databind.module.SimpleModule; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Lists; import com.google.common.collect.Multimap; - import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.Operation; @@ -59,8 +34,19 @@ import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.parameters.Parameter; import io.swagger.v3.oas.models.parameters.RequestBody; import io.swagger.v3.oas.models.security.SecurityScheme; +import org.apache.commons.lang3.StringUtils; +import org.openapitools.codegen.*; +import org.openapitools.codegen.meta.features.DocumentationFeature; +import org.openapitools.codegen.model.*; +import org.openapitools.codegen.utils.ModelUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -import static org.openapitools.codegen.utils.StringUtils.*; +import java.io.File; +import java.io.IOException; +import java.util.*; + +import static org.openapitools.codegen.utils.StringUtils.camelize; public abstract class AbstractPythonConnexionServerCodegen extends AbstractPythonCodegen implements CodegenConfig { private static class PythonBooleanSerializer extends JsonSerializer { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonPydanticV1Codegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonPydanticV1Codegen.java index ec629c1ce6c..52f370673bf 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonPydanticV1Codegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonPydanticV1Codegen.java @@ -308,7 +308,7 @@ public abstract class AbstractPythonPydanticV1Codegen extends DefaultCodegen imp // only process files with py extension if ("py".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {pythonPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{pythonPostProcessFile, file.toString()}); } } @@ -864,9 +864,9 @@ public abstract class AbstractPythonPydanticV1Codegen extends DefaultCodegen imp if (!model.allOf.isEmpty()) { // allOf for (CodegenProperty cp : model.allVars) { if (!cp.isPrimitiveType || cp.isModel) { - if (cp.isArray || cp.isMap){ // if array or map + if (cp.isArray || cp.isMap) { // if array or map modelImports.add(cp.items.dataType); - }else{ // if model + } else { // if model modelImports.add(cp.dataType); } } @@ -984,7 +984,7 @@ public abstract class AbstractPythonPydanticV1Codegen extends DefaultCodegen imp model.getVendorExtensions().putIfAbsent("x-py-readonly", readOnlyFields); // remove the items of postponedModelImports in modelImports to avoid circular imports error - if (!modelImports.isEmpty() && !postponedModelImports.isEmpty()){ + if (!modelImports.isEmpty() && !postponedModelImports.isEmpty()) { modelImports.removeAll(postponedModelImports); } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractRubyCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractRubyCodegen.java index b6377164d63..0c406486822 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractRubyCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractRubyCodegen.java @@ -261,7 +261,7 @@ abstract public class AbstractRubyCodegen extends DefaultCodegen implements Code } // only process files with rb extension if ("rb".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {rubyPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{rubyPostProcessFile, file.toString()}); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractRustCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractRustCodegen.java index 7da93b288de..271fecf0df4 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractRustCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractRustCodegen.java @@ -332,7 +332,7 @@ public abstract class AbstractRustCodegen extends DefaultCodegen implements Code return sanitizeIdentifier(operationId, CasingType.SNAKE_CASE, "call", "method", true); } - //// Model naming //// + /// / Model naming //// protected String addModelNamePrefixAndSuffix(String name) { if (!Strings.isNullOrEmpty(modelNamePrefix)) { @@ -359,7 +359,7 @@ public abstract class AbstractRustCodegen extends DefaultCodegen implements Code return toModelName(name); } - //// Enum naming //// + /// / Enum naming //// @Override public String toEnumVarName(String name, String datatype) { if (enumNameMapping.containsKey(name)) { @@ -399,7 +399,7 @@ public abstract class AbstractRustCodegen extends DefaultCodegen implements Code return toEnumVarName(value, datatype); } - //// API naming //// + /// / API naming //// protected String addApiNamePrefixAndSuffix(String name) { if (Strings.isNullOrEmpty(name)) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java index 2542da51508..d1b2e9730e1 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java @@ -22,7 +22,6 @@ import com.samskivert.mustache.Mustache; import com.samskivert.mustache.Template; import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.media.StringSchema; - import lombok.Getter; import lombok.Setter; import org.apache.commons.io.FilenameUtils; @@ -561,7 +560,7 @@ public abstract class AbstractScalaCodegen extends DefaultCodegen { // only process files with scala extension if ("scala".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {scalaPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{scalaPostProcessFile, file.toString()}); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java index d3ce61c3221..ffb94b71742 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java @@ -1108,7 +1108,7 @@ public abstract class AbstractTypeScriptClientCodegen extends DefaultCodegen imp } // only process files with ts extension if ("ts".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {tsPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{tsPostProcessFile, file.toString()}); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AdaServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AdaServerCodegen.java index 45e182f5cb5..afc3690d21e 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AdaServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AdaServerCodegen.java @@ -135,7 +135,7 @@ public class AdaServerCodegen extends AbstractAdaCodegen implements CodegenConfi String pkgName = names[0]; additionalProperties.put("packageLevel1", pkgName); supportingFiles.add(new SupportingFile("package-spec-level1.mustache", "src", - toFilename(names[0]) + ".ads")); + toFilename(names[0]) + ".ads")); if (names.length > 1) { String fileName = toFilename(names[0]) + "-" + toFilename(names[1]) + ".ads"; pkgName = names[0] + "." + names[1]; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Apache2ConfigCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Apache2ConfigCodegen.java index bdfafa4dd55..31a23ef29f6 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Apache2ConfigCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Apache2ConfigCodegen.java @@ -25,7 +25,9 @@ import org.openapitools.codegen.model.OperationsMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.*; +import java.util.ArrayList; +import java.util.EnumSet; +import java.util.List; public class Apache2ConfigCodegen extends DefaultCodegen implements CodegenConfig { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AsciidocDocumentationCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AsciidocDocumentationCodegen.java index e022e232a1d..42f56a8bcce 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AsciidocDocumentationCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AsciidocDocumentationCodegen.java @@ -16,11 +16,16 @@ package org.openapitools.codegen.languages; +import com.samskivert.mustache.Mustache; +import com.samskivert.mustache.Template; +import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.media.Schema; import lombok.Getter; import lombok.Setter; -import io.swagger.v3.oas.models.media.Schema; import org.openapitools.codegen.*; +import org.openapitools.codegen.meta.features.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.File; import java.io.IOException; @@ -32,15 +37,6 @@ import java.util.EnumSet; import java.util.HashMap; import java.util.HashSet; -import org.openapitools.codegen.meta.features.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.samskivert.mustache.Mustache; -import com.samskivert.mustache.Template; - -import io.swagger.v3.oas.models.OpenAPI; - /** * basic asciidoc markup generator. * @@ -102,7 +98,7 @@ public class AsciidocDocumentationCodegen extends DefaultCodegen implements Code } private String escapeCurlyBrackets(String relativeFileName) { - return relativeFileName.replaceAll("\\{","\\\\{").replaceAll("\\}","\\\\}"); + return relativeFileName.replaceAll("\\{", "\\\\{").replaceAll("\\}", "\\\\}"); } } @@ -299,7 +295,7 @@ public class AsciidocDocumentationCodegen extends DefaultCodegen implements Code LOGGER.warn("base part for include markup lambda not found: {} as {}", specDir, Paths.get(specDir).toAbsolutePath()); } - this.includeSpecMarkupLambda = new IncludeMarkupLambda(SPEC_DIR,specDir); + this.includeSpecMarkupLambda = new IncludeMarkupLambda(SPEC_DIR, specDir); additionalProperties.put("specinclude", this.includeSpecMarkupLambda); String snippetDir = String.valueOf(this.additionalProperties.get(SNIPPET_DIR)); @@ -307,7 +303,7 @@ public class AsciidocDocumentationCodegen extends DefaultCodegen implements Code LOGGER.warn("base part for include markup lambda not found: {} as {}", snippetDir, Paths.get(snippetDir).toAbsolutePath()); } - this.includeSnippetMarkupLambda = new IncludeMarkupLambda(SNIPPET_DIR,snippetDir); + this.includeSnippetMarkupLambda = new IncludeMarkupLambda(SNIPPET_DIR, snippetDir); additionalProperties.put("snippetinclude", this.includeSnippetMarkupLambda); this.linkSnippetMarkupLambda = new LinkMarkupLambda(snippetDir); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AspNetServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AspNetServerCodegen.java index 60e8fb23101..c4754ba5a8f 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AspNetServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AspNetServerCodegen.java @@ -21,7 +21,6 @@ import com.samskivert.mustache.Mustache; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.parser.util.SchemaTypeUtil; -import lombok.Getter; import lombok.Setter; import org.openapitools.codegen.*; import org.openapitools.codegen.meta.features.*; @@ -314,7 +313,7 @@ public class AspNetServerCodegen extends AbstractCSharpCodegen { addCentralizedPackageManagementOption(); } - private void addCentralizedPackageManagementOption(){ + private void addCentralizedPackageManagementOption() { Map centralizedPackageVersionManagementOptions = new HashMap<>(); centralizedPackageVersionManagementOptions.put(DEFAULT, "Property in project won't be used"); centralizedPackageVersionManagementOptions.put(ENABLE, "Centralized package version management will be used"); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AspnetFastendpointsServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AspnetFastendpointsServerCodegen.java index 2e4eb0e19a9..6d094d0e1e0 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AspnetFastendpointsServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AspnetFastendpointsServerCodegen.java @@ -1,13 +1,15 @@ package org.openapitools.codegen.languages; -import org.openapitools.codegen.*; - -import java.io.File; -import java.util.*; - +import org.openapitools.codegen.CodegenConfig; +import org.openapitools.codegen.CodegenOperation; +import org.openapitools.codegen.CodegenType; +import org.openapitools.codegen.SupportingFile; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.File; +import java.util.Locale; + import static java.util.UUID.randomUUID; public class AspnetFastendpointsServerCodegen extends AbstractCSharpCodegen implements CodegenConfig { @@ -103,7 +105,7 @@ public class AspnetFastendpointsServerCodegen extends AbstractCSharpCodegen impl modelPackage = "Models"; String packageFolder = sourceFolder + File.separator + packageName; - if(useAuthentication) { + if (useAuthentication) { supportingFiles.add(new SupportingFile("loginRequest.mustache", packageFolder + File.separator + apiPackage, "LoginRequest.cs")); supportingFiles.add(new SupportingFile("userLoginEndpoint.mustache", packageFolder + File.separator + apiPackage, "UserLoginEndpoint.cs")); } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AvroSchemaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AvroSchemaCodegen.java index 98cd3a82cbf..ea2d8efd954 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AvroSchemaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AvroSchemaCodegen.java @@ -16,32 +16,23 @@ package org.openapitools.codegen.languages; +import lombok.Getter; +import lombok.Setter; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.*; import org.openapitools.codegen.meta.GeneratorMetadata; import org.openapitools.codegen.meta.Stability; - import org.openapitools.codegen.meta.features.*; import org.openapitools.codegen.model.ModelsMap; - -import java.io.File; -import java.util.Arrays; -import java.util.Collections; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import static org.openapitools.codegen.utils.StringUtils.camelize; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import lombok.Getter; -import lombok.Setter; +import java.io.File; +import java.util.*; +import java.util.stream.Collectors; + +import static org.openapitools.codegen.utils.StringUtils.camelize; public class AvroSchemaCodegen extends DefaultCodegen implements CodegenConfig { private final Logger LOGGER = LoggerFactory.getLogger(AvroSchemaCodegen.class); @@ -199,9 +190,9 @@ public class AvroSchemaCodegen extends DefaultCodegen implements CodegenConfig { } // only process files with avsc extension if ("avsc".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {avroPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{avroPostProcessFile, file.toString()}); } - } + } @Override protected void setNonArrayMapProperty(CodegenProperty property, String type) { @@ -226,10 +217,10 @@ public class AvroSchemaCodegen extends DefaultCodegen implements CodegenConfig { @Override protected List> buildEnumVars(List values, String dataType) { List sanitizedValues = values.stream() - .filter(x -> x != null) - .map(Object::toString) - .map(this::sanitizeEnumValue) - .collect(Collectors.toList()); + .filter(x -> x != null) + .map(Object::toString) + .map(this::sanitizeEnumValue) + .collect(Collectors.toList()); removeEnumValueCollisions(sanitizedValues); return super.buildEnumVars(sanitizedValues, dataType); } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/BashClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/BashClientCodegen.java index 5a989fe113a..2fa2b92d03f 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/BashClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/BashClientCodegen.java @@ -26,8 +26,8 @@ import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.parameters.Parameter; import io.swagger.v3.oas.models.servers.Server; import lombok.Setter; -import org.apache.commons.text.StringEscapeUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.text.StringEscapeUtils; import org.openapitools.codegen.*; import org.openapitools.codegen.meta.features.*; import org.openapitools.codegen.utils.ModelUtils; @@ -37,7 +37,8 @@ import org.slf4j.LoggerFactory; import java.util.*; import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER; -import static org.openapitools.codegen.utils.StringUtils.*; +import static org.openapitools.codegen.utils.StringUtils.camelize; +import static org.openapitools.codegen.utils.StringUtils.underscore; public class BashClientCodegen extends DefaultCodegen implements CodegenConfig { private final Logger LOGGER = LoggerFactory.getLogger(BashClientCodegen.class); @@ -499,7 +500,7 @@ public class BashClientCodegen extends DefaultCodegen implements CodegenConfig { */ result = escapeUnsafeCharacters( StringEscapeUtils.unescapeJava( - StringEscapeUtils.escapeJava(result).replace("\\/", "/")) + StringEscapeUtils.escapeJava(result).replace("\\/", "/")) .replace("\\", "\\\\") .replace("\"", "\\\"")); @@ -795,5 +796,7 @@ public class BashClientCodegen extends DefaultCodegen implements CodegenConfig { } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.BASH; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.BASH; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CLibcurlClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CLibcurlClientCodegen.java index fc94eeb6f4a..b201cdfbc33 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CLibcurlClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CLibcurlClientCodegen.java @@ -259,7 +259,7 @@ public class CLibcurlClientCodegen extends DefaultCodegen implements CodegenConf // gcc predefined macros "linux" - ) + ) ); instantiationTypes.clear(); @@ -930,7 +930,7 @@ public class CLibcurlClientCodegen extends DefaultCodegen implements CodegenConf // only process files with .c or .h extension if ("c".equals(FilenameUtils.getExtension(file.toString())) || "h".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {cPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{cPostProcessFile, file.toString()}); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java index fdfafcadf49..e6ceb69c824 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java @@ -18,8 +18,8 @@ package org.openapitools.codegen.languages; import com.google.common.collect.ImmutableMap; import com.samskivert.mustache.Mustache; -import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.Operation; +import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.servers.Server; import lombok.Getter; import lombok.Setter; @@ -128,6 +128,7 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen { ALPHABETICAL, LEGACY } + private SortingMethod operationParameterSorting = SortingMethod.DEFAULT; private SortingMethod modelPropertySorting = SortingMethod.DEFAULT; @@ -504,8 +505,7 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen { Collections.sort(codegenModel.readOnlyVars, propertyComparatorByNotNullableRequiredNoDefaultLegacy); Collections.sort(codegenModel.readWriteVars, propertyComparatorByNotNullableRequiredNoDefaultLegacy); Collections.sort(codegenModel.parentVars, propertyComparatorByNotNullableRequiredNoDefaultLegacy); - } - else { + } else { Collections.sort(codegenModel.vars, propertyComparatorByNotNullableRequiredNoDefault); Collections.sort(codegenModel.allVars, propertyComparatorByNotNullableRequiredNoDefault); Collections.sort(codegenModel.requiredVars, propertyComparatorByNotNullableRequiredNoDefault); @@ -755,24 +755,24 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen { } final Map libraryActions = Map.of( - GENERICHOST, () -> { - setLibrary(GENERICHOST); - additionalProperties.put("useGenericHost", true); - }, - RESTSHARP, () -> { - additionalProperties.put("useRestSharp", true); - needsCustomHttpMethod = true; - }, - HTTPCLIENT, () -> { - setLibrary(HTTPCLIENT); - additionalProperties.put("useHttpClient", true); - needsUriBuilder = true; - }, - UNITY_WEB_REQUEST, () -> { - setLibrary(UNITY_WEB_REQUEST); - additionalProperties.put("useUnityWebRequest", true); - needsUriBuilder = true; - } + GENERICHOST, () -> { + setLibrary(GENERICHOST); + additionalProperties.put("useGenericHost", true); + }, + RESTSHARP, () -> { + additionalProperties.put("useRestSharp", true); + needsCustomHttpMethod = true; + }, + HTTPCLIENT, () -> { + setLibrary(HTTPCLIENT); + additionalProperties.put("useHttpClient", true); + needsUriBuilder = true; + }, + UNITY_WEB_REQUEST, () -> { + setLibrary(UNITY_WEB_REQUEST); + additionalProperties.put("useUnityWebRequest", true); + needsUriBuilder = true; + } ); final Runnable action = libraryActions.get(library); if (action != null) { @@ -1014,7 +1014,7 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen { public void addSupportingFiles(final String clientPackageDir, final String packageFolder, final AtomicReference excludeTests, final String testPackageFolder, final String testPackageName, final String modelPackageDir, final String authPackageDir) { final String library = getLibrary(); - + if (RESTSHARP.equals(library)) { // restsharp if (useIntForTimeout) { // option to fall back to int for Timeout using v7.9.0 template supportingFiles.add(new SupportingFile("ApiClient.v790.mustache", clientPackageDir, "ApiClient.cs")); @@ -1183,7 +1183,7 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen { public void setOptionalProjectFileFlag(boolean flag) { this.optionalProjectFileFlag = flag; } - + /** * Sets the api name. This value must be a valid class name. * diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpFunctionsServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpFunctionsServerCodegen.java index 61f4ef6bae8..e4ece812f62 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpFunctionsServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpFunctionsServerCodegen.java @@ -260,7 +260,7 @@ public class CSharpFunctionsServerCodegen extends AbstractCSharpCodegen { @Override protected Set getNullableTypes() { return new HashSet<>(Arrays.asList("decimal", "bool", "int", "uint", "long", "ulong", "float", "double", - "DateTime", "DateTimeOffset", "Guid")); + "DateTime", "DateTimeOffset", "Guid")); } @Override @@ -603,7 +603,7 @@ public class CSharpFunctionsServerCodegen extends AbstractCSharpCodegen { } private void setAdditionalPropertyForFramework() { - if (((String)additionalProperties.get(TARGET_FRAMEWORK)).startsWith("net6.0")) { + if (((String) additionalProperties.get(TARGET_FRAMEWORK)).startsWith("net6.0")) { additionalProperties.put(NET_60_OR_LATER, true); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpReducedClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpReducedClientCodegen.java index f0706780a2e..3cb9ffa6f4d 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpReducedClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpReducedClientCodegen.java @@ -306,7 +306,7 @@ public class CSharpReducedClientCodegen extends AbstractCSharpCodegen { @Override protected Set getNullableTypes() { return new HashSet<>(Arrays.asList("decimal", "bool", "int", "uint", "long", "ulong", "float", "double", - "DateTime", "DateTimeOffset", "Guid")); + "DateTime", "DateTimeOffset", "Guid")); } @Override @@ -635,7 +635,8 @@ public class CSharpReducedClientCodegen extends AbstractCSharpCodegen { final AtomicReference excludeTests = new AtomicReference<>(); syncBooleanProperty(additionalProperties, CodegenConstants.EXCLUDE_TESTS, excludeTests::set, false); - syncStringProperty(additionalProperties, "clientPackage", (s) -> {}, clientPackage); + syncStringProperty(additionalProperties, "clientPackage", (s) -> { + }, clientPackage); syncStringProperty(additionalProperties, CodegenConstants.API_PACKAGE, this::setApiPackage, apiPackage); syncStringProperty(additionalProperties, CodegenConstants.MODEL_PACKAGE, this::setModelPackage, modelPackage); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ClojureClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ClojureClientCodegen.java index 93aeaf744d6..08c866a64ef 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ClojureClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ClojureClientCodegen.java @@ -24,7 +24,10 @@ import io.swagger.v3.oas.models.info.License; import io.swagger.v3.oas.models.media.Schema; import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.*; -import org.openapitools.codegen.meta.features.*; +import org.openapitools.codegen.meta.features.DocumentationFeature; +import org.openapitools.codegen.meta.features.ParameterFeature; +import org.openapitools.codegen.meta.features.SchemaSupportFeature; +import org.openapitools.codegen.meta.features.SecurityFeature; import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.OperationMap; import org.openapitools.codegen.model.OperationsMap; @@ -400,5 +403,7 @@ public class ClojureClientCodegen extends DefaultCodegen implements CodegenConfi } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.CLOJURE; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.CLOJURE; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ConfluenceWikiCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ConfluenceWikiCodegen.java index 52f7eff818f..db57df22e38 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ConfluenceWikiCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ConfluenceWikiCodegen.java @@ -18,6 +18,7 @@ package org.openapitools.codegen.languages; import io.swagger.v3.oas.models.media.Schema; +import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.*; import org.openapitools.codegen.meta.features.*; import org.openapitools.codegen.model.ModelMap; @@ -25,7 +26,6 @@ import org.openapitools.codegen.model.ModelsMap; import org.openapitools.codegen.model.OperationMap; import org.openapitools.codegen.model.OperationsMap; import org.openapitools.codegen.utils.ModelUtils; -import org.apache.commons.lang3.StringUtils; import java.util.*; @@ -158,5 +158,7 @@ public class ConfluenceWikiCodegen extends DefaultCodegen implements CodegenConf } @Override - public GeneratorLanguage generatorLanguage() { return null; } + public GeneratorLanguage generatorLanguage() { + return null; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppPistacheServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppPistacheServerCodegen.java index fe14ee6a86c..5e27db531d5 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppPistacheServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppPistacheServerCodegen.java @@ -52,28 +52,44 @@ public class CppPistacheServerCodegen extends AbstractCppCodegen { protected final String PREFIX = ""; protected String helpersPackage = ""; - /** OpenApi types that shouldn't have a namespace added with getTypeDeclaration() at generation time (for nlohmann::json) */ + /** + * OpenApi types that shouldn't have a namespace added with getTypeDeclaration() at generation time (for nlohmann::json) + */ private final Set openAPITypesWithoutModelNamespace = new HashSet<>(); - /** int32_t (for integer) */ + /** + * int32_t (for integer) + */ private static final String INT32_T = "int32_t"; - /** int64_t (for long) */ + /** + * int64_t (for long) + */ private static final String INT64_T = "int64_t"; - /** nlohmann::json (for object, AnyType) */ + /** + * nlohmann::json (for object, AnyType) + */ private static final String NLOHMANN_JSON = "nlohmann::json"; - /** std:string (for date, DateTime, string, file, binary, UUID, URI, ByteArray) */ + /** + * std:string (for date, DateTime, string, file, binary, UUID, URI, ByteArray) + */ private static final String STD_STRING = "std::string"; - /** std:map (for map) */ + /** + * std:map (for map) + */ private static final String STD_MAP = "std::map"; - /** std:set (for set) */ + /** + * std:set (for set) + */ private static final String STD_SET = "std::set"; - /** std:vector (for array) */ + /** + * std:vector (for array) + */ private static final String STD_VECTOR = "std::vector"; @Override @@ -235,7 +251,7 @@ public class CppPistacheServerCodegen extends AbstractCppCodegen { public String toModelImport(String name) { // Do not reattempt to add #include on an already solved #include if (name.startsWith("#include")) { - return null; + return null; } if (importMapping.containsKey(name)) { @@ -262,13 +278,13 @@ public class CppPistacheServerCodegen extends AbstractCppCodegen { } } - if(!codegenModel.isEnum - && codegenModel.anyOf.size()>1 + if (!codegenModel.isEnum + && codegenModel.anyOf.size() > 1 && codegenModel.anyOf.contains(STD_STRING) && !codegenModel.anyOf.contains("AnyType") - && codegenModel.interfaces.size()==1 - ){ - codegenModel.vendorExtensions.put("x-is-string-enum-container",true); + && codegenModel.interfaces.size() == 1 + ) { + codegenModel.vendorExtensions.put("x-is-string-enum-container", true); } return codegenModel; } @@ -328,8 +344,8 @@ public class CppPistacheServerCodegen extends AbstractCppCodegen { boolean consumeJson = false; if (op.consumes != null) { - Predicate> isMediaTypeJson = consume -> (consume.get("mediaType") != null && consume.get("mediaType").equals("application/json")); - consumeJson = op.consumes.stream().anyMatch(isMediaTypeJson); + Predicate> isMediaTypeJson = consume -> (consume.get("mediaType") != null && consume.get("mediaType").equals("application/json")); + consumeJson = op.consumes.stream().anyMatch(isMediaTypeJson); } op.vendorExtensions.put("x-codegen-pistache-consumes-json", consumeJson); @@ -337,7 +353,7 @@ public class CppPistacheServerCodegen extends AbstractCppCodegen { boolean isParsingSupported = true; for (CodegenParameter param : op.allParams) { - boolean paramSupportsParsing = (!param.isFormParam && !param.isFile && !param.isCookieParam); + boolean paramSupportsParsing = (!param.isFormParam && !param.isFile && !param.isCookieParam); isParsingSupported = isParsingSupported && paramSupportsParsing; postProcessSingleParam(param); @@ -354,6 +370,7 @@ public class CppPistacheServerCodegen extends AbstractCppCodegen { /** * postProcessSingleParam - Modifies a single parameter, adjusting generated * data types for Header and Query parameters. + * * @param param CodegenParameter to be modified. */ private void postProcessSingleParam(CodegenParameter param) { @@ -395,7 +412,7 @@ public class CppPistacheServerCodegen extends AbstractCppCodegen { * suffix and replace "api" with "impl" directory prefix. * * @param filename Filename of the api-file to be modified - * @param suffix Suffix of the file (usually ".cpp" or ".h") + * @param suffix Suffix of the file (usually ".cpp" or ".h") * @return a filename string of impl file. */ private String implFilenameFromApiFilename(String filename, String suffix) { @@ -443,6 +460,7 @@ public class CppPistacheServerCodegen extends AbstractCppCodegen { /** * Prefix an open API type with a namespace or not, depending of its current type and if it is on a list to avoid it. + * * @param openAPIType Open API Type. * @return type prefixed with the namespace or not. */ @@ -450,8 +468,7 @@ public class CppPistacheServerCodegen extends AbstractCppCodegen { // Some types might not support namespace if (this.openAPITypesWithoutModelNamespace.contains(openAPIType) || openAPIType.startsWith("std::")) { return openAPIType; - } - else { + } else { String namespace = (String) additionalProperties.get("modelNamespace"); return namespace + "::" + openAPIType; } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQtClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQtClientCodegen.java index e03d8cfb0fd..b3f7c046321 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQtClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQtClientCodegen.java @@ -31,15 +31,15 @@ import org.openapitools.codegen.model.OperationsMap; import java.io.File; import java.util.List; -import static org.openapitools.codegen.utils.StringUtils.*; +import static org.openapitools.codegen.utils.StringUtils.camelize; public class CppQtClientCodegen extends CppQtAbstractCodegen implements CodegenConfig { public static final String OPTIONAL_PROJECT_FILE_DESC = "Generate client.pri."; public static final String DEFAULT_PACKAGE_NAME = "QtOpenAPIClient"; public static final String MAKE_OPERATIONS_VIRTUAL_NAME = "makeOperationsVirtual"; - public static final String MAKE_OPERATIONS_VIRTUAL_DESC = - "Make all operations methods virtual. " + - "This makes it easy to mock the generated API class for testing purposes."; + public static final String MAKE_OPERATIONS_VIRTUAL_DESC = + "Make all operations methods virtual. " + + "This makes it easy to mock the generated API class for testing purposes."; protected String packageName = ""; // source folder where to write the files protected String sourceFolder = "client"; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestbedServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestbedServerCodegen.java index 8b5d2fa3d12..bf2054e472c 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestbedServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestbedServerCodegen.java @@ -332,7 +332,7 @@ public class CppRestbedServerCodegen extends AbstractCppCodegen { resourceNameCamelCase += convertPathSegmentToResourceNamePart(pathSegment); String convertedPathSegment = convertPathParamPattern(pathSegment); joiner.add(convertedPathSegment); - } + } op.path = joiner.toString(); op.vendorExtensions.put("x-codegen-resource-name", resourceNameCamelCase); @@ -345,11 +345,10 @@ public class CppRestbedServerCodegen extends AbstractCppCodegen { if (op1 != null) { List currentOtherMethodList = getCodegenXCodegenOtherMethodsOperations(op1); - op.operationIdCamelCase = op1.operationIdCamelCase; - currentOtherMethodList.add(op); - op1.vendorExtensions.put(X_CODEGEN_OTHER_METHODS, currentOtherMethodList); - } - else { + op.operationIdCamelCase = op1.operationIdCamelCase; + currentOtherMethodList.add(op); + op1.vendorExtensions.put(X_CODEGEN_OTHER_METHODS, currentOtherMethodList); + } else { newOpList.add(op); } } @@ -491,7 +490,7 @@ public class CppRestbedServerCodegen extends AbstractCppCodegen { boolean isString = parameter.isString == Boolean.TRUE; if (!isPrimitiveType && !isArray && !isString && !parameter.dataType.startsWith("std::shared_ptr")) { - parameter.defaultValue = parameter.dataType + "{}"; + parameter.defaultValue = parameter.dataType + "{}"; } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppTinyClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppTinyClientCodegen.java index 920455665a9..3c7b176654a 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppTinyClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppTinyClientCodegen.java @@ -16,25 +16,25 @@ package org.openapitools.codegen.languages; -import org.openapitools.codegen.*; import io.swagger.v3.oas.models.media.Schema; - import io.swagger.v3.parser.util.SchemaTypeUtil; -import org.openapitools.codegen.meta.features.*; +import org.apache.commons.lang3.StringUtils; +import org.openapitools.codegen.CliOption; +import org.openapitools.codegen.CodegenConfig; +import org.openapitools.codegen.CodegenType; +import org.openapitools.codegen.SupportingFile; import org.openapitools.codegen.meta.GeneratorMetadata; import org.openapitools.codegen.meta.Stability; +import org.openapitools.codegen.meta.features.*; import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.OperationsMap; import org.openapitools.codegen.utils.ModelUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.File; import java.util.*; -import org.apache.commons.lang3.StringUtils; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - public class CppTinyClientCodegen extends AbstractCppCodegen implements CodegenConfig { public static final String PROJECT_NAME = "TinyClient"; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppTizenClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppTizenClientCodegen.java index 5c6381a0884..9341df65be7 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppTizenClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppTizenClientCodegen.java @@ -289,7 +289,7 @@ public class CppTizenClientCodegen extends AbstractCppCodegen implements Codegen @Override public String toVarName(String name) { String paramName = name.replaceAll("[^a-zA-Z0-9_]", ""); - if (name.length() > 0 ) { + if (name.length() > 0) { // additionalProperties name is "" so name.length() == 0 paramName = Character.toLowerCase(paramName.charAt(0)) + paramName.substring(1); } @@ -314,6 +314,7 @@ public class CppTizenClientCodegen extends AbstractCppCodegen implements Codegen // add_pet_by_id => addPetById return camelize(operationId, LOWERCASE_FIRST_LETTER); } + /** * Output the Getter name for boolean property, e.g. getActive * diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppUE4ClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppUE4ClientCodegen.java index c316f1c7a31..13ab898fa39 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppUE4ClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppUE4ClientCodegen.java @@ -18,13 +18,7 @@ package org.openapitools.codegen.languages; import io.swagger.v3.oas.models.media.Schema; import lombok.Setter; -import org.openapitools.codegen.CodegenConstants; -import org.openapitools.codegen.CodegenType; -import org.openapitools.codegen.CodegenModel; -import org.openapitools.codegen.CodegenParameter; -import org.openapitools.codegen.CodegenProperty; -import org.openapitools.codegen.CodegenResponse; -import org.openapitools.codegen.SupportingFile; +import org.openapitools.codegen.*; import org.openapitools.codegen.meta.GeneratorMetadata; import org.openapitools.codegen.meta.Stability; import org.openapitools.codegen.utils.ModelUtils; @@ -530,7 +524,7 @@ public class CppUE4ClientCodegen extends AbstractCppCodegen { String camelCaseName = camelize(name); //Avoid empty variable name at all costs - if(!camelCaseName.isEmpty()) { + if (!camelCaseName.isEmpty()) { name = camelCaseName; } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CrystalClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CrystalClientCodegen.java index 422866c16b2..63ee468003b 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CrystalClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CrystalClientCodegen.java @@ -592,7 +592,7 @@ public class CrystalClientCodegen extends DefaultCodegen { } private String constructExampleCode(CodegenParameter codegenParameter, HashMap modelMaps, - HashMap processedModelMap) { + HashMap processedModelMap) { if (codegenParameter.isArray) { // array if (codegenParameter.items == null) { return "[]"; @@ -660,7 +660,7 @@ public class CrystalClientCodegen extends DefaultCodegen { } private String constructExampleCode(CodegenProperty codegenProperty, HashMap modelMaps, - HashMap processedModelMap) { + HashMap processedModelMap) { if (codegenProperty.isArray) { // array return "[" + constructExampleCode(codegenProperty.items, modelMaps, processedModelMap) + "]"; } else if (codegenProperty.isMap) { @@ -728,7 +728,7 @@ public class CrystalClientCodegen extends DefaultCodegen { } private String constructExampleCode(CodegenModel codegenModel, HashMap modelMaps, - HashMap processedModelMap) { + HashMap processedModelMap) { // break infinite recursion. Return, in case a model is already processed in the // current context. String model = codegenModel.name; @@ -898,7 +898,7 @@ public class CrystalClientCodegen extends DefaultCodegen { } // only process files with cr extension if ("cr".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {crystalPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{crystalPostProcessFile, file.toString()}); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartClientCodegen.java index 40edd69ed37..a9ada095aa4 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartClientCodegen.java @@ -52,7 +52,7 @@ public class DartClientCodegen extends AbstractDartCodegen { super.processOpts(); // handle library not being set - if(additionalProperties.get(CodegenConstants.SERIALIZATION_LIBRARY) == null) { + if (additionalProperties.get(CodegenConstants.SERIALIZATION_LIBRARY) == null) { this.library = SERIALIZATION_LIBRARY_NATIVE; LOGGER.debug("Serialization library not set, using default {}", SERIALIZATION_LIBRARY_NATIVE); } else { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java index 6cd2c790602..81414c5e03b 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java @@ -91,12 +91,12 @@ public class DartDioClientCodegen extends AbstractDartCodegen { ClientModificationFeature.Authorizations, ClientModificationFeature.UserAgent ).includeSchemaSupportFeatures( - SchemaSupportFeature.Polymorphism, - SchemaSupportFeature.Union, - SchemaSupportFeature.Composite, - SchemaSupportFeature.allOf, - SchemaSupportFeature.oneOf, - SchemaSupportFeature.anyOf + SchemaSupportFeature.Polymorphism, + SchemaSupportFeature.Union, + SchemaSupportFeature.Composite, + SchemaSupportFeature.allOf, + SchemaSupportFeature.oneOf, + SchemaSupportFeature.anyOf ) ); generatorMetadata = GeneratorMetadata.newBuilder(generatorMetadata) @@ -178,8 +178,7 @@ public class DartDioClientCodegen extends AbstractDartCodegen { if (!additionalProperties.containsKey(FINAL_PROPERTIES)) { additionalProperties.put(FINAL_PROPERTIES, Boolean.parseBoolean(FINAL_PROPERTIES_DEFAULT_VALUE)); LOGGER.debug("finalProperties not set, using default {}", FINAL_PROPERTIES_DEFAULT_VALUE); - } - else { + } else { additionalProperties.put(FINAL_PROPERTIES, Boolean.parseBoolean(additionalProperties.get(FINAL_PROPERTIES).toString())); } @@ -383,6 +382,7 @@ public class DartDioClientCodegen extends AbstractDartCodegen { syncRootTypesWithInnerVars(allModels, model); } } + private void syncRootTypesWithInnerVars(Map objs, CodegenModel model) { List allVars = new ArrayList<>(); allVars.addAll(((Collection) model.vendorExtensions.get(kSelfAndAncestorOnlyProps))); @@ -402,6 +402,7 @@ public class DartDioClientCodegen extends AbstractDartCodegen { } } } + private final String kIsChild = "x-is-child"; private final String kIsParent = "x-is-parent"; private final String kIsPure = "x-is-pure"; @@ -441,7 +442,6 @@ public class DartDioClientCodegen extends AbstractDartCodegen { } - Set allPureClasses = new HashSet<>(); // set isChild,isParent,isPure for (java.util.Map.Entry cmEntry : allModels.entrySet()) { @@ -463,9 +463,9 @@ public class DartDioClientCodegen extends AbstractDartCodegen { cm.vendorExtensions.put(kIsPure, isPure); if (!isParent && (cm.oneOf == null || cm.oneOf.isEmpty())) { //discriminator has no meaning here - if (cm.discriminator!=null) { + if (cm.discriminator != null) { cm.vendorExtensions.put(kParentDiscriminator, cm.discriminator); - cm.discriminator=null; + cm.discriminator = null; } } @@ -568,8 +568,8 @@ public class DartDioClientCodegen extends AbstractDartCodegen { protected CodegenDiscriminator createDiscriminator(String schemaName, Schema schema) { CodegenDiscriminator sub = super.createDiscriminator(schemaName, schema); Discriminator originalDiscriminator = schema.getDiscriminator(); - if (originalDiscriminator!=null) { - Map originalMapping = originalDiscriminator.getMapping(); + if (originalDiscriminator != null) { + Map originalMapping = originalDiscriminator.getMapping(); if (originalMapping != null && !originalMapping.isEmpty()) { //we already have a discriminator mapping, remove everything else for (MappedModel currentMappings : new HashSet<>(sub.getMappedModels())) { @@ -665,7 +665,7 @@ public class DartDioClientCodegen extends AbstractDartCodegen { // longer in use. if (op.allParams.stream().noneMatch(param -> param.dataType.equals("Uint8List")) && op.responses.stream().filter(response -> response.dataType != null) - .noneMatch(response -> response.dataType.equals("Uint8List"))) { + .noneMatch(response -> response.dataType.equals("Uint8List"))) { // Remove unused imports after processing op.imports.remove("Uint8List"); } @@ -719,6 +719,7 @@ public class DartDioClientCodegen extends AbstractDartCodegen { /** * Adds the serializer to the global list of custom built_value serializers. + * * @param serializer */ private void addBuiltValueSerializer(BuiltValueSerializer serializer) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElixirClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElixirClientCodegen.java index 095d6ac7e18..2f73cfd6f33 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElixirClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElixirClientCodegen.java @@ -716,7 +716,9 @@ public class ElixirClientCodegen extends DefaultCodegen { } - @Getter @Setter class ExtendedCodegenOperation extends CodegenOperation { + @Getter + @Setter + class ExtendedCodegenOperation extends CodegenOperation { private List pathTemplateNames = new ArrayList<>(); private String replacedPathName; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java index 6e9dc7d632e..ed17189a1fd 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java @@ -41,7 +41,6 @@ import java.util.function.Predicate; import java.util.stream.Collectors; import java.util.stream.Stream; - import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER; import static org.openapitools.codegen.utils.StringUtils.camelize; @@ -169,7 +168,7 @@ public class ElmClientCodegen extends DefaultCodegen implements CodegenConfig { @Override protected ImmutableMap.Builder addMustacheLambdas() { return super.addMustacheLambdas() - .put("removeWhitespace", new RemoveWhitespaceLambda()); + .put("removeWhitespace", new RemoveWhitespaceLambda()); } @Override @@ -295,43 +294,43 @@ public class ElmClientCodegen extends DefaultCodegen implements CodegenConfig { // put all models in one file final Map objects = new HashMap<>(); final ModelsMap dataObj = objs.values().stream() - .findFirst() - .orElse(new ModelsMap()); + .findFirst() + .orElse(new ModelsMap()); final List models = objs.values().stream() - .flatMap(obj -> obj.getModels().stream()) - .flatMap(obj -> { - final CodegenModel model = obj.getModel(); - // circular references - model.vars.forEach(var -> { - var.isCircularReference = model.allVars.stream() - .filter(v -> var.baseName.equals(v.baseName)) - .map(v -> v.isCircularReference) - .findAny() - .orElse(false); - CodegenProperty items = var.items; - while (items != null) { - items.isCircularReference = var.isCircularReference; - items.required = true; - items = items.items; - } - }); - // discriminators - if (model.discriminator != null && model.getChildren() != null) { - model.getChildren().forEach(child -> { - child.allOf = child.allOf.stream() - .map(v -> model.classname.equals(v) ? "Base" + v : v) - .collect(Collectors.toSet()); + .flatMap(obj -> obj.getModels().stream()) + .flatMap(obj -> { + final CodegenModel model = obj.getModel(); + // circular references + model.vars.forEach(var -> { + var.isCircularReference = model.allVars.stream() + .filter(v -> var.baseName.equals(v.baseName)) + .map(v -> v.isCircularReference) + .findAny() + .orElse(false); + CodegenProperty items = var.items; + while (items != null) { + items.isCircularReference = var.isCircularReference; + items.required = true; + items = items.items; + } }); - } - // remove *AllOf - if (model.classname.endsWith("AllOf")) { - return Stream.empty(); - } else { - model.allOf.removeIf(name -> name.endsWith("AllOf")); - return Stream.of(obj); - } - }) - .collect(Collectors.toList()); + // discriminators + if (model.discriminator != null && model.getChildren() != null) { + model.getChildren().forEach(child -> { + child.allOf = child.allOf.stream() + .map(v -> model.classname.equals(v) ? "Base" + v : v) + .collect(Collectors.toSet()); + }); + } + // remove *AllOf + if (model.classname.endsWith("AllOf")) { + return Stream.empty(); + } else { + model.allOf.removeIf(name -> name.endsWith("AllOf")); + return Stream.of(obj); + } + }) + .collect(Collectors.toList()); final boolean includeTime = anyVarMatches(models, prop -> prop.isDate || prop.isDateTime); final boolean includeUuid = anyVarMatches(models, prop -> prop.isUuid); @@ -398,7 +397,7 @@ public class ElmClientCodegen extends DefaultCodegen implements CodegenConfig { final boolean includeUuid = anyOperationResponse(ops, response -> response.isUuid) || anyOperationParam(ops, param -> param.isUuid || itemsIncludesType(param.items, p -> p.isUuid)); final boolean includeFile = anyOperationResponse(ops, response -> response.isFile) || - anyOperationParam(ops, param -> param.isFile || itemsIncludesType(param.items, p -> p.isFile)); + anyOperationParam(ops, param -> param.isFile || itemsIncludesType(param.items, p -> p.isFile)); operations.put("includeTime", includeTime); operations.put("includeUuid", includeUuid); @@ -496,5 +495,7 @@ public class ElmClientCodegen extends DefaultCodegen implements CodegenConfig { } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.ELM; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.ELM; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangClientCodegen.java index 72379dbeb4a..c294665e310 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangClientCodegen.java @@ -478,5 +478,7 @@ public class ErlangClientCodegen extends DefaultCodegen implements CodegenConfig } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.ERLANG; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.ERLANG; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangProperCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangProperCodegen.java index ab03c7c55d3..80d9f7667b1 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangProperCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangProperCodegen.java @@ -144,7 +144,7 @@ public class ErlangProperCodegen extends DefaultCodegen implements CodegenConfig @Override public CodegenModel fromModel(String name, Schema model) { CodegenModel cm = super.fromModel(name, model); - if(ModelUtils.isArraySchema(model)) { + if (ModelUtils.isArraySchema(model)) { return new CodegenArrayModel(cm, model); } else { return cm; @@ -159,7 +159,7 @@ public class ErlangProperCodegen extends DefaultCodegen implements CodegenConfig @Override public String getTypeDeclaration(Schema schema) { String typeDeclaration = super.getSchemaType(schema); - if(ModelUtils.isArraySchema(schema)) { + if (ModelUtils.isArraySchema(schema)) { String complexType = getSchemaType(ModelUtils.getSchemaItems(schema)); StringBuilder sb = new StringBuilder("list("); sb.append(complexType); @@ -174,7 +174,7 @@ public class ErlangProperCodegen extends DefaultCodegen implements CodegenConfig @Override public String getSchemaType(Schema schema) { String schemaType = super.getSchemaType(schema); - if(ModelUtils.isArraySchema(schema)) { + if (ModelUtils.isArraySchema(schema)) { String complexType = getSchemaType(ModelUtils.getSchemaItems(schema)); StringBuilder sb = new StringBuilder("list("); @@ -182,27 +182,27 @@ public class ErlangProperCodegen extends DefaultCodegen implements CodegenConfig Integer minItems = schema.getMinItems(); Integer maxItems = schema.getMaxItems(); - if(minItems != null) sb.append(", ").append(minItems); - if(minItems != null && maxItems != null) sb.append(", ").append(maxItems); + if (minItems != null) sb.append(", ").append(minItems); + if (minItems != null && maxItems != null) sb.append(", ").append(maxItems); return sb.append(")").toString(); - } else if(ModelUtils.isIntegerSchema(schema)) { + } else if (ModelUtils.isIntegerSchema(schema)) { StringBuilder sb = new StringBuilder("integer("); BigDecimal min = schema.getMinimum(); BigDecimal max = schema.getMaximum(); - if(min != null) sb.append(min); - if(min != null && max != null) sb.append(", ").append(max); + if (min != null) sb.append(min); + if (min != null && max != null) sb.append(", ").append(max); return sb.append(")").toString(); - } else if(ModelUtils.isDateSchema(schema) || ModelUtils.isDateTimeSchema(schema)) { + } else if (ModelUtils.isDateSchema(schema) || ModelUtils.isDateTimeSchema(schema)) { return typeMapping.get(schemaType); - } else if(ModelUtils.isStringSchema(schema)) { + } else if (ModelUtils.isStringSchema(schema)) { StringBuilder sb = new StringBuilder("binary("); Integer min = schema.getMinLength(); Integer max = schema.getMaxLength(); - if(min != null) sb.append(min); - if(min != null && max != null) sb.append(", ").append(max); + if (min != null) sb.append(min); + if (min != null && max != null) sb.append(", ").append(max); return sb.append(")").toString(); } else if (typeMapping.containsKey(schemaType)) { @@ -250,17 +250,17 @@ public class ErlangProperCodegen extends DefaultCodegen implements CodegenConfig supportingFiles.add(new SupportingFile("rebar.config.mustache", "", "rebar.config")); supportingFiles.add(new SupportingFile("app.src.mustache", "", "src" + File.separator + - this.packageName + ".app.src")); + this.packageName + ".app.src")); supportingFiles.add(new SupportingFile("utils.mustache", "", "src" + File.separator + - this.packageName + "_utils.erl")); + this.packageName + "_utils.erl")); supportingFiles.add(new SupportingFile("gen.mustache", "", "src" + File.separator + this - .packageName + "_gen.erl")); + .packageName + "_gen.erl")); supportingFiles.add(new SupportingFile("include.mustache", "", "src" + File.separator + - this.packageName + ".hrl")); + this.packageName + ".hrl")); supportingFiles.add(new SupportingFile("statem.hrl.mustache", "", "src" + File.separator + - this.packageName + "_statem.hrl")); + this.packageName + "_statem.hrl")); supportingFiles.add(new SupportingFile("test.mustache", "", "test" + File.separator + - "prop_" + this.packageName + ".erl")); + "prop_" + this.packageName + ".erl")); supportingFiles.add(new SupportingFile("README.mustache", "", "README.md")); } @@ -304,8 +304,8 @@ public class ErlangProperCodegen extends DefaultCodegen implements CodegenConfig @Override public String modelFileFolder() { return outputFolder + File.separator - + sourceFolder + File.separator - + modelFolder + File.separator; + + sourceFolder + File.separator + + modelFolder + File.separator; } @Override @@ -565,5 +565,7 @@ public class ErlangProperCodegen extends DefaultCodegen implements CodegenConfig } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.ERLANG; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.ERLANG; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangServerCodegen.java index 5f8a50a312b..4581e6e4509 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangServerCodegen.java @@ -176,7 +176,7 @@ public class ErlangServerCodegen extends DefaultCodegen implements CodegenConfig supportingFiles.add(new SupportingFile("openapi.mustache", "", toPrivFilePath(this.openApiSpecName, "json"))); supportingFiles.add(new SupportingFile("logic_handler.mustache", "", toSourceFilePath("logic_handler", "erl"))); supportingFiles.add(new SupportingFile("README.mustache", "", "README.md") - .doNotOverwrite()); + .doNotOverwrite()); } @Override @@ -326,5 +326,7 @@ public class ErlangServerCodegen extends DefaultCodegen implements CodegenConfig } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.ERLANG; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.ERLANG; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangServerDeprecatedCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangServerDeprecatedCodegen.java index 650951028cc..c0e0e60a32c 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangServerDeprecatedCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangServerDeprecatedCodegen.java @@ -19,13 +19,12 @@ package org.openapitools.codegen.languages; import lombok.Setter; import org.openapitools.codegen.*; +import org.openapitools.codegen.meta.GeneratorMetadata; +import org.openapitools.codegen.meta.Stability; import org.openapitools.codegen.meta.features.*; import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.OperationMap; import org.openapitools.codegen.model.OperationsMap; -import org.openapitools.codegen.meta.features.*; -import org.openapitools.codegen.meta.GeneratorMetadata; -import org.openapitools.codegen.meta.Stability; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -183,7 +182,7 @@ public class ErlangServerDeprecatedCodegen extends DefaultCodegen implements Cod supportingFiles.add(new SupportingFile("default_logic_handler.mustache", "", toSourceFilePath("default_logic_handler", "erl"))); supportingFiles.add(new SupportingFile("logic_handler.mustache", "", toSourceFilePath("logic_handler", "erl"))); supportingFiles.add(new SupportingFile("README.mustache", "", "README.md") - .doNotOverwrite()); + .doNotOverwrite()); } @Override @@ -333,5 +332,7 @@ public class ErlangServerDeprecatedCodegen extends DefaultCodegen implements Cod } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.ERLANG; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.ERLANG; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/FsharpFunctionsServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/FsharpFunctionsServerCodegen.java index 34ff9c7bf29..1a0622a4b2c 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/FsharpFunctionsServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/FsharpFunctionsServerCodegen.java @@ -16,20 +16,22 @@ package org.openapitools.codegen.languages; -import org.openapitools.codegen.*; +import org.openapitools.codegen.CodegenConstants; +import org.openapitools.codegen.CodegenType; +import org.openapitools.codegen.SupportingFile; import org.openapitools.codegen.meta.GeneratorMetadata; import org.openapitools.codegen.meta.Stability; -import java.io.File; -import java.util.*; - import org.openapitools.codegen.meta.features.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.File; +import java.util.EnumSet; + public class FsharpFunctionsServerCodegen extends AbstractFSharpCodegen { public static final String PROJECT_NAME = "projectName"; - final Logger LOGGER = LoggerFactory.getLogger(FsharpFunctionsServerCodegen.class); + final Logger LOGGER = LoggerFactory.getLogger(FsharpFunctionsServerCodegen.class); @Override public CodegenType getTag() { @@ -52,24 +54,24 @@ public class FsharpFunctionsServerCodegen extends AbstractFSharpCodegen { // TODO: There's a README.mustache, but it doesn't seem to be referenced… modifyFeatureSet(features -> features // .includeDocumentationFeatures(DocumentationFeature.Readme) - .wireFormatFeatures(EnumSet.of(WireFormatFeature.JSON)) - .securityFeatures(EnumSet.noneOf( - SecurityFeature.class - )) - .excludeGlobalFeatures( - GlobalFeature.XMLStructureDefinitions, - GlobalFeature.Callbacks, - GlobalFeature.LinkObjects, - GlobalFeature.ParameterStyling, - GlobalFeature.BasePath, - GlobalFeature.Host - ) - .excludeSchemaSupportFeatures( - SchemaSupportFeature.Polymorphism - ) - .includeParameterFeatures( - ParameterFeature.Cookie - ) + .wireFormatFeatures(EnumSet.of(WireFormatFeature.JSON)) + .securityFeatures(EnumSet.noneOf( + SecurityFeature.class + )) + .excludeGlobalFeatures( + GlobalFeature.XMLStructureDefinitions, + GlobalFeature.Callbacks, + GlobalFeature.LinkObjects, + GlobalFeature.ParameterStyling, + GlobalFeature.BasePath, + GlobalFeature.Host + ) + .excludeSchemaSupportFeatures( + SchemaSupportFeature.Polymorphism + ) + .includeParameterFeatures( + ParameterFeature.Cookie + ) ); generatorMetadata = GeneratorMetadata.newBuilder(generatorMetadata) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/FsharpGiraffeServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/FsharpGiraffeServerCodegen.java index e0b1a765cd0..7fbd01a6534 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/FsharpGiraffeServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/FsharpGiraffeServerCodegen.java @@ -18,14 +18,13 @@ package org.openapitools.codegen.languages; import com.samskivert.mustache.Mustache; import io.swagger.v3.oas.models.OpenAPI; - import lombok.Setter; import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.CodegenOperation; import org.openapitools.codegen.CodegenType; +import org.openapitools.codegen.SupportingFile; import org.openapitools.codegen.meta.GeneratorMetadata; import org.openapitools.codegen.meta.Stability; -import org.openapitools.codegen.SupportingFile; import org.openapitools.codegen.meta.features.DocumentationFeature; import org.openapitools.codegen.utils.URLPathUtils; import org.slf4j.Logger; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GdscriptClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GdscriptClientCodegen.java index cb71b0d5d82..e2e7c5dc200 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GdscriptClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GdscriptClientCodegen.java @@ -3,10 +3,6 @@ package org.openapitools.codegen.languages; import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.media.StringSchema; import org.openapitools.codegen.*; - -import java.io.File; -import java.util.*; - import org.openapitools.codegen.api.TemplatingEngineAdapter; import org.openapitools.codegen.meta.features.*; import org.openapitools.codegen.model.ModelsMap; @@ -14,6 +10,11 @@ import org.openapitools.codegen.templating.HandlebarsEngineAdapter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.File; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + import static org.openapitools.codegen.utils.StringUtils.camelize; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoClientCodegen.java index a962cb3f076..b7e788cc56b 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoClientCodegen.java @@ -310,7 +310,7 @@ public class GoClientCodegen extends AbstractGoCodegen { supportingFiles.add(new SupportingFile("configuration.mustache", "", "configuration.go")); supportingFiles.add(new SupportingFile("client.mustache", "", "client.go")); supportingFiles.add(new SupportingFile("response.mustache", "", "response.go")); - if ((boolean)additionalProperties.get(WITH_GO_MOD)) { + if ((boolean) additionalProperties.get(WITH_GO_MOD)) { supportingFiles.add(new SupportingFile("go.mod.mustache", "", "go.mod")); supportingFiles.add(new SupportingFile("go.sum.mustache", "", "go.sum")); } @@ -342,14 +342,14 @@ public class GoClientCodegen extends AbstractGoCodegen { public String modelFileFolder() { String modelFileFolderPath = outputFolder + File.separator; - if(modelFileFolder != null) { + if (modelFileFolder != null) { modelFileFolderPath = modelFileFolderPath + modelFileFolder + File.separator; } return modelFileFolderPath.replace("/", File.separator); } @Override - public String apiTestFileFolder() { + public String apiTestFileFolder() { return outputFolder + File.separator + "test" + File.separator; } @@ -473,7 +473,7 @@ public class GoClientCodegen extends AbstractGoCodegen { for (CodegenProperty param : Iterables.concat(model.vars, model.allVars, model.requiredVars, model.optionalVars)) { param.vendorExtensions.put("x-go-base-type", param.dataType); if (!param.isNullable || param.isContainer || param.isFreeFormObject - || (param.isAnyType && !param.isModel)) { + || (param.isAnyType && !param.isModel)) { continue; } if (param.isDateTime) { @@ -484,7 +484,7 @@ public class GoClientCodegen extends AbstractGoCodegen { param.dataType = "NullableTime"; } else { param.dataType = "Nullable" + Character.toUpperCase(param.dataType.charAt(0)) - + param.dataType.substring(1); + + param.dataType.substring(1); } } @@ -510,8 +510,8 @@ public class GoClientCodegen extends AbstractGoCodegen { if (model.hasRequired) { if (!model.isAdditionalPropertiesTrue && - (model.oneOf == null || model.oneOf.isEmpty()) && - (model.anyOf == null || model.anyOf.isEmpty())) { + (model.oneOf == null || model.oneOf.isEmpty()) && + (model.anyOf == null || model.anyOf.isEmpty())) { imports.add(createMapping("import", "bytes")); } @@ -637,7 +637,7 @@ public class GoClientCodegen extends AbstractGoCodegen { // We can't easily generate a pointer inline, so just use nil in that case return prefix + "{nil}"; } - return prefix + "{" + constructExampleCode(codegenProperty.items, modelMaps, processedModelMap, depth+1) + "}"; + return prefix + "{" + constructExampleCode(codegenProperty.items, modelMaps, processedModelMap, depth + 1) + "}"; } else if (codegenProperty.isMap) { // map String prefix = codegenProperty.dataType; String dataType = StringUtils.removeStart(codegenProperty.dataType, "map[string][]"); @@ -647,7 +647,7 @@ public class GoClientCodegen extends AbstractGoCodegen { if (codegenProperty.items == null) { return prefix + "{ ... }"; } - return prefix + "{\"key\": " + constructExampleCode(codegenProperty.items, modelMaps, processedModelMap, depth+1) + "}"; + return prefix + "{\"key\": " + constructExampleCode(codegenProperty.items, modelMaps, processedModelMap, depth + 1) + "}"; } else if (codegenProperty.isPrimitiveType) { // primitive type if (codegenProperty.isString) { if (!StringUtils.isEmpty(codegenProperty.example) && !"null".equals(codegenProperty.example)) { @@ -681,7 +681,7 @@ public class GoClientCodegen extends AbstractGoCodegen { } else { // look up the model if (modelMaps.containsKey(codegenProperty.dataType)) { - return constructExampleCode(modelMaps.get(codegenProperty.dataType), modelMaps, processedModelMap, depth+1); + return constructExampleCode(modelMaps.get(codegenProperty.dataType), modelMaps, processedModelMap, depth + 1); } else if (codegenProperty.isEmail) { // email if (!StringUtils.isEmpty(codegenProperty.example) && !"null".equals(codegenProperty.example)) { return "\"" + codegenProperty.example + "\""; @@ -740,7 +740,7 @@ public class GoClientCodegen extends AbstractGoCodegen { List propertyExamples = new ArrayList<>(); for (CodegenProperty codegenProperty : codegenModel.requiredVars) { - propertyExamples.add(constructExampleCode(codegenProperty, modelMaps, processedModelMap, depth+1)); + propertyExamples.add(constructExampleCode(codegenProperty, modelMaps, processedModelMap, depth + 1)); } return "*" + goImportAlias + ".New" + toModelName(model) + "(" + StringUtils.join(propertyExamples, ", ") + ")"; } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoGinServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoGinServerCodegen.java index 6d18e6b8924..ce8721a251e 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoGinServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoGinServerCodegen.java @@ -17,11 +17,7 @@ package org.openapitools.codegen.languages; import lombok.Setter; -import org.openapitools.codegen.CliOption; -import org.openapitools.codegen.CodegenConstants; -import org.openapitools.codegen.CodegenOperation; -import org.openapitools.codegen.CodegenType; -import org.openapitools.codegen.SupportingFile; +import org.openapitools.codegen.*; import org.openapitools.codegen.meta.features.*; import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.OperationMap; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoServerCodegen.java index 1e801291675..54b0292fc30 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoServerCodegen.java @@ -244,7 +244,7 @@ public class GoServerCodegen extends AbstractGoCodegen { } if (this.onlyInterfaces) { - apiTemplateFiles.remove("service.mustache"); + apiTemplateFiles.remove("service.mustache"); } if (additionalProperties.containsKey("outputAsLibrary")) { @@ -278,9 +278,9 @@ public class GoServerCodegen extends AbstractGoCodegen { * it will be processed by the template engine. Otherwise, it will be copied */ if (!outputAsLibrary) { - supportingFiles.add(new SupportingFile("main.mustache", "", "main.go")); - supportingFiles.add(new SupportingFile("Dockerfile.mustache", "", "Dockerfile")); - supportingFiles.add(new SupportingFile("go.mod.mustache", "", "go.mod")); + supportingFiles.add(new SupportingFile("main.mustache", "", "main.go")); + supportingFiles.add(new SupportingFile("Dockerfile.mustache", "", "Dockerfile")); + supportingFiles.add(new SupportingFile("go.mod.mustache", "", "go.mod")); } supportingFiles.add(new SupportingFile("openapi.mustache", "api", "openapi.yaml")); supportingFiles.add(new SupportingFile("routers.mustache", sourceFolder, "routers.go")); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GraphQLNodeJSExpressServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GraphQLNodeJSExpressServerCodegen.java index 9e74139e546..7bab192f4d5 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GraphQLNodeJSExpressServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GraphQLNodeJSExpressServerCodegen.java @@ -167,5 +167,7 @@ public class GraphQLNodeJSExpressServerCodegen extends AbstractGraphQLCodegen im } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.JAVASCRIPT; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.JAVASCRIPT; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GraphQLSchemaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GraphQLSchemaCodegen.java index 4d1b4127e6f..c06f7a41fd1 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GraphQLSchemaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GraphQLSchemaCodegen.java @@ -17,7 +17,10 @@ package org.openapitools.codegen.languages; import org.openapitools.codegen.*; -import org.openapitools.codegen.meta.features.*; +import org.openapitools.codegen.meta.features.GlobalFeature; +import org.openapitools.codegen.meta.features.SchemaSupportFeature; +import org.openapitools.codegen.meta.features.SecurityFeature; +import org.openapitools.codegen.meta.features.WireFormatFeature; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -47,19 +50,19 @@ public class GraphQLSchemaCodegen extends AbstractGraphQLCodegen implements Code modifyFeatureSet(features -> features // .includeDocumentationFeatures(DocumentationFeature.Readme) - .wireFormatFeatures(EnumSet.of(WireFormatFeature.JSON)) - .securityFeatures(EnumSet.noneOf( - SecurityFeature.class - )) - .excludeGlobalFeatures( - GlobalFeature.XMLStructureDefinitions, - GlobalFeature.Callbacks, - GlobalFeature.LinkObjects, - GlobalFeature.ParameterStyling - ) - .excludeSchemaSupportFeatures( - SchemaSupportFeature.Polymorphism - ) + .wireFormatFeatures(EnumSet.of(WireFormatFeature.JSON)) + .securityFeatures(EnumSet.noneOf( + SecurityFeature.class + )) + .excludeGlobalFeatures( + GlobalFeature.XMLStructureDefinitions, + GlobalFeature.Callbacks, + GlobalFeature.LinkObjects, + GlobalFeature.ParameterStyling + ) + .excludeSchemaSupportFeatures( + SchemaSupportFeature.Polymorphism + ) ); outputFolder = "generated-code/graphql-schema"; @@ -103,5 +106,7 @@ public class GraphQLSchemaCodegen extends AbstractGraphQLCodegen implements Code } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.GRAPH_QL; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.GRAPH_QL; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GroovyClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GroovyClientCodegen.java index 1b194c7a4da..8e60911c212 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GroovyClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GroovyClientCodegen.java @@ -17,23 +17,17 @@ package org.openapitools.codegen.languages; -import static org.openapitools.codegen.utils.StringUtils.camelize; +import org.openapitools.codegen.*; +import org.openapitools.codegen.meta.features.*; +import org.openapitools.codegen.model.ModelMap; +import org.openapitools.codegen.model.OperationMap; +import org.openapitools.codegen.model.OperationsMap; import java.io.File; import java.util.EnumSet; import java.util.List; -import org.openapitools.codegen.*; -import org.openapitools.codegen.meta.features.ClientModificationFeature; -import org.openapitools.codegen.meta.features.DocumentationFeature; -import org.openapitools.codegen.meta.features.GlobalFeature; -import org.openapitools.codegen.meta.features.ParameterFeature; -import org.openapitools.codegen.meta.features.SchemaSupportFeature; -import org.openapitools.codegen.meta.features.SecurityFeature; -import org.openapitools.codegen.meta.features.WireFormatFeature; -import org.openapitools.codegen.model.ModelMap; -import org.openapitools.codegen.model.OperationMap; -import org.openapitools.codegen.model.OperationsMap; +import static org.openapitools.codegen.utils.StringUtils.camelize; public class GroovyClientCodegen extends AbstractJavaCodegen { @@ -154,5 +148,7 @@ public class GroovyClientCodegen extends AbstractJavaCodegen { } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.GROOVY; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.GROOVY; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellHttpClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellHttpClientCodegen.java index 3023afab586..00d1a75e967 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellHttpClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellHttpClientCodegen.java @@ -1483,7 +1483,7 @@ public class HaskellHttpClientCodegen extends DefaultCodegen implements CodegenC // only process files with hs extension if ("hs".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {haskellPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{haskellPostProcessFile, file.toString()}); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellServantCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellServantCodegen.java index 608e75d03c0..06703ff4085 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellServantCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellServantCodegen.java @@ -708,7 +708,7 @@ public class HaskellServantCodegen extends DefaultCodegen implements CodegenConf // only process files with hs extension if ("hs".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {haskellPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{haskellPostProcessFile, file.toString()}); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellYesodServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellYesodServerCodegen.java index 11422819c26..38e1ba94865 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellYesodServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellYesodServerCodegen.java @@ -575,10 +575,12 @@ public class HaskellYesodServerCodegen extends DefaultCodegen implements Codegen // only process files with hs extension if ("hs".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {haskellPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{haskellPostProcessFile, file.toString()}); } } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.HASKELL; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.HASKELL; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaCXFClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaCXFClientCodegen.java index 3e0db3fbc04..c96233046c5 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaCXFClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaCXFClientCodegen.java @@ -60,7 +60,7 @@ public class JavaCXFClientCodegen extends AbstractJavaCodegen supportsInheritance = true; - sourceFolder = "src"+ File.separator +"gen"+ File.separator +"java"; + sourceFolder = "src" + File.separator + "gen" + File.separator + "java"; invokerPackage = "org.openapitools.api"; artifactId = "openapi-jaxrs-client"; dateLibrary = "legacy"; //TODO: add joda support to all jax-rs @@ -107,7 +107,7 @@ public class JavaCXFClientCodegen extends AbstractJavaCodegen supportingFiles.clear(); // Don't need extra files provided by AbstractJAX-RS & Java Codegen supportingFiles.add(new SupportingFile("pom.mustache", "", "pom.xml") - .doNotOverwrite()); + .doNotOverwrite()); } @Override @@ -145,7 +145,7 @@ public class JavaCXFClientCodegen extends AbstractJavaCodegen if (Boolean.FALSE.equals(property.required) && Boolean.TRUE.equals(property.isNullable)) { property.getVendorExtensions().put("x-is-jackson-optional-nullable", true); findByName(property.name, model.readOnlyVars) - .ifPresent(p -> p.getVendorExtensions().put("x-is-jackson-optional-nullable", true)); + .ifPresent(p -> p.getVendorExtensions().put("x-is-jackson-optional-nullable", true)); model.imports.add("JsonNullable"); model.imports.add("JsonIgnore"); } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaCXFExtServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaCXFExtServerCodegen.java index 95cc6ce28f1..fa134b13fb5 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaCXFExtServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaCXFExtServerCodegen.java @@ -431,7 +431,6 @@ public class JavaCXFExtServerCodegen extends JavaCXFServerCodegen implements CXF * @param var * @param localVars * @param models - * * @return localVar with a numeric suffix if necessary to ensure uniqueness. */ private String appendLocalVariable(StringBuilder buffer, String indent, CodegenOperation op, CodegenVariable var, @@ -746,7 +745,7 @@ public class JavaCXFExtServerCodegen extends JavaCXFServerCodegen implements CXF BigDecimal exclusiveMin = new BigDecimal(var != null && var.exclusiveMinimum ? 1 : 0); BigDecimal inclusiveMax = new BigDecimal(var == null || !var.exclusiveMaximum ? 1 : 0); long randomLong = min.add(exclusiveMin).add( - max.add(inclusiveMax).subtract(min).subtract(exclusiveMin).multiply(BigDecimal.valueOf(Math.random()))) + max.add(inclusiveMax).subtract(min).subtract(exclusiveMin).multiply(BigDecimal.valueOf(Math.random()))) .longValue(); if (loadTestDataFromFile) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaCXFServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaCXFServerCodegen.java index fe98213a9e1..2746f22fb19 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaCXFServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaCXFServerCodegen.java @@ -172,29 +172,29 @@ public class JavaCXFServerCodegen extends AbstractJavaJAXRSServerCodegen supportingFiles.clear(); // Don't need extra files provided by AbstractJAX-RS & Java Codegen supportingFiles.add(new SupportingFile("server/pom.mustache", "", "pom.xml") - .doNotOverwrite()); + .doNotOverwrite()); supportingFiles.add(new SupportingFile("server/openapi-generator-ignore.mustache", "", ".openapi-generator-ignore") - .doNotOverwrite()); + .doNotOverwrite()); if (this.generateSpringApplication) { supportingFiles.add(new SupportingFile("server/readme.md", "", "readme.md") - .doNotOverwrite()); + .doNotOverwrite()); supportingFiles.add(new SupportingFile("server/ApplicationContext.xml.mustache", ("src/main/resources"), "ApplicationContext.xml") - .doNotOverwrite()); + .doNotOverwrite()); supportingFiles.add(new SupportingFile("server/web.mustache", ("src/main/webapp/WEB-INF"), "web.xml") - .doNotOverwrite()); + .doNotOverwrite()); supportingFiles.add(new SupportingFile("server/context.xml.mustache", ("src/main/webapp/WEB-INF"), "context.xml") - .doNotOverwrite()); + .doNotOverwrite()); // Jboss if (generateJbossDeploymentDescriptor) { supportingFiles.add(new SupportingFile("server/jboss-web.xml.mustache", ("src/main/webapp/WEB-INF"), "jboss-web.xml") - .doNotOverwrite()); + .doNotOverwrite()); } @@ -202,10 +202,10 @@ public class JavaCXFServerCodegen extends AbstractJavaJAXRSServerCodegen if (this.generateSpringBootApplication) { supportingFiles.add(new SupportingFile("server/SpringBootApplication.mustache", (testFolder + '/' + apiPackage).replace(".", "/"), "SpringBootApplication.java") - .doNotOverwrite()); + .doNotOverwrite()); supportingFiles.add(new SupportingFile("server/application.properties.mustache", (testResourcesFolder + '/'), "application.properties") - .doNotOverwrite()); + .doNotOverwrite()); } } @@ -213,7 +213,7 @@ public class JavaCXFServerCodegen extends AbstractJavaJAXRSServerCodegen if (this.generateNonSpringApplication) { supportingFiles.add(new SupportingFile("server/nonspring-web.mustache", ("src/main/webapp/WEB-INF"), "web.xml") - .doNotOverwrite()); + .doNotOverwrite()); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaCamelServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaCamelServerCodegen.java index 199d34bf24b..df4659d4aaf 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaCamelServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaCamelServerCodegen.java @@ -19,7 +19,6 @@ package org.openapitools.codegen.languages; import io.swagger.v3.oas.models.Operation; import org.openapitools.codegen.CliOption; import org.openapitools.codegen.CodegenOperation; - import org.openapitools.codegen.SupportingFile; import org.openapitools.codegen.languages.features.BeanValidationFeatures; import org.openapitools.codegen.languages.features.OptionalFeatures; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java index 1920e7ea649..f7b85b45162 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java @@ -56,7 +56,7 @@ public class JavaClientCodegen extends AbstractJavaCodegen static final String MEDIA_TYPE = "mediaType"; private final Logger LOGGER = LoggerFactory.getLogger(JavaClientCodegen.class); - + public static final String USE_RX_JAVA2 = "useRxJava2"; public static final String USE_RX_JAVA3 = "useRxJava3"; public static final String DO_NOT_USE_RX = "doNotUseRx"; @@ -137,7 +137,7 @@ public class JavaClientCodegen extends AbstractJavaCodegen @Getter @Setter protected boolean failOnUnknownProperties = false; protected String authFolder; /** - * Serialization library. + * Serialization library. */ @Getter protected String serializationLibrary = null; @Setter protected boolean useOneOfDiscriminatorLookup = false; // use oneOf discriminator's mapping for model lookup @@ -351,7 +351,7 @@ public class JavaClientCodegen extends AbstractJavaCodegen LOGGER.warn("You specified all RxJava versions 2 and 3 but they are mutually exclusive. Defaulting to v3."); convertPropertyToBooleanAndWriteBack(USE_RX_JAVA3, this::setUseRxJava3); writePropertyBack(USE_RX_JAVA2, false); - } else { + } else { convertPropertyToBooleanAndWriteBack(USE_RX_JAVA3, this::setUseRxJava3); convertPropertyToBooleanAndWriteBack(USE_RX_JAVA2, this::setUseRxJava2); } @@ -377,16 +377,16 @@ public class JavaClientCodegen extends AbstractJavaCodegen convertPropertyToBooleanAndWriteBack(MICROPROFILE_MUTINY, this::setMicroprofileMutiny); - convertPropertyToStringAndWriteBack(MICROPROFILE_REST_CLIENT_VERSION, value->microprofileRestClientVersion=value); + convertPropertyToStringAndWriteBack(MICROPROFILE_REST_CLIENT_VERSION, value -> microprofileRestClientVersion = value); if (!mpRestClientVersions.containsKey(microprofileRestClientVersion)) { - throw new IllegalArgumentException( - String.format(Locale.ROOT, - "Version %s of MicroProfile Rest Client is not supported or incorrect. Supported versions are %s", + throw new IllegalArgumentException( + String.format(Locale.ROOT, + "Version %s of MicroProfile Rest Client is not supported or incorrect. Supported versions are %s", microprofileRestClientVersion, - String.join(", ", mpRestClientVersions.keySet()) - ) - ); - } + String.join(", ", mpRestClientVersions.keySet()) + ) + ); + } if (!additionalProperties.containsKey("rootJavaEEPackage")) { String mpRestClientVersion = (String) additionalProperties.get(MICROPROFILE_REST_CLIENT_VERSION); @@ -415,7 +415,7 @@ public class JavaClientCodegen extends AbstractJavaCodegen convertPropertyToBooleanAndWriteBack(CodegenConstants.WITH_AWSV4_SIGNATURE_COMMENT, this::setWithAWSV4Signature); convertPropertyToStringAndWriteBack(GRADLE_PROPERTIES, this::setGradleProperties); convertPropertyToStringAndWriteBack(ERROR_OBJECT_TYPE, this::setErrorObjectType); - convertPropertyToBooleanAndWriteBack(WEBCLIENT_BLOCKING_OPERATIONS, op -> webclientBlockingOperations=op); + convertPropertyToBooleanAndWriteBack(WEBCLIENT_BLOCKING_OPERATIONS, op -> webclientBlockingOperations = op); convertPropertyToBooleanAndWriteBack(FAIL_ON_UNKNOWN_PROPERTIES, this::setFailOnUnknownProperties); // add URL query deepObject support to native, apache-httpclient by default diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaHelidonClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaHelidonClientCodegen.java index 701a51e5107..f4425ed1bc4 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaHelidonClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaHelidonClientCodegen.java @@ -17,19 +17,6 @@ package org.openapitools.codegen.languages; -import java.io.File; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; -import java.util.TreeSet; - import io.swagger.v3.oas.models.Operation; import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.servers.Server; @@ -37,16 +24,7 @@ import lombok.Getter; import lombok.Setter; import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; -import org.openapitools.codegen.CliOption; -import org.openapitools.codegen.CodegenConstants; -import org.openapitools.codegen.CodegenModel; -import org.openapitools.codegen.CodegenOperation; -import org.openapitools.codegen.CodegenParameter; -import org.openapitools.codegen.CodegenProperty; -import org.openapitools.codegen.CodegenResponse; -import org.openapitools.codegen.CodegenType; -import org.openapitools.codegen.SupportingFile; -import org.openapitools.codegen.VendorExtension; +import org.openapitools.codegen.*; import org.openapitools.codegen.meta.GeneratorMetadata; import org.openapitools.codegen.meta.Stability; import org.openapitools.codegen.meta.features.DocumentationFeature; @@ -57,6 +35,11 @@ import org.openapitools.codegen.model.OperationsMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.File; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.*; + import static org.openapitools.codegen.CodegenConstants.SERIALIZATION_LIBRARY; public class JavaHelidonClientCodegen extends JavaHelidonCommonCodegen { @@ -223,8 +206,7 @@ public class JavaHelidonClientCodegen extends JavaHelidonCommonCodegen { unmodifiable.add(new SupportingFile("ResponseType.mustache", apiFolder.toString(), "ResponseType.java")); processSupportingFiles(modifiable, unmodifiable); - } - else { + } else { LOGGER.error("Unknown library option (-l/--library): {}", getLibrary()); } @@ -282,15 +264,15 @@ public class JavaHelidonClientCodegen extends JavaHelidonCommonCodegen { Set missingImportClassNames = new TreeSet<>(requiredImplImportClassNames); imports.stream() - .map(m -> m.get("classname")) - .forEach(missingImportClassNames::remove); + .map(m -> m.get("classname")) + .forEach(missingImportClassNames::remove); missingImportClassNames.forEach(c -> { - Map singleImportMap = new HashMap<>(); - singleImportMap.put("classname", c); - singleImportMap.put("import", Objects.requireNonNull(importMapping.get(c), "no mapping for " + c)); - implImports.add(singleImportMap); - }); + Map singleImportMap = new HashMap<>(); + singleImportMap.put("classname", c); + singleImportMap.put("import", Objects.requireNonNull(importMapping.get(c), "no mapping for " + c)); + implImports.add(singleImportMap); + }); objs.put(X_HELIDON_IMPL_IMPORTS, implImports); return objs; @@ -329,14 +311,14 @@ public class JavaHelidonClientCodegen extends JavaHelidonCommonCodegen { requiredImplImports.add("StringJoiner"); } if (op.bodyParams.stream().anyMatch(JavaHelidonClientCodegen::checkIsArray) - || op.allParams.stream().anyMatch(JavaHelidonClientCodegen::checkIsArray) - || op.responses.stream().anyMatch(CodegenResponse::getIsArray)) { + || op.allParams.stream().anyMatch(JavaHelidonClientCodegen::checkIsArray) + || op.responses.stream().anyMatch(CodegenResponse::getIsArray)) { requiredImplImports.add("List"); op.imports.add("List"); } if (op.bodyParams.stream().anyMatch(JavaHelidonClientCodegen::checkIsMap) - || op.allParams.stream().anyMatch(JavaHelidonClientCodegen::checkIsMap) - || op.responses.stream().anyMatch(CodegenResponse::getIsMap)) { + || op.allParams.stream().anyMatch(JavaHelidonClientCodegen::checkIsMap) + || op.responses.stream().anyMatch(CodegenResponse::getIsMap)) { requiredImplImports.add("Map"); op.imports.add("Map"); } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaHelidonCommonCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaHelidonCommonCodegen.java index 5808e1c0069..3ca11c46b99 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaHelidonCommonCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaHelidonCommonCodegen.java @@ -17,6 +17,26 @@ package org.openapitools.codegen.languages; +import io.swagger.v3.oas.models.Operation; +import io.swagger.v3.oas.models.parameters.Parameter; +import io.swagger.v3.oas.models.responses.ApiResponse; +import io.swagger.v3.oas.models.servers.Server; +import lombok.Getter; +import org.apache.commons.lang3.StringUtils; +import org.eclipse.aether.util.version.GenericVersionScheme; +import org.eclipse.aether.version.InvalidVersionSpecificationException; +import org.eclipse.aether.version.Version; +import org.eclipse.aether.version.VersionConstraint; +import org.eclipse.aether.version.VersionScheme; +import org.openapitools.codegen.*; +import org.openapitools.codegen.languages.features.BeanValidationFeatures; +import org.openapitools.codegen.languages.features.PerformBeanValidationFeatures; +import org.openapitools.codegen.model.ModelMap; +import org.openapitools.codegen.model.OperationMap; +import org.openapitools.codegen.model.OperationsMap; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.io.File; import java.io.IOException; import java.io.InputStream; @@ -29,16 +49,7 @@ import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.time.Duration; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Scanner; -import java.util.Set; -import java.util.StringJoiner; -import java.util.TreeMap; +import java.util.*; import java.util.concurrent.locks.ReentrantLock; import java.util.prefs.BackingStoreException; import java.util.prefs.Preferences; @@ -46,42 +57,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; -import io.swagger.v3.oas.models.Operation; -import io.swagger.v3.oas.models.parameters.Parameter; -import io.swagger.v3.oas.models.responses.ApiResponse; -import io.swagger.v3.oas.models.servers.Server; -import lombok.Getter; -import org.apache.commons.lang3.StringUtils; -import org.eclipse.aether.util.version.GenericVersionScheme; -import org.eclipse.aether.version.InvalidVersionSpecificationException; -import org.eclipse.aether.version.Version; -import org.eclipse.aether.version.VersionConstraint; -import org.eclipse.aether.version.VersionScheme; -import org.openapitools.codegen.CliOption; -import org.openapitools.codegen.CodegenConstants; -import org.openapitools.codegen.CodegenOperation; -import org.openapitools.codegen.CodegenParameter; -import org.openapitools.codegen.CodegenProperty; -import org.openapitools.codegen.CodegenResponse; -import org.openapitools.codegen.SupportingFile; -import org.openapitools.codegen.languages.features.BeanValidationFeatures; -import org.openapitools.codegen.languages.features.PerformBeanValidationFeatures; -import org.openapitools.codegen.model.ModelMap; -import org.openapitools.codegen.model.OperationMap; -import org.openapitools.codegen.model.OperationsMap; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import static org.openapitools.codegen.CodegenConstants.DEVELOPER_EMAIL; -import static org.openapitools.codegen.CodegenConstants.DEVELOPER_NAME; -import static org.openapitools.codegen.CodegenConstants.DEVELOPER_ORGANIZATION; -import static org.openapitools.codegen.CodegenConstants.DEVELOPER_ORGANIZATION_URL; -import static org.openapitools.codegen.CodegenConstants.PARENT_ARTIFACT_ID; -import static org.openapitools.codegen.CodegenConstants.PARENT_GROUP_ID; -import static org.openapitools.codegen.CodegenConstants.PARENT_VERSION; -import static org.openapitools.codegen.CodegenConstants.SCM_CONNECTION; -import static org.openapitools.codegen.CodegenConstants.SCM_DEVELOPER_CONNECTION; -import static org.openapitools.codegen.CodegenConstants.SCM_URL; +import static org.openapitools.codegen.CodegenConstants.*; public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen implements BeanValidationFeatures, PerformBeanValidationFeatures { @@ -120,8 +96,8 @@ public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen // for generated doc static final String MICROPROFILE_ROOT_PACKAGE_DEFAULT = - "Helidon 2.x and earlier: " + MICROPROFILE_ROOT_PACKAGE_JAVAX - + "; Helidon 3.x and later: " + MICROPROFILE_ROOT_PACKAGE_JAKARTA; + "Helidon 2.x and earlier: " + MICROPROFILE_ROOT_PACKAGE_JAVAX + + "; Helidon 3.x and later: " + MICROPROFILE_ROOT_PACKAGE_JAKARTA; static final String SERIALIZATION_LIBRARY_JACKSON = "jackson"; static final String SERIALIZATION_LIBRARY_JSONB = "jsonb"; @@ -132,8 +108,8 @@ public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen static final String V3_STYLE = "x-helidon-v3"; static final String HELIDON_VERSION_DESC = "Helidon complete version identifier or major version number. " - + "The specified exact Helidon release or, if specified as a major version the latest release of that major version, " - + " is used in the generated code."; + + "The specified exact Helidon release or, if specified as a major version the latest release of that major version, " + + " is used in the generated code."; static final String X_HELIDON_USE_OPTIONAL = "x-helidon-useOptional"; static final String X_HELIDON_USE_OPTIONAL_DESC = "Wrap optional parameters in an Optional (Helidon 4 and later)"; @@ -216,7 +192,7 @@ public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen knownHttpStatusMap = loadKnownHttpStatusMap(); } - @Override + @Override public void processOpts() { super.processOpts(); @@ -238,7 +214,7 @@ public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen if (!userHelidonVersion.isEmpty()) { if (!userParentVersion.isEmpty() && !userHelidonVersion.equals(userParentVersion)) { throw new IllegalArgumentException( - String.format(Locale.ROOT, + String.format(Locale.ROOT, "Both %s and %s properties were set with different value.", CodegenConstants.PARENT_VERSION, HELIDON_VERSION)); @@ -283,7 +259,7 @@ public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen By convention, the operation's baseName is assigned the name of the group (API) in which it is placed. */ String pathPrefixWithoutLeadingSlash = StringUtils.substringBefore(StringUtils.removeStart(resourcePath, "/"), - "/"); + "/"); String groupName = (groupBy == GroupBy.TAGS) ? tag : sanitizeName(pathPrefixWithoutLeadingSlash); @@ -354,10 +330,10 @@ public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen for each operation. */ String commonPathPrefixForApi = commonPathPrefix(objs.getOperations().getOperation() - .stream() - .map(op -> op.path) - .map(path -> path.charAt(0) != '/' ? "/" + path : path ) - .toArray(String[]::new)); + .stream() + .map(op -> op.path) + .map(path -> path.charAt(0) != '/' ? "/" + path : path) + .toArray(String[]::new)); String commonPathPrefix; if (commonPathPrefixForApi.equals("/")) { commonPathPrefix = "/"; @@ -374,19 +350,20 @@ public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen objs.getOperations().getOperation().forEach(op -> { if (commonPathPrefix.length() > 1) { op.vendorExtensions.put(X_PATH_SUFFIX, - op.path.equals(commonPathPrefix) ? "/" : op.path.substring(commonPathPrefix.length())); + op.path.equals(commonPathPrefix) ? "/" : op.path.substring(commonPathPrefix.length())); } else { op.vendorExtensions.put(X_PATH_SUFFIX, op.path); mismatchedOperations.add("operation = " + op.operationId + ", path = " + op.path); - }}); + } + }); if (!mismatchedOperations.isEmpty()) { LOGGER.warn( "Grouping operations by tag has placed operations into API '{}' for which the generated " - + "routing works inefficiently because the operation paths do not share a common path prefix. " - + "Consider specifying the generator option '" - + HELIDON_GROUP_BY - + " {}' or changing the tag settings or path in your OpenAPI document for the following operations: {}{}", + + "routing works inefficiently because the operation paths do not share a common path prefix. " + + "Consider specifying the generator option '" + + HELIDON_GROUP_BY + + " {}' or changing the tag settings or path in your OpenAPI document for the following operations: {}{}", objs.getOperations().getClassname(), GroupBy.FIRST_PATH_SEGMENT.groupingName, System.lineSeparator(), @@ -422,7 +399,7 @@ public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen * If property is unspecified, then check if sources are already there and avoid overwriting * modifiable files. * - * @param modifiable list of modifiable files to be processed + * @param modifiable list of modifiable files to be processed * @param unmodifiable list of unmodifiable files to be processed */ protected void processSupportingFiles(List modifiable, List unmodifiable) { @@ -444,7 +421,7 @@ public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen * @return outcome of test */ protected boolean projectFilesExist() { - return Paths.get(getOutputTestFolder()).toFile().exists(); + return Paths.get(getOutputTestFolder()).toFile().exists(); } protected String rootJavaEEPackage() { @@ -494,15 +471,16 @@ public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen /** * Prepares a map of predefined HTTP status code constants. *

    - * Helidon uses its own HTTP status type, and the Helidon code predefines many HTTP status code constants but also allows - * ad hoc creation of other values based on the numeric status value. It's more efficient at runtime to use a constant - * if it exists. + * Helidon uses its own HTTP status type, and the Helidon code predefines many HTTP status code constants but also allows + * ad hoc creation of other values based on the numeric status value. It's more efficient at runtime to use a constant + * if it exists. *

    - * This method scans a copy of the Helidon Java file which contains the predefined constants and prepares a map - * from the string representation of the numeric code to the Helidon constant name. This table allows us, when we are - * generating the Response records for an operation, to use the Helidon predefined constant--if it exists--for the - * response code declared for an operation in the OpenAPI document. + * This method scans a copy of the Helidon Java file which contains the predefined constants and prepares a map + * from the string representation of the numeric code to the Helidon constant name. This table allows us, when we are + * generating the Response records for an operation, to use the Helidon predefined constant--if it exists--for the + * response code declared for an operation in the OpenAPI document. *

    + * * @return prepared map */ private HashMap loadKnownHttpStatusMap() { @@ -511,12 +489,12 @@ public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen throw new RuntimeException("Unable to locate /java-helidon/common/Status.java to discover known HTTP statuses"); } Pattern statusPattern = Pattern.compile("public static final Status (\\w+)\\s*=\\s*new\\s*Status\\((\\d+)", - Pattern.MULTILINE); + Pattern.MULTILINE); return new Scanner(is, StandardCharsets.UTF_8) .findAll(statusPattern) .collect(HashMap::new, - (map, match) -> map.put(match.group(2), match.group(1)), - Map::putAll); + (map, match) -> map.put(match.group(2), match.group(1)), + Map::putAll); } catch (IOException e) { throw new RuntimeException(e); @@ -538,9 +516,9 @@ public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen additionalProperties.put(MICROPROFILE_ROOT_DEP_PREFIX, rootJavaEEDepPrefix); additionalProperties.put(VALIDATION_ARTIFACT_PREFIX_KEY, - rootJavaEEDepPrefix.equals(MICROPROFILE_ROOT_PACKAGE_JAVAX) - ? VALIDATION_ARTIFACT_PREFIX_JAVAX - : VALIDATION_ARTIFACT_PREFIX_JAKARTA); + rootJavaEEDepPrefix.equals(MICROPROFILE_ROOT_PACKAGE_JAVAX) + ? VALIDATION_ARTIFACT_PREFIX_JAVAX + : VALIDATION_ARTIFACT_PREFIX_JAKARTA); } @@ -558,9 +536,9 @@ public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen private void setMediaPackageInfo() { additionalProperties.put(X_MEDIA_SUPPORT_PACKAGE_PREFIX, - (helidonMajorVersion >= 4) ? "io.helidon.http.media" : "io.helidon.media"); + (helidonMajorVersion >= 4) ? "io.helidon.http.media" : "io.helidon.media"); additionalProperties.put(X_MEDIA_COMMON_MEDIA_TYPE_PACKAGE_PREFIX, - (helidonMajorVersion >= 4) ? "io.helidon.common.media.type" : "io.helidon.common.http"); + (helidonMajorVersion >= 4) ? "io.helidon.common.media.type" : "io.helidon.common.http"); } private void setUseReactive() { @@ -582,19 +560,19 @@ public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen private String checkAndSelectRootEEPackage(String version) { String packagePrefixImpliedByVersion = usesJakartaPackages(version) - ? MICROPROFILE_ROOT_PACKAGE_JAKARTA - : MICROPROFILE_ROOT_PACKAGE_JAVAX; + ? MICROPROFILE_ROOT_PACKAGE_JAKARTA + : MICROPROFILE_ROOT_PACKAGE_JAVAX; // Make sure any user-specified root EE package is correct for the chosen Helidon version. if (additionalProperties.containsKey(MICROPROFILE_ROOT_PACKAGE)) { String userRootEEPackage = additionalProperties.get(MICROPROFILE_ROOT_PACKAGE).toString(); if (!packagePrefixImpliedByVersion.equals(userRootEEPackage)) { throw new IllegalArgumentException( - String.format(Locale.ROOT, - "Helidon version %s uses the %s namespace but options specified '%s'", - version, - packagePrefixImpliedByVersion, - userRootEEPackage)); + String.format(Locale.ROOT, + "Helidon version %s uses the %s namespace but options specified '%s'", + version, + packagePrefixImpliedByVersion, + userRootEEPackage)); } return userRootEEPackage; } @@ -605,19 +583,19 @@ public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen private String checkAndSelectRootEEDepPrefix(String version) { String mavenDepPrefixImpliedByVersion = usesJakartaPrefix(version) - ? MICROPROFILE_ROOT_PACKAGE_JAKARTA - : MICROPROFILE_ROOT_PACKAGE_JAVAX; + ? MICROPROFILE_ROOT_PACKAGE_JAKARTA + : MICROPROFILE_ROOT_PACKAGE_JAVAX; // Make sure any user-specified prefix is correct for the chosen Helidon version. if (additionalProperties.containsKey(MICROPROFILE_ROOT_DEP_PREFIX)) { String userMavenDepPrefix = additionalProperties.get(MICROPROFILE_ROOT_DEP_PREFIX).toString(); if (!mavenDepPrefixImpliedByVersion.equals(userMavenDepPrefix)) { throw new IllegalArgumentException( - String.format(Locale.ROOT, - "Helidon version %s uses the %s prefix for EE dependencies but options specified '%s'", - version, - mavenDepPrefixImpliedByVersion, - userMavenDepPrefix)); + String.format(Locale.ROOT, + "Helidon version %s uses the %s prefix for EE dependencies but options specified '%s'", + version, + mavenDepPrefixImpliedByVersion, + userMavenDepPrefix)); } return userMavenDepPrefix; } @@ -665,41 +643,42 @@ public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen return "java.util.Collections.empty" + EXAMPLE_RETURN_VALUES.get(op.returnContainer) + "()"; } switch (op.returnType) { - case "Integer": - return "new Integer(0)"; + case "Integer": + return "new Integer(0)"; - case "byte[]": - return "new byte[0]"; + case "byte[]": + return "new byte[0]"; - case "Float": - return "new Float(0.0f)"; + case "Float": + return "new Float(0.0f)"; - case "boolean": - return "false"; + case "boolean": + return "false"; - case "Long": - return "new Long(0L)"; + case "Long": + return "new Long(0L)"; - case "Object": - return "new Object()"; + case "Object": + return "new Object()"; - case "String": - return "\"\""; + case "String": + return "\"\""; - case "Boolean": - return "new Boolean(false)"; + case "Boolean": + return "new Boolean(false)"; - case "Double": - return "new Double(0.0d)"; + case "Double": + return "new Double(0.0d)"; - default: - return "null"; + default: + return "null"; } } public static class GenericTypeDeclaration { @Getter private final String collectionType; @Getter private final String baseType; + public GenericTypeDeclaration(String collectionType, String baseType) { this.collectionType = collectionType; this.baseType = baseType; @@ -756,12 +735,12 @@ public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen private final System.Logger LOGGER = System.getLogger(VersionUtil.class.getName()); private static final String DEFAULT_VERSIONS = "\n" + - " \n" + - " 2.6.10\n" + - " 3.2.11\n" + - " 4.1.4\n" + - " \n" + - ""; + " \n" + + " 2.6.10\n" + + " 3.2.11\n" + + " 4.1.4\n" + + " \n" + + ""; private static VersionUtil INSTANCE = null; private static ReentrantLock lock = new ReentrantLock(); @@ -811,7 +790,7 @@ public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen } /** - * Returns either the best match version or, if there is none, the requested version itself to allow references to + * Returns either the best match version or, if there is none, the requested version itself to allow references to * unpublished releases such as snapshots. * * @param requestedVersion version to search for @@ -825,7 +804,7 @@ public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen * Returns either the best match version or, if there is none, the requested version itself to allow references to * unpublished releases such as snapshots. * - * @param requestedVersion version to search for + * @param requestedVersion version to search for * @param candidateVersions releases to consider * @return either the best match or, if none, the requested version itself */ @@ -843,11 +822,11 @@ public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen *
  • a Maven version range
  • * * - * @param requestedVersion version to search for + * @param requestedVersion version to search for * @param candidateVersions releases to consider * @return matching version */ - String chooseVersion(String requestedVersion, List candidateVersions) { + String chooseVersion(String requestedVersion, List candidateVersions) { VersionScheme versionScheme = new GenericVersionScheme(); @@ -863,8 +842,8 @@ public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen try { candidateVersion = versionScheme.parseVersion(candidate); } catch (InvalidVersionSpecificationException ex) { - LOGGER.log(System.Logger.Level.WARNING, "Error parsing candidate version '" + candidate + "'", ex); - continue; + LOGGER.log(System.Logger.Level.WARNING, "Error parsing candidate version '" + candidate + "'", ex); + continue; } if (requestedConstraint.containsVersion(candidateVersion)) { if (bestMatch == null || bestMatch.compareTo(candidateVersion) <= 0) { @@ -883,23 +862,23 @@ public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen int asSingleNumber = Integer.parseUnsignedInt(requestedVersion); try { return versionScheme.parseVersionConstraint(String.format(Locale.getDefault(), - "[%s,%d-alpha)", - requestedVersion, - asSingleNumber + 1)); + "[%s,%d-alpha)", + requestedVersion, + asSingleNumber + 1)); } catch (InvalidVersionSpecificationException ex) { throw new RuntimeException("Error preparing constraint for version expression '" - + requestedVersion - + "' treated as major version " + asSingleNumber, - ex); + + requestedVersion + + "' treated as major version " + asSingleNumber, + ex); } } catch (NumberFormatException nfe) { try { return versionScheme.parseVersionConstraint(requestedVersion); } catch (InvalidVersionSpecificationException ex) { throw new RuntimeException("Error parsing version expression '" - + requestedVersion - + "' as a version constraint", - ex); + + requestedVersion + + "' as a version constraint", + ex); } } } @@ -935,7 +914,7 @@ public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen LOGGER.log(System.Logger.Level.DEBUG, "Saved retrieved versions in preferences"); } else { LOGGER.log(System.Logger.Level.INFO, - "Unable to retrieve versions remotely; using local preferences or hard-wired defaults"); + "Unable to retrieve versions remotely; using local preferences or hard-wired defaults"); // Try to get versions from preferences. versions = versionPrefs.get(VERSIONS_KEY, DEFAULT_VERSIONS); } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaHelidonServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaHelidonServerCodegen.java index 54cfe6574b0..9ad8110eef0 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaHelidonServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaHelidonServerCodegen.java @@ -17,33 +17,12 @@ package org.openapitools.codegen.languages; -import java.io.File; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.stream.Stream; - -import com.google.common.collect.Streams; import io.swagger.v3.oas.models.Operation; import io.swagger.v3.oas.models.media.Schema; -import io.swagger.v3.oas.models.parameters.Parameter; import io.swagger.v3.oas.models.responses.ApiResponse; import io.swagger.v3.oas.models.servers.Server; import lombok.Getter; -import org.openapitools.codegen.CliOption; -import org.openapitools.codegen.CodegenConstants; -import org.openapitools.codegen.CodegenModel; -import org.openapitools.codegen.CodegenOperation; -import org.openapitools.codegen.CodegenParameter; -import org.openapitools.codegen.CodegenProperty; -import org.openapitools.codegen.CodegenResponse; -import org.openapitools.codegen.CodegenType; -import org.openapitools.codegen.SupportingFile; +import org.openapitools.codegen.*; import org.openapitools.codegen.meta.GeneratorMetadata; import org.openapitools.codegen.meta.Stability; import org.openapitools.codegen.meta.features.DocumentationFeature; @@ -53,6 +32,11 @@ import org.openapitools.codegen.model.OperationsMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.File; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.*; + import static org.openapitools.codegen.utils.StringUtils.camelize; public class JavaHelidonServerCodegen extends JavaHelidonCommonCodegen { @@ -214,12 +198,12 @@ public class JavaHelidonServerCodegen extends JavaHelidonCommonCodegen { (sourceFolder + File.separator + invokerPackage).replace(".", java.io.File.separator), "Main.java")); unmodifiable.add(new SupportingFile("validatorUtils.mustache", - apiFolder(), - "ValidatorUtils.java")); + apiFolder(), + "ValidatorUtils.java")); if (helidonMajorVersion > 3 && useAbstractClass) { unmodifiable.add(new SupportingFile("partsUtils.mustache", - apiFolder(), - "PartsUtils.java")); + apiFolder(), + "PartsUtils.java")); } if (useAbstractClass) { importMapping.put("HashMap", "java.util.HashMap"); @@ -232,9 +216,9 @@ public class JavaHelidonServerCodegen extends JavaHelidonCommonCodegen { } importMapping.put("Map", "java.util.Map"); importMapping.put("ReadableBodyPart", // use the old ReadableBodyPart name for backward compatibility - (helidonMajorVersion <= 3) - ? "io.helidon.media.multipart.ReadableBodyPart" - : "io.helidon.http.media.multipart.ReadablePart"); + (helidonMajorVersion <= 3) + ? "io.helidon.media.multipart.ReadableBodyPart" + : "io.helidon.http.media.multipart.ReadablePart"); importMapping.put("Handler", "io.helidon.webserver." + (helidonMajorVersion != 3 ? "http." : "") + "Handler"); importMapping.put("GenericType", "io.helidon.common.GenericType"); importMapping.put("GenericTypes", modelPackage + ".GenericTypes"); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaInflectorServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaInflectorServerCodegen.java index 680a98320a6..ae73860f8c2 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaInflectorServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaInflectorServerCodegen.java @@ -48,7 +48,7 @@ public class JavaInflectorServerCodegen extends AbstractJavaCodegen { modifyFeatureSet(features -> features.includeDocumentationFeatures(DocumentationFeature.Readme)); - sourceFolder = "src"+ File.separator+"gen"+ File.separator +"java"; + sourceFolder = "src" + File.separator + "gen" + File.separator + "java"; apiTestTemplateFiles.clear(); // TODO: add test template embeddedTemplateDir = templateDir = "JavaInflector"; invokerPackage = "org.openapitools.controllers"; @@ -73,7 +73,7 @@ public class JavaInflectorServerCodegen extends AbstractJavaCodegen { additionalProperties.put("title", title); // java inflector uses the jackson lib - this.jackson = true; + this.jackson = true; } @Override diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJAXRSCXFCDIServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJAXRSCXFCDIServerCodegen.java index d4b5b2c21cb..15fe62076a5 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJAXRSCXFCDIServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJAXRSCXFCDIServerCodegen.java @@ -17,7 +17,10 @@ package org.openapitools.codegen.languages; -import org.openapitools.codegen.*; +import org.openapitools.codegen.CodegenConstants; +import org.openapitools.codegen.CodegenModel; +import org.openapitools.codegen.CodegenProperty; +import org.openapitools.codegen.SupportingFile; import org.openapitools.codegen.languages.features.BeanValidationFeatures; import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.OperationsMap; @@ -75,17 +78,17 @@ public class JavaJAXRSCXFCDIServerCodegen extends JavaJAXRSSpecServerCodegen imp // POM supportingFiles.add(new SupportingFile("pom.mustache", "", "pom.xml") - .doNotOverwrite()); + .doNotOverwrite()); // RestApplication into src/main/java supportingFiles.add(new SupportingFile("RestApplication.mustache", (implFolder + '/' + invokerPackage).replace(".", "/"), "RestApplication.java") - .doNotOverwrite()); + .doNotOverwrite()); // Make CDI work in containers with implicit archive scanning disabled supportingFiles.add(new SupportingFile("beans.mustache", "src/main/webapp/WEB-INF", "beans.xml") - .doNotOverwrite()); + .doNotOverwrite()); } @Override diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJAXRSSpecServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJAXRSSpecServerCodegen.java index a0092f6ad9d..90df4e8463e 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJAXRSSpecServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJAXRSSpecServerCodegen.java @@ -23,9 +23,9 @@ import lombok.Setter; import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.*; import org.openapitools.codegen.meta.features.DocumentationFeature; +import org.openapitools.codegen.meta.features.SecurityFeature; import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.OperationsMap; -import org.openapitools.codegen.meta.features.SecurityFeature; import java.io.File; import java.util.List; @@ -148,7 +148,7 @@ public class JavaJAXRSSpecServerCodegen extends AbstractJavaJAXRSServerCodegen { } else { convertPropertyToBooleanAndWriteBack(USE_SWAGGER_ANNOTATIONS, value -> useSwaggerAnnotations = value); } - if (KUMULUZEE_LIBRARY.equals(library)){ + if (KUMULUZEE_LIBRARY.equals(library)) { super.setSourceFolder("src/main/java"); } @@ -164,9 +164,9 @@ public class JavaJAXRSSpecServerCodegen extends AbstractJavaJAXRSServerCodegen { if (additionalProperties.containsKey(OPEN_API_SPEC_FILE_LOCATION)) { openApiSpecFileLocation = additionalProperties.get(OPEN_API_SPEC_FILE_LOCATION).toString(); - } else if(QUARKUS_LIBRARY.equals(library) || THORNTAIL_LIBRARY.equals(library) || HELIDON_LIBRARY.equals(library) || KUMULUZEE_LIBRARY.equals(library)) { + } else if (QUARKUS_LIBRARY.equals(library) || THORNTAIL_LIBRARY.equals(library) || HELIDON_LIBRARY.equals(library) || KUMULUZEE_LIBRARY.equals(library)) { openApiSpecFileLocation = "src/main/resources/META-INF/openapi.yaml"; - } else if(OPEN_LIBERTY_LIBRARY.equals(library)) { + } else if (OPEN_LIBERTY_LIBRARY.equals(library)) { openApiSpecFileLocation = "src/main/webapp/META-INF/openapi.yaml"; } @@ -181,25 +181,25 @@ public class JavaJAXRSSpecServerCodegen extends AbstractJavaJAXRSServerCodegen { supportingFiles.clear(); // Don't need extra files provided by AbstractJAX-RS & Java Codegen supportingFiles.add(new SupportingFile("README.mustache", "", "README.md") - .doNotOverwrite()); + .doNotOverwrite()); supportingFiles.add(new SupportingFile("RestResourceRoot.mustache", (sourceFolder + '/' + invokerPackage).replace(".", "/"), "RestResourceRoot.java") .doNotOverwrite()); if (generatePom) { supportingFiles.add(new SupportingFile("pom.mustache", "", "pom.xml") - .doNotOverwrite()); + .doNotOverwrite()); } supportingFiles.add(new SupportingFile("RestApplication.mustache", (sourceFolder + '/' + invokerPackage).replace(".", "/"), "RestApplication.java") .doNotOverwrite()); - if(StringUtils.isNotEmpty(openApiSpecFileLocation)) { + if (StringUtils.isNotEmpty(openApiSpecFileLocation)) { int index = openApiSpecFileLocation.lastIndexOf('/'); String fileFolder; String fileName; - if(index >= 0) { + if (index >= 0) { fileFolder = openApiSpecFileLocation.substring(0, index); fileName = openApiSpecFileLocation.substring(index + 1); } else { @@ -209,7 +209,7 @@ public class JavaJAXRSSpecServerCodegen extends AbstractJavaJAXRSServerCodegen { supportingFiles.add(new SupportingFile("openapi.mustache", fileFolder, fileName)); } - if(QUARKUS_LIBRARY.equals(library)) { + if (QUARKUS_LIBRARY.equals(library)) { supportingFiles.add(new SupportingFile("application.properties.mustache", "src/main/resources", "application.properties") .doNotOverwrite()); supportingFiles.add(new SupportingFile("Dockerfile.jvm.mustache", "src/main/docker", "Dockerfile.jvm") @@ -218,7 +218,7 @@ public class JavaJAXRSSpecServerCodegen extends AbstractJavaJAXRSServerCodegen { .doNotOverwrite()); supportingFiles.add(new SupportingFile("dockerignore.mustache", "", ".dockerignore") .doNotOverwrite()); - } else if(OPEN_LIBERTY_LIBRARY.equals(library)) { + } else if (OPEN_LIBERTY_LIBRARY.equals(library)) { supportingFiles.add(new SupportingFile("server.xml.mustache", "src/main/liberty/config", "server.xml") .doNotOverwrite()); supportingFiles.add(new SupportingFile("beans.xml.mustache", "src/main/webapp/META-INF", "beans.xml") @@ -229,7 +229,7 @@ public class JavaJAXRSSpecServerCodegen extends AbstractJavaJAXRSServerCodegen { .doNotOverwrite()); supportingFiles.add(new SupportingFile("ibm-web-ext.xml.mustache", "src/main/webapp/WEB-INF", "ibm-web-ext.xml") .doNotOverwrite()); - } else if(HELIDON_LIBRARY.equals(library)) { + } else if (HELIDON_LIBRARY.equals(library)) { additionalProperties.computeIfAbsent("helidonVersion", key -> "2.4.1"); supportingFiles.add(new SupportingFile("logging.properties.mustache", "src/main/resources", "logging.properties") .doNotOverwrite()); @@ -237,7 +237,7 @@ public class JavaJAXRSSpecServerCodegen extends AbstractJavaJAXRSServerCodegen { .doNotOverwrite()); supportingFiles.add(new SupportingFile("beans.xml.mustache", "src/main/resources/META-INF", "beans.xml") .doNotOverwrite()); - } else if(KUMULUZEE_LIBRARY.equals(library)) { + } else if (KUMULUZEE_LIBRARY.equals(library)) { supportingFiles.add(new SupportingFile("config.yaml.mustache", "src/main/resources", "config.yaml")); } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJerseyServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJerseyServerCodegen.java index 27763fcb5ef..ba16829bb40 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJerseyServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJerseyServerCodegen.java @@ -25,13 +25,15 @@ import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.ModelsMap; import org.openapitools.codegen.model.OperationsMap; -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; public class JavaJerseyServerCodegen extends AbstractJavaJAXRSServerCodegen { protected static final String LIBRARY_JERSEY2 = "jersey2"; protected static final String LIBRARY_JERSEY3 = "jersey3"; - + /** * Default library template to use. (Default: jersey2) */ @@ -89,12 +91,12 @@ public class JavaJerseyServerCodegen extends AbstractJavaJAXRSServerCodegen { model.imports.add("JsonValue"); } } - + // --- Imports for Swagger2 ------------- if (this.isLibrary(LIBRARY_JERSEY3)) { model.imports.add("Schema"); } - + } @Override @@ -104,7 +106,7 @@ public class JavaJerseyServerCodegen extends AbstractJavaJAXRSServerCodegen { // use default library if unset if (StringUtils.isEmpty(library)) { this.setLibrary(DEFAULT_JERSEY_LIBRARY); - + } else if (this.isLibrary(LIBRARY_JERSEY3)) { // --- Ensure to use Jakarta for jersey3 ---- this.setUseJakartaEe(true); @@ -112,9 +114,9 @@ public class JavaJerseyServerCodegen extends AbstractJavaJAXRSServerCodegen { this.applyJakartaPackage(); // --- Set Swagger2 annotations --------------- annotationLibrary = AnnotationLibrary.SWAGGER2; - + } - + convertPropertyToStringAndWriteBack(CodegenConstants.IMPL_FOLDER, value -> implFolder = value); if ("joda".equals(dateLibrary)) { supportingFiles.add(new SupportingFile("JodaDateTimeProvider.mustache", (sourceFolder + '/' + apiPackage).replace(".", "/"), "JodaDateTimeProvider.java")); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaMicronautAbstractCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaMicronautAbstractCodegen.java index 3a375047bc0..0ff8db956a4 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaMicronautAbstractCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaMicronautAbstractCodegen.java @@ -29,9 +29,9 @@ import static org.openapitools.codegen.CodegenConstants.INVOKER_PACKAGE; /** * @deprecated WARNING! This generator is outdated. Please use the official generator for Micronaut: - * micronaut-openapi with the help of the plugin for - * Gradle and - * Maven. + * micronaut-openapi with the help of the plugin for + * Gradle and + * Maven. */ @SuppressWarnings("removal") @Deprecated(forRemoval = true) @@ -61,6 +61,7 @@ public abstract class JavaMicronautAbstractCodegen extends AbstractJavaCodegen i public static final String OPT_GENERATE_SWAGGER_ANNOTATIONS_TRUE = "true"; public static final String OPT_GENERATE_SWAGGER_ANNOTATIONS_FALSE = "false"; public static final String OPT_GENERATE_OPERATION_ONLY_FOR_FIRST_TAG = "generateOperationOnlyForFirstTag"; + public enum SERIALIZATION_LIBRARY_TYPE {jackson, micronaut_serde_jackson} protected final Logger LOGGER = LoggerFactory.getLogger(JavaMicronautAbstractCodegen.class); @@ -548,7 +549,7 @@ public abstract class JavaMicronautAbstractCodegen extends AbstractJavaCodegen i public Map postProcessAllModels(Map objs) { objs = super.postProcessAllModels(objs); - for (ModelsMap models: objs.values()) { + for (ModelsMap models : objs.values()) { CodegenModel model = models.getModels().get(0).getModel(); if (model.getParentModel() != null) { model.vendorExtensions.put("requiredParentVars", model.getParentModel().requiredVars); @@ -635,7 +636,7 @@ public abstract class JavaMicronautAbstractCodegen extends AbstractJavaCodegen i if (requiredPropertiesInConstructor) { StringBuilder builder = new StringBuilder(); if (isProperty) { - dataType = importMapping.getOrDefault(dataType, modelPackage + '.' + dataType); + dataType = importMapping.getOrDefault(dataType, modelPackage + '.' + dataType); } builder.append("new ").append(dataType).append("("); for (int i = 0; i < requiredVars.size(); ++i) { @@ -699,7 +700,7 @@ public abstract class JavaMicronautAbstractCodegen extends AbstractJavaCodegen i @Override protected ImmutableMap.Builder addMustacheLambdas() { return super.addMustacheLambdas() - .put("replaceDotsWithUnderscore", new ReplaceDotsWithUnderscoreLambda()); + .put("replaceDotsWithUnderscore", new ReplaceDotsWithUnderscoreLambda()); } private static class ReplaceDotsWithUnderscoreLambda implements Mustache.Lambda { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaMicronautClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaMicronautClientCodegen.java index f6d5a67567d..75fb319d143 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaMicronautClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaMicronautClientCodegen.java @@ -1,8 +1,5 @@ package org.openapitools.codegen.languages; -import java.util.Arrays; -import java.util.List; - import lombok.Getter; import lombok.Setter; import org.openapitools.codegen.CliOption; @@ -11,11 +8,14 @@ import org.openapitools.codegen.SupportingFile; import org.openapitools.codegen.meta.GeneratorMetadata; import org.openapitools.codegen.meta.Stability; +import java.util.Arrays; +import java.util.List; + /** * @deprecated WARNING! This generator is outdated. Please use the official generator for Micronaut: - * micronaut-openapi with the help of the plugin for - * Gradle and - * Maven. + * micronaut-openapi with the help of the plugin for + * Gradle and + * Maven. */ @SuppressWarnings("removal") @Deprecated(forRemoval = true) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaMicronautServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaMicronautServerCodegen.java index f71bfe4f053..5b909ed7f8f 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaMicronautServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaMicronautServerCodegen.java @@ -7,6 +7,7 @@ import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.OperationMap; import org.openapitools.codegen.model.OperationsMap; import org.openapitools.codegen.utils.StringUtils; + import java.io.File; import java.util.Collections; import java.util.List; @@ -14,9 +15,9 @@ import java.util.stream.Collectors; /** * @deprecated WARNING! This generator is outdated. Please use the official generator for Micronaut: - * micronaut-openapi with the help of the plugin for - * Gradle and - * Maven. + * micronaut-openapi with the help of the plugin for + * Gradle and + * Maven. */ @SuppressWarnings("removal") @Deprecated(forRemoval = true) @@ -66,8 +67,8 @@ public class JavaMicronautServerCodegen extends JavaMicronautAbstractCodegen { generateControllerFromExamples)); cliOptions.add(CliOption.newBoolean(OPT_GENERATE_CONTROLLER_AS_ABSTRACT, "Generate an abstract class for controller to be extended. (" + CodegenConstants.API_PACKAGE + - " is then used for the abstract class, and " + OPT_CONTROLLER_PACKAGE + - " is used for implementation that extends it.)", + " is then used for the abstract class, and " + OPT_CONTROLLER_PACKAGE + + " is used for implementation that extends it.)", generateControllerAsAbstract)); cliOptions.add(CliOption.newBoolean(OPT_GENERATE_OPERATIONS_TO_RETURN_NOT_IMPLEMENTED, "Return HTTP 501 Not Implemented instead of an empty response in the generated controller methods.", diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaMicroprofileServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaMicroprofileServerCodegen.java index d9719592d0a..0703d0b2cdd 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaMicroprofileServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaMicroprofileServerCodegen.java @@ -1,8 +1,5 @@ package org.openapitools.codegen.languages; -import java.io.File; -import java.util.List; - import org.openapitools.codegen.CodegenOperation; import org.openapitools.codegen.CodegenResponse; import org.openapitools.codegen.CodegenType; @@ -10,6 +7,9 @@ import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.OperationMap; import org.openapitools.codegen.model.OperationsMap; +import java.io.File; +import java.util.List; + public class JavaMicroprofileServerCodegen extends JavaClientCodegen { public static final String PROJECT_NAME = "projectName"; public static final String MICROPROFILE_SERVER = "microprofileServer"; @@ -40,6 +40,7 @@ public class JavaMicroprofileServerCodegen extends JavaClientCodegen { public String getHelp() { return "Generates a microprofile server."; } + @Override public void processOpts() { super.processOpts(); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaPKMSTServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaPKMSTServerCodegen.java index 351242ad353..cc6202bac89 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaPKMSTServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaPKMSTServerCodegen.java @@ -561,7 +561,8 @@ public class JavaPKMSTServerCodegen extends AbstractJavaCodegen { void setReturnContainer(String returnContainer); } - @Getter @Setter + @Getter + @Setter private static class ResourcePath { private String path; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaPlayFrameworkCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaPlayFrameworkCodegen.java index 72deea70ce2..9f2743be01d 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaPlayFrameworkCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaPlayFrameworkCodegen.java @@ -341,7 +341,7 @@ public class JavaPlayFrameworkCodegen extends AbstractJavaCodegen implements Bea @Override public CodegenSecurity filterByScopeNames(List filterScopes) { CodegenSecurity codegenSecurity = super.filterByScopeNames(filterScopes); - ExtendedCodegenSecurity extendedCodegenSecurity = new ExtendedCodegenSecurity(codegenSecurity); + ExtendedCodegenSecurity extendedCodegenSecurity = new ExtendedCodegenSecurity(codegenSecurity); extendedCodegenSecurity.jwksUrl = this.jwksUrl; extendedCodegenSecurity.tokenIntrospectUrl = this.tokenIntrospectUrl; return extendedCodegenSecurity; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaResteasyEapServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaResteasyEapServerCodegen.java index cf40de482c5..e969c8c8cf2 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaResteasyEapServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaResteasyEapServerCodegen.java @@ -63,8 +63,8 @@ public class JavaResteasyEapServerCodegen extends AbstractJavaJAXRSServerCodegen embeddedTemplateDir = templateDir = "JavaJaxRS" + File.separator + "resteasy" + File.separator + "eap"; - cliOptions.add(CliOption.newBoolean(GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR, "Generate Jboss Deployment Descriptor",generateJbossDeploymentDescriptor)); - cliOptions.add(CliOption.newBoolean(USE_SWAGGER_FEATURE, "Use dynamic Swagger generator",useSwaggerFeature)); + cliOptions.add(CliOption.newBoolean(GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR, "Generate Jboss Deployment Descriptor", generateJbossDeploymentDescriptor)); + cliOptions.add(CliOption.newBoolean(USE_SWAGGER_FEATURE, "Use dynamic Swagger generator", useSwaggerFeature)); } @@ -101,11 +101,11 @@ public class JavaResteasyEapServerCodegen extends AbstractJavaJAXRSServerCodegen if (generateJbossDeploymentDescriptor) { supportingFiles.add(new SupportingFile("jboss-web.mustache", ("src/main/webapp/WEB-INF"), "jboss-web.xml") - .doNotOverwrite()); + .doNotOverwrite()); } supportingFiles.add(new SupportingFile("RestApplication.mustache", (projectFolder + File.separator + "java" + '/' + invokerPackage).replace(".", "/"), "RestApplication.java") - .doNotOverwrite()); + .doNotOverwrite()); } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaResteasyServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaResteasyServerCodegen.java index 30f2c7dcb9d..2b74520b961 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaResteasyServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaResteasyServerCodegen.java @@ -27,7 +27,9 @@ import org.openapitools.codegen.model.ModelsMap; import org.openapitools.codegen.model.OperationsMap; import java.io.File; -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; @Setter public class JavaResteasyServerCodegen extends AbstractJavaJAXRSServerCodegen implements JbossFeature { @@ -100,7 +102,7 @@ public class JavaResteasyServerCodegen extends AbstractJavaJAXRSServerCodegen im if (generateJbossDeploymentDescriptor) { supportingFiles.add(new SupportingFile("jboss-web.mustache", ("src/main/webapp/WEB-INF"), "jboss-web.xml") - .doNotOverwrite()); + .doNotOverwrite()); } supportingFiles.add(new SupportingFile("RestApplication.mustache", diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaUndertowServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaUndertowServerCodegen.java index c13bc3c4aeb..5437e15f9b5 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaUndertowServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaUndertowServerCodegen.java @@ -66,13 +66,13 @@ public class JavaUndertowServerCodegen extends AbstractJavaCodegen { modelDocTemplateFiles.remove("model_doc.mustache"); apiDocTemplateFiles.remove("api_doc.mustache"); - if(GlobalSettings.getProperty("swagger.codegen.undertow.apipackage") != null && GlobalSettings.getProperty("openapi.codegen.undertow.apipackage") == null) { + if (GlobalSettings.getProperty("swagger.codegen.undertow.apipackage") != null && GlobalSettings.getProperty("openapi.codegen.undertow.apipackage") == null) { LOGGER.warn("System property 'swagger.codegen.undertow.apipackage' was renamed to 'openapi.codegen.undertow.apipackage'"); apiPackage = GlobalSettings.getProperty("swagger.codegen.undertow.apipackage", "org.openapitools.handler"); } else { apiPackage = GlobalSettings.getProperty("openapi.codegen.undertow.apipackage", "org.openapitools.handler"); } - if(GlobalSettings.getProperty("swagger.codegen.undertow.modelpackage") != null && GlobalSettings.getProperty("openapi.codegen.undertow.modelpackage") == null) { + if (GlobalSettings.getProperty("swagger.codegen.undertow.modelpackage") != null && GlobalSettings.getProperty("openapi.codegen.undertow.modelpackage") == null) { LOGGER.warn("System property 'swagger.codegen.undertow.modelpackage' was renamed to 'openapi.codegen.undertow.modelpackage'"); modelPackage = GlobalSettings.getProperty("swagger.codegen.undertow.modelpackage", "org.openapitools.model"); } else { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaVertXServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaVertXServerCodegen.java index 8d8701b6372..a06e46ffb67 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaVertXServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaVertXServerCodegen.java @@ -31,7 +31,6 @@ import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.OperationMap; import org.openapitools.codegen.model.OperationsMap; import org.openapitools.codegen.utils.URLPathUtils; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -71,8 +70,8 @@ public class JavaVertXServerCodegen extends AbstractJavaCodegen { modifyFeatureSet(features -> features.includeDocumentationFeatures(DocumentationFeature.Readme)); generatorMetadata = GeneratorMetadata.newBuilder(generatorMetadata) - .stability(Stability.DEPRECATED) - .build(); + .stability(Stability.DEPRECATED) + .build(); // set the output folder here outputFolder = "generated-code" + File.separator + "javaVertXServer"; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaVertXWebServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaVertXWebServerCodegen.java index c55d972fa4e..593794ef7e6 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaVertXWebServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaVertXWebServerCodegen.java @@ -25,7 +25,9 @@ import org.openapitools.codegen.model.OperationMap; import org.openapitools.codegen.model.OperationsMap; import java.io.File; -import java.util.*; +import java.util.List; +import java.util.Locale; +import java.util.Map; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -146,10 +148,10 @@ public class JavaVertXWebServerCodegen extends AbstractJavaCodegen { if (operation.allParams.stream().anyMatch(p -> p.isFormParam && p.isFile)) { // If there is a file upload, exclude other form params since it's not clear how the user should access to these operation.allParams = operation - .allParams - .stream() - .filter(p -> !p.isFormParam || p.isFile) - .collect(Collectors.toList()); + .allParams + .stream() + .filter(p -> !p.isFormParam || p.isFile) + .collect(Collectors.toList()); } else if (operation.allParams.stream().anyMatch(p -> p.isFormParam)) { // In Vert.x 4 Web OpenAPI the forms are handled as single json object // We create a dummy param here and remove the other ones @@ -159,8 +161,8 @@ public class JavaVertXWebServerCodegen extends AbstractJavaCodegen { dummyParam.dataType = "JsonObject"; dummyParam.paramName = "formBody"; operation.allParams = Stream.concat( - operation.allParams.stream().filter(p -> !p.isFormParam), - Stream.of(dummyParam) + operation.allParams.stream().filter(p -> !p.isFormParam), + Stream.of(dummyParam) ).collect(Collectors.toList()); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaWiremockServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaWiremockServerCodegen.java index 101ea6c5ff3..60ee0fcf0ce 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaWiremockServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaWiremockServerCodegen.java @@ -1,17 +1,18 @@ package org.openapitools.codegen.languages; import com.samskivert.mustache.Mustache; -import org.openapitools.codegen.*; - -import java.io.File; -import java.util.*; -import java.util.regex.Matcher; - +import org.openapitools.codegen.CodegenConfig; +import org.openapitools.codegen.CodegenType; +import org.openapitools.codegen.SupportingFile; import org.openapitools.codegen.meta.GeneratorMetadata; import org.openapitools.codegen.meta.Stability; import org.openapitools.codegen.templating.mustache.SplitStringLambda; import org.openapitools.codegen.templating.mustache.TrimWhitespaceLambda; +import java.io.File; +import java.util.HashMap; +import java.util.regex.Matcher; + public class JavaWiremockServerCodegen extends AbstractJavaCodegen implements CodegenConfig { @Override diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptApolloClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptApolloClientCodegen.java index d0cf4c9e7dd..03fe2bf5ba8 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptApolloClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptApolloClientCodegen.java @@ -1170,7 +1170,7 @@ public class JavascriptApolloClientCodegen extends DefaultCodegen implements Cod // only process files with js extension if ("js".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {jsPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{jsPostProcessFile, file.toString()}); } } @@ -1187,10 +1187,12 @@ public class JavascriptApolloClientCodegen extends DefaultCodegen implements Cod } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.JAVASCRIPT; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.JAVASCRIPT; + } @Override - protected void addImport(Schema composed, Schema childSchema, CodegenModel model, String modelName ) { + protected void addImport(Schema composed, Schema childSchema, CodegenModel model, String modelName) { // import everything (including child schema of a composed schema) addImport(model, modelName); } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptClosureAngularClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptClosureAngularClientCodegen.java index 2062ba27da3..3629b1ed4d1 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptClosureAngularClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptClosureAngularClientCodegen.java @@ -48,15 +48,15 @@ public class JavascriptClosureAngularClientCodegen extends DefaultCodegen implem public JavascriptClosureAngularClientCodegen() { super(); - + generatorMetadata = GeneratorMetadata.newBuilder(generatorMetadata) - .stability(Stability.BETA) - .featureSet( - FeatureSet.newBuilder(generatorMetadata.getFeatureSet()) - .excludeWireFormatFeatures(WireFormatFeature.XML).build() - ) - .build(); - + .stability(Stability.BETA) + .featureSet( + FeatureSet.newBuilder(generatorMetadata.getFeatureSet()) + .excludeWireFormatFeatures(WireFormatFeature.XML).build() + ) + .build(); + outputFolder = "generated-code/javascript-closure-angular"; // default HIDE_GENERATION_TIMESTAMP to true @@ -64,13 +64,13 @@ public class JavascriptClosureAngularClientCodegen extends DefaultCodegen implem supportsInheritance = false; setReservedWordsLowerCase(Arrays.asList("abstract", - "continue", "for", "new", "switch", "assert", "default", "if", - "package", "synchronized", "do", "goto", "private", - "this", "break", "double", "implements", "protected", "throw", - "byte", "else", "import", "public", "throws", "case", "enum", - "instanceof", "return", "transient", "catch", "extends", "int", - "short", "try", "char", "final", "interface", "static", "void", - "class", "finally", "const", "super", "while")); + "continue", "for", "new", "switch", "assert", "default", "if", + "package", "synchronized", "do", "goto", "private", + "this", "break", "double", "implements", "protected", "throw", + "byte", "else", "import", "public", "throws", "case", "enum", + "instanceof", "return", "transient", "catch", "extends", "int", + "short", "try", "char", "final", "interface", "static", "void", + "class", "finally", "const", "super", "while")); languageSpecificPrimitives = new HashSet<>(Arrays.asList( "string", @@ -154,7 +154,7 @@ public class JavascriptClosureAngularClientCodegen extends DefaultCodegen implem @Override public String getHelp() { return "Generates a Javascript AngularJS client library annotated with Google Closure Compiler annotations" + - "(https://developers.google.com/closure/compiler/docs/js-for-compiler?hl=en)"; + "(https://developers.google.com/closure/compiler/docs/js-for-compiler?hl=en)"; } @Override @@ -164,7 +164,7 @@ public class JavascriptClosureAngularClientCodegen extends DefaultCodegen implem @Override public String escapeReservedWord(String name) { - if(this.reservedWordsMappings().containsKey(name)) { + if (this.reservedWordsMappings().containsKey(name)) { return this.reservedWordsMappings().get(name); } return "_" + name; @@ -243,7 +243,7 @@ public class JavascriptClosureAngularClientCodegen extends DefaultCodegen implem return getSchemaType(p) + ""; } else if (ModelUtils.isMapSchema(p)) { Schema inner = ModelUtils.getAdditionalProperties(p); - return "Object"; + return "Object"; } else if (ModelUtils.isFileSchema(p)) { return "Object"; } @@ -253,7 +253,7 @@ public class JavascriptClosureAngularClientCodegen extends DefaultCodegen implem type.equals("number") || type.equals("string")) { return type; - } + } return apiPackage + "." + type; } @@ -325,5 +325,7 @@ public class JavascriptClosureAngularClientCodegen extends DefaultCodegen implem } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.JAVASCRIPT; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.JAVASCRIPT; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptFlowtypedClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptFlowtypedClientCodegen.java index c2e377eae16..2221445d561 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptFlowtypedClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptFlowtypedClientCodegen.java @@ -34,7 +34,8 @@ import java.util.*; import static org.openapitools.codegen.utils.StringUtils.dashize; -@Getter @Setter +@Getter +@Setter public class JavascriptFlowtypedClientCodegen extends AbstractTypeScriptClientCodegen { public static final String NPM_REPOSITORY = "npmRepository"; @@ -212,5 +213,7 @@ public class JavascriptFlowtypedClientCodegen extends AbstractTypeScriptClientCo } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.JAVASCRIPT; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.JAVASCRIPT; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JetbrainsHttpClientClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JetbrainsHttpClientClientCodegen.java index 6e97d9f9f53..5f6711b6d39 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JetbrainsHttpClientClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JetbrainsHttpClientClientCodegen.java @@ -28,14 +28,6 @@ import io.swagger.v3.oas.models.examples.Example; import lombok.Getter; import lombok.Setter; import org.openapitools.codegen.*; - -import java.io.File; -import java.io.IOException; -import java.io.Writer; -import java.util.*; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - import org.openapitools.codegen.meta.GeneratorMetadata; import org.openapitools.codegen.meta.Stability; import org.openapitools.codegen.model.ModelMap; @@ -44,6 +36,13 @@ import org.openapitools.codegen.model.OperationsMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.File; +import java.io.IOException; +import java.io.Writer; +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + /* Note : This code has been MASSIVELY inspired by PostmanCollectionCodegen from @gcatanese. @@ -129,9 +128,9 @@ public class JetbrainsHttpClientClientCodegen extends DefaultCodegen implements } bodyVariables.forEach(variable -> customVariables.put(variable, "")); - for(String header: customHeaders) { + for (String header : customHeaders) { List variables = extractDoubleCurlyBraces(header); - if(!variables.isEmpty()) { + if (!variables.isEmpty()) { variables.forEach(v -> customVariables.put(v, "")); } } @@ -286,7 +285,8 @@ public class JetbrainsHttpClientClientCodegen extends DefaultCodegen implements System.out.println("##########################################################################################"); } - @Getter @Setter + @Getter + @Setter public class RequestItem { private String name; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JuliaClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JuliaClientCodegen.java index 92e8b914971..7cdeb00d625 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JuliaClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JuliaClientCodegen.java @@ -16,7 +16,10 @@ package org.openapitools.codegen.languages; -import org.openapitools.codegen.*; +import org.openapitools.codegen.CliOption; +import org.openapitools.codegen.CodegenConstants; +import org.openapitools.codegen.CodegenType; +import org.openapitools.codegen.SupportingFile; import org.openapitools.codegen.meta.GeneratorMetadata; import org.openapitools.codegen.meta.Stability; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JuliaServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JuliaServerCodegen.java index d9f31a0fdde..e2bf36dd431 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JuliaServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JuliaServerCodegen.java @@ -16,7 +16,10 @@ package org.openapitools.codegen.languages; -import org.openapitools.codegen.*; +import org.openapitools.codegen.CliOption; +import org.openapitools.codegen.CodegenConstants; +import org.openapitools.codegen.CodegenType; +import org.openapitools.codegen.SupportingFile; import org.openapitools.codegen.meta.GeneratorMetadata; import org.openapitools.codegen.meta.Stability; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/K6ClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/K6ClientCodegen.java index a79e78d6b4a..0206116364d 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/K6ClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/K6ClientCodegen.java @@ -16,52 +16,12 @@ package org.openapitools.codegen.languages; -import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER; -import static org.openapitools.codegen.utils.StringUtils.camelize; -import static org.openapitools.codegen.utils.StringUtils.dashize; -import static org.openapitools.codegen.utils.StringUtils.underscore; - -import java.io.File; -import java.io.IOException; -import java.io.Writer; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; -import java.util.OptionalInt; -import java.util.Set; -import java.util.TreeMap; -import java.util.TreeSet; -import java.util.Map.Entry; -import java.util.stream.Collectors; - -import javax.annotation.Nullable; - -import com.google.common.collect.ImmutableMap; -import lombok.Getter; -import lombok.Setter; -import org.apache.commons.text.StringEscapeUtils; -import org.apache.commons.lang3.StringUtils; -import org.openapitools.codegen.*; -import org.openapitools.codegen.meta.GeneratorMetadata; -import org.openapitools.codegen.meta.Stability; -import org.openapitools.codegen.utils.ModelUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; +import com.google.common.collect.ImmutableMap; import com.samskivert.mustache.Mustache; import com.samskivert.mustache.Mustache.Lambda; import com.samskivert.mustache.Template; - import io.swagger.v3.core.util.Json; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.Operation; @@ -75,6 +35,27 @@ import io.swagger.v3.oas.models.responses.ApiResponse; import io.swagger.v3.oas.models.security.SecurityRequirement; import io.swagger.v3.oas.models.security.SecurityScheme; import io.swagger.v3.oas.models.servers.Server; +import lombok.Getter; +import lombok.Setter; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.text.StringEscapeUtils; +import org.openapitools.codegen.*; +import org.openapitools.codegen.meta.GeneratorMetadata; +import org.openapitools.codegen.meta.Stability; +import org.openapitools.codegen.utils.ModelUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.annotation.Nullable; +import java.io.File; +import java.io.IOException; +import java.io.Writer; +import java.util.*; +import java.util.Map.Entry; +import java.util.stream.Collectors; + +import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER; +import static org.openapitools.codegen.utils.StringUtils.*; public class K6ClientCodegen extends DefaultCodegen implements CodegenConfig { @@ -709,16 +690,16 @@ public class K6ClientCodegen extends DefaultCodegen implements CodegenConfig { // create requests requests.putIfAbsent(requests.size(), new HTTPRequest( - operationId, - method.toString().toLowerCase(Locale.ROOT), - path, - queryParams.size() > 0 ? queryParams : null, - bodyOrFormParams.size() > 0 ? new HTTPBody(bodyOrFormParams) : null, - hasRequestBodyExample, - params.cookies.size() > 0 ? true : false, - params.headers.size() > 0 ? params : null, - k6Checks.size() > 0 ? k6Checks : null, - dataExtract.orElse(null)) + operationId, + method.toString().toLowerCase(Locale.ROOT), + path, + queryParams.size() > 0 ? queryParams : null, + bodyOrFormParams.size() > 0 ? new HTTPBody(bodyOrFormParams) : null, + hasRequestBodyExample, + params.cookies.size() > 0 ? true : false, + params.headers.size() > 0 ? params : null, + k6Checks.size() > 0 ? k6Checks : null, + dataExtract.orElse(null)) ); } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinClientCodegen.java index 7d31d780511..6145745e588 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinClientCodegen.java @@ -17,6 +17,20 @@ package org.openapitools.codegen.languages; +import com.samskivert.mustache.Mustache; +import lombok.Getter; +import lombok.Setter; +import org.apache.commons.lang3.StringUtils; +import org.openapitools.codegen.*; +import org.openapitools.codegen.meta.features.*; +import org.openapitools.codegen.model.ModelMap; +import org.openapitools.codegen.model.ModelsMap; +import org.openapitools.codegen.model.OperationMap; +import org.openapitools.codegen.model.OperationsMap; +import org.openapitools.codegen.utils.ProcessUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.io.File; import java.util.EnumSet; import java.util.HashMap; @@ -26,34 +40,6 @@ import java.util.function.Predicate; import java.util.stream.Collectors; import java.util.stream.Stream; -import com.samskivert.mustache.Mustache; -import lombok.Getter; -import lombok.Setter; -import org.apache.commons.lang3.StringUtils; -import org.openapitools.codegen.CliOption; -import org.openapitools.codegen.CodegenConstants; -import org.openapitools.codegen.CodegenModel; -import org.openapitools.codegen.CodegenOperation; -import org.openapitools.codegen.CodegenParameter; -import org.openapitools.codegen.CodegenProperty; -import org.openapitools.codegen.CodegenType; -import org.openapitools.codegen.SupportingFile; -import org.openapitools.codegen.VendorExtension; -import org.openapitools.codegen.meta.features.ClientModificationFeature; -import org.openapitools.codegen.meta.features.DocumentationFeature; -import org.openapitools.codegen.meta.features.GlobalFeature; -import org.openapitools.codegen.meta.features.ParameterFeature; -import org.openapitools.codegen.meta.features.SchemaSupportFeature; -import org.openapitools.codegen.meta.features.SecurityFeature; -import org.openapitools.codegen.meta.features.WireFormatFeature; -import org.openapitools.codegen.model.ModelMap; -import org.openapitools.codegen.model.ModelsMap; -import org.openapitools.codegen.model.OperationMap; -import org.openapitools.codegen.model.OperationsMap; -import org.openapitools.codegen.utils.ProcessUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import static java.util.Collections.sort; public class KotlinClientCodegen extends AbstractKotlinCodegen { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinSpringServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinSpringServerCodegen.java index ea0c6c4e60f..995c05ae1a1 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinSpringServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinSpringServerCodegen.java @@ -22,26 +22,13 @@ import com.samskivert.mustache.Mustache.Lambda; import com.samskivert.mustache.Template; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.Operation; -import lombok.*; -import org.openapitools.codegen.CliOption; -import org.openapitools.codegen.CodegenConstants; -import org.openapitools.codegen.CodegenModel; -import org.openapitools.codegen.CodegenOperation; -import org.openapitools.codegen.CodegenParameter; -import org.openapitools.codegen.CodegenProperty; -import org.openapitools.codegen.CodegenResponse; -import org.openapitools.codegen.CodegenType; -import org.openapitools.codegen.SupportingFile; -import org.openapitools.codegen.VendorExtension; +import lombok.Getter; +import lombok.Setter; +import org.openapitools.codegen.*; import org.openapitools.codegen.languages.features.BeanValidationFeatures; import org.openapitools.codegen.languages.features.DocumentationProviderFeatures; import org.openapitools.codegen.languages.features.SwaggerUIFeatures; -import org.openapitools.codegen.meta.features.DocumentationFeature; -import org.openapitools.codegen.meta.features.GlobalFeature; -import org.openapitools.codegen.meta.features.ParameterFeature; -import org.openapitools.codegen.meta.features.SchemaSupportFeature; -import org.openapitools.codegen.meta.features.SecurityFeature; -import org.openapitools.codegen.meta.features.WireFormatFeature; +import org.openapitools.codegen.meta.features.*; import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.ModelsMap; import org.openapitools.codegen.model.OperationMap; @@ -54,14 +41,7 @@ import java.io.File; import java.io.IOException; import java.io.Writer; import java.net.URL; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Locale; -import java.util.Map; +import java.util.*; import java.util.regex.Matcher; import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER; @@ -252,7 +232,7 @@ public class KotlinSpringServerCodegen extends AbstractKotlinCodegen CliOption requestMappingOpt = new CliOption(REQUEST_MAPPING_OPTION, "Where to generate the class level @RequestMapping annotation.") .defaultValue(requestMappingMode.name()); - for (RequestMappingMode mode: RequestMappingMode.values()) { + for (RequestMappingMode mode : RequestMappingMode.values()) { requestMappingOpt.addEnum(mode.name(), mode.getDescription()); } cliOptions.add(requestMappingOpt); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinWiremockServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinWiremockServerCodegen.java index f876ef2cbd1..4af750f7b45 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinWiremockServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinWiremockServerCodegen.java @@ -58,19 +58,19 @@ public class KotlinWiremockServerCodegen extends AbstractKotlinCodegen { super.processOpts(); modifyFeatureSet(features -> features - .securityFeatures(EnumSet.allOf(SecurityFeature.class)) - .excludeWireFormatFeatures( - WireFormatFeature.XML, - WireFormatFeature.PROTOBUF - ) - .excludeGlobalFeatures( - GlobalFeature.XMLStructureDefinitions, - GlobalFeature.Callbacks, - GlobalFeature.LinkObjects - ) - .excludeParameterFeatures( - ParameterFeature.Cookie - ) + .securityFeatures(EnumSet.allOf(SecurityFeature.class)) + .excludeWireFormatFeatures( + WireFormatFeature.XML, + WireFormatFeature.PROTOBUF + ) + .excludeGlobalFeatures( + GlobalFeature.XMLStructureDefinitions, + GlobalFeature.Callbacks, + GlobalFeature.LinkObjects + ) + .excludeParameterFeatures( + ParameterFeature.Cookie + ) ); typeMapping.put("array", "kotlin.collections.List"); @@ -86,14 +86,14 @@ public class KotlinWiremockServerCodegen extends AbstractKotlinCodegen { modelTemplateFiles.put("model.mustache", ".kt"); supportingFiles.addAll(List.of( - new SupportingFile("build.gradle.kts.mustache", "", "build.gradle.kts"), - new SupportingFile("settings.gradle.kts.mustache", "", "settings.gradle.kts"), - new SupportingFile("libs.versions.toml.mustache", "gradle", "libs.versions.toml"), - new SupportingFile("gradlew.mustache", "", "gradlew"), - new SupportingFile("gradlew.bat.mustache", "", "gradlew.bat"), - new SupportingFile("gradle-wrapper.properties.mustache", "gradle" + File.separator + "wrapper", "gradle-wrapper.properties"), - new SupportingFile("gradle-wrapper.jar", "gradle" + File.separator + "wrapper", "gradle-wrapper.jar") - ) + new SupportingFile("build.gradle.kts.mustache", "", "build.gradle.kts"), + new SupportingFile("settings.gradle.kts.mustache", "", "settings.gradle.kts"), + new SupportingFile("libs.versions.toml.mustache", "gradle", "libs.versions.toml"), + new SupportingFile("gradlew.mustache", "", "gradlew"), + new SupportingFile("gradlew.bat.mustache", "", "gradlew.bat"), + new SupportingFile("gradle-wrapper.properties.mustache", "gradle" + File.separator + "wrapper", "gradle-wrapper.properties"), + new SupportingFile("gradle-wrapper.jar", "gradle" + File.separator + "wrapper", "gradle-wrapper.jar") + ) ); supportingFiles.add( @@ -108,16 +108,16 @@ public class KotlinWiremockServerCodegen extends AbstractKotlinCodegen { for (ModelMap model : objects.getModels()) { var cm = model.getModel(); var vars = Stream.of( - cm.vars, - cm.allVars, - cm.optionalVars, - cm.requiredVars, - cm.readOnlyVars, - cm.readWriteVars, - cm.parentVars - ) - .flatMap(List::stream) - .collect(Collectors.toList()); + cm.vars, + cm.allVars, + cm.optionalVars, + cm.requiredVars, + cm.readOnlyVars, + cm.readWriteVars, + cm.parentVars + ) + .flatMap(List::stream) + .collect(Collectors.toList()); for (CodegenProperty var : vars) { var.vendorExtensions.put(VENDOR_EXTENSION_BASE_NAME_LITERAL, var.baseName.replace("$", "\\$")); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KtormSchemaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KtormSchemaCodegen.java index 4c689566377..4483eec5dae 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KtormSchemaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KtormSchemaCodegen.java @@ -16,28 +16,27 @@ package org.openapitools.codegen.languages; +import io.swagger.v3.oas.models.media.IntegerSchema; +import io.swagger.v3.parser.util.SchemaTypeUtil; import lombok.Getter; import lombok.Setter; +import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.*; -import org.openapitools.codegen.meta.features.*; import org.openapitools.codegen.meta.GeneratorMetadata; import org.openapitools.codegen.meta.Stability; +import org.openapitools.codegen.meta.features.*; import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.ModelsMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.commons.lang3.StringUtils; - +import java.io.File; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; -import java.io.File; -import io.swagger.v3.oas.models.media.IntegerSchema; -import io.swagger.v3.parser.util.SchemaTypeUtil; - -import static org.openapitools.codegen.utils.StringUtils.*; +import static org.openapitools.codegen.utils.StringUtils.camelize; +import static org.openapitools.codegen.utils.StringUtils.underscore; // This code was almost entirely based on MySqlSchemaCodegen. @@ -67,7 +66,7 @@ public class KtormSchemaCodegen extends AbstractKotlinCodegen { protected String tableNamePrefix = "_", tableNameSuffix = ""; protected String columnNamePrefix = "_", columnNameSuffix = ""; /** - * Identifier naming convention for table names and column names. + * Identifier naming convention for table names and column names. */ @Getter protected String identifierNamingConvention = "original"; @Getter @Setter diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/LuaClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/LuaClientCodegen.java index 9f6ff2977ce..92c38a91f56 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/LuaClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/LuaClientCodegen.java @@ -89,8 +89,8 @@ public class LuaClientCodegen extends DefaultCodegen implements CodegenConfig { ); generatorMetadata = GeneratorMetadata.newBuilder(generatorMetadata) - .stability(Stability.BETA) - .build(); + .stability(Stability.BETA) + .build(); outputFolder = "generated-code/lua"; modelTemplateFiles.put("model.mustache", ".lua"); @@ -604,5 +604,7 @@ public class LuaClientCodegen extends DefaultCodegen implements CodegenConfig { } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.LUA; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.LUA; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/MarkdownDocumentationCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/MarkdownDocumentationCodegen.java index 1815860f40c..1277b7e46a5 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/MarkdownDocumentationCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/MarkdownDocumentationCodegen.java @@ -112,7 +112,9 @@ public class MarkdownDocumentationCodegen extends DefaultCodegen implements Code } @Override - public GeneratorLanguage generatorLanguage() { return null; } + public GeneratorLanguage generatorLanguage() { + return null; + } @Override public String escapeUnsafeCharacters(String input) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/MysqlSchemaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/MysqlSchemaCodegen.java index 828874976d7..1da17d653d0 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/MysqlSchemaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/MysqlSchemaCodegen.java @@ -18,18 +18,18 @@ package org.openapitools.codegen.languages; import lombok.Getter; import lombok.Setter; +import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.*; import org.openapitools.codegen.meta.features.*; import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.ModelsMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.commons.lang3.StringUtils; +import java.io.File; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; -import java.io.File; import static org.openapitools.codegen.utils.StringUtils.underscore; @@ -62,25 +62,25 @@ public class MysqlSchemaCodegen extends DefaultCodegen implements CodegenConfig )); /** - * Returns default database name for all MySQL queries - * This value must be used with backticks only, e.g. `database_name` + * Returns default database name for all MySQL queries + * This value must be used with backticks only, e.g. `database_name` */ @Getter protected String defaultDatabaseName = "", databaseNamePrefix = "", databaseNameSuffix = "_db"; protected String tableNamePrefix = "tbl_", tableNameSuffix = ""; protected String columnNamePrefix = "col_", columnNameSuffix = ""; /** - * Whether JSON data type enabled or disabled in all MySQL queries. - * JSON data type requires MySQL version 5.7.8 + * Whether JSON data type enabled or disabled in all MySQL queries. + * JSON data type requires MySQL version 5.7.8 */ @Getter @Setter protected Boolean jsonDataTypeEnabled = true; /** - * Whether named parameters enabled or disabled in prepared SQLs + * Whether named parameters enabled or disabled in prepared SQLs */ @Getter @Setter protected Boolean namedParametersEnabled = false; /** - * Returns identifier naming convention for table names and column names. + * Returns identifier naming convention for table names and column names. */ @Getter protected String identifierNamingConvention = "original"; @@ -820,7 +820,7 @@ public class MysqlSchemaCodegen extends DefaultCodegen implements CodegenConfig /** * Generates codegen property for MySQL data type argument * - * @param value argument value + * @param value argument value * @return generated codegen property */ public HashMap toCodegenMysqlDataTypeArgument(Object value) { @@ -1202,15 +1202,14 @@ public class MysqlSchemaCodegen extends DefaultCodegen implements CodegenConfig * Slightly modified version of AbstractPhpCodegen.toSrcPath method. * * @param packageName package name - * * @return path */ public String toSrcPath(String packageName) { // Trim prefix file separators from package path String packagePath = StringUtils.removeStart( - // Replace period, backslash, forward slash with file separator in package name - packageName.replaceAll("[\\.\\\\/]", Matcher.quoteReplacement("/")), - File.separator + // Replace period, backslash, forward slash with file separator in package name + packageName.replaceAll("[\\.\\\\/]", Matcher.quoteReplacement("/")), + File.separator ); // Trim trailing file separators from the overall path @@ -1218,5 +1217,7 @@ public class MysqlSchemaCodegen extends DefaultCodegen implements CodegenConfig } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.MYSQL; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.MYSQL; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/N4jsClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/N4jsClientCodegen.java index 6f154dbb273..2448f1dc7e0 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/N4jsClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/N4jsClientCodegen.java @@ -16,39 +16,12 @@ package org.openapitools.codegen.languages; -import static org.openapitools.codegen.CodegenConstants.API_NAME_PREFIX; -import static org.openapitools.codegen.CodegenConstants.API_NAME_PREFIX_DESC; -import static org.openapitools.codegen.CodegenConstants.API_PACKAGE; -import static org.openapitools.codegen.CodegenConstants.API_PACKAGE_DESC; -import static org.openapitools.codegen.CodegenConstants.MODEL_PACKAGE; -import static org.openapitools.codegen.CodegenConstants.MODEL_PACKAGE_DESC; - -import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; -import java.util.stream.Collectors; - +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.media.Schema; +import io.swagger.v3.oas.models.parameters.Parameter; import org.apache.commons.lang3.StringUtils; import org.apache.commons.text.StringEscapeUtils; -import org.openapitools.codegen.CliOption; -import org.openapitools.codegen.CodegenConfig; -import org.openapitools.codegen.CodegenModel; -import org.openapitools.codegen.CodegenOperation; -import org.openapitools.codegen.CodegenProperty; -import org.openapitools.codegen.CodegenResponse; -import org.openapitools.codegen.CodegenSecurity; -import org.openapitools.codegen.CodegenType; -import org.openapitools.codegen.DefaultCodegen; -import org.openapitools.codegen.IJsonSchemaValidationProperties; -import org.openapitools.codegen.SupportingFile; +import org.openapitools.codegen.*; import org.openapitools.codegen.config.GlobalSettings; import org.openapitools.codegen.meta.GeneratorMetadata; import org.openapitools.codegen.meta.Stability; @@ -60,9 +33,11 @@ import org.openapitools.codegen.utils.ModelUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.media.Schema; -import io.swagger.v3.oas.models.parameters.Parameter; +import java.io.File; +import java.util.*; +import java.util.stream.Collectors; + +import static org.openapitools.codegen.CodegenConstants.*; public class N4jsClientCodegen extends DefaultCodegen implements CodegenConfig { public static final String CHECK_REQUIRED_PARAMS_NOT_NULL = "checkRequiredParamsNotNull"; @@ -485,7 +460,7 @@ public class N4jsClientCodegen extends DefaultCodegen implements CodegenConfig { @Override public String toModelImport(String name) { - String modelImportName = toModelFilename(name); + String modelImportName = toModelFilename(name); if ("".equals(modelPackage())) { return modelImportName; } else { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/NimClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/NimClientCodegen.java index b2332a2d964..3366bc33134 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/NimClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/NimClientCodegen.java @@ -39,7 +39,7 @@ import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETT import static org.openapitools.codegen.utils.StringUtils.camelize; public class NimClientCodegen extends DefaultCodegen implements CodegenConfig { - final Logger LOGGER = LoggerFactory.getLogger(NimClientCodegen.class); + final Logger LOGGER = LoggerFactory.getLogger(NimClientCodegen.class); public static final String PROJECT_NAME = "projectName"; @@ -368,5 +368,7 @@ public class NimClientCodegen extends DefaultCodegen implements CodegenConfig { } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.NIM; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.NIM; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/NodeJSExpressServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/NodeJSExpressServerCodegen.java index 5413a983869..61931624de0 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/NodeJSExpressServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/NodeJSExpressServerCodegen.java @@ -435,10 +435,12 @@ public class NodeJSExpressServerCodegen extends DefaultCodegen implements Codege // only process files with js extension if ("js".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {jsPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{jsPostProcessFile, file.toString()}); } } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.JAVASCRIPT; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.JAVASCRIPT; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/OCamlClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/OCamlClientCodegen.java index 5c35e666e65..2c963f78ce3 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/OCamlClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/OCamlClientCodegen.java @@ -18,7 +18,9 @@ package org.openapitools.codegen.languages; import io.swagger.v3.oas.models.*; import io.swagger.v3.oas.models.headers.Header; -import io.swagger.v3.oas.models.media.*; +import io.swagger.v3.oas.models.media.Content; +import io.swagger.v3.oas.models.media.Schema; +import io.swagger.v3.oas.models.media.StringSchema; import io.swagger.v3.oas.models.parameters.Parameter; import io.swagger.v3.oas.models.responses.ApiResponse; import lombok.Setter; @@ -805,10 +807,12 @@ public class OCamlClientCodegen extends DefaultCodegen implements CodegenConfig } // only process files with ml or mli extension if ("ml".equals(FilenameUtils.getExtension(file.toString())) || "mli".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {ocamlPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{ocamlPostProcessFile, file.toString()}); } } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.OCAML; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.OCAML; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/OpenAPIGenerator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/OpenAPIGenerator.java index 8e65252b1a3..e6e724f7ab2 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/OpenAPIGenerator.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/OpenAPIGenerator.java @@ -108,5 +108,7 @@ public class OpenAPIGenerator extends DefaultCodegen implements CodegenConfig { } @Override - public GeneratorLanguage generatorLanguage() { return null; } + public GeneratorLanguage generatorLanguage() { + return null; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/OpenAPIYamlGenerator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/OpenAPIYamlGenerator.java index d60fa609d39..8bd43045022 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/OpenAPIYamlGenerator.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/OpenAPIYamlGenerator.java @@ -18,16 +18,14 @@ package org.openapitools.codegen.languages; import com.google.common.collect.ImmutableMap; +import com.samskivert.mustache.Mustache.Lambda; +import io.swagger.v3.oas.models.Operation; import org.openapitools.codegen.*; import org.openapitools.codegen.meta.features.*; import org.openapitools.codegen.templating.mustache.OnChangeLambda; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.samskivert.mustache.Mustache.Lambda; - -import io.swagger.v3.oas.models.Operation; - import java.util.ArrayList; import java.util.EnumSet; import java.util.List; @@ -121,5 +119,7 @@ public class OpenAPIYamlGenerator extends DefaultCodegen implements CodegenConfi } @Override - public GeneratorLanguage generatorLanguage() { return null; } + public GeneratorLanguage generatorLanguage() { + return null; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PerlClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PerlClientCodegen.java index f1043e40986..95cd04247cc 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PerlClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PerlClientCodegen.java @@ -639,7 +639,7 @@ public class PerlClientCodegen extends DefaultCodegen implements CodegenConfig { if ("t".equals(FilenameUtils.getExtension(file.toString())) || "pm".equals(FilenameUtils.getExtension(file.toString())) || "pl".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {perlTidyPath, "-b", "-bext='/'", file.toString()}); + this.executePostProcessor(new String[]{perlTidyPath, "-b", "-bext='/'", file.toString()}); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpDataTransferClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpDataTransferClientCodegen.java index d15f92edf7a..24f4795b370 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpDataTransferClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpDataTransferClientCodegen.java @@ -165,8 +165,8 @@ public class PhpDataTransferClientCodegen extends AbstractPhpCodegen { if ((result != null) && (!useModernSyntax)) { //Doctrine Annotations have different string escape rules compared to PHP code result = result - .replace("\\\\", "\\") - .replace("\\\"", "\"\"") + .replace("\\\\", "\\") + .replace("\\\"", "\"\"") ; } return result; @@ -394,9 +394,9 @@ public class PhpDataTransferClientCodegen extends AbstractPhpCodegen { /** * Generate additional model definitions for containers in specified schema * - * @param openAPI OpenAPI object + * @param openAPI OpenAPI object * @param visitedSchemas Set of Schemas that have been processed already - * @param schema OAS schema to process + * @param schema OAS schema to process */ protected void generateContainerSchemas(OpenAPI openAPI, Set visitedSchemas, Schema schema) { if (visitedSchemas.contains(schema)) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpFlightServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpFlightServerCodegen.java index f7248ac77a2..bd35553b983 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpFlightServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpFlightServerCodegen.java @@ -16,36 +16,13 @@ package org.openapitools.codegen.languages; -import static org.openapitools.codegen.utils.StringUtils.camelize; - import io.swagger.v3.oas.models.Operation; import io.swagger.v3.oas.models.servers.Server; - -import java.io.File; -import java.util.Arrays; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.List; -import java.util.Objects; - import org.apache.commons.lang3.StringUtils; -import org.openapitools.codegen.CliOption; -import org.openapitools.codegen.CodegenConstants; -import org.openapitools.codegen.CodegenModel; -import org.openapitools.codegen.CodegenOperation; -import org.openapitools.codegen.CodegenProperty; -import org.openapitools.codegen.CodegenResponse; -import org.openapitools.codegen.CodegenType; -import org.openapitools.codegen.SupportingFile; +import org.openapitools.codegen.*; import org.openapitools.codegen.meta.GeneratorMetadata; import org.openapitools.codegen.meta.Stability; -import org.openapitools.codegen.meta.features.DataTypeFeature; -import org.openapitools.codegen.meta.features.DocumentationFeature; -import org.openapitools.codegen.meta.features.GlobalFeature; -import org.openapitools.codegen.meta.features.ParameterFeature; -import org.openapitools.codegen.meta.features.SchemaSupportFeature; -import org.openapitools.codegen.meta.features.SecurityFeature; -import org.openapitools.codegen.meta.features.WireFormatFeature; +import org.openapitools.codegen.meta.features.*; import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.ModelsMap; import org.openapitools.codegen.model.OperationMap; @@ -53,6 +30,11 @@ import org.openapitools.codegen.model.OperationsMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.File; +import java.util.*; + +import static org.openapitools.codegen.utils.StringUtils.camelize; + public class PhpFlightServerCodegen extends AbstractPhpCodegen { private final Logger LOGGER = LoggerFactory.getLogger(PhpFlightServerCodegen.class); @@ -209,7 +191,7 @@ public class PhpFlightServerCodegen extends AbstractPhpCodegen { operation.vendorExtensions.put("x-return-type-is-void", returnType.equals("void")); operation.vendorExtensions.put("x-return-type-comment", defaultResponse != null ? this.getTypeHint(defaultResponse.dataType, true, false) + "|null" : "void"); operation.vendorExtensions.put("x-default-media-type", defaultResponse != null ? ( - defaultResponse.getContent().containsKey("application/json") ? "application/json" : defaultResponse.getContent().keySet().stream().findFirst().orElse(null)) : null); + defaultResponse.getContent().containsKey("application/json") ? "application/json" : defaultResponse.getContent().keySet().stream().findFirst().orElse(null)) : null); operation.vendorExtensions.put("x-default-status-code", defaultResponse != null ? defaultResponse.code : operation.responses.stream().filter(r -> !r.isDefault).findFirst().map(r -> r.code).orElse("200")); operation.vendorExtensions.put("x-nonFormParams", operation.allParams.stream().filter(p -> !p.isFormParam).toArray()); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpLumenServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpLumenServerCodegen.java index a660336ac02..fce2d7f80a6 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpLumenServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpLumenServerCodegen.java @@ -26,7 +26,10 @@ import org.openapitools.codegen.model.OperationMap; import org.openapitools.codegen.model.OperationsMap; import java.io.File; -import java.util.*; +import java.util.Comparator; +import java.util.EnumSet; +import java.util.List; +import java.util.Locale; public class PhpLumenServerCodegen extends AbstractPhpCodegen { @SuppressWarnings("hiding") diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpMezzioPathHandlerServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpMezzioPathHandlerServerCodegen.java index b08df67221f..d79fa1b0b00 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpMezzioPathHandlerServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpMezzioPathHandlerServerCodegen.java @@ -372,9 +372,9 @@ public class PhpMezzioPathHandlerServerCodegen extends AbstractPhpCodegen { /** * Generate additional model definitions for containers in specified schema * - * @param openAPI OpenAPI object + * @param openAPI OpenAPI object * @param visitedSchemas Set of Schemas that have been processed already - * @param schema OAS schema to process + * @param schema OAS schema to process */ protected void generateContainerSchemas(OpenAPI openAPI, Set visitedSchemas, Schema schema) { if (visitedSchemas.contains(schema)) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpNextgenClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpNextgenClientCodegen.java index 5354e5c3106..64e8c94b28c 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpNextgenClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpNextgenClientCodegen.java @@ -132,7 +132,7 @@ public class PhpNextgenClientCodegen extends AbstractPhpCodegen { supportingFiles.add(new SupportingFile(".phplint.mustache", "", ".phplint.yml")); supportingFiles.add(new SupportingFile("git_push.sh.mustache", "", "git_push.sh")); - if(this.supportStreaming) { + if (this.supportStreaming) { typeMapping.put("file", "\\Psr\\\\Http\\\\Message\\\\StreamInterface"); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSilexServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSilexServerCodegen.java index 6335eafdd16..d0ae87c514d 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSilexServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSilexServerCodegen.java @@ -20,13 +20,13 @@ package org.openapitools.codegen.languages; import io.swagger.v3.oas.models.media.Schema; import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.*; +import org.openapitools.codegen.meta.GeneratorMetadata; +import org.openapitools.codegen.meta.Stability; import org.openapitools.codegen.meta.features.*; import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.OperationMap; import org.openapitools.codegen.model.OperationsMap; import org.openapitools.codegen.utils.ModelUtils; -import org.openapitools.codegen.meta.GeneratorMetadata; -import org.openapitools.codegen.meta.Stability; import java.io.File; import java.util.*; @@ -283,5 +283,7 @@ public class PhpSilexServerCodegen extends DefaultCodegen implements CodegenConf } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.PHP; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.PHP; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSlim4ServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSlim4ServerCodegen.java index 4611bb17c5a..a1822fe72e2 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSlim4ServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSlim4ServerCodegen.java @@ -54,7 +54,7 @@ public class PhpSlim4ServerCodegen extends AbstractPhpCodegen { protected String appDirName = "App"; protected String appPackage = ""; /** - * Returns PSR-7 implementation package. + * Returns PSR-7 implementation package. */ @Getter protected String psr7Implementation = "slim-psr7"; protected String interfacesDirName = "Interfaces"; @@ -280,9 +280,9 @@ public class PhpSlim4ServerCodegen extends AbstractPhpCodegen { // Sort operations to avoid static routes shadowing // ref: https://github.com/nikic/FastRoute/blob/master/src/DataGenerator/RegexBasedAbstract.php#L92-L101 operationList.sort((one, another) -> { - if (one.getHasPathParams() && !another.getHasPathParams()) return 1; - if (!one.getHasPathParams() && another.getHasPathParams()) return -1; - return 0; + if (one.getHasPathParams() && !another.getHasPathParams()) return 1; + if (!one.getHasPathParams() && another.getHasPathParams()) return -1; + return 0; }); } @@ -335,8 +335,8 @@ public class PhpSlim4ServerCodegen extends AbstractPhpCodegen { // finally escalate characters avoiding code injection input = super.escapeUnsafeCharacters( StringEscapeUtils.unescapeJava( - StringEscapeUtils.escapeJava(input) - .replace("\\/", "/")) + StringEscapeUtils.escapeJava(input) + .replace("\\/", "/")) .replaceAll("[\\t\\n\\r]", " ") .replace("\\", "\\\\")); // .replace("\"", "\\\"")); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PlantumlDocumentationCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PlantumlDocumentationCodegen.java index 2b7314ef699..8ad9ca6c2fd 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PlantumlDocumentationCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PlantumlDocumentationCodegen.java @@ -30,7 +30,7 @@ import java.util.stream.Collectors; public class PlantumlDocumentationCodegen extends DefaultCodegen implements CodegenConfig { public static final String ALL_OF_SUFFIX = "AllOf"; - final Logger LOGGER = LoggerFactory.getLogger(PlantumlDocumentationCodegen.class); + final Logger LOGGER = LoggerFactory.getLogger(PlantumlDocumentationCodegen.class); @Override public CodegenType getTag() { @@ -219,5 +219,7 @@ public class PlantumlDocumentationCodegen extends DefaultCodegen implements Code } @Override - public GeneratorLanguage generatorLanguage() { return null; } + public GeneratorLanguage generatorLanguage() { + return null; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PostgresqlSchemaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PostgresqlSchemaCodegen.java index b3ecedfd4b8..8630b4bb303 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PostgresqlSchemaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PostgresqlSchemaCodegen.java @@ -18,6 +18,7 @@ package org.openapitools.codegen.languages; import lombok.Getter; import lombok.Setter; +import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.*; import org.openapitools.codegen.meta.GeneratorMetadata; import org.openapitools.codegen.meta.Stability; @@ -26,12 +27,11 @@ import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.ModelsMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.commons.lang3.StringUtils; +import java.io.File; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; -import java.io.File; import static org.openapitools.codegen.utils.StringUtils.underscore; @@ -372,11 +372,11 @@ public class PostgresqlSchemaCodegen extends DefaultCodegen { additionalProperties.put("modelSrcPath", "./" + toSrcPath(modelPackage)); supportingFiles.add(new SupportingFile( - "README.mustache", "", "README.md")); + "README.mustache", "", "README.md")); supportingFiles.add(new SupportingFile( - "postgresql_schema.mustache", "", "postgresql_schema.sql")); + "postgresql_schema.mustache", "", "postgresql_schema.sql")); supportingFiles.add(new SupportingFile( - "postgresql_schema_oauth2.mustache", "", "postgresql_schema_oauth2.sql")); + "postgresql_schema_oauth2.mustache", "", "postgresql_schema_oauth2.sql")); } @Override @@ -497,7 +497,7 @@ public class PostgresqlSchemaCodegen extends DefaultCodegen { } columnDefinition.put("tblName", tableName); if (isReservedWord(model.getName())) { // Output table name (for column comment) in double quotes if it is a - // reserved word + // reserved word columnDefinition.put("tblNameQuoted", true); } else { columnDefinition.put("tblNameQuoted", false); @@ -506,8 +506,8 @@ public class PostgresqlSchemaCodegen extends DefaultCodegen { if (Boolean.TRUE.equals(isEnum)) { Map allowableValues = property.getAllowableValues(); List enumValues = (List) allowableValues.get("values"); - String typeName = this.toTableName(model.getName()) - + "_" + this.toColumnName(property.getName()); + String typeName = this.toTableName(model.getName()) + + "_" + this.toColumnName(property.getName()); postgresqlSchema.put("typeDefinition", typeDefinition); columnDefinition.put("colDataType", typeName); typeDefinition.put("typeName", typeName); @@ -548,7 +548,7 @@ public class PostgresqlSchemaCodegen extends DefaultCodegen { if (!columnDefinition.get("colDataType").equals("SERIAL") && !columnDefinition.get("colDataType").equals("BIGSERIAL")) { // No default value for autoincremented - // IDs + // IDs if (Boolean.TRUE.equals(required)) { columnDefinition.put("colNotNull", true); } else { @@ -621,7 +621,7 @@ public class PostgresqlSchemaCodegen extends DefaultCodegen { } columnDefinition.put("tblName", tableName); if (isReservedWord(model.getName())) { // Output table name (for column comment) in double quotes if it is a - // reserved word + // reserved word columnDefinition.put("tblNameQuoted", true); } else { columnDefinition.put("tblNameQuoted", false); @@ -630,8 +630,8 @@ public class PostgresqlSchemaCodegen extends DefaultCodegen { if (Boolean.TRUE.equals(isEnum)) { Map allowableValues = property.getAllowableValues(); List enumValues = (List) allowableValues.get("values"); - String typeName = this.toTableName(model.getName()) - + "_" + this.toColumnName(property.getName()); + String typeName = this.toTableName(model.getName()) + + "_" + this.toColumnName(property.getName()); postgresqlSchema.put("typeDefinition", typeDefinition); columnDefinition.put("colDataType", typeName); typeDefinition.put("typeName", typeName); @@ -727,7 +727,7 @@ public class PostgresqlSchemaCodegen extends DefaultCodegen { } columnDefinition.put("tblName", tableName); if (isReservedWord(model.getName())) { // Output table name (for column comment) in double quotes if it is a - // reserved word + // reserved word columnDefinition.put("tblNameQuoted", true); } else { columnDefinition.put("tblNameQuoted", false); @@ -736,8 +736,8 @@ public class PostgresqlSchemaCodegen extends DefaultCodegen { if (Boolean.TRUE.equals(isEnum)) { Map allowableValues = property.getAllowableValues(); List enumValues = (List) allowableValues.get("values"); - String typeName = this.toTableName(model.getName()) - + "_" + this.toColumnName(property.getName()); + String typeName = this.toTableName(model.getName()) + + "_" + this.toColumnName(property.getName()); postgresqlSchema.put("typeDefinition", typeDefinition); columnDefinition.put("colDataType", typeName); typeDefinition.put("typeName", typeName); @@ -826,7 +826,7 @@ public class PostgresqlSchemaCodegen extends DefaultCodegen { } columnDefinition.put("tblName", tableName); if (isReservedWord(model.getName())) { // Output table name (for column comment) in double quotes if it is a - // reserved word + // reserved word columnDefinition.put("tblNameQuoted", true); } else { columnDefinition.put("tblNameQuoted", false); @@ -896,7 +896,7 @@ public class PostgresqlSchemaCodegen extends DefaultCodegen { } columnDefinition.put("tblName", tableName); if (isReservedWord(model.getName())) { // Output table name (for column comment) in double quotes if it is a - // reserved word + // reserved word columnDefinition.put("tblNameQuoted", true); } else { columnDefinition.put("tblNameQuoted", false); @@ -966,7 +966,7 @@ public class PostgresqlSchemaCodegen extends DefaultCodegen { } columnDefinition.put("tblName", tableName); if (isReservedWord(model.getName())) { // Output table name (for column comment) in double quotes if it is a - // reserved word + // reserved word columnDefinition.put("tblNameQuoted", true); } else { columnDefinition.put("tblNameQuoted", false); @@ -1044,7 +1044,7 @@ public class PostgresqlSchemaCodegen extends DefaultCodegen { } columnDefinition.put("tblName", tableName); if (isReservedWord(model.getName())) { // Output table name (for column comment) in double quotes if it is a - // reserved word + // reserved word columnDefinition.put("tblNameQuoted", true); } else { columnDefinition.put("tblNameQuoted", false); @@ -1452,7 +1452,6 @@ public class PostgresqlSchemaCodegen extends DefaultCodegen { * Slightly modified version of AbstractPhpCodegen.toSrcPath method. * * @param packageName package name - * * @return path */ public String toSrcPath(String packageName) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PostmanCollectionCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PostmanCollectionCodegen.java index d3f7d77f91c..f96166cc591 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PostmanCollectionCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PostmanCollectionCodegen.java @@ -15,7 +15,9 @@ import lombok.Setter; import org.openapitools.codegen.*; import org.openapitools.codegen.meta.GeneratorMetadata; import org.openapitools.codegen.meta.Stability; -import org.openapitools.codegen.model.*; +import org.openapitools.codegen.model.ModelMap; +import org.openapitools.codegen.model.OperationMap; +import org.openapitools.codegen.model.OperationsMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -84,8 +86,8 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC /** * Configures the type of generator. * - * @return the CodegenType for this generator - * @see org.openapitools.codegen.CodegenType + * @return the CodegenType for this generator + * @see org.openapitools.codegen.CodegenType */ @Override public CodegenType getTag() { @@ -136,7 +138,7 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC @Override public void postProcessParameter(CodegenParameter parameter) { // create Postman variable from every path parameter - if(pathParamsAsVariables && parameter.isPathParam) { + if (pathParamsAsVariables && parameter.isPathParam) { variables.add(new PostmanVariable() .addName(parameter.paramName) .addType(mapToPostmanType(parameter.dataType)) @@ -153,7 +155,7 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC @Override public List fromServerVariables(Map variables) { - if(variables != null){ + if (variables != null) { variables.entrySet().stream().forEach(serverVariableEntry -> this.variables.add(new PostmanVariable() .addName(serverVariableEntry.getKey()) .addType("string") @@ -166,7 +168,7 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC @Override public void processOpts() { super.processOpts(); - if(additionalProperties().containsKey(FOLDER_STRATEGY)) { + if (additionalProperties().containsKey(FOLDER_STRATEGY)) { folderStrategy = additionalProperties().get(FOLDER_STRATEGY).toString(); } @@ -174,33 +176,33 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC pathParamsAsVariables = Boolean.parseBoolean(additionalProperties.get(PATH_PARAMS_AS_VARIABLES).toString()); } - if(additionalProperties().containsKey(REQUEST_PARAMETER_GENERATION)) { + if (additionalProperties().containsKey(REQUEST_PARAMETER_GENERATION)) { requestParameterGeneration = additionalProperties().get(REQUEST_PARAMETER_GENERATION).toString(); } - if(additionalProperties().containsKey(POSTMAN_VARIABLES)) { + if (additionalProperties().containsKey(POSTMAN_VARIABLES)) { postmanVariables = Boolean.parseBoolean(additionalProperties.get(POSTMAN_VARIABLES).toString()); } - if(additionalProperties().containsKey(POSTMAN_GUID)) { + if (additionalProperties().containsKey(POSTMAN_GUID)) { postmanGuid = Boolean.parseBoolean(additionalProperties.get(POSTMAN_GUID).toString()); } - if(additionalProperties().containsKey(POSTMAN_GUID_PLACEHOLDER_NAME)) { + if (additionalProperties().containsKey(POSTMAN_GUID_PLACEHOLDER_NAME)) { postmanGuidPlaceholderName = additionalProperties.get(POSTMAN_GUID_PLACEHOLDER_NAME).toString(); } - if(additionalProperties().containsKey(POSTMAN_ISO_TIMESTAMP)) { + if (additionalProperties().containsKey(POSTMAN_ISO_TIMESTAMP)) { postmanIsoTimestamp = Boolean.parseBoolean(additionalProperties.get(POSTMAN_ISO_TIMESTAMP).toString()); } - if(additionalProperties().containsKey(POSTMAN_ISO_TIMESTAMP_PLACEHOLDER_NAME)) { + if (additionalProperties().containsKey(POSTMAN_ISO_TIMESTAMP_PLACEHOLDER_NAME)) { postmanIsoTimestampPlaceholderName = additionalProperties.get(POSTMAN_ISO_TIMESTAMP_PLACEHOLDER_NAME).toString(); } super.vendorExtensions().put("variables", variables); - if(folderStrategy.equalsIgnoreCase("tags")) { + if (folderStrategy.equalsIgnoreCase("tags")) { this.additionalProperties().put("codegenOperationsByTag", codegenOperationsByTag); } else { this.additionalProperties().put("codegenOperationsList", codegenOperationsList); @@ -218,14 +220,14 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC OperationMap ops = results.getOperations(); List opList = ops.getOperation(); - for(CodegenOperation codegenOperation : opList) { + for (CodegenOperation codegenOperation : opList) { // use Postman notation for path parameter codegenOperation.path = replacesBracesInPath(codegenOperation.path); - if(pathParamsAsVariables) { + if (pathParamsAsVariables) { // set value of path parameter with corresponding env variable - for(CodegenParameter codegenParameter : codegenOperation.pathParams) { + for (CodegenParameter codegenParameter : codegenOperation.pathParams) { codegenParameter.defaultValue = "{{" + codegenParameter.paramName + "}}"; } } @@ -233,7 +235,7 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC codegenOperation.summary = getSummary(codegenOperation); // request headers - if(codegenOperation.produces != null && codegenOperation.produces.get(0) != null) { + if (codegenOperation.produces != null && codegenOperation.produces.get(0) != null) { // produces mediaType as `Accept` header (use first mediaType only) String mediaType = codegenOperation.produces.get(0).get("mediaType"); CodegenParameter acceptHeader = new CodegenParameter(); @@ -245,7 +247,7 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC codegenOperation.headerParams.add(0, acceptHeader); } - if(codegenOperation.consumes != null && codegenOperation.consumes.get(0) != null) { + if (codegenOperation.consumes != null && codegenOperation.consumes.get(0) != null) { // consumes mediaType as `Content-Type` header (use first mediaType only) String mediaType = codegenOperation.consumes.get(0).get("mediaType"); CodegenParameter contentTypeHeader = new CodegenParameter(); @@ -264,21 +266,21 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC codegenOperation.responses.stream().forEach(r -> r.vendorExtensions.put("pathSegments", pathSegments)); List postmanRequests = getPostmanRequests(codegenOperation); - if(postmanRequests != null) { - if(postmanVariables) { + if (postmanRequests != null) { + if (postmanVariables) { postmanRequests = createPostmanVariables(postmanRequests); } - if(postmanGuid) { + if (postmanGuid) { postmanRequests = setPostmanGuid(postmanRequests); } - if(postmanIsoTimestamp) { + if (postmanIsoTimestamp) { postmanRequests = setPostmanIsoTimestamp(postmanRequests); } codegenOperation.vendorExtensions.put("postmanRequests", postmanRequests); } // set all available responses - for(CodegenResponse codegenResponse : codegenOperation.responses) { + for (CodegenResponse codegenResponse : codegenOperation.responses) { codegenResponse.vendorExtensions.put("status", getStatus(codegenResponse)); @@ -297,7 +299,7 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC } - if(folderStrategy.equalsIgnoreCase("tags")) { + if (folderStrategy.equalsIgnoreCase("tags")) { addToMap(codegenOperation); } else { addToList(codegenOperation); @@ -312,12 +314,13 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC /** * Add the CodegenOperation to the map that is passed to the Mustache templates * The map groups the CodegenOperations by tag as defined in the OpenAPI spec + * * @param codegenOperation Codegen operation instance */ - public void addToMap(CodegenOperation codegenOperation){ + public void addToMap(CodegenOperation codegenOperation) { String key = null; - if(codegenOperation.tags == null || codegenOperation.tags.isEmpty()) { + if (codegenOperation.tags == null || codegenOperation.tags.isEmpty()) { key = "default"; } else { key = codegenOperation.tags.get(0).getName(); @@ -325,7 +328,7 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC List list = codegenOperationsByTag.get(key); - if(list == null) { + if (list == null) { list = new ArrayList<>(); } list.add(codegenOperation); @@ -347,19 +350,19 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC String getResponseBody(CodegenResponse codegenResponse) { String responseBody = ""; - if(codegenResponse.getContent() != null && codegenResponse.getContent().get("application/json") != null && + if (codegenResponse.getContent() != null && codegenResponse.getContent().get("application/json") != null && codegenResponse.getContent().get("application/json").getExamples() != null) { // find in components/examples String exampleRef = codegenResponse.getContent().get("application/json").getExamples() .values().iterator().next().get$ref(); - if(exampleRef != null) { + if (exampleRef != null) { Example example = this.openAPI.getComponents().getExamples().get(extractExampleByName(exampleRef)); responseBody = getJsonFromExample(example); } - } else if(codegenResponse.getContent() != null) { + } else if (codegenResponse.getContent() != null) { // find in context examples Map maxExamples = codegenResponse.getContent().get("application/json").getExamples(); - if(maxExamples != null && maxExamples.values().iterator().hasNext()) { + if (maxExamples != null && maxExamples.values().iterator().hasNext()) { responseBody = getJsonFromExample(maxExamples.values().iterator().next()); } } @@ -371,7 +374,7 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC List getPostmanRequests(CodegenOperation codegenOperation) { List items = new ArrayList<>(); - if(codegenOperation.getHasBodyParam()) { + if (codegenOperation.getHasBodyParam()) { // operation with bodyParam if (requestParameterGeneration.equalsIgnoreCase("Schema")) { // get from schema @@ -381,7 +384,7 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC if (codegenOperation.bodyParam.getContent().get("application/json") != null && codegenOperation.bodyParam.getContent().get("application/json").getExamples() != null) { for (Map.Entry entry : codegenOperation.bodyParam.getContent().get("application/json").getExamples().entrySet()) { - if(entry.getValue().get$ref() != null) { + if (entry.getValue().get$ref() != null) { // find in components/examples String exampleRef = entry.getValue().get$ref(); Example example = this.openAPI.getComponents().getExamples().get(extractExampleByName(exampleRef)); @@ -419,8 +422,8 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC // from placeholders (ie {{VAR_1}}) create Postman variables public List createPostmanVariables(List postmanRequests) { - for(PostmanRequestItem requestItem : postmanRequests) { - for(String var: extractPlaceholders(requestItem.getBody())) { + for (PostmanRequestItem requestItem : postmanRequests) { + for (String var : extractPlaceholders(requestItem.getBody())) { variables.add(new PostmanVariable() .addName(var) .addType("string") @@ -434,7 +437,7 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC // replace postmanGuid placeholder (ie {{UNIQUE_REFERENCE}}) with Postman formula {{$guid}} List setPostmanGuid(List postmanRequests) { - for(PostmanRequestItem requestItem : postmanRequests) { + for (PostmanRequestItem requestItem : postmanRequests) { requestItem.setBody(requestItem.getBody().replace("{{" + postmanGuidPlaceholderName + "}}", "{{$guid}}")); } @@ -444,7 +447,7 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC // replace postman placeholder (ie {{ISO_TIMESTAMP}}) with Postman formula {{$isoTimestamp}} List setPostmanIsoTimestamp(List postmanRequests) { - for(PostmanRequestItem requestItem : postmanRequests) { + for (PostmanRequestItem requestItem : postmanRequests) { requestItem.setBody(requestItem.getBody().replace("{{" + postmanIsoTimestampPlaceholderName + "}}", "{{$isoTimestamp}}")); } @@ -532,12 +535,12 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC public String mapToPostmanType(String openApiDataType) { String ret = "any"; // default value - if(openApiDataType.equalsIgnoreCase("string")) { + if (openApiDataType.equalsIgnoreCase("string")) { ret = "string"; - } else if(openApiDataType.equalsIgnoreCase("number") || + } else if (openApiDataType.equalsIgnoreCase("number") || openApiDataType.equalsIgnoreCase("integer")) { ret = "number"; - } else if(openApiDataType.equalsIgnoreCase("boolean")) { + } else if (openApiDataType.equalsIgnoreCase("boolean")) { ret = "boolean"; } @@ -546,6 +549,7 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC /** * get HTTP Status Code as text + * * @param codegenResponse * @return */ @@ -595,7 +599,7 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC String getSummary(CodegenOperation codegenOperation) { String ret = null; - if(codegenOperation.summary != null) { + if (codegenOperation.summary != null) { ret = codegenOperation.summary; } else if (codegenOperation.operationId != null) { ret = codegenOperation.operationId; @@ -607,6 +611,7 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC /** * Format text to include in JSON file + * * @param description Text to format * @return Formatted text */ @@ -621,6 +626,7 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC /** * Extract all placeholders (string delimited by curly braces ie {{PLACEHOLDER}}) from the input string + * * @param input String containing the placeholders * @return Set of placeholders found in the string */ @@ -630,16 +636,16 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC Pattern pattern = Pattern.compile("\\{\\{([^}]*)\\}\\}"); Matcher matcher = pattern.matcher(input); - while(matcher.find()) { - if(postmanGuidPlaceholderName.equalsIgnoreCase(matcher.group(1))) { + while (matcher.find()) { + if (postmanGuidPlaceholderName.equalsIgnoreCase(matcher.group(1))) { // skip if it is postmanGuid placeholder break; } - if(postmanIsoTimestampPlaceholderName.equalsIgnoreCase(matcher.group(1))) { + if (postmanIsoTimestampPlaceholderName.equalsIgnoreCase(matcher.group(1))) { // skip if it is postmanIsoTimestamp placeholder break; } - if(isPostmanDynamicVariable(matcher.group(1))) { + if (isPostmanDynamicVariable(matcher.group(1))) { // skip if it is reserved words break; } @@ -653,7 +659,7 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC public boolean isPostmanDynamicVariable(String value) { boolean ret = false; - if(value.equals("$guid") || value.equals("$timestamp")) { + if (value.equals("$guid") || value.equals("$timestamp")) { ret = true; } @@ -672,7 +678,7 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC ret = ret + JSON_ESCAPE_DOUBLE_QUOTE + codegenProperty.baseName + JSON_ESCAPE_DOUBLE_QUOTE + ": " + JSON_ESCAPE_DOUBLE_QUOTE + "<" + getPostmanType(codegenProperty) + ">" + JSON_ESCAPE_DOUBLE_QUOTE; - if(counter < numVars) { + if (counter < numVars) { // add comma unless last attribute ret = ret + "," + JSON_ESCAPE_NEW_LINE + " "; } @@ -688,14 +694,14 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC public String getJsonFromExample(Example example) { String ret = ""; - if(example == null) { + if (example == null) { return ret; } - if(example.getValue() instanceof ObjectNode) { - ret = convertToJson((ObjectNode)example.getValue()); - } else if(example.getValue() instanceof LinkedHashMap) { - ret = convertToJson((LinkedHashMap)example.getValue()); + if (example.getValue() instanceof ObjectNode) { + ret = convertToJson((ObjectNode) example.getValue()); + } else if (example.getValue() instanceof LinkedHashMap) { + ret = convertToJson((LinkedHashMap) example.getValue()); } return ret; @@ -750,9 +756,9 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC String key = mapElement.getKey(); Object value = mapElement.getValue(); - if(value instanceof String) { + if (value instanceof String) { // unescape double quotes already escaped - value = ((String)value).replace("\\\"", "\""); + value = ((String) value).replace("\\\"", "\""); ret = ret + JSON_ESCAPE_DOUBLE_QUOTE + key + JSON_ESCAPE_DOUBLE_QUOTE + ": " + JSON_ESCAPE_DOUBLE_QUOTE + value + JSON_ESCAPE_DOUBLE_QUOTE; @@ -764,14 +770,14 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC value; } else if (value instanceof LinkedHashMap) { String in = ret + JSON_ESCAPE_DOUBLE_QUOTE + key + JSON_ESCAPE_DOUBLE_QUOTE + ": "; - ret = traverseMap(((LinkedHashMap) value), in); + ret = traverseMap(((LinkedHashMap) value), in); } else if (value instanceof ArrayList) { ret = ret + JSON_ESCAPE_DOUBLE_QUOTE + key + JSON_ESCAPE_DOUBLE_QUOTE + ": " + getJsonArray((ArrayList) value); } else { LOGGER.warn("Value type unrecognised: " + value.getClass()); } - if(counter < numVars) { + if (counter < numVars) { // add comma unless last attribute ret = ret + "," + JSON_ESCAPE_NEW_LINE + " "; } @@ -786,15 +792,15 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC String getJsonArray(ArrayList list) { String ret = ""; - for(Object element: list) { - if(element instanceof String) { + for (Object element : list) { + if (element instanceof String) { ret = ret + getStringArrayElement((String) element) + ", "; - } else if(element instanceof LinkedHashMap) { + } else if (element instanceof LinkedHashMap) { ret = traverseMap((LinkedHashMap) element, ret) + ", "; } } - if(ret.endsWith(", ")) { + if (ret.endsWith(", ")) { ret = ret.substring(0, ret.length() - 2); } @@ -804,7 +810,7 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC String getStringArrayElement(String element) { String ret = ""; - if(element.startsWith("{")) { + if (element.startsWith("{")) { // isJson (escape all double quotes) ret = ret + element.replace("\"", JSON_ESCAPE_DOUBLE_QUOTE); } else { @@ -816,9 +822,9 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC } public String getPostmanType(CodegenProperty codegenProperty) { - if(codegenProperty.isNumeric) { + if (codegenProperty.isNumeric) { return "number"; - } else if(codegenProperty.isDate) { + } else if (codegenProperty.isDate) { return "date"; } else { return "string"; @@ -826,7 +832,9 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC } // Supporting models - @Getter @Setter public class PostmanRequestItem { + @Getter + @Setter + public class PostmanRequestItem { private String name; private String body; @@ -841,7 +849,8 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC } - @Getter @Setter + @Getter + @Setter class PostmanVariable { private String name; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellClientCodegen.java index b6e466dd5b5..d0c603d20a0 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellClientCodegen.java @@ -19,8 +19,8 @@ package org.openapitools.codegen.languages; import io.swagger.v3.oas.models.media.Schema; import lombok.Setter; import org.apache.commons.io.FilenameUtils; -import org.apache.commons.text.StringEscapeUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.text.StringEscapeUtils; import org.openapitools.codegen.*; import org.openapitools.codegen.meta.GeneratorMetadata; import org.openapitools.codegen.meta.Stability; @@ -542,17 +542,17 @@ public class PowerShellClientCodegen extends DefaultCodegen implements CodegenCo cliOptions.add(new CliOption("commonVerbs", "PS common verb mappings. e.g. Delete=Remove:Patch=Update to map Delete with Remove and Patch with Update accordingly.")); cliOptions.add(new CliOption(CodegenConstants.USE_ONEOF_DISCRIMINATOR_LOOKUP, CodegenConstants.USE_ONEOF_DISCRIMINATOR_LOOKUP_DESC)); cliOptions.add(new CliOption("discardReadOnly", "Set discardReadonly to true to generate the Initialize cmdlet without readonly parameters")); - cliOptions.add(new CliOption("tags","Tags applied to the generated PowerShell module. These help with module discovery in online galleries")); - cliOptions.add(new CliOption("projectUri","A URL to the main website for this project")); - cliOptions.add(new CliOption("licenseUri","A URL to the license for the generated PowerShell module")); - cliOptions.add(new CliOption("iconUri","A URL to an icon representing the generated PowerShell module")); - cliOptions.add(new CliOption("releaseNotes","Release notes of the generated PowerShell module")); + cliOptions.add(new CliOption("tags", "Tags applied to the generated PowerShell module. These help with module discovery in online galleries")); + cliOptions.add(new CliOption("projectUri", "A URL to the main website for this project")); + cliOptions.add(new CliOption("licenseUri", "A URL to the license for the generated PowerShell module")); + cliOptions.add(new CliOption("iconUri", "A URL to an icon representing the generated PowerShell module")); + cliOptions.add(new CliOption("releaseNotes", "Release notes of the generated PowerShell module")); cliOptions.add(new CliOption("skipVerbParsing", "Set skipVerbParsing to not try get powershell verbs of operation names")); cliOptions.add(new CliOption("modelsCmdletVerb", "Verb to be used when generating the Models cmdlets in the examples.").defaultValue(this.modelsCmdletVerb)); CliOption useClassNameInModelsExamplesOpt = CliOption.newBoolean( - "useClassNameInModelsExamples", - "Use classname instead of name when generating the Models cmdlets in the examples." + "useClassNameInModelsExamples", + "Use classname instead of name when generating the Models cmdlets in the examples." ).defaultValue(this.useClassNameInModelsExamples ? Boolean.TRUE.toString() : Boolean.FALSE.toString()); cliOptions.add(useClassNameInModelsExamplesOpt); @@ -605,9 +605,13 @@ public class PowerShellClientCodegen extends DefaultCodegen implements CodegenCo return this.discardReadOnly; } - public void SetModelsCmdletVerb(String modelsCmdletVerb) { this.modelsCmdletVerb = modelsCmdletVerb; } + public void SetModelsCmdletVerb(String modelsCmdletVerb) { + this.modelsCmdletVerb = modelsCmdletVerb; + } - public void SetUseClassNameInModelsExamples(boolean useClassNameInModelsExamples) { this.useClassNameInModelsExamples = useClassNameInModelsExamples; } + public void SetUseClassNameInModelsExamples(boolean useClassNameInModelsExamples) { + this.useClassNameInModelsExamples = useClassNameInModelsExamples; + } @Override public void processOpts() { @@ -648,15 +652,15 @@ public class PowerShellClientCodegen extends DefaultCodegen implements CodegenCo if (additionalProperties.containsKey("tags")) { String[] entries = ((String) additionalProperties.get("tags")).split(","); String prefix = ""; - StringBuilder tagStr = new StringBuilder("@("); + StringBuilder tagStr = new StringBuilder("@("); for (String entry : entries) { tagStr.append(prefix); prefix = ","; - tagStr.append(String.format(Locale.ROOT, "'%s' ",entry)); + tagStr.append(String.format(Locale.ROOT, "'%s' ", entry)); } tagStr.append(")"); setTags(tagStr.toString()); - additionalProperties.put("tags",tagStr.toString()); + additionalProperties.put("tags", tagStr.toString()); } if (additionalProperties.containsKey("releaseNotes")) { @@ -795,8 +799,8 @@ public class PowerShellClientCodegen extends DefaultCodegen implements CodegenCo // finally escalate characters avoiding code injection return escapeUnsafeCharacters( StringEscapeUtils.unescapeJava( - StringEscapeUtils.escapeJava(input) - .replace("\\/", "/")) + StringEscapeUtils.escapeJava(input) + .replace("\\/", "/")) .replaceAll("[\\t\\n\\r]", " ") .replace("\"", "\"\"")); @@ -1257,10 +1261,10 @@ public class PowerShellClientCodegen extends DefaultCodegen implements CodegenCo List propertyExamples = new ArrayList<>(); for (CodegenProperty codegenProperty : codegenModel.allVars) { if ( - !hasModelProperty && ( - codegenProperty.isModel || - (codegenProperty.isArray && (codegenProperty.items.isModel || (modelMaps.containsKey(codegenProperty.items.dataType) && codegenProperty.items.allowableValues == null))) || - (codegenProperty.isMap && codegenProperty.items.isModel)) + !hasModelProperty && ( + codegenProperty.isModel || + (codegenProperty.isArray && (codegenProperty.items.isModel || (modelMaps.containsKey(codegenProperty.items.dataType) && codegenProperty.items.allowableValues == null))) || + (codegenProperty.isMap && codegenProperty.items.isModel)) ) { example.append("\n"); hasModelProperty = true; @@ -1342,9 +1346,9 @@ public class PowerShellClientCodegen extends DefaultCodegen implements CodegenCo example.append("\""); if ( - StringUtils.isEmpty(codegenExample) || - codegenExample.equals("null") || - codegenExample.equals(genericStringExample) + StringUtils.isEmpty(codegenExample) || + codegenExample.equals("null") || + codegenExample.equals(genericStringExample) ) { example.append("My").append(codegenName); } else { @@ -1468,7 +1472,7 @@ public class PowerShellClientCodegen extends DefaultCodegen implements CodegenCo // only process files with ps extension if ("ps".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {powershellPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{powershellPostProcessFile, file.toString()}); } } @@ -1517,7 +1521,9 @@ public class PowerShellClientCodegen extends DefaultCodegen implements CodegenCo } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.POWERSHELL; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.POWERSHELL; + } @Override public String toEnumVarName(String name, String datatype) { @@ -1531,9 +1537,9 @@ public class PowerShellClientCodegen extends DefaultCodegen implements CodegenCo } // number - if ("Int16".equals(datatype) || "Int32".equals(datatype) || "Int64".equals(datatype) || - "UInt16".equals(datatype) || "UInt32".equals(datatype) || "UInt64".equals(datatype) || - "Double".equals(datatype) || "Single".equals(datatype) || "Decimal".equals(datatype)) { + if ("Int16".equals(datatype) || "Int32".equals(datatype) || "Int64".equals(datatype) || + "UInt16".equals(datatype) || "UInt32".equals(datatype) || "UInt64".equals(datatype) || + "Double".equals(datatype) || "Single".equals(datatype) || "Decimal".equals(datatype)) { String varName = name; varName = varName.replaceAll("-", "MINUS_"); varName = varName.replaceAll("\\+", "PLUS_"); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ProtobufSchemaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ProtobufSchemaCodegen.java index e4ede29750c..8d238a23b90 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ProtobufSchemaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ProtobufSchemaCodegen.java @@ -17,8 +17,8 @@ package org.openapitools.codegen.languages; import io.swagger.v3.oas.models.media.Schema; - import lombok.Setter; +import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.*; import org.openapitools.codegen.exceptions.ProtoBufIndexComputationException; import org.openapitools.codegen.meta.GeneratorMetadata; @@ -31,9 +31,6 @@ import org.openapitools.codegen.model.ModelsMap; import org.openapitools.codegen.model.OperationMap; import org.openapitools.codegen.model.OperationsMap; import org.openapitools.codegen.utils.ModelUtils; - -import org.apache.commons.lang3.StringUtils; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -42,7 +39,8 @@ import java.util.*; import java.util.Map.Entry; import java.util.regex.Pattern; -import static org.openapitools.codegen.utils.StringUtils.*; +import static org.openapitools.codegen.utils.StringUtils.camelize; +import static org.openapitools.codegen.utils.StringUtils.underscore; public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConfig { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonAiohttpConnexionServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonAiohttpConnexionServerCodegen.java index 49e86939942..a7777edc0fb 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonAiohttpConnexionServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonAiohttpConnexionServerCodegen.java @@ -77,5 +77,7 @@ public class PythonAiohttpConnexionServerCodegen extends AbstractPythonConnexion } @Override - public String generatorLanguageVersion() { return "3.5.2+"; } + public String generatorLanguageVersion() { + return "3.5.2+"; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonBluePlanetServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonBluePlanetServerCodegen.java index e0fdc0a52b3..e1d89491d10 100755 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonBluePlanetServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonBluePlanetServerCodegen.java @@ -15,20 +15,15 @@ */ package org.openapitools.codegen.languages; -import java.io.File; -import java.util.EnumSet; - import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.SupportingFile; -import org.openapitools.codegen.meta.features.DocumentationFeature; -import org.openapitools.codegen.meta.features.GlobalFeature; -import org.openapitools.codegen.meta.features.ParameterFeature; -import org.openapitools.codegen.meta.features.SchemaSupportFeature; -import org.openapitools.codegen.meta.features.SecurityFeature; -import org.openapitools.codegen.meta.features.WireFormatFeature; +import org.openapitools.codegen.meta.features.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.File; +import java.util.EnumSet; + public class PythonBluePlanetServerCodegen extends AbstractPythonConnexionServerCodegen { private final Logger LOGGER = LoggerFactory.getLogger(PythonBluePlanetServerCodegen.class); @@ -242,8 +237,8 @@ public class PythonBluePlanetServerCodegen extends AbstractPythonConnexionServer } @Override - public String toModelDocFilename( String name ) { - return toModelName( name ) + "_ResourceType"; + public String toModelDocFilename(String name) { + return toModelName(name) + "_ResourceType"; } @Override @@ -267,5 +262,7 @@ public class PythonBluePlanetServerCodegen extends AbstractPythonConnexionServer } @Override - public String generatorLanguageVersion() { return "3.5.2+"; } + public String generatorLanguageVersion() { + return "3.5.2+"; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java index c2a04ac86ff..bba63b65ee0 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java @@ -31,7 +31,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; -import java.util.*; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import static org.openapitools.codegen.utils.StringUtils.underscore; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFastAPIServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFastAPIServerCodegen.java index 0ea2e9690aa..fe6764014a2 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFastAPIServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFastAPIServerCodegen.java @@ -89,16 +89,16 @@ public class PythonFastAPIServerCodegen extends AbstractPythonCodegen { super(); modifyFeatureSet(features -> features.includeSecurityFeatures( - SecurityFeature.OAuth2_AuthorizationCode, - SecurityFeature.OAuth2_Password + SecurityFeature.OAuth2_AuthorizationCode, + SecurityFeature.OAuth2_Password )); generatorMetadata = GeneratorMetadata.newBuilder(generatorMetadata).stability(Stability.BETA).build(); MAPPER.registerModule( - new SimpleModule() - .addKeySerializer(String.class, new SnakeCaseKeySerializer()) - .addSerializer(Boolean.class, new PythonBooleanSerializer()) + new SimpleModule() + .addKeySerializer(String.class, new SnakeCaseKeySerializer()) + .addSerializer(Boolean.class, new PythonBooleanSerializer()) ); /* @@ -325,7 +325,9 @@ public class PythonFastAPIServerCodegen extends AbstractPythonCodegen { } @Override - public String generatorLanguageVersion() { return "3.7"; } + public String generatorLanguageVersion() { + return "3.7"; + } @Override public String escapeReservedWord(String name) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFlaskConnexionServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFlaskConnexionServerCodegen.java index 715574a8835..997a83a7acb 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFlaskConnexionServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFlaskConnexionServerCodegen.java @@ -56,5 +56,7 @@ public class PythonFlaskConnexionServerCodegen extends AbstractPythonConnexionSe } @Override - public String generatorLanguageVersion() { return "3.5.2+"; } + public String generatorLanguageVersion() { + return "3.5.2+"; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RClientCodegen.java index 7e7d8ebb351..d588e42b099 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RClientCodegen.java @@ -19,8 +19,6 @@ package org.openapitools.codegen.languages; import com.samskivert.mustache.Mustache; import com.samskivert.mustache.Template; - -//import com.sun.media.sound.InvalidDataException; import io.swagger.v3.oas.models.examples.Example; import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.parameters.Parameter; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustAxumServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustAxumServerCodegen.java index 05d4e68612a..9bf2762fbb6 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustAxumServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustAxumServerCodegen.java @@ -31,7 +31,10 @@ import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.*; import org.openapitools.codegen.meta.GeneratorMetadata; import org.openapitools.codegen.meta.Stability; -import org.openapitools.codegen.meta.features.*; +import org.openapitools.codegen.meta.features.GlobalFeature; +import org.openapitools.codegen.meta.features.SchemaSupportFeature; +import org.openapitools.codegen.meta.features.SecurityFeature; +import org.openapitools.codegen.meta.features.WireFormatFeature; import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.ModelsMap; import org.openapitools.codegen.model.OperationMap; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustClientCodegen.java index ef438aeb297..c93bec52c2e 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustClientCodegen.java @@ -17,41 +17,18 @@ package org.openapitools.codegen.languages; -import java.io.File; -import java.io.IOException; -import java.io.Writer; -import java.math.BigDecimal; -import java.math.BigInteger; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; -import java.util.stream.Collectors; - -import org.openapitools.codegen.CliOption; -import org.openapitools.codegen.CodegenConfig; -import org.openapitools.codegen.CodegenConstants; -import org.openapitools.codegen.CodegenModel; -import org.openapitools.codegen.CodegenOperation; -import org.openapitools.codegen.CodegenParameter; -import org.openapitools.codegen.CodegenProperty; -import org.openapitools.codegen.CodegenType; -import org.openapitools.codegen.SupportingFile; -import org.openapitools.codegen.meta.features.ClientModificationFeature; -import org.openapitools.codegen.meta.features.DocumentationFeature; -import org.openapitools.codegen.meta.features.GlobalFeature; -import org.openapitools.codegen.meta.features.ParameterFeature; -import org.openapitools.codegen.meta.features.SchemaSupportFeature; -import org.openapitools.codegen.meta.features.SecurityFeature; -import org.openapitools.codegen.meta.features.WireFormatFeature; +import com.google.common.collect.ImmutableMap; +import com.samskivert.mustache.Mustache; +import com.samskivert.mustache.Mustache.Lambda; +import com.samskivert.mustache.Template; +import io.swagger.v3.oas.models.media.Discriminator; +import io.swagger.v3.oas.models.media.Schema; +import io.swagger.v3.parser.util.SchemaTypeUtil; +import joptsimple.internal.Strings; +import lombok.AccessLevel; +import lombok.Setter; +import org.openapitools.codegen.*; +import org.openapitools.codegen.meta.features.*; import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.ModelsMap; import org.openapitools.codegen.model.OperationMap; @@ -62,17 +39,13 @@ import org.openapitools.codegen.utils.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.ImmutableMap; -import com.samskivert.mustache.Mustache; -import com.samskivert.mustache.Mustache.Lambda; -import com.samskivert.mustache.Template; - -import io.swagger.v3.oas.models.media.Discriminator; -import io.swagger.v3.oas.models.media.Schema; -import io.swagger.v3.parser.util.SchemaTypeUtil; -import joptsimple.internal.Strings; -import lombok.AccessLevel; -import lombok.Setter; +import java.io.File; +import java.io.IOException; +import java.io.Writer; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.util.*; +import java.util.stream.Collectors; public class RustClientCodegen extends AbstractRustCodegen implements CodegenConfig { private final Logger LOGGER = LoggerFactory.getLogger(RustClientCodegen.class); @@ -115,7 +88,6 @@ public class RustClientCodegen extends AbstractRustCodegen implements CodegenCon // If the API does not contain any UUIDs we do not need depend on the `uuid` crate private boolean hasUUIDs = false; - @Override public CodegenType getTag() { return CodegenType.CLIENT; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustServerCodegen.java index 76c4c51ca7c..ec9b3de2340 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustServerCodegen.java @@ -21,11 +21,7 @@ import io.swagger.v3.core.util.Json; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.Operation; import io.swagger.v3.oas.models.info.Info; -import io.swagger.v3.oas.models.media.Schema; -import io.swagger.v3.oas.models.media.ArraySchema; -import io.swagger.v3.oas.models.media.ComposedSchema; -import io.swagger.v3.oas.models.media.FileSchema; -import io.swagger.v3.oas.models.media.XML; +import io.swagger.v3.oas.models.media.*; import io.swagger.v3.oas.models.parameters.Parameter; import io.swagger.v3.oas.models.parameters.RequestBody; import io.swagger.v3.oas.models.responses.ApiResponse; @@ -38,11 +34,7 @@ import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.*; import org.openapitools.codegen.meta.features.*; -import org.openapitools.codegen.model.ApiInfoMap; -import org.openapitools.codegen.model.ModelMap; -import org.openapitools.codegen.model.ModelsMap; -import org.openapitools.codegen.model.OperationMap; -import org.openapitools.codegen.model.OperationsMap; +import org.openapitools.codegen.model.*; import org.openapitools.codegen.utils.ModelUtils; import org.openapitools.codegen.utils.URLPathUtils; import org.slf4j.Logger; @@ -591,7 +583,7 @@ public class RustServerCodegen extends AbstractRustCodegen implements CodegenCon op.vendorExtensions.put("x-is-delete", isDelete); if (isDelete) { - additionalProperties.put("apiHasDeleteMethods", true); + additionalProperties.put("apiHasDeleteMethods", true); } if (!op.vendorExtensions.containsKey("x-must-use-response")) { @@ -821,7 +813,7 @@ public class RustServerCodegen extends AbstractRustCodegen implements CodegenCon operationList.sort((one, another) -> { int params_compare = ObjectUtils.compare(one.pathParams.size(), another.pathParams.size()); - if (params_compare == 0) { + if (params_compare == 0) { return ObjectUtils.compare(one.operationId, another.operationId); } else { return params_compare; @@ -863,7 +855,7 @@ public class RustServerCodegen extends AbstractRustCodegen implements CodegenCon } } - if (op.bodyParams.size() > 0 || op.formParams.size() > 0){ + if (op.bodyParams.size() > 0 || op.formParams.size() > 0) { op.vendorExtensions.put("x-has-request-body", true); } @@ -1583,7 +1575,7 @@ public class RustServerCodegen extends AbstractRustCodegen implements CodegenCon // only process files with .rs extension if ("rs".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {commandPrefix, file.toString()}); + this.executePostProcessor(new String[]{commandPrefix, file.toString()}); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java index d1d1daed883..eb076d4b200 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java @@ -336,14 +336,14 @@ public class ScalaAkkaHttpServerCodegen extends AbstractScalaCodegen implements "String" ); - private static final Map pathTypeToMatcher = ImmutableMap.builder() - .put("Int", "IntNumber") - .put("Long", "LongNumber") - .put("Float", "FloatNumber") - .put("Double", "DoubleNumber") - .put("Boolean", "Boolean") - .put("String", "Segment") - .build(); + private static final Map pathTypeToMatcher = ImmutableMap.builder() + .put("Int", "IntNumber") + .put("Long", "LongNumber") + .put("Float", "FloatNumber") + .put("Double", "DoubleNumber") + .put("Boolean", "Boolean") + .put("String", "Segment") + .build(); protected void addPathMatcher(CodegenOperation codegenOperation) { LinkedList allPaths = new LinkedList<>(Arrays.asList(codegenOperation.path.split("/"))); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaCaskServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaCaskServerCodegen.java index 426b336966c..7179f737481 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaCaskServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaCaskServerCodegen.java @@ -18,7 +18,6 @@ package org.openapitools.codegen.languages; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.media.Schema; -import io.swagger.v3.oas.models.parameters.RequestBody; import org.apache.commons.io.FileUtils; import org.openapitools.codegen.*; import org.openapitools.codegen.model.ModelMap; @@ -294,6 +293,7 @@ public class ScalaCaskServerCodegen extends AbstractScalaCodegen implements Code } return apiFileFolder() + '/' + fn + "Routes" + suffix; } + @Override public String modelFilename(String templateName, String modelName) { final String defaultFilename = super.modelFilename(templateName, modelName); @@ -397,7 +397,7 @@ public class ScalaCaskServerCodegen extends AbstractScalaCodegen implements Code /** * This class is used in pathExtractorParams.mustache. - * + *

    * It exposes some methods which make it more readable * for that mustache snippet, and also isolates the logic needed for the path extractors */ @@ -424,7 +424,7 @@ public class ScalaCaskServerCodegen extends AbstractScalaCodegen implements Code /** * This data structure is here to manually identify and fix routes which will overlap (e.g. GET /foo/bar and GET /foo/bazz) - * + *

    * If we added these as individual routes, then Cask itself will compile, but calling 'initialize' throws a route overlap exception: *

    * {{{ @@ -751,6 +751,7 @@ public class ScalaCaskServerCodegen extends AbstractScalaCodegen implements Code /** * primitive or enum types don't have Data representations + * * @param p the property * @return if this property need to have '.asModel' or '.asData' called on it? */ @@ -772,11 +773,11 @@ public class ScalaCaskServerCodegen extends AbstractScalaCodegen implements Code /** * There's a weird edge-case where fields can be declared like this: - * + *

    * {{{ - * someField: - * format: byte - * type: string + * someField: + * format: byte + * type: string * }} */ private static boolean isByteArray(final CodegenProperty p) { @@ -791,13 +792,13 @@ public class ScalaCaskServerCodegen extends AbstractScalaCodegen implements Code * this parameter is used to create the function: * {{{ * class { - * ... - * def asData = Data( - * someProp = ... <-- how do we turn this property into a model property? - * ) + * ... + * def asData = Data( + * someProp = ... <-- how do we turn this property into a model property? + * ) * } * }}} - * + *

    * and then back again */ private static String asDataCode(final CodegenProperty p, final Set typesWhichDoNotNeedMapping) { @@ -836,13 +837,12 @@ public class ScalaCaskServerCodegen extends AbstractScalaCodegen implements Code } /** - * * {{{ * class Data { - * ... - * def asModel = ( - * someProp = ... <-- how do we turn this property into a model property? - * ) + * ... + * def asModel = ( + * someProp = ... <-- how do we turn this property into a model property? + * ) * } * }}} * @@ -1064,8 +1064,9 @@ public class ScalaCaskServerCodegen extends AbstractScalaCodegen implements Code /** * the subtypes of IJsonSchemaValidationProperties have an 'isNumeric', but that's not a method on IJsonSchemaValidationProperties. - * + *

    * This helper method tries to isolate that noisy logic in a safe way so we can ask 'is this IJsonSchemaValidationProperties numeric'? + * * @param p the property * @return true if the property is numeric */ @@ -1086,11 +1087,11 @@ public class ScalaCaskServerCodegen extends AbstractScalaCodegen implements Code } if (p instanceof CodegenParameter) { - return ((CodegenParameter)p).isNumeric; + return ((CodegenParameter) p).isNumeric; } else if (p instanceof CodegenProperty) { - return ((CodegenProperty)p).isNumeric; + return ((CodegenProperty) p).isNumeric; } else { - return p.getIsNumber() || p.getIsFloat() || p.getIsDecimal() || p.getIsDouble() || p.getIsInteger() || p.getIsLong() || p.getIsUnboundedInteger(); + return p.getIsNumber() || p.getIsFloat() || p.getIsDecimal() || p.getIsDouble() || p.getIsInteger() || p.getIsLong() || p.getIsUnboundedInteger(); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaFinchServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaFinchServerCodegen.java index a869bbecad1..e6144e081f9 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaFinchServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaFinchServerCodegen.java @@ -482,5 +482,7 @@ public class ScalaFinchServerCodegen extends DefaultCodegen implements CodegenCo } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.SCALA; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.SCALA; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaGatlingCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaGatlingCodegen.java index 48e4f81f124..3a9eb9b1c1c 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaGatlingCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaGatlingCodegen.java @@ -368,9 +368,9 @@ public class ScalaGatlingCodegen extends AbstractScalaCodegen implements Codegen operation.addExtension("x-gatling-" + parameterType.toLowerCase(Locale.ROOT) + "-feeder", operation.getOperationId() + parameterType.toUpperCase(Locale.ROOT) + "Feeder"); try { FileUtils.writeStringToFile( - new File(outputFolder + File.separator + dataFolder + File.separator + operation.getOperationId() + "-" + parameterType.toLowerCase(Locale.ROOT) + "Params.csv"), - StringUtils.join(parameterNames, ","), - StandardCharsets.UTF_8 + new File(outputFolder + File.separator + dataFolder + File.separator + operation.getOperationId() + "-" + parameterType.toLowerCase(Locale.ROOT) + "Params.csv"), + StringUtils.join(parameterNames, ","), + StandardCharsets.UTF_8 ); } catch (IOException ioe) { LOGGER.error("Could not create feeder file for operationId" + operation.getOperationId(), ioe); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaPlayFrameworkServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaPlayFrameworkServerCodegen.java index 44caae87fb3..13017961c66 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaPlayFrameworkServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaPlayFrameworkServerCodegen.java @@ -18,16 +18,11 @@ package org.openapitools.codegen.languages; import com.google.common.collect.ImmutableMap; import com.samskivert.mustache.Mustache.Lambda; - import io.swagger.v3.oas.models.media.Schema; import lombok.Setter; import org.openapitools.codegen.*; import org.openapitools.codegen.meta.features.*; -import org.openapitools.codegen.model.ApiInfoMap; -import org.openapitools.codegen.model.ModelMap; -import org.openapitools.codegen.model.ModelsMap; -import org.openapitools.codegen.model.OperationMap; -import org.openapitools.codegen.model.OperationsMap; +import org.openapitools.codegen.model.*; import org.openapitools.codegen.templating.mustache.IndentedLambda; import org.openapitools.codegen.utils.ModelUtils; import org.slf4j.Logger; @@ -53,7 +48,7 @@ public class ScalaPlayFrameworkServerCodegen extends AbstractScalaCodegen implem public static final String ROUTES_FILE_NAME = "routesFileName"; public static final String BASE_PACKAGE = "basePackage"; - final Logger LOGGER = LoggerFactory.getLogger(ScalaPlayFrameworkServerCodegen.class); + final Logger LOGGER = LoggerFactory.getLogger(ScalaPlayFrameworkServerCodegen.class); @Setter protected boolean skipStubs = false; @Setter protected boolean supportAsync = false; @@ -398,7 +393,7 @@ public class ScalaPlayFrameworkServerCodegen extends AbstractScalaCodegen implem StringBuilder defaultValue = new StringBuilder(); defaultValue.append(cm.classname).append('('); - for(int i = 0; i < cm.vars.size(); i++) { + for (int i = 0; i < cm.vars.size(); i++) { CodegenProperty var = cm.vars.get(i); if (!var.required) { defaultValue.append("None"); @@ -413,7 +408,7 @@ public class ScalaPlayFrameworkServerCodegen extends AbstractScalaCodegen implem defaultValue.append("null"); } - if (i < cm.vars.size()-1) { + if (i < cm.vars.size() - 1) { defaultValue.append(", "); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaSttpClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaSttpClientCodegen.java index 9ef0b225522..c1fd3f42294 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaSttpClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaSttpClientCodegen.java @@ -243,7 +243,7 @@ public class ScalaSttpClientCodegen extends AbstractScalaCodegen implements Code /** * Update/clean up model imports - * + *

    * append '._" if the import is a Enum class, otherwise * remove model imports to avoid warnings for importing class in the same package in Scala * @@ -277,8 +277,7 @@ public class ScalaSttpClientCodegen extends AbstractScalaCodegen implements Code item.put("import", importPath.concat("._")); newImports.add(item); } - } - else { + } else { item.put("import", importPath); newImports.add(item); } @@ -358,8 +357,7 @@ public class ScalaSttpClientCodegen extends AbstractScalaCodegen implements Code Map item = new HashMap<>(); if (isEnumClass(importPath, enumRefs)) { item.put("import", importPath.concat("._")); - } - else { + } else { item.put("import", importPath); } newImports.add(item); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalatraServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalatraServerCodegen.java index cfb051ec83e..e04d7768379 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalatraServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalatraServerCodegen.java @@ -51,7 +51,7 @@ public class ScalatraServerCodegen extends AbstractScalaCodegen implements Codeg .excludeParameterFeatures( ParameterFeature.Cookie ) - ); + ); outputFolder = "generated-code/scalatra"; modelTemplateFiles.put("model.mustache", ".scala"); @@ -125,9 +125,9 @@ public class ScalatraServerCodegen extends AbstractScalaCodegen implements Codeg @Override public void processOpts() { super.processOpts(); - + String appPackage = invokerPackage + ".app"; - + supportingFiles.add(new SupportingFile("README.mustache", "", "README.md")); supportingFiles.add(new SupportingFile("build.mustache", "", "build.sbt")); supportingFiles.add(new SupportingFile("web.xml", "/src/main/webapp/WEB-INF", "web.xml")); @@ -144,7 +144,7 @@ public class ScalatraServerCodegen extends AbstractScalaCodegen implements Codeg additionalProperties.put("appDescription", appDescription); additionalProperties.put("infoUrl", infoUrl); additionalProperties.put("infoEmail", infoEmail); - additionalProperties.put("apiVersion", apiVersion) ; + additionalProperties.put("apiVersion", apiVersion); additionalProperties.put("licenseInfo", licenseInfo); additionalProperties.put("licenseUrl", licenseUrl); additionalProperties.put(CodegenConstants.INVOKER_PACKAGE, invokerPackage); @@ -152,7 +152,7 @@ public class ScalatraServerCodegen extends AbstractScalaCodegen implements Codeg additionalProperties.put(CodegenConstants.ARTIFACT_ID, artifactId); additionalProperties.put(CodegenConstants.ARTIFACT_VERSION, artifactVersion); } - + @Override public CodegenType getTag() { return CodegenType.SERVER; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalazClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalazClientCodegen.java index 3a46fc6a51a..dfb0d7d9b97 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalazClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalazClientCodegen.java @@ -21,7 +21,10 @@ import com.samskivert.mustache.Mustache; import com.samskivert.mustache.Template; import io.swagger.v3.oas.models.media.Schema; import org.apache.commons.lang3.StringUtils; -import org.openapitools.codegen.*; +import org.openapitools.codegen.CodegenConfig; +import org.openapitools.codegen.CodegenProperty; +import org.openapitools.codegen.CodegenType; +import org.openapitools.codegen.SupportingFile; import org.openapitools.codegen.meta.features.*; import org.openapitools.codegen.utils.ModelUtils; import org.slf4j.Logger; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java index d0184b803d4..5b28553854b 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java @@ -17,10 +17,6 @@ package org.openapitools.codegen.languages; -import static org.apache.commons.lang3.StringUtils.isNotEmpty; -import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER; -import static org.openapitools.codegen.utils.StringUtils.camelize; - import com.samskivert.mustache.Mustache; import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; @@ -30,39 +26,13 @@ import io.swagger.v3.oas.models.media.MediaType; import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.servers.Server; import io.swagger.v3.oas.models.tags.Tag; -import java.io.File; -import java.net.URL; -import java.util.*; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.stream.Collectors; - import lombok.Getter; import lombok.Setter; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Pair; -import org.openapitools.codegen.CliOption; -import org.openapitools.codegen.CodegenConstants; -import org.openapitools.codegen.CodegenModel; -import org.openapitools.codegen.CodegenOperation; -import org.openapitools.codegen.CodegenParameter; -import org.openapitools.codegen.CodegenProperty; -import org.openapitools.codegen.CodegenResponse; -import org.openapitools.codegen.CodegenSecurity; -import org.openapitools.codegen.CodegenType; -import org.openapitools.codegen.SupportingFile; -import org.openapitools.codegen.VendorExtension; -import org.openapitools.codegen.languages.features.BeanValidationFeatures; -import org.openapitools.codegen.languages.features.DocumentationProviderFeatures; -import org.openapitools.codegen.languages.features.OptionalFeatures; -import org.openapitools.codegen.languages.features.PerformBeanValidationFeatures; -import org.openapitools.codegen.languages.features.SwaggerUIFeatures; -import org.openapitools.codegen.meta.features.DocumentationFeature; -import org.openapitools.codegen.meta.features.GlobalFeature; -import org.openapitools.codegen.meta.features.ParameterFeature; -import org.openapitools.codegen.meta.features.SchemaSupportFeature; -import org.openapitools.codegen.meta.features.SecurityFeature; -import org.openapitools.codegen.meta.features.WireFormatFeature; +import org.openapitools.codegen.*; +import org.openapitools.codegen.languages.features.*; +import org.openapitools.codegen.meta.features.*; import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.ModelsMap; import org.openapitools.codegen.model.OperationMap; @@ -75,6 +45,17 @@ import org.openapitools.codegen.utils.URLPathUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.File; +import java.net.URL; +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +import static org.apache.commons.lang3.StringUtils.isNotEmpty; +import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER; +import static org.openapitools.codegen.utils.StringUtils.camelize; + public class SpringCodegen extends AbstractJavaCodegen implements BeanValidationFeatures, PerformBeanValidationFeatures, OptionalFeatures, SwaggerUIFeatures { private final Logger LOGGER = LoggerFactory.getLogger(SpringCodegen.class); @@ -116,7 +97,8 @@ public class SpringCodegen extends AbstractJavaCodegen public static final String USE_SEALED = "useSealed"; public static final String OPTIONAL_ACCEPT_NULLABLE = "optionalAcceptNullable"; - @Getter public enum RequestMappingMode { + @Getter + public enum RequestMappingMode { api_interface("Generate the @RequestMapping annotation on the generated Api Interface."), controller("Generate the @RequestMapping annotation on the generated Api Controller Implementation."), none("Do not add a class level @RequestMapping annotation."); @@ -247,9 +229,9 @@ public class SpringCodegen extends AbstractJavaCodegen cliOptions.add(CliOption.newBoolean(SPRING_CONTROLLER, "Annotate the generated API as a Spring Controller", useSpringController)); CliOption requestMappingOpt = new CliOption(REQUEST_MAPPING_OPTION, - "Where to generate the class level @RequestMapping annotation.") - .defaultValue(requestMappingMode.name()); - for (RequestMappingMode mode: RequestMappingMode.values()) { + "Where to generate the class level @RequestMapping annotation.") + .defaultValue(requestMappingMode.name()); + for (RequestMappingMode mode : RequestMappingMode.values()) { requestMappingOpt.addEnum(mode.name(), mode.getDescription()); } cliOptions.add(requestMappingOpt); @@ -258,21 +240,21 @@ public class SpringCodegen extends AbstractJavaCodegen "Declare operation methods to throw a generic exception and allow unhandled exceptions (useful for Spring `@ControllerAdvice` directives).", unhandledException)); cliOptions.add(CliOption.newBoolean(USE_SWAGGER_UI, - "Open the OpenApi specification in swagger-ui. Will also import and configure needed dependencies", - useSwaggerUI)); + "Open the OpenApi specification in swagger-ui. Will also import and configure needed dependencies", + useSwaggerUI)); cliOptions.add(CliOption.newBoolean(USE_RESPONSE_ENTITY, "Use the `ResponseEntity` type to wrap return values of generated API methods. " - + "If disabled, method are annotated using a `@ResponseStatus` annotation, which has the status of the first response declared in the Api definition", + + "If disabled, method are annotated using a `@ResponseStatus` annotation, which has the status of the first response declared in the Api definition", useResponseEntity)); cliOptions.add(CliOption.newBoolean(USE_ENUM_CASE_INSENSITIVE, "Use `equalsIgnoreCase` when String for enum comparison", useEnumCaseInsensitive)); cliOptions.add(CliOption.newBoolean(USE_SPRING_BOOT3, - "Generate code and provide dependencies for use with Spring Boot 3.x. (Use jakarta instead of javax in imports). Enabling this option will also enable `useJakartaEe`.", - useSpringBoot3)); + "Generate code and provide dependencies for use with Spring Boot 3.x. (Use jakarta instead of javax in imports). Enabling this option will also enable `useJakartaEe`.", + useSpringBoot3)); cliOptions.add(CliOption.newBoolean(GENERATE_CONSTRUCTOR_WITH_REQUIRED_ARGS, - "Whether to generate constructors with required args for models", - generatedConstructorWithRequiredArgs)); + "Whether to generate constructors with required args for models", + generatedConstructorWithRequiredArgs)); cliOptions.add(new CliOption(RESOURCE_FOLDER, RESOURCE_FOLDER_DESC).defaultValue(this.getResourceFolder())); cliOptions.add(CliOption.newBoolean(OPTIONAL_ACCEPT_NULLABLE, "Use `ofNullable` instead of just `of` to accept null values when using Optional.", @@ -280,7 +262,7 @@ public class SpringCodegen extends AbstractJavaCodegen supportedLibraries.put(SPRING_BOOT, "Spring-boot Server application."); supportedLibraries.put(SPRING_CLOUD_LIBRARY, - "Spring-Cloud-Feign client with Spring-Boot auto-configured settings."); + "Spring-Cloud-Feign client with Spring-Boot auto-configured settings."); supportedLibraries.put(SPRING_HTTP_INTERFACE, "Spring 6 HTTP interfaces (testing)"); setLibrary(SPRING_BOOT); final CliOption library = new CliOption(CodegenConstants.LIBRARY, CodegenConstants.LIBRARY_DESC) @@ -376,7 +358,7 @@ public class SpringCodegen extends AbstractJavaCodegen if (SPRING_HTTP_INTERFACE.equals(library)) { documentationProvider = DocumentationProvider.NONE; annotationLibrary = AnnotationLibrary.NONE; - useJakartaEe=true; + useJakartaEe = true; useBeanValidation = false; performBeanValidation = false; @@ -391,7 +373,7 @@ public class SpringCodegen extends AbstractJavaCodegen applyJakartaPackage(); LOGGER.warn("For Spring HTTP Interface following options are disabled: documentProvider, annotationLibrary, useBeanValidation, performBeanValidation. " - + "useJakartaEe defaulted to 'true'"); + + "useJakartaEe defaulted to 'true'"); } if (DocumentationProvider.SPRINGFOX.equals(getDocumentationProvider())) { @@ -411,7 +393,7 @@ public class SpringCodegen extends AbstractJavaCodegen convertPropertyToBooleanAndWriteBack(INTERFACE_ONLY, this::setInterfaceOnly); convertPropertyToBooleanAndWriteBack(USE_FEIGN_CLIENT_URL, this::setUseFeignClientUrl); convertPropertyToBooleanAndWriteBack(DELEGATE_PATTERN, this::setDelegatePattern); - convertPropertyToBooleanAndWriteBack(SINGLE_CONTENT_TYPES, this:: setSingleContentTypes); + convertPropertyToBooleanAndWriteBack(SINGLE_CONTENT_TYPES, this::setSingleContentTypes); convertPropertyToBooleanAndWriteBack(SKIP_DEFAULT_INTERFACE, this::setSkipDefaultInterface); convertPropertyToBooleanAndWriteBack(ASYNC, this::setAsync); if (additionalProperties.containsKey(REACTIVE)) { @@ -430,7 +412,7 @@ public class SpringCodegen extends AbstractJavaCodegen convertPropertyToBooleanAndWriteBack(API_FIRST, this::setApiFirst); convertPropertyToBooleanAndWriteBack(HATEOAS, this::setHateoas); convertPropertyToBooleanAndWriteBack(SPRING_CONTROLLER, this::setUseSpringController); - convertPropertyToBooleanAndWriteBack(GENERATE_CONSTRUCTOR_WITH_REQUIRED_ARGS, value -> this.generatedConstructorWithRequiredArgs=value); + convertPropertyToBooleanAndWriteBack(GENERATE_CONSTRUCTOR_WITH_REQUIRED_ARGS, value -> this.generatedConstructorWithRequiredArgs = value); convertPropertyToBooleanAndWriteBack(RETURN_SUCCESS_CODE, this::setReturnSuccessCode); convertPropertyToBooleanAndWriteBack(USE_SWAGGER_UI, this::setUseSwaggerUI); convertPropertyToBooleanAndWriteBack(USE_SEALED, this::setUseSealed); @@ -453,7 +435,7 @@ public class SpringCodegen extends AbstractJavaCodegen if (AnnotationLibrary.SWAGGER1.equals(getAnnotationLibrary())) { throw new IllegalArgumentException(AnnotationLibrary.SWAGGER1.getPropertyName() + " is not supported with Spring Boot > 3.x"); } - useJakartaEe=true; + useJakartaEe = true; applyJakartaPackage(); } convertPropertyToStringAndWriteBack(RESOURCE_FOLDER, this::setResourceFolder); @@ -491,8 +473,8 @@ public class SpringCodegen extends AbstractJavaCodegen (sourceFolder + File.separator + basePackage).replace(".", java.io.File.separator), "OpenApiGeneratorApplication.java")); supportingFiles.add(new SupportingFile("SpringBootTest.mustache", - (testFolder + File.separator + basePackage).replace(".", java.io.File.separator), - "OpenApiGeneratorApplicationTests.java")); + (testFolder + File.separator + basePackage).replace(".", java.io.File.separator), + "OpenApiGeneratorApplicationTests.java")); supportingFiles.add(new SupportingFile("RFC3339DateFormat.mustache", (sourceFolder + File.separator + basePackage).replace(".", java.io.File.separator), "RFC3339DateFormat.java")); @@ -500,8 +482,8 @@ public class SpringCodegen extends AbstractJavaCodegen if (SPRING_CLOUD_LIBRARY.equals(library)) { supportingFiles.add(new SupportingFile("apiKeyRequestInterceptor.mustache", - (sourceFolder + File.separator + configPackage).replace(".", java.io.File.separator), - "ApiKeyRequestInterceptor.java")); + (sourceFolder + File.separator + configPackage).replace(".", java.io.File.separator), + "ApiKeyRequestInterceptor.java")); if (ProcessUtils.hasOAuthMethods(openAPI)) { supportingFiles.add(new SupportingFile("clientPropertiesConfiguration.mustache", @@ -530,20 +512,20 @@ public class SpringCodegen extends AbstractJavaCodegen "HomeController.java")); supportingFiles.add(new SupportingFile("openapi.mustache", ("src/main/resources").replace("/", java.io.File.separator), "openapi.yaml")); - if (!reactive && !apiFirst){ - if (DocumentationProvider.SPRINGDOC.equals(getDocumentationProvider())){ + if (!reactive && !apiFirst) { + if (DocumentationProvider.SPRINGDOC.equals(getDocumentationProvider())) { supportingFiles.add(new SupportingFile("springdocDocumentationConfig.mustache", - (sourceFolder + File.separator + configPackage).replace(".", java.io.File.separator), - "SpringDocConfiguration.java")); + (sourceFolder + File.separator + configPackage).replace(".", java.io.File.separator), + "SpringDocConfiguration.java")); } else if (DocumentationProvider.SPRINGFOX.equals(getDocumentationProvider())) { supportingFiles.add(new SupportingFile("openapiDocumentationConfig.mustache", - (sourceFolder + File.separator + configPackage).replace(".", java.io.File.separator), - "SpringFoxConfiguration.java")); + (sourceFolder + File.separator + configPackage).replace(".", java.io.File.separator), + "SpringFoxConfiguration.java")); } } } else if (SPRING_HTTP_INTERFACE.equals(library)) { supportingFiles.add(new SupportingFile("httpInterfacesConfiguration.mustache", - (sourceFolder + File.separator + configPackage).replace(".", java.io.File.separator), "HttpInterfacesAbstractConfigurator.java")); + (sourceFolder + File.separator + configPackage).replace(".", java.io.File.separator), "HttpInterfacesAbstractConfigurator.java")); writePropertyBack(USE_BEANVALIDATION, false); } } @@ -585,26 +567,26 @@ public class SpringCodegen extends AbstractJavaCodegen if (isNotEmpty(responseWrapper)) { additionalProperties.put("jdk8-default-interface", false); switch (responseWrapper) { - case "Future": - case "Callable": - case "CompletableFuture": - additionalProperties.put(RESPONSE_WRAPPER, "java.util.concurrent." + responseWrapper); - break; - case "ListenableFuture": - additionalProperties.put(RESPONSE_WRAPPER, "org.springframework.util.concurrent.ListenableFuture"); - break; - case "DeferredResult": - additionalProperties.put(RESPONSE_WRAPPER, - "org.springframework.web.context.request.async.DeferredResult"); - break; - case "RxObservable": - additionalProperties.put(RESPONSE_WRAPPER, "rx.Observable"); - break; - case "RxSingle": - additionalProperties.put(RESPONSE_WRAPPER, "rx.Single"); - break; - default: - break; + case "Future": + case "Callable": + case "CompletableFuture": + additionalProperties.put(RESPONSE_WRAPPER, "java.util.concurrent." + responseWrapper); + break; + case "ListenableFuture": + additionalProperties.put(RESPONSE_WRAPPER, "org.springframework.util.concurrent.ListenableFuture"); + break; + case "DeferredResult": + additionalProperties.put(RESPONSE_WRAPPER, + "org.springframework.web.context.request.async.DeferredResult"); + break; + case "RxObservable": + additionalProperties.put(RESPONSE_WRAPPER, "rx.Observable"); + break; + case "RxSingle": + additionalProperties.put(RESPONSE_WRAPPER, "rx.Single"); + break; + default: + break; } } @@ -650,14 +632,14 @@ public class SpringCodegen extends AbstractJavaCodegen Components components = this.openAPI.getComponents(); if (components == null || components.getSchemas() == null) { - return false; + return false; } return components.getSchemas().values().stream() .anyMatch(it -> it.getEnum() != null && !it.getEnum().isEmpty()); } - private boolean supportLibraryUseTags(){ + private boolean supportLibraryUseTags() { return SPRING_BOOT.equals(library) || SPRING_CLOUD_LIBRARY.equals(library); } @@ -859,22 +841,22 @@ public class SpringCodegen extends AbstractJavaCodegen for (CodegenOperation operation : operations) { if (operation.getHasHeaderParams()) { List versionParams = operation.headerParams.stream() - .filter(param -> { - String xVersionParam = Objects.toString(param.vendorExtensions.get(VendorExtension.X_VERSION_PARAM.getName()), "false"); - return Boolean.parseBoolean(xVersionParam); - }) - .collect(Collectors.toList()); + .filter(param -> { + String xVersionParam = Objects.toString(param.vendorExtensions.get(VendorExtension.X_VERSION_PARAM.getName()), "false"); + return Boolean.parseBoolean(xVersionParam); + }) + .collect(Collectors.toList()); operation.hasVersionHeaders = !versionParams.isEmpty(); operation.vendorExtensions.put("versionHeaderParamsList", versionParams); } if (operation.getHasQueryParams()) { List versionParams = operation.queryParams.stream() - .filter(param -> { - String xVersionParam = Objects.toString(param.vendorExtensions.get(VendorExtension.X_VERSION_PARAM.getName()), "false"); - return Boolean.parseBoolean(xVersionParam); - }) - .collect(Collectors.toList()); + .filter(param -> { + String xVersionParam = Objects.toString(param.vendorExtensions.get(VendorExtension.X_VERSION_PARAM.getName()), "false"); + return Boolean.parseBoolean(xVersionParam); + }) + .collect(Collectors.toList()); operation.hasVersionQueryParams = !versionParams.isEmpty(); operation.vendorExtensions.put("versionQueryParamsList", versionParams); } @@ -991,7 +973,7 @@ public class SpringCodegen extends AbstractJavaCodegen // constructor generated by lombok return false; } - if ((!generatedConstructorWithRequiredArgs && !codegenModel.vars.isEmpty() ) + if ((!generatedConstructorWithRequiredArgs && !codegenModel.vars.isEmpty()) || !codegenModel.optionalVars.isEmpty()) { return super.isConstructorWithAllArgsAllowed(codegenModel); } @@ -1018,7 +1000,7 @@ public class SpringCodegen extends AbstractJavaCodegen // add org.springframework.format.annotation.DateTimeFormat when needed codegenOperation.allParams.stream().filter(p -> p.isDate || p.isDateTime).findFirst() - .ifPresent(p -> codegenOperation.imports.add("DateTimeFormat")); + .ifPresent(p -> codegenOperation.imports.add("DateTimeFormat")); // add org.springframework.data.domain.Pageable import when needed if (codegenOperation.vendorExtensions.containsKey("x-spring-paginated")) { @@ -1059,15 +1041,15 @@ public class SpringCodegen extends AbstractJavaCodegen .map(MediaType::getSchema) .collect(Collectors.toList()).stream() .collect(Collectors.groupingBy(Schema::getType)); - if(schemaTypes.containsKey("array")) { + if (schemaTypes.containsKey("array")) { // we have a match with SSE pattern // double check potential conflicting, multiple specs - if(schemaTypes.keySet().size() > 1) { + if (schemaTypes.keySet().size() > 1) { throw new RuntimeException("only 1 response media type supported, when SSE is detected"); } // double check schema format List eventTypes = schemaTypes.get("array"); - if( eventTypes.stream().anyMatch(schema -> !"event-stream".equalsIgnoreCase(schema.getFormat()))) { + if (eventTypes.stream().anyMatch(schema -> !"event-stream".equalsIgnoreCase(schema.getFormat()))) { throw new RuntimeException("schema format 'event-stream' is required, when SSE is detected"); } // double check item types @@ -1076,7 +1058,7 @@ public class SpringCodegen extends AbstractJavaCodegen ? schema.getItems().getType() : schema.getItems().get$ref()) .collect(Collectors.toSet()); - if(itemTypes.size() > 1) { + if (itemTypes.size() > 1) { throw new RuntimeException("only single item type is supported, when SSE is detected"); } codegenOperation.vendorExtensions.put("x-sse", true); @@ -1132,7 +1114,7 @@ public class SpringCodegen extends AbstractJavaCodegen for (CodegenModel cm : allModels.values()) { boolean hasLombokNoArgsConstructor = lombokAnnotations != null && lombokAnnotations.containsKey("NoArgsConstructor"); if (!hasLombokNoArgsConstructor - && (cm.hasRequired || cm.vendorExtensions.containsKey("x-java-all-args-constructor"))) { + && (cm.hasRequired || cm.vendorExtensions.containsKey("x-java-all-args-constructor"))) { cm.vendorExtensions.put("x-java-no-args-constructor", true); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticDocCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticDocCodegen.java index 7e207388852..b5c68714021 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticDocCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticDocCodegen.java @@ -131,5 +131,7 @@ public class StaticDocCodegen extends DefaultCodegen implements CodegenConfig { } @Override - public GeneratorLanguage generatorLanguage() { return null; } + public GeneratorLanguage generatorLanguage() { + return null; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticHtml2Generator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticHtml2Generator.java index 0b050fbecf1..71e3e6db108 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticHtml2Generator.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticHtml2Generator.java @@ -289,5 +289,7 @@ public class StaticHtml2Generator extends DefaultCodegen implements CodegenConfi } @Override - public GeneratorLanguage generatorLanguage() { return null; } + public GeneratorLanguage generatorLanguage() { + return null; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticHtmlGenerator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticHtmlGenerator.java index a25d32bdee7..14fb1d7ddf7 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticHtmlGenerator.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticHtmlGenerator.java @@ -234,5 +234,7 @@ public class StaticHtmlGenerator extends DefaultCodegen implements CodegenConfig } @Override - public GeneratorLanguage generatorLanguage() { return null; } + public GeneratorLanguage generatorLanguage() { + return null; + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift5ClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift5ClientCodegen.java index b39fdf1e52b..6c0d4bc47e2 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift5ClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift5ClientCodegen.java @@ -36,10 +36,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; -import java.util.*; -import java.time.OffsetDateTime; import java.time.Instant; +import java.time.OffsetDateTime; import java.time.temporal.ChronoField; +import java.util.*; import java.util.concurrent.TimeUnit; import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift6ClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift6ClientCodegen.java index b878feab772..82456526194 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift6ClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift6ClientCodegen.java @@ -37,10 +37,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; -import java.util.*; -import java.time.OffsetDateTime; import java.time.Instant; +import java.time.OffsetDateTime; import java.time.temporal.ChronoField; +import java.util.*; import java.util.concurrent.TimeUnit; import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SwiftCombineClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SwiftCombineClientCodegen.java index 0985f0c3364..d321fd0d856 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SwiftCombineClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SwiftCombineClientCodegen.java @@ -34,14 +34,14 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; +import java.time.Instant; +import java.time.OffsetDateTime; +import java.time.temporal.ChronoField; import java.util.*; +import java.util.concurrent.TimeUnit; import java.util.function.Function; import java.util.regex.Matcher; import java.util.regex.Pattern; -import java.time.OffsetDateTime; -import java.time.Instant; -import java.time.temporal.ChronoField; -import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -705,7 +705,7 @@ public class SwiftCombineClientCodegen extends DefaultCodegen implements Codegen } // only process files with swift extension if ("swift".equals(FilenameUtils.getExtension(file.toString()))) { - this.executePostProcessor(new String[] {swiftPostProcessFile, file.toString()}); + this.executePostProcessor(new String[]{swiftPostProcessFile, file.toString()}); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAngularClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAngularClientCodegen.java index 1dd1296e701..f7c1501e881 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAngularClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAngularClientCodegen.java @@ -53,6 +53,7 @@ public class TypeScriptAngularClientCodegen extends AbstractTypeScriptClientCode private static String FILE_NAME_SUFFIX_PATTERN = "^[a-zA-Z0-9.-]*$"; public static enum QUERY_PARAM_OBJECT_FORMAT_TYPE {dot, json, key} + public static enum PROVIDED_IN_LEVEL {none, root, any, platform} private static final String DEFAULT_IMPORT_PREFIX = "./"; @@ -414,8 +415,8 @@ public class TypeScriptAngularClientCodegen extends AbstractTypeScriptClientCode op.httpMethod = op.httpMethod.toLowerCase(Locale.ENGLISH); // deduplicate auth methods by name (as they will lead to duplicate code): op.authMethods = - op.authMethods != null ? op.authMethods.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(x -> x.name))), ArrayList::new)) - : null; + op.authMethods != null ? op.authMethods.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(x -> x.name))), ArrayList::new)) + : null; // Prep a string buffer where we're going to set up our new version of the string. StringBuilder pathBuffer = new StringBuilder(); @@ -493,7 +494,7 @@ public class TypeScriptAngularClientCodegen extends AbstractTypeScriptClientCode // however, it's possible that the child model contains a recursive reference to the parent // in order to support this case, we update the list of imports from properties once again - for (CodegenProperty cp: cm.allVars) { + for (CodegenProperty cp : cm.allVars) { addImportsForPropertyType(cm, cp); } removeSelfReferenceImports(cm); @@ -510,9 +511,9 @@ public class TypeScriptAngularClientCodegen extends AbstractTypeScriptClientCode private void setChildDiscriminatorValue(CodegenModel parent, CodegenModel child) { if ( - child.vendorExtensions.isEmpty() || - !child.vendorExtensions.containsKey("x-discriminator-value") - ) { + child.vendorExtensions.isEmpty() || + !child.vendorExtensions.containsKey("x-discriminator-value") + ) { for (CodegenProperty prop : child.allVars) { if (prop.baseName.equals(parent.discriminator.getPropertyName())) { @@ -729,7 +730,7 @@ public class TypeScriptAngularClientCodegen extends AbstractTypeScriptClientCode * * @param level the wanted level */ - public void setProvidedIn (String level) { + public void setProvidedIn(String level) { try { providedIn = PROVIDED_IN_LEVEL.valueOf(level); } catch (IllegalArgumentException e) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAureliaClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAureliaClientCodegen.java index 7350642bc6c..87053dd7f75 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAureliaClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAureliaClientCodegen.java @@ -27,7 +27,7 @@ import org.openapitools.codegen.model.OperationsMap; import java.util.*; -import static org.openapitools.codegen.utils.StringUtils.*; +import static org.openapitools.codegen.utils.StringUtils.camelize; public class TypeScriptAureliaClientCodegen extends AbstractTypeScriptClientCodegen { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAxiosClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAxiosClientCodegen.java index 6bc4ecfb373..4650bb8c182 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAxiosClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAxiosClientCodegen.java @@ -31,7 +31,10 @@ import org.openapitools.codegen.model.OperationMap; import org.openapitools.codegen.model.OperationsMap; import org.openapitools.codegen.utils.ModelUtils; -import java.util.*; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.TreeSet; public class TypeScriptAxiosClientCodegen extends AbstractTypeScriptClientCodegen { @@ -230,7 +233,7 @@ public class TypeScriptAxiosClientCodegen extends AbstractTypeScriptClientCodege withoutPrefixEnums = Boolean.parseBoolean(additionalProperties.get(WITHOUT_PREFIX_ENUMS).toString()); } - for (ModelMap mo : models) { + for (ModelMap mo : models) { CodegenModel cm = mo.getModel(); // Type is already any @@ -242,7 +245,7 @@ public class TypeScriptAxiosClientCodegen extends AbstractTypeScriptClientCodege cm.classFilename = cm.classname.replaceAll("([a-z0-9])([A-Z])", "$1-$2").toLowerCase(Locale.ROOT); //processed enum names - if(!withoutPrefixEnums) { + if (!withoutPrefixEnums) { cm.imports = new TreeSet<>(cm.imports); // name enum with model name, e.g. StatusEnum => PetStatusEnum for (CodegenProperty var : cm.vars) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptClientCodegen.java index d0eb4289781..bdee0325510 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptClientCodegen.java @@ -20,7 +20,10 @@ package org.openapitools.codegen.languages; import com.github.curiousoddman.rgxgen.RgxGen; import com.google.common.collect.Sets; import io.swagger.v3.core.util.Json; -import io.swagger.v3.oas.models.media.*; +import io.swagger.v3.oas.models.media.ComposedSchema; +import io.swagger.v3.oas.models.media.Content; +import io.swagger.v3.oas.models.media.MediaType; +import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.parameters.Parameter; import io.swagger.v3.oas.models.parameters.RequestBody; import lombok.Getter; @@ -49,11 +52,10 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER; +import static org.openapitools.codegen.utils.OnceLogger.once; import static org.openapitools.codegen.utils.StringUtils.camelize; import static org.openapitools.codegen.utils.StringUtils.underscore; -import static org.openapitools.codegen.utils.OnceLogger.once; - public class TypeScriptClientCodegen extends AbstractTypeScriptClientCodegen implements CodegenConfig { private final Logger LOGGER = LoggerFactory.getLogger(TypeScriptClientCodegen.class); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptFetchClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptFetchClientCodegen.java index 69a0f3e8031..0bcacadf15a 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptFetchClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptFetchClientCodegen.java @@ -175,6 +175,7 @@ public class TypeScriptFetchClientCodegen extends AbstractTypeScriptClientCodege public Boolean getStringEnums() { return this.stringEnums; } + public void setStringEnums(Boolean stringEnums) { this.stringEnums = stringEnums; } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptNestjsClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptNestjsClientCodegen.java index e12e8b2f030..cfd075645e4 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptNestjsClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptNestjsClientCodegen.java @@ -73,8 +73,8 @@ public class TypeScriptNestjsClientCodegen extends AbstractTypeScriptClientCodeg super(); generatorMetadata = GeneratorMetadata.newBuilder(generatorMetadata) - .stability(Stability.EXPERIMENTAL) - .build(); + .stability(Stability.EXPERIMENTAL) + .build(); this.outputFolder = "generated-code/typescript-nestjs"; @@ -98,7 +98,7 @@ public class TypeScriptNestjsClientCodegen extends AbstractTypeScriptClientCodeg this.cliOptions.add(CliOption.newBoolean(TAGGED_UNIONS, "Use discriminators to create tagged unions instead of extending interfaces.", this.taggedUnions)); - this.cliOptions.add(new CliOption(NEST_VERSION, "The version of Nestjs.").addEnum("8.0.0","Use new HttpModule and HttpService from @nestjs/axios.").addEnum("6.0.0","Use old HttpModule and HttpService from @nestjs/common.").defaultValue(this.nestVersion)); + this.cliOptions.add(new CliOption(NEST_VERSION, "The version of Nestjs.").addEnum("8.0.0", "Use new HttpModule and HttpService from @nestjs/axios.").addEnum("6.0.0", "Use old HttpModule and HttpService from @nestjs/common.").defaultValue(this.nestVersion)); this.cliOptions.add(new CliOption(SERVICE_SUFFIX, "The suffix of the generated service.").defaultValue(this.serviceSuffix)); this.cliOptions.add(new CliOption(SERVICE_FILE_SUFFIX, "The suffix of the file of the generated service (service.ts).").defaultValue(this.serviceFileSuffix)); this.cliOptions.add(new CliOption(MODEL_SUFFIX, "The suffix of the generated model.")); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptNodeClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptNodeClientCodegen.java index 5f238151060..38a512afc94 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptNodeClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptNodeClientCodegen.java @@ -20,7 +20,6 @@ package org.openapitools.codegen.languages; import io.swagger.v3.oas.models.Operation; import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.responses.ApiResponse; - import lombok.Getter; import lombok.Setter; import org.openapitools.codegen.*; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptReduxQueryClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptReduxQueryClientCodegen.java index 1b78a1cc4eb..71cfb61f710 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptReduxQueryClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptReduxQueryClientCodegen.java @@ -59,7 +59,7 @@ public class TypeScriptReduxQueryClientCodegen extends AbstractTypeScriptClientC outputFolder = "generated-code/typescript-redux-query"; embeddedTemplateDir = templateDir = "typescript-redux-query"; - this.apiPackage = "src" + File.separator +"apis"; + this.apiPackage = "src" + File.separator + "apis"; this.modelPackage = "src" + File.separator + "models"; this.apiTemplateFiles.put("apis.mustache", ".ts"); this.modelTemplateFiles.put("models.mustache", ".ts"); @@ -240,7 +240,7 @@ public class TypeScriptReduxQueryClientCodegen extends AbstractTypeScriptClientC // The api template uses this information to know when to return a text // response for a given simple response operation. for (CodegenOperation op : operations.getOperations().getOperation()) { - if("object".equals(op.returnType)) { + if ("object".equals(op.returnType)) { op.isMap = true; op.returnSimpleType = false; } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/WsdlSchemaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/WsdlSchemaCodegen.java index b16a66ae0ef..ae4400a5acd 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/WsdlSchemaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/WsdlSchemaCodegen.java @@ -68,11 +68,11 @@ public class WsdlSchemaCodegen extends DefaultCodegen implements CodegenConfig { cliOptions.add(new CliOption("hostname", "the hostname of the service")); cliOptions.add(new CliOption("soapPath", "basepath of the soap services")); cliOptions.add(new CliOption("serviceName", "service name for the wsdl")); - cliOptions.add(new CliOption("contentTypeVersion", + cliOptions.add(new CliOption("contentTypeVersion", "generate WSDL with parameters/responses of the specified content-type")); - cliOptions.add(new CliOption("useSpecifiedOperationId", + cliOptions.add(new CliOption("useSpecifiedOperationId", "whether to use autogenerated operationId's (default) " - + "or those specified in openapi spec")); + + "or those specified in openapi spec")); additionalProperties.put("hostname", "localhost"); additionalProperties.put("soapPath", "soap"); @@ -101,7 +101,7 @@ public class WsdlSchemaCodegen extends DefaultCodegen implements CodegenConfig { } if (additionalProperties.containsKey("useSpecifiedOperationId")) { this.setUseSpecifiedOperationId( - Boolean.parseBoolean(additionalProperties.get("useSpecifiedOperationId").toString())); + Boolean.parseBoolean(additionalProperties.get("useSpecifiedOperationId").toString())); } } @@ -119,7 +119,7 @@ public class WsdlSchemaCodegen extends DefaultCodegen implements CodegenConfig { return "No description provided"; } } - + @Override public OperationsMap postProcessOperationsWithModels(OperationsMap objs, List allModels) { for (CodegenOperation op : objs.getOperations().getOperation()) { @@ -130,21 +130,21 @@ public class WsdlSchemaCodegen extends DefaultCodegen implements CodegenConfig { // use content type data to change dataType/baseType variable depending on specified version for (CodegenParameter codegenParameter : op.allParams) { if (codegenParameter.isBodyParam) { - for (Map.Entry ite1 + for (Map.Entry ite1 : codegenParameter.getContent().entrySet()) { // only if specified content-type was found inside content variable if (ite1.getKey().startsWith(this.contentTypeVersion)) { if (codegenParameter.isArray) { - codegenParameter.baseType = + codegenParameter.baseType = ite1.getValue().getSchema().getItems().getBaseType(); } else { - codegenParameter.dataType = + codegenParameter.dataType = ite1.getValue().getSchema().getDataType(); } // mark unused models of other versions for removal - for (Map.Entry ite2 + for (Map.Entry ite2 : codegenParameter.getContent().entrySet()) { - if (!ite2.getKey().startsWith(this.contentTypeVersion)) { + if (!ite2.getKey().startsWith(this.contentTypeVersion)) { if (codegenParameter.isArray) { unusedModels.add(ite2.getValue().getSchema().getItems().getBaseType()); } else { @@ -157,24 +157,24 @@ public class WsdlSchemaCodegen extends DefaultCodegen implements CodegenConfig { } } } - + // same approach for responses for (CodegenResponse codegenResponse : op.responses) { if (codegenResponse.getContent() != null) { - for (Map.Entry ite1 + for (Map.Entry ite1 : codegenResponse.getContent().entrySet()) { - if (ite1.getKey().startsWith(this.contentTypeVersion) + if (ite1.getKey().startsWith(this.contentTypeVersion) && codegenResponse.is2xx) { if (codegenResponse.isArray) { - codegenResponse.baseType = + codegenResponse.baseType = ite1.getValue().getSchema().getItems().getBaseType(); } else { - codegenResponse.dataType = + codegenResponse.dataType = ite1.getValue().getSchema().getDataType(); } for (Map.Entry ite2 - : codegenResponse.getContent().entrySet()) { - if (!ite2.getKey().startsWith(this.contentTypeVersion) + : codegenResponse.getContent().entrySet()) { + if (!ite2.getKey().startsWith(this.contentTypeVersion) && codegenResponse.is2xx) { if (codegenResponse.isArray) { unusedModels.add(ite2.getValue().getSchema().getItems().getBaseType()); @@ -185,21 +185,21 @@ public class WsdlSchemaCodegen extends DefaultCodegen implements CodegenConfig { } break; } - } - } + } + } } // remove models which are used by other versions than the specified one for (String unusedModelName : unusedModels) { - allModels.removeIf(modelMap -> - (modelMap.getModel().getClassname().equals(unusedModelName))); + allModels.removeIf(modelMap -> + (modelMap.getModel().getClassname().equals(unusedModelName))); } } if (!useSpecifiedOperationId) { op.operationId = this.generateOperationId(op); } - + // for xml compliant primitives, lowercase dataType of openapi for (CodegenParameter param : op.allParams) { Map paramVendorExtensions = param.vendorExtensions; @@ -379,7 +379,7 @@ public class WsdlSchemaCodegen extends DefaultCodegen implements CodegenConfig { } @Override - public GeneratorLanguage generatorLanguage() { - return GeneratorLanguage.WSDL; + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.WSDL; } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/XojoClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/XojoClientCodegen.java index c9101b86328..2a057ce0ef4 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/XojoClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/XojoClientCodegen.java @@ -20,6 +20,8 @@ import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.security.SecurityScheme; import lombok.Getter; import lombok.Setter; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.text.WordUtils; import org.openapitools.codegen.*; import org.openapitools.codegen.meta.GeneratorMetadata; import org.openapitools.codegen.meta.Stability; @@ -27,6 +29,8 @@ import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.ModelsMap; import org.openapitools.codegen.model.OperationsMap; import org.openapitools.codegen.utils.ModelUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.File; import java.util.*; @@ -35,12 +39,6 @@ import java.util.function.Consumer; import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER; import static org.openapitools.codegen.utils.StringUtils.camelize; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.text.WordUtils; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - public class XojoClientCodegen extends DefaultCodegen implements CodegenConfig { public static final String CODEGEN_MODULE_NAME = "xojo-client"; public static final String LIBRARY_HTTPSOCKET = "httpsocket"; @@ -94,16 +92,16 @@ public class XojoClientCodegen extends DefaultCodegen implements CodegenConfig { supportingFiles.add(new SupportingFile("README.mustache", "", "README.md")); supportingFiles.add(new SupportingFile("App.mustache", - "", - "App.xojo_code")); + "", + "App.xojo_code")); supportingFiles.add(new SupportingFile("BuildAutomation.mustache", - "", - "Build Automation.xojo_code")); + "", + "Build Automation.xojo_code")); supportingFiles.add(new SupportingFile("api_mock.mustache", - "", - "Mock.xojo_code")); + "", + "Mock.xojo_code")); languageSpecificPrimitives = new HashSet<>( Arrays.asList( @@ -126,18 +124,18 @@ public class XojoClientCodegen extends DefaultCodegen implements CodegenConfig { ); setReservedWordsLowerCase( - Arrays.asList( - // name used by Xojo client - "Models", "APIs", + Arrays.asList( + // name used by Xojo client + "Models", "APIs", - // Xojo keywords. This list is taken from here: - // https://documentation.xojo.com/getting_started/using_the_xojo_language/reserved_words.html - // - "#Bad", "#Else", "#Elseif", "#Endif", "#If", "#Pragma", "#Tag", "AddHandler", "AddressOf", "Aggregates", "And", "Array", "As", "Assigns", "Async", "Attributes", "Await", "Break", "ByRef", "ByVal", "Call", "Case", "Catch", "Class", "Const", "Continue", "CType", "Declare", "Delegate", "Dim", "Do", "DownTo", "Each", "Else", "ElseIf", "End", "Enum", "Event", "Exception", "Exit", "Extends", "False", "Finally", "For", "Function", "Global", "GoTo", "Handles", "If", "Implements", "In", "Inherits", "Interface", "Is", "IsA", "Lib", "Loop", "Me", "Mod", "Module", "Namespace", "New", "Next", "Nil", "Not", /*"Object",*/ "Of", "Optional", "Or", "ParamArray", "Private", "Property", "Protected", "Public", "Raise", "RaiseEvent", "Redim", "Rem", "RemoveHandler", "Return", "Select", "Self", "Shared", "Soft", "Static", "Step", "Structure", "Sub", "Super", "Then", "To", "True", "Try", "Until", "Using", "Var", "WeakAddressOf", "Wend", "While", "With", "Xor", + // Xojo keywords. This list is taken from here: + // https://documentation.xojo.com/getting_started/using_the_xojo_language/reserved_words.html + // + "#Bad", "#Else", "#Elseif", "#Endif", "#If", "#Pragma", "#Tag", "AddHandler", "AddressOf", "Aggregates", "And", "Array", "As", "Assigns", "Async", "Attributes", "Await", "Break", "ByRef", "ByVal", "Call", "Case", "Catch", "Class", "Const", "Continue", "CType", "Declare", "Delegate", "Dim", "Do", "DownTo", "Each", "Else", "ElseIf", "End", "Enum", "Event", "Exception", "Exit", "Extends", "False", "Finally", "For", "Function", "Global", "GoTo", "Handles", "If", "Implements", "In", "Inherits", "Interface", "Is", "IsA", "Lib", "Loop", "Me", "Mod", "Module", "Namespace", "New", "Next", "Nil", "Not", /*"Object",*/ "Of", "Optional", "Or", "ParamArray", "Private", "Property", "Protected", "Public", "Raise", "RaiseEvent", "Redim", "Rem", "RemoveHandler", "Return", "Select", "Self", "Shared", "Soft", "Static", "Step", "Structure", "Sub", "Super", "Then", "To", "True", "Try", "Until", "Using", "Var", "WeakAddressOf", "Wend", "While", "With", "Xor", - // The following are other words we want to reserve - "Void", "COLUMN", "FILE", "FUNCTION", "LINE" - ) + // The following are other words we want to reserve + "Void", "COLUMN", "FILE", "FUNCTION", "LINE" + ) ); typeMapping = new HashMap<>(); @@ -303,28 +301,28 @@ public class XojoClientCodegen extends DefaultCodegen implements CodegenConfig { } supportingFiles.add(new SupportingFile("MainModule.mustache", - "", - projectName + ".xojo_code")); + "", + projectName + ".xojo_code")); supportingFiles.add(new SupportingFile("APIsModule.mustache", - projectName, - "APIs.xojo_code")); + projectName, + "APIs.xojo_code")); supportingFiles.add(new SupportingFile("ModelModule.mustache", - projectName, - "Models.xojo_code")); + projectName, + "Models.xojo_code")); supportingFiles.add(new SupportingFile("Project.mustache", - "", - projectName + ".xojo_project")); + "", + projectName + ".xojo_project")); supportingFiles.add(new SupportingFile("Exception.mustache", - projectName, - projectName + "Exception.xojo_code")); + projectName, + projectName + "Exception.xojo_code")); supportingFiles.add(new SupportingFile("Resources.mustache", - "", - projectName + ".xojo_resources")); + "", + projectName + ".xojo_resources")); } @Override @@ -349,7 +347,7 @@ public class XojoClientCodegen extends DefaultCodegen implements CodegenConfig { parentSchema = parentCodegenModel.parentSchema; } } - + return codegenModel; } @@ -375,7 +373,7 @@ public class XojoClientCodegen extends DefaultCodegen implements CodegenConfig { public OperationsMap postProcessOperationsWithModels(OperationsMap objs, List allModels) { objs = super.postProcessOperationsWithModels(objs, allModels); - Map vendorExtensions = (Map)objs.get("vendorExtensions"); + Map vendorExtensions = (Map) objs.get("vendorExtensions"); if (null == vendorExtensions) { vendorExtensions = new HashMap<>(); objs.put("vendorExtensions", vendorExtensions); @@ -412,7 +410,9 @@ public class XojoClientCodegen extends DefaultCodegen implements CodegenConfig { } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.XOJO; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.XOJO; + } @Override public String toOperationId(String operationId) { @@ -496,7 +496,7 @@ public class XojoClientCodegen extends DefaultCodegen implements CodegenConfig { char[] separators = {'-', '_', ' ', ':', '(', ')'}; return camelize(replaceSpecialCharacters(WordUtils.capitalizeFully(StringUtils.lowerCase(name), separators) - .replaceAll("[-_ :\\(\\)]", ""))); + .replaceAll("[-_ :\\(\\)]", ""))); } private String replaceSpecialCharacters(String name) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/features/DocumentationProviderFeatures.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/features/DocumentationProviderFeatures.java index 03ad3c19cae..43d3bbae8f0 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/features/DocumentationProviderFeatures.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/features/DocumentationProviderFeatures.java @@ -2,11 +2,7 @@ package org.openapitools.codegen.languages.features; import lombok.Getter; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Locale; -import java.util.Objects; +import java.util.*; /** * The DocumentationProvider Features support to additional properties to select the @@ -17,137 +13,142 @@ import java.util.Objects; */ public interface DocumentationProviderFeatures { - String DOCUMENTATION_PROVIDER = "documentationProvider"; + String DOCUMENTATION_PROVIDER = "documentationProvider"; - String ANNOTATION_LIBRARY = "annotationLibrary"; + String ANNOTATION_LIBRARY = "annotationLibrary"; - /** - * Define the default documentation Provider for CliOpts processing. - * A NULL return value will disable the documentation provider support. - * Override in subclasses to customize. - * @return the default documentation provider - */ - default DocumentationProvider defaultDocumentationProvider() { - return null; - } + /** + * Define the default documentation Provider for CliOpts processing. + * A NULL return value will disable the documentation provider support. + * Override in subclasses to customize. + * + * @return the default documentation provider + */ + default DocumentationProvider defaultDocumentationProvider() { + return null; + } - /** - * Define the List of supported documentation Provider for CliOpts processing. - * Override in subclasses to customize. - * @return the list of supported documentation provider - */ - default List supportedDocumentationProvider() { - List supportedProviders = new ArrayList<>(); - supportedProviders.add(DocumentationProvider.NONE); - return supportedProviders; - } + /** + * Define the List of supported documentation Provider for CliOpts processing. + * Override in subclasses to customize. + * + * @return the list of supported documentation provider + */ + default List supportedDocumentationProvider() { + List supportedProviders = new ArrayList<>(); + supportedProviders.add(DocumentationProvider.NONE); + return supportedProviders; + } - /** - * Define the list of supported annotation libraries for CliOpts processing. - * Override in subclasses to customize. - * @return the list of supported annotation libraries - */ - default List supportedAnnotationLibraries() { - List supportedLibraries = new ArrayList<>(); - supportedLibraries.add(AnnotationLibrary.NONE); - return supportedLibraries; - } + /** + * Define the list of supported annotation libraries for CliOpts processing. + * Override in subclasses to customize. + * + * @return the list of supported annotation libraries + */ + default List supportedAnnotationLibraries() { + List supportedLibraries = new ArrayList<>(); + supportedLibraries.add(AnnotationLibrary.NONE); + return supportedLibraries; + } - DocumentationProvider getDocumentationProvider(); + DocumentationProvider getDocumentationProvider(); - void setDocumentationProvider(DocumentationProvider documentationProvider); + void setDocumentationProvider(DocumentationProvider documentationProvider); - AnnotationLibrary getAnnotationLibrary(); + AnnotationLibrary getAnnotationLibrary(); - void setAnnotationLibrary(AnnotationLibrary annotationLibrary); + void setAnnotationLibrary(AnnotationLibrary annotationLibrary); - @Getter enum DocumentationProvider { - NONE("withoutDocumentationProvider", "Do not publish an OpenAPI specification.", - AnnotationLibrary.NONE, AnnotationLibrary.values()), + @Getter + enum DocumentationProvider { + NONE("withoutDocumentationProvider", "Do not publish an OpenAPI specification.", + AnnotationLibrary.NONE, AnnotationLibrary.values()), - SOURCE("sourceDocumentationProvider", "Publish the original input OpenAPI specification.", - AnnotationLibrary.NONE, AnnotationLibrary.values()), + SOURCE("sourceDocumentationProvider", "Publish the original input OpenAPI specification.", + AnnotationLibrary.NONE, AnnotationLibrary.values()), - SWAGGER1("swagger1DocumentationProvider", "Generate an OpenAPI 2 (fka Swagger RESTful API Documentation Specification) specification using Swagger-Core 1.x.", - AnnotationLibrary.SWAGGER1, AnnotationLibrary.SWAGGER1), + SWAGGER1("swagger1DocumentationProvider", "Generate an OpenAPI 2 (fka Swagger RESTful API Documentation Specification) specification using Swagger-Core 1.x.", + AnnotationLibrary.SWAGGER1, AnnotationLibrary.SWAGGER1), - SWAGGER2("swagger2DocumentationProvider", "Generate an OpenAPI 3 specification using Swagger-Core 2.x.", - AnnotationLibrary.SWAGGER2, AnnotationLibrary.SWAGGER2), + SWAGGER2("swagger2DocumentationProvider", "Generate an OpenAPI 3 specification using Swagger-Core 2.x.", + AnnotationLibrary.SWAGGER2, AnnotationLibrary.SWAGGER2), - SPRINGFOX("springFoxDocumentationProvider", "Generate an OpenAPI 2 (fka Swagger RESTful API Documentation Specification) specification using SpringFox 2.x. Deprecated (for removal); use springdoc instead.", - AnnotationLibrary.SWAGGER1, AnnotationLibrary.SWAGGER1), + SPRINGFOX("springFoxDocumentationProvider", "Generate an OpenAPI 2 (fka Swagger RESTful API Documentation Specification) specification using SpringFox 2.x. Deprecated (for removal); use springdoc instead.", + AnnotationLibrary.SWAGGER1, AnnotationLibrary.SWAGGER1), - SPRINGDOC("springDocDocumentationProvider", "Generate an OpenAPI 3 specification using SpringDoc.", - AnnotationLibrary.SWAGGER2, AnnotationLibrary.SWAGGER2); + SPRINGDOC("springDocDocumentationProvider", "Generate an OpenAPI 3 specification using SpringDoc.", + AnnotationLibrary.SWAGGER2, AnnotationLibrary.SWAGGER2); - /** - * -- GETTER -- - * The property name should be used in the codegen model as a boolean property. - * - * @return the property name for this documentation provider - */ - private final String propertyName; + /** + * -- GETTER -- + * The property name should be used in the codegen model as a boolean property. + * + * @return the property name for this documentation provider + */ + private final String propertyName; - private final String description; + private final String description; - private final AnnotationLibrary preferredAnnotationLibrary; + private final AnnotationLibrary preferredAnnotationLibrary; - private final AnnotationLibrary[] supportedAnnotationLibraries; + private final AnnotationLibrary[] supportedAnnotationLibraries; - DocumentationProvider(String propertyName, String description, - AnnotationLibrary preferredAnnotationLibrary, - AnnotationLibrary... supportedAnnotationLibraries) { - this.propertyName = propertyName; - this.description = description; - this.preferredAnnotationLibrary = preferredAnnotationLibrary; - this.supportedAnnotationLibraries = supportedAnnotationLibraries; - } + DocumentationProvider(String propertyName, String description, + AnnotationLibrary preferredAnnotationLibrary, + AnnotationLibrary... supportedAnnotationLibraries) { + this.propertyName = propertyName; + this.description = description; + this.preferredAnnotationLibrary = preferredAnnotationLibrary; + this.supportedAnnotationLibraries = supportedAnnotationLibraries; + } - public static DocumentationProvider ofCliOption(String optVal) { - optVal = Objects.requireNonNull(optVal).toUpperCase(Locale.ROOT); - return valueOf(optVal); - } + public static DocumentationProvider ofCliOption(String optVal) { + optVal = Objects.requireNonNull(optVal).toUpperCase(Locale.ROOT); + return valueOf(optVal); + } - public List supportedAnnotationLibraries() { - return Arrays.asList(getSupportedAnnotationLibraries()); - } + public List supportedAnnotationLibraries() { + return Arrays.asList(getSupportedAnnotationLibraries()); + } - public String toCliOptValue() { - return name().toLowerCase(Locale.ROOT); - } - } + public String toCliOptValue() { + return name().toLowerCase(Locale.ROOT); + } + } - @Getter enum AnnotationLibrary { - NONE("withoutAnnotationLibrary", "Do not annotate Model and Api with complementary annotations."), + @Getter + enum AnnotationLibrary { + NONE("withoutAnnotationLibrary", "Do not annotate Model and Api with complementary annotations."), - SWAGGER1("swagger1AnnotationLibrary", "Annotate Model and Api using the Swagger Annotations 1.x library."), + SWAGGER1("swagger1AnnotationLibrary", "Annotate Model and Api using the Swagger Annotations 1.x library."), - SWAGGER2("swagger2AnnotationLibrary", "Annotate Model and Api using the Swagger Annotations 2.x library."), + SWAGGER2("swagger2AnnotationLibrary", "Annotate Model and Api using the Swagger Annotations 2.x library."), - MICROPROFILE("microprofileAnnotationLibrary", "Annotate Model and Api using the Microprofile annotations."); + MICROPROFILE("microprofileAnnotationLibrary", "Annotate Model and Api using the Microprofile annotations."); - /** - * -- GETTER -- - * The property name is used in the codegen model as a boolean property. - * - * @return the property name for this annotation library - */ - private final String propertyName; + /** + * -- GETTER -- + * The property name is used in the codegen model as a boolean property. + * + * @return the property name for this annotation library + */ + private final String propertyName; - private final String description; + private final String description; - public static AnnotationLibrary ofCliOption(String optVal) { - optVal = Objects.requireNonNull(optVal).toUpperCase(Locale.ROOT); - return valueOf(optVal); - } + public static AnnotationLibrary ofCliOption(String optVal) { + optVal = Objects.requireNonNull(optVal).toUpperCase(Locale.ROOT); + return valueOf(optVal); + } - AnnotationLibrary(String propertyName, String description) { - this.propertyName = propertyName; - this.description = description; - } + AnnotationLibrary(String propertyName, String description) { + this.propertyName = propertyName; + this.description = description; + } - public String toCliOptValue() { - return name().toLowerCase(Locale.ROOT); - } - } + public String toCliOptValue() { + return name().toLowerCase(Locale.ROOT); + } + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/model/ModelMap.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/model/ModelMap.java index fb4a926ffa3..01ee72926ca 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/model/ModelMap.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/model/ModelMap.java @@ -1,11 +1,11 @@ package org.openapitools.codegen.model; +import org.openapitools.codegen.CodegenModel; + import java.util.HashMap; import java.util.List; import java.util.Map; -import org.openapitools.codegen.CodegenModel; - public class ModelMap extends HashMap { public ModelMap() { @@ -27,8 +27,8 @@ public class ModelMap extends HashMap { /** * Convert a list of ModelMap to map of CodegenModel. * - * @param allModels list of model map - * @return map of Codegen Model + * @param allModels list of model map + * @return map of Codegen Model */ static public HashMap toCodegenModelMap(List allModels) { HashMap modelMaps = new HashMap<>(); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/model/ModelsMap.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/model/ModelsMap.java index e43fa200b58..76ab63a4e66 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/model/ModelsMap.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/model/ModelsMap.java @@ -7,7 +7,8 @@ import java.util.Map; public class ModelsMap extends HashMap { - public ModelsMap() {} + public ModelsMap() { + } public void setModels(List modelMaps) { put("models", modelMaps); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/model/OperationMap.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/model/OperationMap.java index 1d8806508e3..9d4f0e9b71b 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/model/OperationMap.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/model/OperationMap.java @@ -1,11 +1,11 @@ package org.openapitools.codegen.model; +import org.openapitools.codegen.CodegenOperation; + import java.util.Collections; import java.util.HashMap; import java.util.List; -import org.openapitools.codegen.CodegenOperation; - public class OperationMap extends HashMap { public void setOperation(CodegenOperation ops) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/serializer/OpenAPISerializer.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/serializer/OpenAPISerializer.java index 5ca92e81480..589f5e71dbb 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/serializer/OpenAPISerializer.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/serializer/OpenAPISerializer.java @@ -15,28 +15,28 @@ public class OpenAPISerializer extends JsonSerializer { if (value != null) { gen.writeStartObject(); gen.writeStringField("openapi", value.getOpenapi()); - if(value.getInfo() != null) { + if (value.getInfo() != null) { gen.writeObjectField("info", value.getInfo()); } - if(value.getExternalDocs() != null) { + if (value.getExternalDocs() != null) { gen.writeObjectField("externalDocs", value.getExternalDocs()); } - if(value.getServers() != null) { + if (value.getServers() != null) { gen.writeObjectField("servers", value.getServers()); } - if(value.getSecurity() != null) { + if (value.getSecurity() != null) { gen.writeObjectField("security", value.getSecurity()); } - if(value.getTags() != null) { + if (value.getTags() != null) { gen.writeObjectField("tags", value.getTags()); } - if(value.getPaths() != null) { + if (value.getPaths() != null) { gen.writeObjectField("paths", value.getPaths()); } - if(value.getComponents() != null) { + if (value.getComponents() != null) { gen.writeObjectField("components", value.getComponents()); } - if(value.getExtensions() != null) { + if (value.getExtensions() != null) { for (Entry e : value.getExtensions().entrySet()) { gen.writeObjectField(e.getKey(), e.getValue()); } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/GeneratorTemplateContentLocator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/GeneratorTemplateContentLocator.java index 861b9bc3a3d..ef1d8500b5b 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/GeneratorTemplateContentLocator.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/GeneratorTemplateContentLocator.java @@ -31,7 +31,6 @@ public class GeneratorTemplateContentLocator implements TemplatePathLocator { * Determines whether an embedded file with the specified name exists. * * @param name The name of the file (i.e. relative to resource root) - * * @return true if file is an embedded resource, false if it does not exist */ public boolean embeddedTemplateExists(String name) { @@ -44,13 +43,13 @@ public class GeneratorTemplateContentLocator implements TemplatePathLocator { /** * Get the template file path with template dir prepended, and use the library template if exists. - * + *

    * Precedence: * 1) (template dir)/libraries/(library) * 2) (template dir) * 3) (embedded template dir)/libraries/(library) * 4) (embedded template dir) - * + *

    * Where "template dir" may be user defined and "embedded template dir" are the built-in templates for the given generator. * * @param relativeTemplateFile Template file diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/HandlebarsEngineAdapter.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/HandlebarsEngineAdapter.java index 6ffe155ba82..0805c267282 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/HandlebarsEngineAdapter.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/HandlebarsEngineAdapter.java @@ -20,7 +20,6 @@ import com.github.jknack.handlebars.Context; import com.github.jknack.handlebars.Handlebars; import com.github.jknack.handlebars.Jackson2Helper; import com.github.jknack.handlebars.Template; -import com.github.jknack.handlebars.context.FieldValueResolver; import com.github.jknack.handlebars.context.JavaBeanValueResolver; import com.github.jknack.handlebars.context.MapValueResolver; import com.github.jknack.handlebars.context.MethodValueResolver; @@ -38,19 +37,16 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; -import java.lang.reflect.AccessibleObject; import java.util.Arrays; import java.util.Locale; import java.util.Map; -import java.util.Set; -import java.util.stream.Collectors; public class HandlebarsEngineAdapter extends AbstractTemplatingEngineAdapter { final Logger LOGGER = LoggerFactory.getLogger(HandlebarsEngineAdapter.class); private final String[] extensions = {"handlebars", "hbs"}; // We use this as a simple lookup for valid file name extensions. This adapter will inspect .mustache (built-in) and infer the relevant handlebars filename - private final String[] canCompileFromExtensions = {".handlebars",".hbs",".mustache"}; + private final String[] canCompileFromExtensions = {".handlebars", ".hbs", ".mustache"}; private boolean infiniteLoops = false; @Setter private boolean prettyPrint = false; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/MustacheEngineAdapter.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/MustacheEngineAdapter.java index 9d7e96099df..a71b71a985b 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/MustacheEngineAdapter.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/MustacheEngineAdapter.java @@ -54,7 +54,7 @@ public class MustacheEngineAdapter implements TemplatingEngineAdapter { /** * Compiles a template into a string * - * @param executor From where we can fetch the templates content (e.g. an instance of DefaultGenerator) + * @param executor From where we can fetch the templates content (e.g. an instance of DefaultGenerator) * @param bundle The map of values to pass to the template * @param templateFile The name of the template (e.g. model.mustache ) * @return the processed template result diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/TemplateManagerOptions.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/TemplateManagerOptions.java index 213f162ae93..a13e174faf2 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/TemplateManagerOptions.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/TemplateManagerOptions.java @@ -5,18 +5,19 @@ import lombok.Getter; /** * Holds the options relevant to template management and execution. */ -@Getter public class TemplateManagerOptions { +@Getter +public class TemplateManagerOptions { /** - * Determines whether the template should minimally update a target file. - * A minimal update means the template manager is requested to update a file only if it is newer. - * This option avoids "touching" a file and causing the last modification time (mtime) to change. + * Determines whether the template should minimally update a target file. + * A minimal update means the template manager is requested to update a file only if it is newer. + * This option avoids "touching" a file and causing the last modification time (mtime) to change. */ private final boolean minimalUpdate; /** * -- GETTER -- - * Determines whether the template manager should avoid overwriting an existing file. - * This differs from requesting which evaluates contents, while this option only - * evaluates whether the file exists. + * Determines whether the template manager should avoid overwriting an existing file. + * This differs from requesting which evaluates contents, while this option only + * evaluates whether the file exists. */ private final boolean skipOverwrite; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/handlebars/StringHelpers.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/handlebars/StringHelpers.java index bd7c412244b..eb8c9ab6106 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/handlebars/StringHelpers.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/handlebars/StringHelpers.java @@ -20,7 +20,7 @@ public enum StringHelpers implements Helper { *
          * {{startsWith a text='b' [insensitive=true]}}
          * 
    - * + *

    * Render 'yes' or 'no': *

          *   {{#startsWith a b}}
    @@ -29,12 +29,12 @@ public enum StringHelpers implements Helper {
          *     no
          *   {{/startsWith}}
          * 
    -     *
    +     * 

    * Render 'true' or 'false': *

          *   {{startsWith a b}}
          * 
    - * + *

    * Render 'y' or 'n': *

          *   {{startsWith a b yes='y' no='n'}}
    @@ -72,7 +72,7 @@ public enum StringHelpers implements Helper {
          * 
          * {{endsWith a text='b' [insensitive=true]}}
          * 
    - * + *

    * Render 'yes' or 'no': *

          *   {{#endsWith a b}}
    @@ -81,12 +81,12 @@ public enum StringHelpers implements Helper {
          *     no
          *   {{/endsWith}}
          * 
    -     *
    +     * 

    * Render 'true' or 'false': *

          *   {{endsWith a b}}
          * 
    - * + *

    * Render 'y' or 'n': *

          *   {{endsWith a b yes='y' no='n'}}
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/BackSlashLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/BackSlashLambda.java
    index 8ada0b4d872..dd853c8dff0 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/BackSlashLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/BackSlashLambda.java
    @@ -24,12 +24,12 @@ import java.io.Writer;
     
     /**
      * Replaces forward slash with backslash in the text.
    - *
    + * 

    * Register: *

      * additionalProperties.put("backslash", new BackSlashLambda());
      * 
    - * + *

    * Use: *

      * {{#backslash}}{{summary}}{{/backslash}}
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/CamelCaseAndSanitizeLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/CamelCaseAndSanitizeLambda.java
    index 2ba8a38e3f4..0f430c8f1d7 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/CamelCaseAndSanitizeLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/CamelCaseAndSanitizeLambda.java
    @@ -31,12 +31,12 @@ import static org.openapitools.codegen.utils.StringUtils.camelize;
     
     /**
      * Converts text in a fragment to camelCase.
    - *
    + * 

    * Register: *

      * additionalProperties.put("camelcase", new CamelCaseAndSanitizeLambda());
      * 
    - * + *

    * Use: *

      * {{#camelcase}}{{name}}{{/camelcase}}
    @@ -55,7 +55,8 @@ public class CamelCaseAndSanitizeLambda implements Mustache.Lambda {
             }
         }
     
    -    public CamelCaseAndSanitizeLambda() {}
    +    public CamelCaseAndSanitizeLambda() {
    +    }
     
         public CamelCaseAndSanitizeLambda generator(final CodegenConfig generator) {
             this.generator = generator;
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/CamelCaseLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/CamelCaseLambda.java
    index 8caf84c5da6..33d8de300f0 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/CamelCaseLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/CamelCaseLambda.java
    @@ -14,38 +14,38 @@
      * limitations under the License.
      */
     
    - package org.openapitools.codegen.templating.mustache;
    +package org.openapitools.codegen.templating.mustache;
     
    - import com.samskivert.mustache.Mustache;
    - import com.samskivert.mustache.Template;
    - import org.openapitools.codegen.utils.CamelizeOption;
    - 
    - import java.io.IOException;
    - import java.io.Writer;
    - 
    - import static org.openapitools.codegen.utils.StringUtils.camelize;
    - 
    - /**
    -  * Converts text in a fragment to camelCase.
    -  *
    -  * Register:
    -  * 
    -  * additionalProperties.put("camelcase", new CamelCaseLambda());
    -  * 
    - * - * Use: - *
    -  * {{#camelcase}}{{name}}{{/camelcase}}
    -  * 
    - */ - public class CamelCaseLambda implements Mustache.Lambda { - public CamelCaseLambda() { - } - - @Override - public void execute(Template.Fragment fragment, Writer writer) throws IOException { - String text = fragment.execute(); - text = camelize(text, CamelizeOption.LOWERCASE_FIRST_CHAR); - writer.write(text); - } - } \ No newline at end of file +import com.samskivert.mustache.Mustache; +import com.samskivert.mustache.Template; +import org.openapitools.codegen.utils.CamelizeOption; + +import java.io.IOException; +import java.io.Writer; + +import static org.openapitools.codegen.utils.StringUtils.camelize; + +/** + * Converts text in a fragment to camelCase. + *

    + * Register: + *

    + * additionalProperties.put("camelcase", new CamelCaseLambda());
    + * 
    + *

    + * Use: + *

    + * {{#camelcase}}{{name}}{{/camelcase}}
    + * 
    + */ +public class CamelCaseLambda implements Mustache.Lambda { + public CamelCaseLambda() { + } + + @Override + public void execute(Template.Fragment fragment, Writer writer) throws IOException { + String text = fragment.execute(); + text = camelize(text, CamelizeOption.LOWERCASE_FIRST_CHAR); + writer.write(text); + } +} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/CaseFormatLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/CaseFormatLambda.java index 27bb9c6ce5e..43245285143 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/CaseFormatLambda.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/CaseFormatLambda.java @@ -10,12 +10,12 @@ import java.io.Writer; /** * Converts text from CaseFormat to another CaseFormat - * + *

    * Register: *

      * additionalProperties.put("convert", new CaseFormatLambda(LOWER_CAMEL, UPPER_UNDERSCORE));
      * 
    - * + *

    * Use: *

      * {{#convert}}{{name}}{{/convert}}
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/CopyLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/CopyLambda.java
    index 8da2eda0faa..dcc31301748 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/CopyLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/CopyLambda.java
    @@ -16,20 +16,20 @@
     
     package org.openapitools.codegen.templating.mustache;
     
    -import java.io.IOException;
    -import java.io.Writer;
    -
     import com.samskivert.mustache.Mustache;
     import com.samskivert.mustache.Template.Fragment;
     
    +import java.io.IOException;
    +import java.io.Writer;
    +
     /**
      * Saves template text to be used later.
    - *
    + * 

    * Register: *

      * additionalProperties.put("copy", new CopyLambda(new CopyContent()));
      * 
    - * + *

    * Use: *

      * {{#copy}}{{name}}{{/copy}}
    @@ -61,7 +61,7 @@ public class CopyLambda implements Mustache.Lambda {
         public void execute(Fragment fragment, Writer writer) throws IOException {
             String content = fragment.execute();
     
    -        if (this.leadingWhiteSpaceStrategy == WhiteSpaceStrategy.AppendLineBreakIfMissing && !content.startsWith("\n")){
    +        if (this.leadingWhiteSpaceStrategy == WhiteSpaceStrategy.AppendLineBreakIfMissing && !content.startsWith("\n")) {
                 content = "\n" + content;
             }
     
    @@ -73,11 +73,11 @@ public class CopyLambda implements Mustache.Lambda {
                 content = content.substring(1);
             }
     
    -        if (this.trailingWhiteSpaceStrategy == WhiteSpaceStrategy.AppendLineBreakIfMissing && !content.endsWith("\n")){
    +        if (this.trailingWhiteSpaceStrategy == WhiteSpaceStrategy.AppendLineBreakIfMissing && !content.endsWith("\n")) {
                 content = content + "\n";
             }
     
    -        if (this.trailingWhiteSpaceStrategy == WhiteSpaceStrategy.Strip){
    +        if (this.trailingWhiteSpaceStrategy == WhiteSpaceStrategy.Strip) {
                 content = content.stripTrailing();
             }
     
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/DoubleQuoteLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/DoubleQuoteLambda.java
    index 1caf4fd2e47..646a1fd163f 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/DoubleQuoteLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/DoubleQuoteLambda.java
    @@ -24,12 +24,12 @@ import java.io.Writer;
     
     /**
      * Double quote the text if it's not already the case.
    - *
    + * 

    * Register: *

      * additionalProperties.put("doublequote", new DoubleQuoteLambda());
      * 
    - * + *

    * Use: *

      * {{#doublequote}}{{summary}}{{/doublequote}}
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/EscapeChar.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/EscapeChar.java
    index 2d8e2c05535..7641ad37a5d 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/EscapeChar.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/EscapeChar.java
    @@ -25,10 +25,10 @@ import java.io.Writer;
     
     /**
      * Escapes the desired character if not escaped already, e.g. {@code $ => \$}.
    - *
    + * 

    * Register: * {@code additionalProperties.put("escapeDollar", new EscapeChar("(? * Use: * {@code {{#lambda.escapeDollar}}{{name}}{{/lambda.escapeDollar}} } */ @@ -38,9 +38,9 @@ public class EscapeChar implements Mustache.Lambda { /** * Constructs a new instance of {@link EscapeChar}, with the desired character to escape - * + * * @param matchPattern the character to escape - * @param replacement the escaped character + * @param replacement the escaped character */ public EscapeChar(String matchPattern, String replacement) { this.matchPattern = matchPattern; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/EscapeKeywordLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/EscapeKeywordLambda.java index 54ac7a89663..a565e193ecb 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/EscapeKeywordLambda.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/EscapeKeywordLambda.java @@ -26,12 +26,12 @@ import java.util.function.UnaryOperator; /** * Converts text in a fragment to escape_keyword. - * + *

    * Register: *

      * additionalProperties.put("escape_keyword", new EscapeKeywordLambda((val) -> this.escapeKeyword(val))));
      * 
    - * + *

    * Use: *

      * {{#escape_keyword}}{{name}}{{/escape_keyword}}
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/FirstLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/FirstLambda.java
    index 6a82239fbdb..678b4c18b05 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/FirstLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/FirstLambda.java
    @@ -25,12 +25,12 @@ import java.util.Arrays;
     
     /**
      * Split text by 2 spaces and then return the first entry
    - *
    + * 

    * Register: *

      * additionalProperties.put("first", new FirstLambda());
      * 
    - * + *

    * Use: *

      * {{#first}}{{name}}{{/first}}
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/ForwardSlashLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/ForwardSlashLambda.java
    index 33b26dd2e9d..294a194be26 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/ForwardSlashLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/ForwardSlashLambda.java
    @@ -24,12 +24,12 @@ import java.io.Writer;
     
     /**
      * Replaces backslash with forward slash in the text.
    - *
    + * 

    * Register: *

      * additionalProperties.put("forwardslash", new ForwardSlashLambda());
      * 
    - * + *

    * Use: *

      * {{#forwardslash}}{{summary}}{{/forwardslash}}
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/IndentedLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/IndentedLambda.java
    index 09f669ae3be..677bb131284 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/IndentedLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/IndentedLambda.java
    @@ -81,7 +81,7 @@ public class IndentedLambda implements Mustache.Lambda {
         /**
          * Constructs a new instance of {@link IndentedLambda}
          *
    -     * @param prefixSpaceCount The number of indented characters to apply as a prefix to a fragment.
    +     * @param prefixSpaceCount   The number of indented characters to apply as a prefix to a fragment.
          * @param indentionCodePoint Code point of the single character used for indentation.
          * @param prefix             An optional prefix to prepend before the line (useful for multi-line comments).
          * @param indentFirstLine    Whether to indent the first line or not. Usually this is handled by the template already.
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/JoinWithCommaLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/JoinWithCommaLambda.java
    index b06fdecb90f..3e595819563 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/JoinWithCommaLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/JoinWithCommaLambda.java
    @@ -25,12 +25,12 @@ import java.io.Writer;
     
     /**
      * Split text by 2 spaces and then join the strings with ", "
    - *
    + * 

    * Register: *

      * additionalProperties.put("joinWithComma", new JoinWithCommaLambda());
      * 
    - * + *

    * Use: *

      * {{#joinWithComma}}{{name}}{{/joinWithComma}}
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/KebabCaseLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/KebabCaseLambda.java
    index 6997666b118..af384969deb 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/KebabCaseLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/KebabCaseLambda.java
    @@ -25,12 +25,12 @@ import java.util.Locale;
     
     /**
      * Converts text in a fragment to snake case.
    - *
    + * 

    * Register: *

      * additionalProperties.put("kebabcase", new KebabCaseLambda());
      * 
    - * + *

    * Use: *

      * {{#kebabcase}}{{summary}}{{/kebabcase}}
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/LowercaseLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/LowercaseLambda.java
    index f930eaa2c00..be1eaa20332 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/LowercaseLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/LowercaseLambda.java
    @@ -27,12 +27,12 @@ import java.util.Locale;
     
     /**
      * Converts text in a fragment to lowercase.
    - *
    + * 

    * Register: *

      * additionalProperties.put("lowercase", new LowercaseLambda());
      * 
    - * + *

    * Use: *

      * {{#lowercase}}{{httpMethod}}{{/lowercase}}
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/OnChangeLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/OnChangeLambda.java
    index b40840f3669..33c38529b86 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/OnChangeLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/OnChangeLambda.java
    @@ -1,23 +1,22 @@
     package org.openapitools.codegen.templating.mustache;
     
    +import com.samskivert.mustache.Mustache;
    +import com.samskivert.mustache.Template;
    +import org.slf4j.Logger;
    +import org.slf4j.LoggerFactory;
    +
     import java.io.IOException;
     import java.io.Writer;
     
    -import org.slf4j.Logger;
    -import org.slf4j.LoggerFactory;
    -
    -import com.samskivert.mustache.Mustache;
    -import com.samskivert.mustache.Template;
    -
     /**
      * Lambda writes current fragment to the output when it is different than
      * the previous fragment.
    - *
    + * 

    * Register: *

      * additionalProperties.put("onchange", new OnChangeLambda());
      * 
    - * + *

    * Use: *

      * {{#onchange}}{{name}}{{/onchange}}
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/OptionalParameterLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/OptionalParameterLambda.java
    index d2815d520c6..d6dfc5a5492 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/OptionalParameterLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/OptionalParameterLambda.java
    @@ -27,12 +27,12 @@ import java.io.Writer;
     
     /**
      * Appends trailing ? to a text fragment if not already present
    - *
    + * 

    * Register: *

      * additionalProperties.put("optional", new OptionalParameterLambda());
      * 
    - * + *

    * Use: *

      * {{#lambda.optional}}{{name}}{{/lambda.optional}}
    @@ -41,7 +41,8 @@ import java.io.Writer;
     public class OptionalParameterLambda implements Mustache.Lambda {
         private CodegenConfig generator = null;
     
    -    public OptionalParameterLambda() {}
    +    public OptionalParameterLambda() {
    +    }
     
         public OptionalParameterLambda generator(final CodegenConfig generator) {
             this.generator = generator;
    @@ -52,12 +53,12 @@ public class OptionalParameterLambda implements Mustache.Lambda {
         public void execute(Template.Fragment fragment, Writer writer) throws IOException {
             String text = fragment.execute();
     
    -        if (this.generator instanceof AbstractCSharpCodegen){
    +        if (this.generator instanceof AbstractCSharpCodegen) {
                 AbstractCSharpCodegen csharpGenerator = (AbstractCSharpCodegen) this.generator;
    -            if (csharpGenerator.getNullableReferencesTypes()){
    +            if (csharpGenerator.getNullableReferencesTypes()) {
                     text = text.endsWith("?")
    -                    ? text
    -                    : text + "?";
    +                        ? text
    +                        : text + "?";
                 }
             }
     
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/PasteLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/PasteLambda.java
    index de7f128d5c2..4dac82612a3 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/PasteLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/PasteLambda.java
    @@ -16,22 +16,21 @@
     
     package org.openapitools.codegen.templating.mustache;
     
    +import com.samskivert.mustache.Mustache;
    +import com.samskivert.mustache.Template.Fragment;
    +import org.openapitools.codegen.templating.mustache.CopyLambda.CopyContent;
    +
     import java.io.IOException;
     import java.io.Writer;
     
    -import org.openapitools.codegen.templating.mustache.CopyLambda.CopyContent;
    -
    -import com.samskivert.mustache.Mustache;
    -import com.samskivert.mustache.Template.Fragment;
    -
     /**
      * Writes text that was previously saved.
    - *
    + * 

    * Register: *

      * additionalProperties.put("paste", new PasteLambda(copyContent, false));
      * 
    - * + *

    * Use: *

      * {{#paste}}{{/paste}}
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/PrefixWithHashLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/PrefixWithHashLambda.java
    index c3418de09b7..d07ca73123a 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/PrefixWithHashLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/PrefixWithHashLambda.java
    @@ -25,12 +25,12 @@ import java.io.Writer;
     
     /**
      * Replaces duplicate whitespace characters in a fragment with single space.
    - *
    + * 

    * Register: *

      * additionalProperties.put("lambdaPrefixWithHash", new PrefixWithHashLambda());
      * 
    - * + *

    * Use: *

      * {{#lambdaPrefixWithHash}}{{name}}{{/lambdaPrefixWithHash}}
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/ReplaceAllLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/ReplaceAllLambda.java
    index b724a52dd84..355f3ca0a24 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/ReplaceAllLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/ReplaceAllLambda.java
    @@ -24,12 +24,12 @@ import java.io.Writer;
     
     /**
      * Replaces all regex captures with the provided string.
    - *
    + * 

    * Register: *

      * additionalProperties.put("regex", new ReplaceAllLambda());
      * 
    - * + *

    * Use: *

      * {{#regex}}{{summary}}{{/regex}}
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/RequiredParameterLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/RequiredParameterLambda.java
    index ab0a0538c45..70d97b432a4 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/RequiredParameterLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/RequiredParameterLambda.java
    @@ -25,12 +25,12 @@ import java.io.Writer;
     
     /**
      * Strips trailing ? from a text fragment
    - *
    + * 

    * Register: *

      * additionalProperties.put("required", new RequiredParameterLambda());
      * 
    - * + *

    * Use: *

      * {{#lambda.required}}{{name}}{{/lambda.required}}
    @@ -38,14 +38,15 @@ import java.io.Writer;
      */
     public class RequiredParameterLambda implements Mustache.Lambda {
     
    -    public RequiredParameterLambda() {}
    +    public RequiredParameterLambda() {
    +    }
     
         @Override
         public void execute(Template.Fragment fragment, Writer writer) throws IOException {
             String text = fragment.execute();
             text = text.endsWith("?")
    -            ? text.substring(0, text.length() - 1)
    -            : text;
    +                ? text.substring(0, text.length() - 1)
    +                : text;
     
             writer.write(text);
         }
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/SnakecaseLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/SnakecaseLambda.java
    index 75a6803cee9..be333b958b1 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/SnakecaseLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/SnakecaseLambda.java
    @@ -26,12 +26,12 @@ import static org.openapitools.codegen.utils.StringUtils.underscore;
     
     /**
      * Converts text in a fragment to snake case.
    - *
    + * 

    * Register: *

      * additionalProperties.put("snakecase", new SnakecaseLambda());
      * 
    - * + *

    * Use: *

      * {{#snakecase}}{{summary}}{{/snakecase}}
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/SplitStringLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/SplitStringLambda.java
    index 70c7e5ee15a..4777c98a49f 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/SplitStringLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/SplitStringLambda.java
    @@ -17,23 +17,23 @@
     
     package org.openapitools.codegen.templating.mustache;
     
    +import com.samskivert.mustache.Mustache;
    +import com.samskivert.mustache.Template.Fragment;
    +
     import java.io.IOException;
     import java.io.Writer;
     import java.util.Locale;
     
    -import com.samskivert.mustache.Mustache;
    -import com.samskivert.mustache.Template.Fragment;
    -
     /**
      * Splits long fragments into smaller strings and uses a StringBuilder to merge
      * them back.
    - *
    + * 

    * Register: * *

      * additionalProperties.put("lambdaSplitString", new SplitStringLambda());
      * 
    - * + *

    * Use: * *

    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/SpringHttpStatusLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/SpringHttpStatusLambda.java
    index 3808f78cbb3..9d9d6123a1d 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/SpringHttpStatusLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/SpringHttpStatusLambda.java
    @@ -9,12 +9,12 @@ import java.io.Writer;
     /**
      * Returns the Spring {@code org.springframework.http.HttpStatus} enumeration for the given status text.
      * It throws an IllegalArgumentException if the status text is handled by the Spring framework.
    - *
    + * 

    * Register: *

      * additionalProperties.put("springHttpStatus", new SpringHttpStatusLambda());
      * 
    - * + *

    * Use: *

      * {{#springHttpStatus}}{{statusCode}}{{/springHttpStatus}}
    @@ -213,8 +213,8 @@ public class SpringHttpStatusLambda implements Mustache.Lambda {
                     writer.write(HTTP_STATUS_PREFIX + "VARIANT_ALSO_NEGOTIATES");
                     break;
                 default:
    -               throw new IllegalArgumentException("The given HTTP status code: " + httpCode
    -                       + " is not supported by the 'org.springframework.http.HttpStatus' enum.");
    +                throw new IllegalArgumentException("The given HTTP status code: " + httpCode
    +                        + " is not supported by the 'org.springframework.http.HttpStatus' enum.");
             }
         }
     }
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/TitlecaseLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/TitlecaseLambda.java
    index 04668f98898..2fddf2271ae 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/TitlecaseLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/TitlecaseLambda.java
    @@ -26,18 +26,18 @@ import java.util.Locale;
     
     /**
      * Converts text in a fragment to title case.
    - *
    + * 

    * Register: *

      * additionalProperties.put("titlecase", new TitlecaseLambda());
      * 
    - * + *

    * Use: *

      * {{#titlecase}}{{classname}}{{/titlecase}}
      * 
    */ -public class TitlecaseLambda implements Mustache.Lambda { +public class TitlecaseLambda implements Mustache.Lambda { private final String delimiter; /** @@ -51,7 +51,7 @@ public class TitlecaseLambda implements Mustache.Lambda { /** * Constructs a new instance of {@link TitlecaseLambda}, splitting on the specified * delimiter and converting each word to title-case. - * + *

    * NOTE: passing {@code null} results in a title-casing the first word only. * * @param delimiter Provided to allow an override for the default space delimiter. @@ -61,7 +61,7 @@ public class TitlecaseLambda implements Mustache.Lambda { } private String titleCase(final String input) { - if(input == null || "".equals(input)){ + if (input == null || "".equals(input)) { return ""; } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/TrimLineBreaksLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/TrimLineBreaksLambda.java index 702b0cf258b..240e5ee18be 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/TrimLineBreaksLambda.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/TrimLineBreaksLambda.java @@ -16,20 +16,20 @@ package org.openapitools.codegen.templating.mustache; -import java.io.IOException; -import java.io.Writer; - import com.samskivert.mustache.Mustache; import com.samskivert.mustache.Template.Fragment; +import java.io.IOException; +import java.io.Writer; + /** * Replaces duplicate line break characters in a fragment with single line break. - * + *

    * Register: *

      * additionalProperties.put("trimLineBreaks", new TrimLineBreaksLambda());
      * 
    - * + *

    * Use: *

      * {{#trimLineBreaks}}{{name}}{{/trimLineBreaks}}
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/TrimTrailingWhiteSpaceLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/TrimTrailingWhiteSpaceLambda.java
    index 852bd4a401d..571680957ba 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/TrimTrailingWhiteSpaceLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/TrimTrailingWhiteSpaceLambda.java
    @@ -16,20 +16,20 @@
     
     package org.openapitools.codegen.templating.mustache;
     
    -import java.io.IOException;
    -import java.io.Writer;
    -
     import com.samskivert.mustache.Mustache;
     import com.samskivert.mustache.Template.Fragment;
     
    +import java.io.IOException;
    +import java.io.Writer;
    +
     /**
      * Replaces duplicate line break characters in a fragment with single line break.
    - *
    + * 

    * Register: *

      * additionalProperties.put("trimTrailingWhiteSpace", new TrimTrailingWhiteSpaceLambda());
      * 
    - * + *

    * Use: *

      * {{#trimTrailingWhiteSpace}}{{name}}{{/trimTrailingWhiteSpace}}
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/TrimWhitespaceLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/TrimWhitespaceLambda.java
    index 29e2e36c35e..617660675c5 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/TrimWhitespaceLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/TrimWhitespaceLambda.java
    @@ -17,20 +17,20 @@
     
     package org.openapitools.codegen.templating.mustache;
     
    -import java.io.IOException;
    -import java.io.Writer;
    -
     import com.samskivert.mustache.Mustache;
     import com.samskivert.mustache.Template.Fragment;
     
    +import java.io.IOException;
    +import java.io.Writer;
    +
     /**
      * Replaces duplicate whitespace characters in a fragment with single space.
    - *
    + * 

    * Register: *

      * additionalProperties.put("lambdaTrimWhitespace", new TrimWhitespaceLambda());
      * 
    - * + *

    * Use: *

      * {{#lambdaTrimWhitespace}}{{name}}{{/lambdaTrimWhitespace}}
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/UncamelizeLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/UncamelizeLambda.java
    index ae23a0fa5cb..c50d2db4432 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/UncamelizeLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/UncamelizeLambda.java
    @@ -26,12 +26,12 @@ import java.io.Writer;
     
     /**
      * Converts text in a fragment from camelCase or PascalCase to a space separated string
    - *
    + * 

    * Register: *

      * additionalProperties.put("uncamelize", new UncamelizeLambda());
      * 
    - * + *

    * Use: *

      * {{#uncamelize}}{{name}}{{/uncamelize}}
    @@ -39,7 +39,9 @@ import java.io.Writer;
      */
     public class UncamelizeLambda implements Mustache.Lambda {
     
    -    public UncamelizeLambda() {}
    +    public UncamelizeLambda() {
    +    }
    +
         @Override
         public void execute(Template.Fragment fragment, Writer writer) throws IOException {
             String input = fragment.execute();
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/UniqueLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/UniqueLambda.java
    index 287e4ea9650..0742cb78968 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/UniqueLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/UniqueLambda.java
    @@ -27,12 +27,12 @@ import java.util.stream.Collectors;
     
     /**
      * Split text by the delimiter and then write only the unique entries
    - *
    + * 

    * Register: *

      * additionalProperties.put("unique", new UniqueLambda());
      * 
    - * + *

    * Use: *

      * {{#unique}}{{name}}{{/unique}}
    @@ -42,8 +42,7 @@ public class UniqueLambda implements Mustache.Lambda {
         private final String delimiter;
         private final boolean withNewLine;
     
    -    public UniqueLambda(String delimiter, boolean withNewLine)
    -    {
    +    public UniqueLambda(String delimiter, boolean withNewLine) {
             this.delimiter = delimiter;
             this.withNewLine = withNewLine;
         }
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/UppercaseLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/UppercaseLambda.java
    index 4063f3a842a..1059e9cf739 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/UppercaseLambda.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/UppercaseLambda.java
    @@ -26,12 +26,12 @@ import java.util.Locale;
     
     /**
      * Converts text in a fragment to uppercase.
    - *
    + * 

    * Register: *

      * additionalProperties.put("uppercase", new UppercaseLambda());
      * 
    - * + *

    * Use: *

      * {{#uppercase}}{{summary}}{{/uppercase}}
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/JsonCache.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/JsonCache.java
    index ac5873ee567..a3902a31fb0 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/JsonCache.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/JsonCache.java
    @@ -16,6 +16,10 @@
     
     package org.openapitools.codegen.utils;
     
    +import com.fasterxml.jackson.core.JsonPointer;
    +import com.fasterxml.jackson.databind.ObjectMapper;
    +import com.fasterxml.jackson.databind.node.JsonNodeType;
    +
     import java.io.File;
     import java.io.InputStream;
     import java.io.OutputStream;
    @@ -23,10 +27,6 @@ import java.math.BigDecimal;
     import java.math.BigInteger;
     import java.util.List;
     
    -import com.fasterxml.jackson.core.JsonPointer;
    -import com.fasterxml.jackson.databind.ObjectMapper;
    -import com.fasterxml.jackson.databind.node.JsonNodeType;
    -
     /**
      * An interface for querying and mutating a JSON object graph. Clients indicate the location within the graph at which a
      * value is to be read or written using a JSON Pointer as either a
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/JsonCacheImpl.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/JsonCacheImpl.java
    index d2ba6617edb..2dfda4a8e9d 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/JsonCacheImpl.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/JsonCacheImpl.java
    @@ -16,41 +16,21 @@
     
     package org.openapitools.codegen.utils;
     
    -import java.io.File;
    -import java.io.FileInputStream;
    -import java.io.FileNotFoundException;
    -import java.io.FileOutputStream;
    -import java.io.IOException;
    -import java.io.InputStream;
    -import java.io.OutputStream;
    -import java.math.BigDecimal;
    -import java.math.BigInteger;
    -import java.util.ArrayDeque;
    -import java.util.ArrayList;
    -import java.util.Collections;
    -import java.util.Deque;
    -import java.util.HashMap;
    -import java.util.Iterator;
    -import java.util.List;
    -import java.util.Map;
    -import java.util.Map.Entry;
    -import java.util.Objects;
    -import java.util.regex.Pattern;
    -
    -import org.slf4j.Logger;
    -import org.slf4j.LoggerFactory;
    -
     import com.fasterxml.jackson.core.JsonPointer;
     import com.fasterxml.jackson.databind.DeserializationFeature;
     import com.fasterxml.jackson.databind.JsonNode;
     import com.fasterxml.jackson.databind.ObjectMapper;
     import com.fasterxml.jackson.databind.SerializationFeature;
    -import com.fasterxml.jackson.databind.node.ArrayNode;
    -import com.fasterxml.jackson.databind.node.ContainerNode;
    -import com.fasterxml.jackson.databind.node.JsonNodeFactory;
    -import com.fasterxml.jackson.databind.node.JsonNodeType;
    -import com.fasterxml.jackson.databind.node.ObjectNode;
    -import com.fasterxml.jackson.databind.node.POJONode;
    +import com.fasterxml.jackson.databind.node.*;
    +import org.slf4j.Logger;
    +import org.slf4j.LoggerFactory;
    +
    +import java.io.*;
    +import java.math.BigDecimal;
    +import java.math.BigInteger;
    +import java.util.*;
    +import java.util.Map.Entry;
    +import java.util.regex.Pattern;
     
     /**
      * A cache implementation for loading, querying, mutating and saving a JSON object graph.
    diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/Markdown.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/Markdown.java
    index c713bea34d1..8052304f036 100644
    --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/Markdown.java
    +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/Markdown.java
    @@ -35,6 +35,7 @@ public class Markdown {
         /**
          * Convert input markdown text to HTML.
          * Simple text is not wrapped in 

    ...

    . + * * @param markdown text with Markdown styles. If null, "" is returned. * @return HTML rendering from the Markdown */ @@ -53,6 +54,7 @@ public class Markdown { // do that Markdown can be used in non-block contexts such as operation summary etc. private static final String P_END = "

    \n"; private static final String P_START = "

    "; + private String unwrapped(String html) { if (html.startsWith(P_START) && html.endsWith(P_END) && html.lastIndexOf(P_START) == 0) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java index d9f77b3f573..92b4330dbdd 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java @@ -426,18 +426,18 @@ public class ModelUtils { * A ObjectSchema differs from a MapSchema in the following way: * - An ObjectSchema is not extensible, i.e. it has a fixed number of properties. * - A MapSchema is an object that can be extended with an arbitrary set of properties. - * The payload may include dynamic properties. + * The payload may include dynamic properties. *

    * For example, an OpenAPI schema is considered an ObjectSchema in the following scenarios: *

    - * - * type: object - * additionalProperties: false - * properties: - * name: - * type: string - * address: - * type: string + *

    + * type: object + * additionalProperties: false + * properties: + * name: + * type: string + * address: + * type: string * * @param schema the OAS schema * @return true if the specified schema is an Object schema. @@ -534,21 +534,21 @@ public class ModelUtils { *

    * For example, an OpenAPI schema is considered a MapSchema in the following scenarios: *

    - * - * type: object - * additionalProperties: true - * - * type: object - * additionalProperties: - * type: object - * properties: - * code: - * type: integer - * - * allOf: - * - $ref: '#/components/schemas/Class1' - * - $ref: '#/components/schemas/Class2' - * additionalProperties: true + *

    + * type: object + * additionalProperties: true + *

    + * type: object + * additionalProperties: + * type: object + * properties: + * code: + * type: integer + *

    + * allOf: + * - $ref: '#/components/schemas/Class1' + * - $ref: '#/components/schemas/Class2' + * additionalProperties: true * * @param schema the OAS schema * @return true if the specified schema is a Map schema. @@ -840,24 +840,24 @@ public class ModelUtils { * Examples: *

    * components: - * schemas: - * arbitraryObject: - * type: object - * description: This is a free-form object. - * The value must be a map of strings to values. The value cannot be 'null'. - * It cannot be array, string, integer, number. - * arbitraryNullableObject: - * type: object - * description: This is a free-form object. - * The value must be a map of strings to values. The value can be 'null', - * It cannot be array, string, integer, number. - * nullable: true - * arbitraryTypeValue: - * description: This is NOT a free-form object. - * The value can be any type except the 'null' value. + * schemas: + * arbitraryObject: + * type: object + * description: This is a free-form object. + * The value must be a map of strings to values. The value cannot be 'null'. + * It cannot be array, string, integer, number. + * arbitraryNullableObject: + * type: object + * description: This is a free-form object. + * The value must be a map of strings to values. The value can be 'null', + * It cannot be array, string, integer, number. + * nullable: true + * arbitraryTypeValue: + * description: This is NOT a free-form object. + * The value can be any type except the 'null' value. * * @param schema potentially containing a '$ref' - * @param openAPI document containing the Schema. + * @param openAPI document containing the Schema. * @return true if it's a free-form object */ public static boolean isFreeFormObject(Schema schema, OpenAPI openAPI) { @@ -999,8 +999,8 @@ public class ModelUtils { /** * Get the schema referenced by $ref to schema's properties, e.g. #/components/schemas/Pet/properties/category. * - * @param openAPI specification being checked - * @param refString schema reference + * @param openAPI specification being checked + * @param refString schema reference * @return schema */ public static Schema getSchemaFromRefToSchemaWithProperties(OpenAPI openAPI, String refString) { @@ -1021,7 +1021,7 @@ public class ModelUtils { /** * Returns true if $ref to a reference to schema's properties, e.g. #/components/schemas/Pet/properties/category. * - * @param refString schema reference + * @param refString schema reference * @return true if $ref to a reference to schema's properties */ public static boolean isRefToSchemaWithProperties(String refString) { @@ -1198,7 +1198,7 @@ public class ModelUtils { /** * Return the first defined Schema for a ApiResponse * - * @param openAPI OpenAPI spec. + * @param openAPI OpenAPI spec. * @param response API response of the operation * @return firstSchema */ @@ -1218,13 +1218,13 @@ public class ModelUtils { * for the 'application/json' content type because it is listed first in the OAS. *

    * responses: - * '200': - * content: - * application/json: - * schema: - * $ref: '#/components/schemas/XYZ' - * application/xml: - * ... + * '200': + * content: + * application/json: + * schema: + * $ref: '#/components/schemas/XYZ' + * application/xml: + * ... * * @param content a 'content' section in the OAS specification. * @return the Schema. @@ -1427,7 +1427,7 @@ public class ModelUtils { * any additional properties are allowed. This is equivalent to setting additionalProperties * to the boolean value True or setting additionalProperties: {} * - * @param schema the input schema that may or may not have the additionalProperties keyword. + * @param schema the input schema that may or may not have the additionalProperties keyword. * @return the Schema of the additionalProperties. The null value is returned if no additional * properties are allowed. */ @@ -1540,19 +1540,19 @@ public class ModelUtils { * because 'Animal' specifies a discriminator. *

    * animal: - * type: object - * discriminator: - * propertyName: type - * properties: - * type: string + * type: object + * discriminator: + * propertyName: type + * properties: + * type: string * *

    * dog: - * allOf: - * - $ref: '#/components/schemas/animal' - * - type: object - * properties: - * breed: string + * allOf: + * - $ref: '#/components/schemas/animal' + * - type: object + * properties: + * breed: string * * @param composedSchema schema (alias or direct reference) * @param allSchemas all schemas @@ -1693,7 +1693,7 @@ public class ModelUtils { * If it's string, return true if it's non-empty. * If the return value is `true`, the schema is a parent. * - * @param schema Schema + * @param schema Schema * @return boolean */ public static boolean isExtensionParent(Schema schema) { @@ -1760,9 +1760,9 @@ public class ModelUtils { * type is one of the elements under 'oneOf'. *

    * OptionalOrder: - * oneOf: - * - type: 'null' - * - $ref: '#/components/schemas/Order' + * oneOf: + * - type: 'null' + * - $ref: '#/components/schemas/Order' * * @param schema the OAS composed schema. * @return true if the composed schema is nullable. @@ -2224,9 +2224,8 @@ public class ModelUtils { *

    * Return true if the schema's type is 'null' or not specified * - * @param schema Schema + * @param schema Schema * @param openAPI OpenAPI - * * @return true if schema is null type */ public static boolean isNullTypeSchema(OpenAPI openAPI, Schema schema) { @@ -2290,9 +2289,8 @@ public class ModelUtils { *

    * Return true if the schema can be handled by OpenAPI Generator * - * @param schema Schema + * @param schema Schema * @param openAPI OpenAPIs - * * @return true if schema is null type */ public static boolean isUnsupportedSchema(OpenAPI openAPI, Schema schema) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/OnceLogger.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/OnceLogger.java index b90a9338981..f3a7e1bb79b 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/OnceLogger.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/OnceLogger.java @@ -16,7 +16,7 @@ import java.util.concurrent.atomic.AtomicInteger; * Provides calling code a way to log important messages only once, regardless of how many times the invocation has occurred. * This can be used, for instance, to log a warning like "One or more schemas aren't declared" without logging that message * for every time the schema is mentioned in a document. - * + *

    * This implementation currently only supports single-argument string literal log methods (e.g. {@link Logger#debug(String)}). */ @SuppressWarnings("FieldCanBeLocal") @@ -158,7 +158,7 @@ public class OnceLogger extends LoggerWrapper { /** * Delegate to the appropriate method of the underlying logger. - * + *

    * Use this method sparingly. If you're limiting error messages, ask yourself * whether your log fits better as a warning. * diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/OneOfImplementorAdditionalData.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/OneOfImplementorAdditionalData.java index b2920bd6f10..e3b866854b1 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/OneOfImplementorAdditionalData.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/OneOfImplementorAdditionalData.java @@ -1,12 +1,5 @@ package org.openapitools.codegen.utils; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - import lombok.Getter; import org.openapitools.codegen.CodegenConfig; import org.openapitools.codegen.CodegenModel; @@ -14,35 +7,37 @@ import org.openapitools.codegen.CodegenProperty; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.*; + /** * This class holds data to add to `oneOf` members. Let's consider this example: - * + *

    * Foo: - * properties: - * x: - * oneOf: - * - $ref: "#/components/schemas/One - * - $ref: "#/components/schemas/Two - * y: - * type: string + * properties: + * x: + * oneOf: + * - $ref: "#/components/schemas/One + * - $ref: "#/components/schemas/Two + * y: + * type: string * One: - * properties: - * z: - * type: string + * properties: + * z: + * type: string * Two: - * properties: - * a: - * type: string - * + * properties: + * a: + * type: string + *

    * In codegens that use this mechanism, `Foo` will become an interface and `One` will * become its implementing class. This class carries all data necessary to properly modify * the implementing class model. Specifically: - * + *

    * * Interfaces that the implementing classes have to implement (in the example above, `One` and `Two` will implement `Foo`) * * Properties that need to be added to implementing classes (as `Foo` is interface, the `y` property will get pushed - * to implementing classes `One` and `Two`) + * to implementing classes `One` and `Two`) * * Imports that need to be added to implementing classes (e.g. if type of property `y` needs a specific import, it - * needs to be added to `One` and `Two` because of the above point) + * needs to be added to `One` and `Two` because of the above point) */ public class OneOfImplementorAdditionalData { @Getter private String implementorName; @@ -58,7 +53,7 @@ public class OneOfImplementorAdditionalData { /** * Add data from a given CodegenModel that the oneOf implementor should implement. For example: * - * @param cm model that the implementor should implement + * @param cm model that the implementor should implement * @param modelsImports imports of the given `cm` */ public void addFromInterfaceModel(CodegenModel cm, List> modelsImports) { @@ -99,9 +94,9 @@ public class OneOfImplementorAdditionalData { /** * Adds stored data to given implementing model * - * @param cc CodegenConfig running this operation - * @param implcm the implementing model - * @param implImports imports of the implementing model + * @param cc CodegenConfig running this operation + * @param implcm the implementing model + * @param implImports imports of the implementing model * @param addInterfaceImports whether or not to add the interface model as import (will vary by language) */ @SuppressWarnings("unchecked") @@ -123,7 +118,7 @@ public class OneOfImplementorAdditionalData { // Add oneOf-containing models properties - we need to properly set the hasMore values to make rendering correct implcm.vars.addAll(additionalProps); - implcm.hasVars = ! implcm.vars.isEmpty(); + implcm.hasVars = !implcm.vars.isEmpty(); // Add imports for (Map oneImport : additionalImports) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/OptionUtils.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/OptionUtils.java index 3059db818e8..bbb06073ab1 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/OptionUtils.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/OptionUtils.java @@ -37,7 +37,7 @@ public class OptionUtils { if (ix > 0 && ix <= tuple.length() - 1) { final Pair pair = Pair.of(tuple.substring(0, ix), tuple.substring(ix + 1)); results.add(pair); - } else if (ix < 0){ + } else if (ix < 0) { final Pair pair = Pair.of(tuple, ""); results.add(pair); } @@ -50,11 +50,11 @@ public class OptionUtils { List results = new ArrayList(); - if(input != null && !input.isEmpty()) { + if (input != null && !input.isEmpty()) { String[] tokens = input.split(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)", -1); for (String value : tokens) { - if(isNotEmpty(value)) - results.add(value); + if (isNotEmpty(value)) + results.add(value); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/StringUtils.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/StringUtils.java index 888719692de..18517bed319 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/StringUtils.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/StringUtils.java @@ -7,12 +7,7 @@ import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; import org.openapitools.codegen.config.GlobalSettings; -import java.util.Collections; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Objects; -import java.util.Set; +import java.util.*; import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -125,7 +120,7 @@ public class StringUtils { /** * Camelize name (parameter, property, method, etc) * - * @param inputWord string to be camelize + * @param inputWord string to be camelize * @param camelizeOption option for the camelize result * @return camelized string */ @@ -256,9 +251,9 @@ public class StringUtils { /** * Return the name with escaped characters. * - * @param name the name to be escaped - * @param replacementMap map of replacement characters for non-allowed characters - * @param charactersToAllow characters that are not escaped + * @param name the name to be escaped + * @param replacementMap map of replacement characters for non-allowed characters + * @param charactersToAllow characters that are not escaped * @param appendToReplacement String to append to replaced characters. * @return the escaped word *

    @@ -273,11 +268,11 @@ public class StringUtils { if (charactersToAllow != null && charactersToAllow.contains(character)) { return character; } else if (replacementMap.containsKey(character)) { - return replacementMap.get(character) + (appendToReplacement != null ? appendToReplacement: ""); + return replacementMap.get(character) + (appendToReplacement != null ? appendToReplacement : ""); } else { return character; } - }).reduce( (c1, c2) -> c1 + c2).orElse(null); + }).reduce((c1, c2) -> c1 + c2).orElse(null); if (result != null) return result; throw new RuntimeException("Word '" + name + "' could not be escaped."); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/URLPathUtils.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/URLPathUtils.java index 7bdaac0d04f..eeba04d226f 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/URLPathUtils.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/URLPathUtils.java @@ -85,7 +85,7 @@ public class URLPathUtils { String defaultValue = variable.getDefault(); List enumValues = variable.getEnum() == null ? new ArrayList<>() : variable.getEnum(); if (defaultValue == null && !enumValues.isEmpty()) { - defaultValue = enumValues.get(0); + defaultValue = enumValues.get(0); } else if (defaultValue == null) { defaultValue = ""; } @@ -190,7 +190,7 @@ public class URLPathUtils { /** * Return the first complete URL from the OpenAPI specification * - * @param openAPI current OpenAPI specification + * @param openAPI current OpenAPI specification * @param userDefinedVariables User overrides for server variable templating * @return host */ diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/OpenApiSchemaValidations.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/OpenApiSchemaValidations.java index 7b725456f40..1c2a68ef4e0 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/OpenApiSchemaValidations.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/OpenApiSchemaValidations.java @@ -1,17 +1,12 @@ package org.openapitools.codegen.validations.oas; import io.swagger.v3.oas.models.media.Schema; - import org.openapitools.codegen.utils.ModelUtils; import org.openapitools.codegen.utils.SemVer; import org.openapitools.codegen.validation.GenericValidator; import org.openapitools.codegen.validation.ValidationRule; -import java.util.ArrayList; -import java.util.Locale; -import java.util.Set; -import java.util.HashSet; -import java.util.Arrays; +import java.util.*; /** * A standalone instance for evaluating rules and recommendations related to OAS {@link Schema} @@ -106,8 +101,8 @@ class OpenApiSchemaValidations extends GenericValidator { name = schema.getTitle(); } result.setDetails(String.format(Locale.ROOT, - "Schema '%s' uses a 'null' type, which is specified in OAS 3.1 and above, but OAS document is version %s", - name, schemaWrapper.getOpenAPI().getOpenapi())); + "Schema '%s' uses a 'null' type, which is specified in OAS 3.1 and above, but OAS document is version %s", + name, schemaWrapper.getOpenAPI().getOpenapi())); return result; } } @@ -136,8 +131,8 @@ class OpenApiSchemaValidations extends GenericValidator { name = schema.getTitle(); } result.setDetails(String.format(Locale.ROOT, - "OAS document is version '%s'. Schema '%s' uses 'nullable' attribute, which has been deprecated in OAS 3.1.", - schemaWrapper.getOpenAPI().getOpenapi(), name)); + "OAS document is version '%s'. Schema '%s' uses 'nullable' attribute, which has been deprecated in OAS 3.1.", + schemaWrapper.getOpenAPI().getOpenapi(), name)); return result; } } @@ -147,7 +142,7 @@ class OpenApiSchemaValidations extends GenericValidator { // The set of valid OAS values for the 'type' attribute. private static Set validTypes = new HashSet( - Arrays.asList("null", "boolean", "object", "array", "number", "string", "integer")); + Arrays.asList("null", "boolean", "object", "array", "number", "string", "integer")); /** * Validate the OAS document uses supported values for the 'type' attribute. @@ -167,8 +162,8 @@ class OpenApiSchemaValidations extends GenericValidator { name = schema.getTitle(); } result.setDetails(String.format(Locale.ROOT, - "Schema '%s' uses the '%s' type, which is not a valid type.", - name, schema.getType())); + "Schema '%s' uses the '%s' type, which is not a valid type.", + name, schema.getType())); return result; } return result; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/OperationWrapper.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/OperationWrapper.java index ab42a52542a..cd55d689d39 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/OperationWrapper.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/OperationWrapper.java @@ -1,8 +1,8 @@ package org.openapitools.codegen.validations.oas; +import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.Operation; import io.swagger.v3.oas.models.PathItem; -import io.swagger.v3.oas.models.OpenAPI; import lombok.Getter; /** @@ -13,14 +13,14 @@ public class OperationWrapper { OpenAPI specification; /** * -- GETTER -- - * Gets the operation associated with the http method + * Gets the operation associated with the http method * * @return An operation instance */ @Getter private Operation operation; /** * -- GETTER -- - * Gets the http method associated with the operation + * Gets the http method associated with the operation * * @return The http method */ @@ -29,7 +29,7 @@ public class OperationWrapper { /** * Constructs a new instance of {@link OperationWrapper} * - * @param operation The operation instances to wrap + * @param operation The operation instances to wrap * @param httpMethod The http method to wrap */ OperationWrapper(OpenAPI specification, Operation operation, PathItem.HttpMethod httpMethod) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/ParameterWrapper.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/ParameterWrapper.java index ab77acd7f65..c617ddeef86 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/ParameterWrapper.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/ParameterWrapper.java @@ -1,7 +1,7 @@ package org.openapitools.codegen.validations.oas; -import io.swagger.v3.oas.models.parameters.Parameter; import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.parameters.Parameter; import lombok.Getter; /** @@ -11,7 +11,7 @@ public class ParameterWrapper { OpenAPI specification; /** * -- GETTER -- - * Return the OAS parameter + * Return the OAS parameter * * @return the OAS parameter */ @@ -21,7 +21,7 @@ public class ParameterWrapper { * Constructs a new instance of {@link ParameterWrapper} * * @param specification The OAS specification - * @param parameter The OAS parameter + * @param parameter The OAS parameter */ ParameterWrapper(OpenAPI specification, Parameter parameter) { this.specification = specification; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/RuleConfiguration.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/RuleConfiguration.java index 247eabad547..6c7f41b9904 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/RuleConfiguration.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/RuleConfiguration.java @@ -6,141 +6,135 @@ import lombok.Setter; /** * Allows for configuration of validation rules which will be applied to a specification. */ -@Getter @Setter +@Getter +@Setter @SuppressWarnings({"WeakerAccess", "unused"}) public class RuleConfiguration { private static String propertyPrefix = "openapi.generator.rule"; /** * -- GETTER -- - * Get whether recommendations are enabled. - *

    - * The 'type' attribute must be one of 'null', 'boolean', 'object', 'array', 'number', 'string', or 'integer' + * Get whether recommendations are enabled. + *

    + * The 'type' attribute must be one of 'null', 'boolean', 'object', 'array', 'number', 'string', or 'integer' * * @return true if enabled, false if disabled * -- SETTER -- - * Enable or Disable recommendations. Recommendations are either informational or warning level type validations - * which are raised to communicate issues to the user which they may not be aware of, or for which support in the - * tooling/spec may not be clearly defined. - * + * Enable or Disable recommendations. Recommendations are either informational or warning level type validations + * which are raised to communicate issues to the user which they may not be aware of, or for which support in the + * tooling/spec may not be clearly defined. * @param enableRecommendations true to enable, false to disable */ private boolean enableRecommendations = defaultedBoolean(propertyPrefix + ".recommendations", true); /** * -- GETTER -- - * Gets whether we will raise awareness that header parameters with underscore may be ignored in Apache or Nginx by default. - * For more details, see https://stackoverflow.com/a/22856867/151445. + * Gets whether we will raise awareness that header parameters with underscore may be ignored in Apache or Nginx by default. + * For more details, see https://stackoverflow.com/a/22856867/151445. * * @return true if enabled, false if disabled * -- SETTER -- - * Enable or Disable the recommendation check for Apache/Nginx potentially ignoring header with underscore by default. - *

    - * For more details, see - * + * Enable or Disable the recommendation check for Apache/Nginx potentially ignoring header with underscore by default. + *

    + * For more details, see * @param enableApacheNginxUnderscoreRecommendation true to enable, false to disable */ private boolean enableApacheNginxUnderscoreRecommendation = defaultedBoolean(propertyPrefix + ".apache-nginx-underscore", true); /** * -- GETTER -- - * Gets whether the recommendation check for oneOf with sibling properties exists. - *

    - * JSON Schema defines oneOf as a validation property which can be applied to any schema. - *

    - * OpenAPI Specification is a variant of JSON Schema for which oneOf is defined as: - * "Inline or referenced schema MUST be of a Schema Object and not a standard JSON Schema." - *

    - * Where the only examples of oneOf in OpenAPI Specification are used to define either/or type structures rather than validations. - * Because of this ambiguity in the spec about what is non-standard about oneOf support, we'll warn as a recommendation that - * properties on the schema defining oneOf relationships may not be intentional in the OpenAPI Specification. + * Gets whether the recommendation check for oneOf with sibling properties exists. + *

    + * JSON Schema defines oneOf as a validation property which can be applied to any schema. + *

    + * OpenAPI Specification is a variant of JSON Schema for which oneOf is defined as: + * "Inline or referenced schema MUST be of a Schema Object and not a standard JSON Schema." + *

    + * Where the only examples of oneOf in OpenAPI Specification are used to define either/or type structures rather than validations. + * Because of this ambiguity in the spec about what is non-standard about oneOf support, we'll warn as a recommendation that + * properties on the schema defining oneOf relationships may not be intentional in the OpenAPI Specification. * * @return true if enabled, false if disabled * -- SETTER -- - * Enable or Disable the recommendation check for schemas containing properties and oneOf definitions. - *

    - * For more details, see - * + * Enable or Disable the recommendation check for schemas containing properties and oneOf definitions. + *

    + * For more details, see * @param enableOneOfWithPropertiesRecommendation true to enable, false to disable */ private boolean enableOneOfWithPropertiesRecommendation = defaultedBoolean(propertyPrefix + ".oneof-properties-ambiguity", true); /** * -- GETTER -- - * Gets whether the recommendation to check for unused schemas is enabled. - *

    - * While the tooling may or may not support generation of models representing unused schemas, we take the stance that - * a schema which is defined but not referenced in an operation or by some schema bound to an operation may be a good - * indicator of a programming error. We surface this information to the user in case the orphaned schema(s) are not - * intentional. + * Gets whether the recommendation to check for unused schemas is enabled. + *

    + * While the tooling may or may not support generation of models representing unused schemas, we take the stance that + * a schema which is defined but not referenced in an operation or by some schema bound to an operation may be a good + * indicator of a programming error. We surface this information to the user in case the orphaned schema(s) are not + * intentional. * * @return true if enabled, false if disabled * -- SETTER -- - * Enable or Disable the recommendation check for unused schemas. - *

    - * For more details, see - * + * Enable or Disable the recommendation check for unused schemas. + *

    + * For more details, see * @param enableUnusedSchemasRecommendation true to enable, false to disable */ private boolean enableUnusedSchemasRecommendation = defaultedBoolean(propertyPrefix + ".unused-schemas", true); /** * -- GETTER -- - * Gets whether the recommendation check for schemas containing type definitions. - *

    - * In OpenAPI 3.0.x, the "type" attribute must be a string value. - * In OpenAPI 3.1, the type attribute may be: - * A string value - * The 'null' value - * An array containing primitive types and the 'null' value. + * Gets whether the recommendation check for schemas containing type definitions. + *

    + * In OpenAPI 3.0.x, the "type" attribute must be a string value. + * In OpenAPI 3.1, the type attribute may be: + * A string value + * The 'null' value + * An array containing primitive types and the 'null' value. * * @return true if enabled, false if disabled * -- SETTER -- - * Enable or Disable the recommendation check for schemas containing type definitions, specifically - * for changes between OpenAPI 3.0.x and 3.1. - *

    - * For more details, see - * + * Enable or Disable the recommendation check for schemas containing type definitions, specifically + * for changes between OpenAPI 3.0.x and 3.1. + *

    + * For more details, see * @param enableSchemaTypeRecommendation true to enable, false to disable */ private boolean enableSchemaTypeRecommendation = defaultedBoolean(propertyPrefix + ".schema-type", true); /** * -- GETTER -- - * Gets whether the recommendation check for schemas containing the 'nullable' attribute. - *

    - * In OpenAPI 3.0.x, the "nullable" attribute is supported. However, because it is deprecated in 3.1 - * and above, a warning is logged to prepare for OpenAPI 3.1 recommendations. - * In OpenAPI 3.1, the 'nullable' attribute is deprecated. Instead, the OpenAPI specification should - * use the 'null' type. + * Gets whether the recommendation check for schemas containing the 'nullable' attribute. + *

    + * In OpenAPI 3.0.x, the "nullable" attribute is supported. However, because it is deprecated in 3.1 + * and above, a warning is logged to prepare for OpenAPI 3.1 recommendations. + * In OpenAPI 3.1, the 'nullable' attribute is deprecated. Instead, the OpenAPI specification should + * use the 'null' type. * * @return true if enabled, false if disabled * -- SETTER -- - * Enable or Disable the recommendation check for the 'nullable' attribute. - *

    - * For more details, see + * Enable or Disable the recommendation check for the 'nullable' attribute. + *

    + * For more details, see * @param enableNullableAttributeRecommendation true to enable, false to disable */ private boolean enableNullableAttributeRecommendation = defaultedBoolean(propertyPrefix + ".nullable-deprecated", true); /** * -- GETTER -- - * Gets whether the recommendation check for schemas containing invalid values for the 'type' attribute. - *

    + * Gets whether the recommendation check for schemas containing invalid values for the 'type' attribute. + *

    * * @return true if enabled, false if disabled * -- SETTER -- - * Enable or Disable the recommendation check for the 'type' attribute. - *

    - * For more details, see - * + * Enable or Disable the recommendation check for the 'type' attribute. + *

    + * For more details, see * @param enableInvalidTypeRecommendation true to enable, false to disable */ private boolean enableInvalidTypeRecommendation = defaultedBoolean(propertyPrefix + ".invalid-type", true); /** * -- GETTER -- - * Gets whether we will raise awareness a GET or HEAD operation is defined with body. + * Gets whether we will raise awareness a GET or HEAD operation is defined with body. * * @return true if enabled, false if disabled * -- SETTER -- - * Enable or Disable the recommendation check for GET or HEAD operations with bodies. - *

    - * For more details, see - * + * Enable or Disable the recommendation check for GET or HEAD operations with bodies. + *

    + * For more details, see * @param enableApiRequestUriWithBodyRecommendation true to enable, false to disable */ private boolean enableApiRequestUriWithBodyRecommendation = defaultedBoolean(propertyPrefix + ".anti-patterns.uri-unexpected-body", true); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/SchemaWrapper.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/SchemaWrapper.java index 8b95becd6a0..95232cec680 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/SchemaWrapper.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/SchemaWrapper.java @@ -1,7 +1,7 @@ package org.openapitools.codegen.validations.oas; -import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.media.Schema; import lombok.Getter; /** @@ -11,7 +11,7 @@ public class SchemaWrapper { OpenAPI specification; /** * -- GETTER -- - * Return the OAS schema + * Return the OAS schema * * @return the OAS schema */ @@ -21,7 +21,7 @@ public class SchemaWrapper { * Constructs a new instance of {@link SchemaWrapper} * * @param specification The OAS specification - * @param schema The OAS schema + * @param schema The OAS schema */ SchemaWrapper(OpenAPI specification, Schema schema) { this.specification = specification; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/SecuritySchemeWrapper.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/SecuritySchemeWrapper.java index 3f2d7fbbaac..368910ef550 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/SecuritySchemeWrapper.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/validations/oas/SecuritySchemeWrapper.java @@ -11,7 +11,7 @@ public class SecuritySchemeWrapper { OpenAPI specification; /** * -- GETTER -- - * Return the OAS securityScheme + * Return the OAS securityScheme * * @return the OAS securityScheme */ @@ -20,7 +20,7 @@ public class SecuritySchemeWrapper { /** * Constructs a new instance of {@link SecuritySchemeWrapper} * - * @param specification The OAS specification + * @param specification The OAS specification * @param securityScheme The OAS securityScheme */ SecuritySchemeWrapper(OpenAPI specification, SecurityScheme securityScheme) { diff --git a/modules/openapi-generator/src/main/resources/java-helidon/common/Status.java b/modules/openapi-generator/src/main/resources/java-helidon/common/Status.java index 093b44e0139..00915dbc3f5 100644 --- a/modules/openapi-generator/src/main/resources/java-helidon/common/Status.java +++ b/modules/openapi-generator/src/main/resources/java-helidon/common/Status.java @@ -324,7 +324,7 @@ public class Status { * 508 Loop Detected, see * RFC 5842 - Bindings for the Constrained Application Protocol (CoAP). * - * @since 4.0.6 + * @since 4.0.6 */ public static final Status LOOP_DETECTED_508 = new Status(508, "Loop Detected", true); @@ -332,7 +332,7 @@ public class Status { * 510 Not Extended, see * RFC 2774 - An HTTP Extension Framework. * - * @since 4.0.6 + * @since 4.0.6 */ public static final Status NOT_EXTENDED_510 = new Status(510, "Not Extended", true); @@ -464,7 +464,7 @@ public class Status { * Get the response status as string. * * @return the response status string in the form of a partial HTTP response status line, - * i.e. {@code "Status-Code SP Reason-Phrase"}. + * i.e. {@code "Status-Code SP Reason-Phrase"}. */ public String toString() { return stringValue; diff --git a/modules/openapi-generator/src/test/java/com/samskivert/mustache/MustacheEvaluator.java b/modules/openapi-generator/src/test/java/com/samskivert/mustache/MustacheEvaluator.java index 7814da20570..0cf3fae85dc 100644 --- a/modules/openapi-generator/src/test/java/com/samskivert/mustache/MustacheEvaluator.java +++ b/modules/openapi-generator/src/test/java/com/samskivert/mustache/MustacheEvaluator.java @@ -4,8 +4,8 @@ import java.io.StringReader; import java.util.Map; /** -* Evaluate a mustache variable using the same mustache context as MustacheEngineAdapter. -*/ + * Evaluate a mustache variable using the same mustache context as MustacheEngineAdapter. + */ public class MustacheEvaluator { private final Template template; private final Template.Context context; diff --git a/modules/openapi-generator/src/test/java/com/samskivert/mustache/MustacheTemplateContext.java b/modules/openapi-generator/src/test/java/com/samskivert/mustache/MustacheTemplateContext.java index df78c5b521e..896d5fc1fc1 100644 --- a/modules/openapi-generator/src/test/java/com/samskivert/mustache/MustacheTemplateContext.java +++ b/modules/openapi-generator/src/test/java/com/samskivert/mustache/MustacheTemplateContext.java @@ -8,6 +8,7 @@ class MustacheTemplateContext extends Template.Context { MustacheTemplateContext(Object parent) { super(parent, null, 0, false, false); } + public MustacheTemplateContext(Map additionalProperties) { super(additionalProperties, new MustacheTemplateContext(additionalProperties.get(CodegenConstants.MUSTACHE_PARENT_CONTEXT)), 0, false, false); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/AbstractIntegrationTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/AbstractIntegrationTest.java index 0fcc7650f22..268694ce0cb 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/AbstractIntegrationTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/AbstractIntegrationTest.java @@ -17,15 +17,15 @@ package org.openapitools.codegen; -import java.nio.file.Files; -import java.util.stream.Collectors; import io.swagger.v3.oas.models.OpenAPI; import org.openapitools.codegen.testutils.IntegrationTestPathsConfig; import org.testng.annotations.Test; import java.io.IOException; +import java.nio.file.Files; import java.util.HashMap; import java.util.Map; +import java.util.stream.Collectors; import static org.openapitools.codegen.testutils.AssertFile.assertPathEqualsRecursively; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/AbstractOptionsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/AbstractOptionsTest.java index 4e3b98f69a2..2c8975fab34 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/AbstractOptionsTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/AbstractOptionsTest.java @@ -64,7 +64,7 @@ public abstract class AbstractOptionsTest { final Set undocumented = new HashSet(testOptions); undocumented.removeAll(cliOptions); if (!undocumented.isEmpty()) { - Assert.fail(String.format(Locale.ROOT,"These options weren't documented: %s. Are you expecting base options and calling cliOptions.clear()?", StringUtils.join(undocumented, ", "))); + Assert.fail(String.format(Locale.ROOT, "These options weren't documented: %s. Are you expecting base options and calling cliOptions.clear()?", StringUtils.join(undocumented, ", "))); } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/AllGeneratorsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/AllGeneratorsTest.java index 18f0de29646..bc35cb97c02 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/AllGeneratorsTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/AllGeneratorsTest.java @@ -31,10 +31,11 @@ import static org.assertj.core.api.Assertions.assertThat; public class AllGeneratorsTest { - @DataProvider(name = "generators") Iterator generators() { + @DataProvider(name = "generators") + Iterator generators() { return CodegenConfigLoader.getAll().iterator(); } - + @Test(dataProvider = "generators") public void testEachWithPetstore(CodegenConfig codegenConfig) { try { @@ -47,17 +48,17 @@ public class AllGeneratorsTest { .setOutputDir(output.getAbsolutePath().replace("\\", "/")); List files = new DefaultGenerator().opts(configurator.toClientOptInput()).generate(); - + // Main intention of this test is to check that nothing crashes. Besides, we check here that // at least 1 file is generated, besides the common ".openapi-generator-ignore", "FILES" and "VERSION" files. assertThat(files).hasSizeGreaterThanOrEqualTo(4); } catch (Exception e) { throw new RuntimeException( - String.format( - Locale.ROOT, - "Generator %s threw an exception (generating %s): %s", - codegenConfig.getName(), codegenConfig.getInputSpec(), e.getMessage() - ), e + String.format( + Locale.ROOT, + "Generator %s threw an exception (generating %s): %s", + codegenConfig.getName(), codegenConfig.getInputSpec(), e.getMessage() + ), e ); } } @@ -65,45 +66,49 @@ public class AllGeneratorsTest { /** * Regression test for #18810 */ - @Test(dataProvider = "generators") void noDuplicateCliOptions(CodegenConfig codegenConfig) { + @Test(dataProvider = "generators") + void noDuplicateCliOptions(CodegenConfig codegenConfig) { final List cliOptionKeys = codegenConfig.cliOptions() - .stream().map(CliOption::getOpt).collect(Collectors.toList()); - + .stream().map(CliOption::getOpt).collect(Collectors.toList()); + assertThat(cliOptionKeys).allSatisfy( - opt -> assertThat(cliOptionKeys) - .as("Generator '%s' defines CliOption '%s' more than once!", codegenConfig.getName(), opt) - .containsOnlyOnce(opt) + opt -> assertThat(cliOptionKeys) + .as("Generator '%s' defines CliOption '%s' more than once!", codegenConfig.getName(), opt) + .containsOnlyOnce(opt) ); } - - @Test(dataProvider = "generators") void noDuplicateSupportedLibraries(CodegenConfig codegenConfig) { + + @Test(dataProvider = "generators") + void noDuplicateSupportedLibraries(CodegenConfig codegenConfig) { final var supportedLibraries = codegenConfig.supportedLibraries().keySet(); assertThat(supportedLibraries).allSatisfy( - lib -> assertThat(supportedLibraries) - .as("Generator '%s' defines '%s' more than once in supportedLibraries!", codegenConfig.getName(), lib) - .containsOnlyOnce(lib) + lib -> assertThat(supportedLibraries) + .as("Generator '%s' defines '%s' more than once in supportedLibraries!", codegenConfig.getName(), lib) + .containsOnlyOnce(lib) ); } - - @Test(dataProvider = "generators") void noDuplicateSupportingFiles(CodegenConfig codegenConfig) { + + @Test(dataProvider = "generators") + void noDuplicateSupportingFiles(CodegenConfig codegenConfig) { final List supportingFiles = codegenConfig.supportingFiles() - .stream().map(SupportingFile::toString).collect(Collectors.toList()); + .stream().map(SupportingFile::toString).collect(Collectors.toList()); assertThat(supportingFiles).allSatisfy( - file -> assertThat(supportingFiles) - .as("Generator '%s' defines '%s' more than once in supportingFiles!", codegenConfig.getName(), file) - .containsOnlyOnce(file) + file -> assertThat(supportingFiles) + .as("Generator '%s' defines '%s' more than once in supportingFiles!", codegenConfig.getName(), file) + .containsOnlyOnce(file) ); } - - @Test(dataProvider = "generators") void noDuplicateSupportedVendorExtensions(CodegenConfig codegenConfig) { + + @Test(dataProvider = "generators") + void noDuplicateSupportedVendorExtensions(CodegenConfig codegenConfig) { final List supportedVendorExtensions = codegenConfig.getSupportedVendorExtensions(); assertThat(supportedVendorExtensions).allSatisfy( - extension -> assertThat(supportedVendorExtensions) - .as("Generator '%s' defines '%s' more than once in supportedVendorExtensions!", codegenConfig.getName(), extension) - .containsOnlyOnce(extension) + extension -> assertThat(supportedVendorExtensions) + .as("Generator '%s' defines '%s' more than once in supportedVendorExtensions!", codegenConfig.getName(), extension) + .containsOnlyOnce(extension) ); } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/ArchUnitRulesTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/ArchUnitRulesTest.java index a4ca489e6b8..5c4b238c8ef 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/ArchUnitRulesTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/ArchUnitRulesTest.java @@ -6,13 +6,14 @@ import com.tngtech.archunit.core.importer.ClassFileImporter; import com.tngtech.archunit.lang.ArchRule; import org.junit.jupiter.api.Test; -import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.*; +import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes; +import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.fields; import static com.tngtech.archunit.library.GeneralCodingRules.NO_CLASSES_SHOULD_ACCESS_STANDARD_STREAMS; import static com.tngtech.archunit.library.GeneralCodingRules.NO_CLASSES_SHOULD_USE_JAVA_UTIL_LOGGING; public class ArchUnitRulesTest { private static final JavaClasses CLASSES = new ClassFileImporter() - .importPackages("org.openapitools.codegen.languages"); + .importPackages("org.openapitools.codegen.languages"); @Test public void testLoggersAreNotPublicFinalAndNotStatic() { @@ -40,20 +41,20 @@ public class ArchUnitRulesTest { */ public static final ArchRule LOGGERS_SHOULD_BE_NOT_PUBLIC_NOT_STATIC_AND_FINAL = fields() - .that() - .haveRawType(org.slf4j.Logger.class) - .should().notBePublic() - .andShould().notBeStatic() - .andShould().beFinal() - .because("Code generators are most often used once per program lifetime, " + - "so making them all static will cause higher memory consumption. " + - "See PR #8799"); + .that() + .haveRawType(org.slf4j.Logger.class) + .should().notBePublic() + .andShould().notBeStatic() + .andShould().beFinal() + .because("Code generators are most often used once per program lifetime, " + + "so making them all static will cause higher memory consumption. " + + "See PR #8799"); public static final ArchRule ABSTRACT_CLASS_MUST_BE_ABSTRACT = classes() - .that() - .haveSimpleNameContaining("Abstract").or().haveSimpleNameContaining("abstract") - .should() - .haveModifier(JavaModifier.ABSTRACT); + .that() + .haveSimpleNameContaining("Abstract").or().haveSimpleNameContaining("abstract") + .should() + .haveModifier(JavaModifier.ABSTRACT); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java index 0493d3507b3..c01501af6ac 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java @@ -37,6 +37,7 @@ import io.swagger.v3.oas.models.responses.ApiResponse; import io.swagger.v3.oas.models.responses.ApiResponses; import io.swagger.v3.oas.models.security.SecurityScheme; import io.swagger.v3.parser.core.models.ParseOptions; +import org.junit.jupiter.api.Assertions; import org.openapitools.codegen.config.CodegenConfigurator; import org.openapitools.codegen.config.GlobalSettings; import org.openapitools.codegen.languages.SpringCodegen; @@ -49,19 +50,13 @@ import org.slf4j.LoggerFactory; import org.testng.Assert; import org.testng.annotations.Ignore; import org.testng.annotations.Test; -import org.junit.jupiter.api.Assertions; - import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.util.*; +import java.util.concurrent.*; import java.util.stream.Collectors; -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.Future; import static org.assertj.core.api.Assertions.assertThat; import static org.testng.Assert.*; @@ -733,7 +728,7 @@ public class DefaultCodegenTest { Future call1 = executor.submit(new Callable() { @Override public Boolean call() throws Exception { - return codegen.executePostProcessor(new String[] { "binary_does_not_exist" }); + return codegen.executePostProcessor(new String[]{"binary_does_not_exist"}); } }); @@ -742,9 +737,9 @@ public class DefaultCodegenTest { public Boolean call() throws Exception { String os = System.getProperty("os.name"); String postProcessor = os.contains("Windows") - ? "cmd.exe /c echo hello" - : "echo Hello"; - return codegen.executePostProcessor(new String[] { postProcessor }); + ? "cmd.exe /c echo hello" + : "echo Hello"; + return codegen.executePostProcessor(new String[]{postProcessor}); } }); @@ -753,8 +748,8 @@ public class DefaultCodegenTest { public Boolean call() throws Exception { String os = System.getProperty("os.name"); String[] postProcessor = os.contains("Windows") - ? new String[] { "cmd.exe", "/c", "echo", "hello" } - : new String[] { "echo", "Hello" }; + ? new String[]{"cmd.exe", "/c", "echo", "hello"} + : new String[]{"echo", "Hello"}; return codegen.executePostProcessor(postProcessor); } }); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultGeneratorTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultGeneratorTest.java index 750a78cacfb..273ea24217b 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultGeneratorTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultGeneratorTest.java @@ -670,7 +670,7 @@ public class DefaultGeneratorTest { Assert.assertEquals(servers.get(1).url, "http://trailingshlash.io:80/v1"); Assert.assertEquals(servers.get(2).url, "http://notrailingslash.io:80/v2"); } - + @Test public void testHandlesRelativeUrlsInServers() { OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/issue_10056.yaml"); @@ -714,8 +714,8 @@ public class DefaultGeneratorTest { .setInputSpec("src/test/resources/3_0/petstore.yaml") .setPackageName("io.something") .setTemplateDir(templates.toAbsolutePath().toString()) - .addAdditionalProperty("files", "src/test/resources/sampleConfig.json:\n\t folder: supportingjson "+ - "\n\t destinationFilename: supportingconfig.json \n\t templateType: SupportingFiles") + .addAdditionalProperty("files", "src/test/resources/sampleConfig.json:\n\t folder: supportingjson " + + "\n\t destinationFilename: supportingconfig.json \n\t templateType: SupportingFiles") .setSkipOverwrite(false) .setOutputDir(target.toAbsolutePath().toString()); @@ -747,7 +747,7 @@ public class DefaultGeneratorTest { // Generated file should contain our custom packageName TestUtils.assertFileContains(apiClient.toPath(), "from io.something import rest" - ); + ); } finally { output.deleteOnExit(); templates.toFile().deleteOnExit(); @@ -775,7 +775,7 @@ public class DefaultGeneratorTest { // all fine, we have passed } - + private DefaultGenerator generatorGenerateRecursiveDependentModelsBackwardCompatibility(String recursively) throws IOException { DefaultGenerator generator = new DefaultGenerator(false); generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); @@ -800,7 +800,7 @@ public class DefaultGeneratorTest { private ClientOptInput createOptInputIssue(String issueNumber, Path target) { final CodegenConfigurator configurator = new CodegenConfigurator() .setGeneratorName("spring") - .setInputSpec("src/test/resources/bugs/issue_"+issueNumber+".json") + .setInputSpec("src/test/resources/bugs/issue_" + issueNumber + ".json") .setOutputDir(target.toAbsolutePath().toString()); return configurator.toClientOptInput(); } @@ -815,12 +815,12 @@ public class DefaultGeneratorTest { DefaultGenerator generator = generatorGenerateRecursiveDependentModelsBackwardCompatibility("false"); GlobalSettings.setProperty("models", "RQ1,RS1"); ClientOptInput clientOptInput = createOptInputIssue18444(target); - List files = generator.opts(clientOptInput ).generate(); + List files = generator.opts(clientOptInput).generate(); Assert.assertEquals(files.size(), 17); // Check expected generated files // api sanity check - String apiJavaFileName = "src/main/java/org/openapitools/api/ApiApi.java"; + String apiJavaFileName = "src/main/java/org/openapitools/api/ApiApi.java"; TestUtils.ensureContainsFile(files, output, apiJavaFileName); Assert.assertTrue(new File(output, apiJavaFileName).exists()); @@ -830,7 +830,7 @@ public class DefaultGeneratorTest { Assert.assertTrue(new File(output, rq1FileName).exists()); String rs1FileName = "src/main/java/org/openapitools/model/RS1.java"; - TestUtils.ensureContainsFile(files, output, rs1FileName ); + TestUtils.ensureContainsFile(files, output, rs1FileName); Assert.assertTrue(new File(output, rs1FileName).exists()); // Check not generated cause backwards compatibility files @@ -870,12 +870,12 @@ public class DefaultGeneratorTest { DefaultGenerator generator = generatorGenerateRecursiveDependentModelsBackwardCompatibility("true"); GlobalSettings.setProperty("models", "RQ1,RS1"); ClientOptInput clientOptInput = createOptInputIssue18444(target); - List files = generator.opts(clientOptInput ).generate(); + List files = generator.opts(clientOptInput).generate(); Assert.assertEquals(files.size(), 21); // Check expected generated files // api sanity check - String apiJavaFileName = "src/main/java/org/openapitools/api/ApiApi.java"; + String apiJavaFileName = "src/main/java/org/openapitools/api/ApiApi.java"; TestUtils.ensureContainsFile(files, output, apiJavaFileName); Assert.assertTrue(new File(output, apiJavaFileName).exists()); @@ -885,7 +885,7 @@ public class DefaultGeneratorTest { Assert.assertTrue(new File(output, rq1FileName).exists()); String rs1FileName = "src/main/java/org/openapitools/model/RS1.java"; - TestUtils.ensureContainsFile(files, output, rs1FileName ); + TestUtils.ensureContainsFile(files, output, rs1FileName); Assert.assertTrue(new File(output, rs1FileName).exists()); // Check generated cause RQ1 and RS1 dependents of FT1,FT2,FT3 files @@ -925,7 +925,7 @@ public class DefaultGeneratorTest { DefaultGenerator generator = generatorGenerateRecursiveDependentModelsBackwardCompatibility("true"); GlobalSettings.setProperty("models", "RQ1,RS1"); ClientOptInput clientOptInput = createOptInputIssue19220(target); - List files = generator.opts(clientOptInput ).generate(); + List files = generator.opts(clientOptInput).generate(); Assert.assertEquals(files.size(), 21); // Check expected generated files @@ -940,7 +940,7 @@ public class DefaultGeneratorTest { Assert.assertTrue(new File(output, rq1FileName).exists()); String rs1FileName = "src/main/java/org/openapitools/model/RS1.java"; - TestUtils.ensureContainsFile(files, output, rs1FileName ); + TestUtils.ensureContainsFile(files, output, rs1FileName); Assert.assertTrue(new File(output, rs1FileName).exists()); // Check generated cause RQ1 and RS1 dependents of FT1,FT2,FT3 files diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DryRunTemplateManagerTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DryRunTemplateManagerTest.java index 489b5cad901..fbab7b5f36c 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DryRunTemplateManagerTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DryRunTemplateManagerTest.java @@ -9,7 +9,7 @@ import java.nio.file.Path; import java.util.HashMap; import java.util.Map; -import static org.testng.Assert.*; +import static org.testng.Assert.assertEquals; public class DryRunTemplateManagerTest { @Test diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/ExampleGeneratorTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/ExampleGeneratorTest.java index 13b401ce2d4..53f5562a4a7 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/ExampleGeneratorTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/ExampleGeneratorTest.java @@ -106,14 +106,14 @@ public class ExampleGeneratorTest { List> examples = exampleGenerator.generateFromResponseSchema( "200", openAPI - .getPaths() - .get("/generate_from_response_schema_with_array_of_model") - .getGet() - .getResponses() - .get("200") - .getContent() - .get("application/json") - .getSchema(), + .getPaths() + .get("/generate_from_response_schema_with_array_of_model") + .getGet() + .getResponses() + .get("200") + .getContent() + .get("application/json") + .getSchema(), mediaTypeKeys ); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/InlineModelResolverTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/InlineModelResolverTest.java index 507d272c8e1..0670942f8fd 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/InlineModelResolverTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/InlineModelResolverTest.java @@ -33,8 +33,8 @@ import org.testng.Assert; import org.testng.annotations.Test; import java.util.HashMap; -import java.util.Map; import java.util.List; +import java.util.Map; import static org.testng.AssertJUnit.*; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/OpenAPINormalizerTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/OpenAPINormalizerTest.java index 8a5e80d40eb..9569d6687c5 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/OpenAPINormalizerTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/OpenAPINormalizerTest.java @@ -16,16 +16,17 @@ package org.openapitools.codegen; -import io.swagger.annotations.Api; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.PathItem; import io.swagger.v3.oas.models.media.*; - import io.swagger.v3.oas.models.responses.ApiResponse; import org.openapitools.codegen.utils.ModelUtils; import org.testng.annotations.Test; -import java.util.*; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; import static org.testng.Assert.*; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/TemplateManagerTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/TemplateManagerTest.java index 08b178f80f8..33ad901a8be 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/TemplateManagerTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/TemplateManagerTest.java @@ -31,7 +31,7 @@ public class TemplateManagerTest { */ @Override public String getFullTemplatePath(String relativeTemplateFile) { - return Paths.get("templating","templates", relativeTemplateFile).toString(); + return Paths.get("templating", "templates", relativeTemplateFile).toString(); } } @@ -40,50 +40,50 @@ public class TemplateManagerTest { private final TemplatePathLocator locator = new ResourceTemplateLoader(); @Test - public void loadTemplateContents(){ - TemplateManagerOptions opts = new TemplateManagerOptions(false,false); - TemplateManager manager = new TemplateManager(opts, mustacheEngineAdapter, new TemplatePathLocator[]{ locator }); + public void loadTemplateContents() { + TemplateManagerOptions opts = new TemplateManagerOptions(false, false); + TemplateManager manager = new TemplateManager(opts, mustacheEngineAdapter, new TemplatePathLocator[]{locator}); assertEquals(manager.getFullTemplateContents("simple.mustache"), "{{name}} and {{age}}"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "Template location must be constrained to template directory\\.") - public void loadTemplateContentsThrowsForEscapingTemplates(){ - TemplateManagerOptions opts = new TemplateManagerOptions(false,false); - TemplateManager manager = new TemplateManager(opts, mustacheEngineAdapter, new TemplatePathLocator[]{ locator }); + public void loadTemplateContentsThrowsForEscapingTemplates() { + TemplateManagerOptions opts = new TemplateManagerOptions(false, false); + TemplateManager manager = new TemplateManager(opts, mustacheEngineAdapter, new TemplatePathLocator[]{locator}); manager.getFullTemplateContents("../simple.mustache"); fail("Expected an exception that did not occur"); } @Test - public void readTemplate(){ - TemplateManagerOptions opts = new TemplateManagerOptions(false,false); - TemplateManager manager = new TemplateManager(opts, mustacheEngineAdapter, new TemplatePathLocator[]{ locator }); + public void readTemplate() { + TemplateManagerOptions opts = new TemplateManagerOptions(false, false); + TemplateManager manager = new TemplateManager(opts, mustacheEngineAdapter, new TemplatePathLocator[]{locator}); assertEquals(manager.readTemplate("templating/templates/simple.mustache"), "{{name}} and {{age}}"); } @Test - public void loadTemplatePath(){ - TemplateManagerOptions opts = new TemplateManagerOptions(false,false); - TemplateManager manager = new TemplateManager(opts, mustacheEngineAdapter, new TemplatePathLocator[]{ locator }); + public void loadTemplatePath() { + TemplateManagerOptions opts = new TemplateManagerOptions(false, false); + TemplateManager manager = new TemplateManager(opts, mustacheEngineAdapter, new TemplatePathLocator[]{locator}); assertEquals(manager.getFullTemplatePath("simple.mustache"), Paths.get("templating/templates/simple.mustache")); } @Test - public void getTemplateReader(){ - TemplateManagerOptions opts = new TemplateManagerOptions(false,false); - TemplateManager manager = new TemplateManager(opts, mustacheEngineAdapter, new TemplatePathLocator[]{ locator }); + public void getTemplateReader() { + TemplateManagerOptions opts = new TemplateManagerOptions(false, false); + TemplateManager manager = new TemplateManager(opts, mustacheEngineAdapter, new TemplatePathLocator[]{locator}); assertTrue(manager.getTemplateReader("templating/templates/simple.mustache") instanceof InputStreamReader); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "Template location must be constrained to template directory\\.") - public void getTemplateReaderThrowsForEscapingTemplates(){ - TemplateManagerOptions opts = new TemplateManagerOptions(false,false); - TemplateManager manager = new TemplateManager(opts, mustacheEngineAdapter, new TemplatePathLocator[]{ locator }); + public void getTemplateReaderThrowsForEscapingTemplates() { + TemplateManagerOptions opts = new TemplateManagerOptions(false, false); + TemplateManager manager = new TemplateManager(opts, mustacheEngineAdapter, new TemplatePathLocator[]{locator}); manager.getTemplateReader("../templating/templates/simple.mustache"); fail("Expected an exception that did not occur"); @@ -91,10 +91,10 @@ public class TemplateManagerTest { @Test public void writeViaMustacheAdapter() throws IOException { - TemplateManagerOptions opts = new TemplateManagerOptions(false,false); - TemplateManager manager = new TemplateManager(opts, mustacheEngineAdapter, new TemplatePathLocator[]{ locator }); + TemplateManagerOptions opts = new TemplateManagerOptions(false, false); + TemplateManager manager = new TemplateManager(opts, mustacheEngineAdapter, new TemplatePathLocator[]{locator}); Map data = new HashMap<>(); - data.put("name","Teddy"); + data.put("name", "Teddy"); data.put("age", "3"); Path target = Files.createTempDirectory("test-templatemanager"); @@ -111,8 +111,8 @@ public class TemplateManagerTest { @Test(enabled = false) public void writeUsingMustacheAdapterSkipsNonMustache() throws IOException { - TemplateManagerOptions opts = new TemplateManagerOptions(false,false); - TemplateManager manager = new TemplateManager(opts, mustacheEngineAdapter, new TemplatePathLocator[]{ locator }); + TemplateManagerOptions opts = new TemplateManagerOptions(false, false); + TemplateManager manager = new TemplateManager(opts, mustacheEngineAdapter, new TemplatePathLocator[]{locator}); Map data = new HashMap<>(); data.put("this", "this"); data.put("that", "1234"); @@ -133,10 +133,10 @@ public class TemplateManagerTest { @Test public void skipOverwriteViaOption() throws IOException { - TemplateManagerOptions opts = new TemplateManagerOptions(false,true); - TemplateManager manager = new TemplateManager(opts, mustacheEngineAdapter, new TemplatePathLocator[]{ locator }); + TemplateManagerOptions opts = new TemplateManagerOptions(false, true); + TemplateManager manager = new TemplateManager(opts, mustacheEngineAdapter, new TemplatePathLocator[]{locator}); Map data = new HashMap<>(); - data.put("name","Teddy"); + data.put("name", "Teddy"); data.put("age", "3"); Path target = Files.createTempDirectory("test-templatemanager"); @@ -154,10 +154,10 @@ public class TemplateManagerTest { @Test public void minimalUpdateOnlyWritesChangedContents() throws IOException { - TemplateManagerOptions opts = new TemplateManagerOptions(true,false); - TemplateManager manager = new TemplateManager(opts, mustacheEngineAdapter, new TemplatePathLocator[]{ locator }); + TemplateManagerOptions opts = new TemplateManagerOptions(true, false); + TemplateManager manager = new TemplateManager(opts, mustacheEngineAdapter, new TemplatePathLocator[]{locator}); Map data = new HashMap<>(); - data.put("name","Teddy"); + data.put("name", "Teddy"); data.put("age", "3"); Path target = Files.createTempDirectory("test-templatemanager"); @@ -188,10 +188,10 @@ public class TemplateManagerTest { @Test public void overwritesWhenSkipOverwriteFalse() throws IOException { - TemplateManagerOptions opts = new TemplateManagerOptions(false,false); - TemplateManager manager = new TemplateManager(opts, mustacheEngineAdapter, new TemplatePathLocator[]{ locator }); + TemplateManagerOptions opts = new TemplateManagerOptions(false, false); + TemplateManager manager = new TemplateManager(opts, mustacheEngineAdapter, new TemplatePathLocator[]{locator}); Map data = new HashMap<>(); - data.put("name","Teddy"); + data.put("name", "Teddy"); data.put("age", "3"); Path target = Files.createTempDirectory("test-templatemanager"); @@ -209,8 +209,8 @@ public class TemplateManagerTest { @Test public void writeViaHandlebarsAdapter() throws IOException { - TemplateManagerOptions opts = new TemplateManagerOptions(false,false); - TemplateManager manager = new TemplateManager(opts, handlebarsEngineAdapter, new TemplatePathLocator[]{ locator }); + TemplateManagerOptions opts = new TemplateManagerOptions(false, false); + TemplateManager manager = new TemplateManager(opts, handlebarsEngineAdapter, new TemplatePathLocator[]{locator}); Map data = new HashMap<>(); data.put("name", "Jack"); data.put("numbers", Arrays.asList(1, 2, 3, 4, 5)); @@ -229,8 +229,8 @@ public class TemplateManagerTest { @Test(enabled = false) public void writeUsingHandlebarsAdapterSkipsNonHandlebars() throws IOException { - TemplateManagerOptions opts = new TemplateManagerOptions(false,false); - TemplateManager manager = new TemplateManager(opts, handlebarsEngineAdapter, new TemplatePathLocator[]{ locator }); + TemplateManagerOptions opts = new TemplateManagerOptions(false, false); + TemplateManager manager = new TemplateManager(opts, handlebarsEngineAdapter, new TemplatePathLocator[]{locator}); Map data = new HashMap<>(); data.put("this", "this"); data.put("that", "1234"); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/TestUtils.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/TestUtils.java index 72288ac05af..b0c1d32c80d 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/TestUtils.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/TestUtils.java @@ -24,7 +24,10 @@ import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; import static org.testng.Assert.*; @@ -45,7 +48,7 @@ public class TestUtils { /** * Helper method for parsing specs into an intermediary OpenAPI structure for pre-processing. - * + *

    * Use this method only for tests targeting processing helpers such as {@link org.openapitools.codegen.utils.ModelUtils} * or {@link InlineModelResolver}. Using this for testing generators will mean you're not testing the OpenAPI document * in a state the generator will be presented at runtime. @@ -104,10 +107,10 @@ public class TestUtils { } public static void validatePomXmlFiles(final List files) { - if (files == null - || files.isEmpty() - || files.stream().noneMatch(f -> f.getName().equals("pom.xml"))) return; - + if (files == null + || files.isEmpty() + || files.stream().noneMatch(f -> f.getName().equals("pom.xml"))) return; + final XmlMapper mapper = new XmlMapper(); for (File file : files) { if (!"pom.xml".equals(file.getName())) continue; @@ -118,7 +121,8 @@ public class TestUtils { } catch (IOException exception) { throw new RuntimeException(exception); } - }; + } + ; } private static void assertValidPomXml(final JsonNode pom) { @@ -130,16 +134,16 @@ public class TestUtils { } public static void validateJavaSourceFiles(Map fileMap) { - fileMap.forEach( (fileName, fileContents) -> { - if (fileName.endsWith(".java")) { - assertValidJavaSourceCode(fileContents); + fileMap.forEach((fileName, fileContents) -> { + if (fileName.endsWith(".java")) { + assertValidJavaSourceCode(fileContents); + } } - } ); } public static void validateJavaSourceFiles(List files) { - files.forEach( f -> { + files.forEach(f -> { if (f.getName().endsWith(".java")) { String fileContents = ""; try { @@ -214,98 +218,98 @@ public class TestUtils { JavaFileAssert.assertThat(java.nio.file.Paths.get(baseOutputPath + "/EmployeeEntity.java")) .assertTypeAnnotations() - .containsWithName("javax.persistence.Entity") - .containsWithNameAndAttributes("javax.persistence.Table", ImmutableMap.of("name", "\"employees\"")) + .containsWithName("javax.persistence.Entity") + .containsWithNameAndAttributes("javax.persistence.Table", ImmutableMap.of("name", "\"employees\"")) .toType() .assertProperty("assignments") - .assertPropertyAnnotations() - .containsWithNameAndAttributes("javax.persistence.OneToMany", ImmutableMap.of("mappedBy", "\"employee\"")) - .toProperty() + .assertPropertyAnnotations() + .containsWithNameAndAttributes("javax.persistence.OneToMany", ImmutableMap.of("mappedBy", "\"employee\"")) + .toProperty() .toType(); JavaFileAssert.assertThat(java.nio.file.Paths.get(baseOutputPath + "/Employee.java")) .assertTypeAnnotations() - .containsWithName("javax.persistence.MappedSuperclass") + .containsWithName("javax.persistence.MappedSuperclass") .toType() .assertProperty("id") - .assertPropertyAnnotations() - .containsWithName("javax.persistence.Id") - .toProperty() + .assertPropertyAnnotations() + .containsWithName("javax.persistence.Id") + .toProperty() .toType() .assertProperty("email") - .assertPropertyAnnotations() - .containsWithName("org.hibernate.annotations.Formula") - .toProperty() + .assertPropertyAnnotations() + .containsWithName("org.hibernate.annotations.Formula") + .toProperty() .toType() .assertProperty("hasAcceptedTerms") - .assertPropertyAnnotations() - .containsWithName("javax.persistence.Transient") - .toProperty() + .assertPropertyAnnotations() + .containsWithName("javax.persistence.Transient") + .toProperty() .toType(); JavaFileAssert.assertThat(java.nio.file.Paths.get(baseOutputPath + "/SurveyGroupEntity.java")) .assertTypeAnnotations() - .containsWithName("javax.persistence.Entity") - .containsWithNameAndAttributes("javax.persistence.Table", ImmutableMap.of("name", "\"survey_groups\"")) + .containsWithName("javax.persistence.Entity") + .containsWithNameAndAttributes("javax.persistence.Table", ImmutableMap.of("name", "\"survey_groups\"")) .toType() .assertProperty("assignments") - .assertPropertyAnnotations() - .containsWithName("javax.persistence.OneToMany") - .containsWithNameAndAttributes("javax.persistence.JoinColumn", ImmutableMap.of("name", "\"survey_group_id\"")) - .toProperty() + .assertPropertyAnnotations() + .containsWithName("javax.persistence.OneToMany") + .containsWithNameAndAttributes("javax.persistence.JoinColumn", ImmutableMap.of("name", "\"survey_group_id\"")) + .toProperty() .toType() .assertProperty("disabled") - .assertPropertyAnnotations() - .containsWithNameAndAttributes("javax.persistence.Column", ImmutableMap.of("nullable", "false")) - .toProperty() + .assertPropertyAnnotations() + .containsWithNameAndAttributes("javax.persistence.Column", ImmutableMap.of("nullable", "false")) + .toProperty() .toType(); JavaFileAssert.assertThat(java.nio.file.Paths.get(baseOutputPath + "/SurveyGroup.java")) .assertTypeAnnotations() - .containsWithName("javax.persistence.MappedSuperclass") - .containsWithName("javax.persistence.EntityListeners") + .containsWithName("javax.persistence.MappedSuperclass") + .containsWithName("javax.persistence.EntityListeners") .toType() .assertProperty("id") - .assertPropertyAnnotations() - .containsWithName("javax.persistence.Id") - .containsWithNameAndAttributes("javax.persistence.GeneratedValue", ImmutableMap.of("generator", "\"UUID\"")) - .containsWithNameAndAttributes("org.hibernate.annotations.GenericGenerator", ImmutableMap.of("name", "\"UUID\"","strategy", "\"org.hibernate.id.UUIDGenerator\"")) - .containsWithNameAndAttributes("javax.persistence.Column", ImmutableMap.of("name", "\"id\"","updatable", "false","nullable", "false")) - .toProperty() + .assertPropertyAnnotations() + .containsWithName("javax.persistence.Id") + .containsWithNameAndAttributes("javax.persistence.GeneratedValue", ImmutableMap.of("generator", "\"UUID\"")) + .containsWithNameAndAttributes("org.hibernate.annotations.GenericGenerator", ImmutableMap.of("name", "\"UUID\"", "strategy", "\"org.hibernate.id.UUIDGenerator\"")) + .containsWithNameAndAttributes("javax.persistence.Column", ImmutableMap.of("name", "\"id\"", "updatable", "false", "nullable", "false")) + .toProperty() .toType() .assertProperty("createdDate") - .assertPropertyAnnotations() - .containsWithName("org.springframework.data.annotation.CreatedDate") - .toProperty() + .assertPropertyAnnotations() + .containsWithName("org.springframework.data.annotation.CreatedDate") + .toProperty() .toType() .assertProperty("createdBy") - .assertPropertyAnnotations() - .containsWithName("org.springframework.data.annotation.CreatedBy") - .toProperty() + .assertPropertyAnnotations() + .containsWithName("org.springframework.data.annotation.CreatedBy") + .toProperty() .toType() .assertProperty("modifiedDate") - .assertPropertyAnnotations() - .containsWithName("org.springframework.data.annotation.LastModifiedDate") - .toProperty() + .assertPropertyAnnotations() + .containsWithName("org.springframework.data.annotation.LastModifiedDate") + .toProperty() .toType() .assertProperty("modifiedBy") - .assertPropertyAnnotations() - .containsWithName("org.springframework.data.annotation.LastModifiedBy") - .toProperty() + .assertPropertyAnnotations() + .containsWithName("org.springframework.data.annotation.LastModifiedBy") + .toProperty() .toType() .assertProperty("opportunityId") - .assertPropertyAnnotations() - .containsWithNameAndAttributes("javax.persistence.Column", ImmutableMap.of("unique", "true")) - .toProperty() + .assertPropertyAnnotations() + .containsWithNameAndAttributes("javax.persistence.Column", ImmutableMap.of("unique", "true")) + .toProperty() .toType() .assertProperty("submissionStatus") - .assertPropertyAnnotations() - .containsWithName("javax.persistence.Transient") - .toProperty() + .assertPropertyAnnotations() + .containsWithName("javax.persistence.Transient") + .toProperty() .toType(); JavaFileAssert.assertThat(java.nio.file.Paths.get(baseOutputPath + "/CompanyDto.java")) - .assertProperty("priceCategory") + .assertProperty("priceCategory") .assertPropertyAnnotations() .containsWithNameAndAttributes("IgnoreForRoles", ImmutableMap.of("value", "\"MEDIA_ADMIN\"")); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/TestUtilsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/TestUtilsTest.java index 1bc8ba5090f..ebeb11e5c3c 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/TestUtilsTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/TestUtilsTest.java @@ -17,138 +17,154 @@ public class TestUtilsTest { // forbiddenapis check will fail if we don't explicitly define localization when using String.format static final Locale L = null; - + public static class validatePomXmlFiles { static final String POM_SCAFFOLD = "%s%s"; static final String POM_PROJECT_INFO = "foofoo.barfoobar13.12"; - - @Test void doesNotThrow_ifNotPom_doesNotExist() { + + @Test + void doesNotThrow_ifNotPom_doesNotExist() { final var vaporFile = newTempDir().resolve("other.xml").toFile(); - + assertThatCode(() -> TestUtils.validatePomXmlFiles(List.of(vaporFile))) - .doesNotThrowAnyException(); + .doesNotThrowAnyException(); } - - @Test void throwsRuntimeException_ifPomDoesNotExist() { + + @Test + void throwsRuntimeException_ifPomDoesNotExist() { final var vaporBom = newTempDir().resolve("pom.xml").toFile(); assertThatThrownBy(() -> TestUtils.validatePomXmlFiles(List.of(vaporBom))) - .isExactlyInstanceOf(RuntimeException.class); + .isExactlyInstanceOf(RuntimeException.class); } - - @Test void throwsRuntimeException_ifXmlIsJson() { + + @Test + void throwsRuntimeException_ifXmlIsJson() { Path testFile = newPomXmlFile("{\"not_xml\": 12345}"); assertThatThrownBy(() -> TestUtils.validatePomXmlFiles(List.of(testFile.toFile()))) - .isExactlyInstanceOf(RuntimeException.class); + .isExactlyInstanceOf(RuntimeException.class); } - @Test void throwsRuntimeException_ifXmlIsInvalid() { + @Test + void throwsRuntimeException_ifXmlIsInvalid() { final Path testFile = newPomXmlFile(""); assertThatThrownBy(() -> TestUtils.validatePomXmlFiles(List.of(testFile.toFile()))) - .isExactlyInstanceOf(RuntimeException.class); + .isExactlyInstanceOf(RuntimeException.class); } - - @Test void throwsAssertionError_ifNameTagIsMissing() { + + @Test + void throwsAssertionError_ifNameTagIsMissing() { final Path testFile = newPomXmlFile(replaceTag("name", "", getMinimalValidPomContent())); - + assertThatThrownBy(() -> TestUtils.validatePomXmlFiles(List.of(testFile.toFile()))) - .isExactlyInstanceOf(AssertionError.class); + .isExactlyInstanceOf(AssertionError.class); } - - @Test void doesNotThrow_ifNameIsEmpty() { + + @Test + void doesNotThrow_ifNameIsEmpty() { final Path testFile = newPomXmlFile( - replaceTag("name", "", getMinimalValidPomContent()) + replaceTag("name", "", getMinimalValidPomContent()) ); - + assertThatCode(() -> TestUtils.validatePomXmlFiles(List.of(testFile.toFile()))) - .doesNotThrowAnyException(); + .doesNotThrowAnyException(); } - - @Test void throwsAssertionError_ifArtifactIdTagIsMissing() { + + @Test + void throwsAssertionError_ifArtifactIdTagIsMissing() { final Path testFile = newPomXmlFile(replaceTag("artifactId", "", getMinimalValidPomContent())); - + assertThatThrownBy(() -> TestUtils.validatePomXmlFiles(List.of(testFile.toFile()))) - .isExactlyInstanceOf(AssertionError.class); + .isExactlyInstanceOf(AssertionError.class); } - - @Test void doesNotThrow_ifArtifactIdIsEmpty() { + + @Test + void doesNotThrow_ifArtifactIdIsEmpty() { final Path testFile = newPomXmlFile( - replaceTag("artifactId", "", getMinimalValidPomContent()) + replaceTag("artifactId", "", getMinimalValidPomContent()) ); - + assertThatCode(() -> TestUtils.validatePomXmlFiles(List.of(testFile.toFile()))) - .doesNotThrowAnyException(); + .doesNotThrowAnyException(); } - - @Test void throwsAssertionError_ifGroupIdTagIsMissing() { + + @Test + void throwsAssertionError_ifGroupIdTagIsMissing() { final Path testFile = newPomXmlFile(replaceTag("groupId", "", getMinimalValidPomContent())); - + assertThatThrownBy(() -> TestUtils.validatePomXmlFiles(List.of(testFile.toFile()))) - .isExactlyInstanceOf(AssertionError.class); + .isExactlyInstanceOf(AssertionError.class); } - - @Test void doesNotThrow_ifGroupIdIsEmpty() { + + @Test + void doesNotThrow_ifGroupIdIsEmpty() { final Path testFile = newPomXmlFile( - replaceTag("groupId", "", getMinimalValidPomContent()) + replaceTag("groupId", "", getMinimalValidPomContent()) ); - + assertThatCode(() -> TestUtils.validatePomXmlFiles(List.of(testFile.toFile()))) - .doesNotThrowAnyException(); + .doesNotThrowAnyException(); } - - @Test void throwsAssertionError_ifVersionTagIsMissing() { + + @Test + void throwsAssertionError_ifVersionTagIsMissing() { final Path testFile = newPomXmlFile(replaceTag("version", "", getMinimalValidPomContent())); - + assertThatThrownBy(() -> TestUtils.validatePomXmlFiles(List.of(testFile.toFile()))) - .isExactlyInstanceOf(AssertionError.class); + .isExactlyInstanceOf(AssertionError.class); } - - @Test void doesNotThrow_ifVersionIsEmpty() { + + @Test + void doesNotThrow_ifVersionIsEmpty() { final Path testFile = newPomXmlFile( - replaceTag("version", "", getMinimalValidPomContent()) + replaceTag("version", "", getMinimalValidPomContent()) ); - + assertThatCode(() -> TestUtils.validatePomXmlFiles(List.of(testFile.toFile()))) - .doesNotThrowAnyException(); + .doesNotThrowAnyException(); } - - @Test void throwsAssertionError_ifZeroDependencies() { + + @Test + void throwsAssertionError_ifZeroDependencies() { final Path testFile = newPomXmlFile(String.format(L, POM_SCAFFOLD, POM_PROJECT_INFO, "")); - + assertThatThrownBy(() -> TestUtils.validatePomXmlFiles(List.of(testFile.toFile()))) - .isExactlyInstanceOf(AssertionError.class); + .isExactlyInstanceOf(AssertionError.class); } - - @Test void doesNotThrow_ifAtLeastOneDependency() { + + @Test + void doesNotThrow_ifAtLeastOneDependency() { final Path testFile = newPomXmlFile(String.format(L, POM_SCAFFOLD, POM_PROJECT_INFO, "")); - + assertThatCode(() -> TestUtils.validatePomXmlFiles(List.of(testFile.toFile()))) - .doesNotThrowAnyException(); + .doesNotThrowAnyException(); } - - @Test void throwsAssertionError_withTwoValidPoms_whereSecondHasNoName() { + + @Test + void throwsAssertionError_withTwoValidPoms_whereSecondHasNoName() { final File testFile1 = newPomXmlFile(getMinimalValidPomContent()).toFile(); final File testFile2 = newPomXmlFile(replaceTag("name", "", getMinimalValidPomContent())).toFile(); - + assertThatThrownBy(() -> TestUtils.validatePomXmlFiles(List.of(testFile1, testFile2))) - .isExactlyInstanceOf(AssertionError.class); + .isExactlyInstanceOf(AssertionError.class); } - - @Test void doesNotThrow_withTwoValidPoms() { + + @Test + void doesNotThrow_withTwoValidPoms() { final File testFile1 = newPomXmlFile(getMinimalValidPomContent()).toFile(); final File testFile2 = newPomXmlFile(getMinimalValidPomContent()).toFile(); - + assertThatCode(() -> TestUtils.validatePomXmlFiles(List.of(testFile1, testFile2))) - .doesNotThrowAnyException(); + .doesNotThrowAnyException(); } - + private String replaceTag(String tagToReplace, String replaceWith, String xml) { return xml.replaceAll("<" + tagToReplace + ">[\\s\\S]*?", replaceWith); } - + private String getMinimalValidPomContent() { return String.format(L, POM_SCAFFOLD, POM_PROJECT_INFO, ""); } @@ -160,7 +176,7 @@ public class TestUtilsTest { throw new RuntimeException(e); } } - + private Path newTempDir() { final Path tempDir; try { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/android/AndroidClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/android/AndroidClientCodegenTest.java index f7fab835e1f..3c2f3d809a7 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/android/AndroidClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/android/AndroidClientCodegenTest.java @@ -60,7 +60,7 @@ public class AndroidClientCodegenTest { final AndroidClientCodegen codegen = new AndroidClientCodegen(); codegen.additionalProperties().put(CodegenConstants.MODEL_PACKAGE, "xyz.yyyyy.mmmmm.model"); codegen.additionalProperties().put(CodegenConstants.API_PACKAGE, "xyz.yyyyy.aaaaa.api"); - codegen.additionalProperties().put(CodegenConstants.INVOKER_PACKAGE,"xyz.yyyyy.iiii.invoker"); + codegen.additionalProperties().put(CodegenConstants.INVOKER_PACKAGE, "xyz.yyyyy.iiii.invoker"); codegen.processOpts(); Assert.assertEquals(codegen.modelPackage(), "xyz.yyyyy.mmmmm.model"); @@ -70,6 +70,7 @@ public class AndroidClientCodegenTest { Assert.assertEquals(codegen.getInvokerPackage(), "xyz.yyyyy.iiii.invoker"); Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.INVOKER_PACKAGE), "xyz.yyyyy.iiii.invoker"); } + @Test public void testHideGenerationTimestampDisabled() throws Exception { final AndroidClientCodegen codegen = new AndroidClientCodegen(); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/asciidoc/AsciidocGeneratorTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/asciidoc/AsciidocGeneratorTest.java index c5f01e4b74d..8ad0c7128a0 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/asciidoc/AsciidocGeneratorTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/asciidoc/AsciidocGeneratorTest.java @@ -1,12 +1,6 @@ package org.openapitools.codegen.asciidoc; -import java.io.File; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; - +import io.swagger.v3.oas.models.OpenAPI; import org.apache.commons.io.FileUtils; import org.openapitools.codegen.ClientOptInput; import org.openapitools.codegen.CodegenConfig; @@ -19,9 +13,16 @@ import org.slf4j.LoggerFactory; import org.testng.Assert; import org.testng.annotations.Test; -import io.swagger.v3.oas.models.OpenAPI; +import java.io.File; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; -/** unit test asciidoc markup generation against ping.yaml openapi spec. */ +/** + * unit test asciidoc markup generation against ping.yaml openapi spec. + */ public class AsciidocGeneratorTest { private final Logger LOGGER = LoggerFactory.getLogger(AsciidocGeneratorTest.class); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/asciidoc/AsciidocSampleGeneratorTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/asciidoc/AsciidocSampleGeneratorTest.java index 4206c8c7f17..16989160578 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/asciidoc/AsciidocSampleGeneratorTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/asciidoc/AsciidocSampleGeneratorTest.java @@ -1,13 +1,6 @@ package org.openapitools.codegen.asciidoc; -import java.io.File; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.List; - import org.apache.commons.io.FileUtils; - import org.openapitools.codegen.DefaultGenerator; import org.openapitools.codegen.config.CodegenConfigurator; import org.openapitools.codegen.languages.AsciidocDocumentationCodegen; @@ -16,7 +9,15 @@ import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -/** several asciidoc content checks with sample openapi v3. */ +import java.io.File; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.List; + +/** + * several asciidoc content checks with sample openapi v3. + */ public class AsciidocSampleGeneratorTest { public String markupContent = null; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/asciidoc/IncludeMarkupFilterTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/asciidoc/IncludeMarkupFilterTest.java index 06895261158..29749833cd1 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/asciidoc/IncludeMarkupFilterTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/asciidoc/IncludeMarkupFilterTest.java @@ -1,18 +1,17 @@ package org.openapitools.codegen.asciidoc; +import org.mockito.MockitoAnnotations; +import org.openapitools.codegen.languages.AsciidocDocumentationCodegen; +import org.openapitools.codegen.templating.mustache.LambdaTest; +import org.testng.Assert; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.util.Map; -import org.mockito.MockitoAnnotations; -import org.openapitools.codegen.languages.AsciidocDocumentationCodegen; -import org.openapitools.codegen.templating.mustache.LambdaTest; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; - -import org.testng.Assert; - public class IncludeMarkupFilterTest extends LambdaTest { @BeforeMethod @@ -24,7 +23,7 @@ public class IncludeMarkupFilterTest extends LambdaTest { public void testIncludeMarkupFilterDoesNotIncludeMissingFile() { final AsciidocDocumentationCodegen generator = new AsciidocDocumentationCodegen(); - final Map ctx = context("specinclude", generator.new IncludeMarkupLambda("specDir","DOES_NOT_EXIST")); + final Map ctx = context("specinclude", generator.new IncludeMarkupLambda("specDir", "DOES_NOT_EXIST")); final String result = execute("{{#specinclude}}not.an.existing.file.adoc{{/specinclude}}", ctx); Assert.assertTrue(result.contains("// markup not found, no include::{specDir}not.an.existing.file.adoc[opts=optional]"), @@ -39,10 +38,10 @@ public class IncludeMarkupFilterTest extends LambdaTest { final AsciidocDocumentationCodegen generator = new AsciidocDocumentationCodegen(); final Map ctx = context("snippetinclude", - generator.new IncludeMarkupLambda("specDir",tempFile.getParent())); + generator.new IncludeMarkupLambda("specDir", tempFile.getParent())); final String result = execute("{{#snippetinclude}}" + tempFile.getName() + "{{/snippetinclude}}", ctx); - Assert.assertTrue(result.contains("include::{specDir}"+tempFile.getName()+"[opts=optional]"), "unexpected filtered: " + result); + Assert.assertTrue(result.contains("include::{specDir}" + tempFile.getName() + "[opts=optional]"), "unexpected filtered: " + result); } @Test @@ -52,15 +51,15 @@ public class IncludeMarkupFilterTest extends LambdaTest { File folderWithCurlyBrackets = new File(pathWithCurlyBrackets); folderWithCurlyBrackets.mkdirs(); - File tempFile = File.createTempFile("curly", "-adoc", folderWithCurlyBrackets); + File tempFile = File.createTempFile("curly", "-adoc", folderWithCurlyBrackets); tempFile.deleteOnExit(); final AsciidocDocumentationCodegen generator = new AsciidocDocumentationCodegen(); final Map ctx = context("snippetinclude", - generator.new IncludeMarkupLambda("specDir",temporaryPath)); + generator.new IncludeMarkupLambda("specDir", temporaryPath)); - final String result = execute("{{#snippetinclude}}" + "/{parameter1}/{parameter2}/"+tempFile.getName() + "{{/snippetinclude}}", ctx); - Assert.assertEquals(result,"\ninclude::{specDir}"+ "\\{parameter1\\}/\\{parameter2\\}/" + tempFile.getName()+"[opts=optional]\n"); + final String result = execute("{{#snippetinclude}}" + "/{parameter1}/{parameter2}/" + tempFile.getName() + "{{/snippetinclude}}", ctx); + Assert.assertEquals(result, "\ninclude::{specDir}" + "\\{parameter1\\}/\\{parameter2\\}/" + tempFile.getName() + "[opts=optional]\n"); } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/asciidoc/LinkMarkupFilterTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/asciidoc/LinkMarkupFilterTest.java index 2c4f54de371..9c23da600fe 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/asciidoc/LinkMarkupFilterTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/asciidoc/LinkMarkupFilterTest.java @@ -1,18 +1,17 @@ package org.openapitools.codegen.asciidoc; +import org.mockito.MockitoAnnotations; +import org.openapitools.codegen.languages.AsciidocDocumentationCodegen; +import org.openapitools.codegen.templating.mustache.LambdaTest; +import org.testng.Assert; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.util.Map; -import org.mockito.MockitoAnnotations; -import org.openapitools.codegen.languages.AsciidocDocumentationCodegen; -import org.openapitools.codegen.templating.mustache.LambdaTest; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; - -import org.testng.Assert; - public class LinkMarkupFilterTest extends LambdaTest { @BeforeMethod diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/bash/BashTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/bash/BashTest.java index 7ac35d964e6..21a0b4d3d04 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/bash/BashTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/bash/BashTest.java @@ -34,25 +34,25 @@ public class BashTest { public void petstoreOperationTest() { final OpenAPI openAPI - = TestUtils.parseFlattenSpec("src/test/resources/2_0/petstore-bash.json"); + = TestUtils.parseFlattenSpec("src/test/resources/2_0/petstore-bash.json"); final DefaultCodegen codegen = new BashClientCodegen(); codegen.setOpenAPI(openAPI); final Operation findPetsByStatusOperation - = openAPI.getPaths().get("/pet/findByStatus").getGet(); + = openAPI.getPaths().get("/pet/findByStatus").getGet(); final CodegenOperation op - = codegen.fromOperation( + = codegen.fromOperation( "/pet/findByStatus", "GET", findPetsByStatusOperation, null); Assert.assertTrue( - op.vendorExtensions.containsKey("x-code-samples")); + op.vendorExtensions.containsKey("x-code-samples")); Assert.assertEquals( - op.vendorExtensions.get("x-bash-codegen-description"), - "Multiple status 'values' can be provided with comma separated strings"); + op.vendorExtensions.get("x-bash-codegen-description"), + "Multiple status 'values' can be provided with comma separated strings"); Assert.assertEquals(op.allParams.size(), 1); CodegenParameter p = op.allParams.get(0); @@ -63,14 +63,14 @@ public class BashTest { public void petstoreParameterExampleTest() { final OpenAPI openAPI - = TestUtils.parseFlattenSpec("src/test/resources/2_0/petstore-bash.json"); + = TestUtils.parseFlattenSpec("src/test/resources/2_0/petstore-bash.json"); final DefaultCodegen codegen = new BashClientCodegen(); codegen.setOpenAPI(openAPI); final Operation addPetOperation - = openAPI.getPaths().get("/pet").getPost(); + = openAPI.getPaths().get("/pet").getPost(); final CodegenOperation op - = codegen.fromOperation( + = codegen.fromOperation( "/pet", "POST", addPetOperation, @@ -81,7 +81,7 @@ public class BashTest { CodegenParameter p = op.bodyParams.get(0); Assert.assertTrue(p.vendorExtensions - .containsKey("x-codegen-body-example")); + .containsKey("x-codegen-body-example")); Assert.assertEquals(p.description, "Pet object that needs to be added to the store"); } @@ -97,47 +97,47 @@ public class BashTest { Assert.assertEquals(codegen.escapeText("\\"), "\\\\"); - ((BashClientCodegen)codegen).setProcessMarkdown(false); + ((BashClientCodegen) codegen).setProcessMarkdown(false); Assert.assertEquals(codegen.escapeText("__Bold text__"), - "__Bold text__"); + "__Bold text__"); Assert.assertEquals(codegen.escapeText("**Bold text**"), - "**Bold text**"); + "**Bold text**"); Assert.assertEquals(codegen.escapeText("*Italic text*"), - "*Italic text*"); + "*Italic text*"); Assert.assertEquals(codegen.escapeText("_Italic text_"), - "_Italic text_"); + "_Italic text_"); - ((BashClientCodegen)codegen).setProcessMarkdown(true); + ((BashClientCodegen) codegen).setProcessMarkdown(true); Assert.assertEquals(codegen.escapeText("__Bold text__"), - "$(tput bold) Bold text $(tput sgr0)"); + "$(tput bold) Bold text $(tput sgr0)"); Assert.assertEquals(codegen.escapeText("**Bold text**"), - "$(tput bold) Bold text $(tput sgr0)"); + "$(tput bold) Bold text $(tput sgr0)"); Assert.assertEquals(codegen.escapeText("*Italic text*"), - "$(tput dim) Italic text $(tput sgr0)"); + "$(tput dim) Italic text $(tput sgr0)"); Assert.assertEquals(codegen.escapeText("_Italic text_"), - "$(tput dim) Italic text $(tput sgr0)"); + "$(tput dim) Italic text $(tput sgr0)"); Assert.assertEquals(codegen.escapeText("# SECTION NAME"), - "\n$(tput bold)$(tput setaf 7)SECTION NAME$(tput sgr0)"); + "\n$(tput bold)$(tput setaf 7)SECTION NAME$(tput sgr0)"); Assert.assertEquals(codegen.escapeText("## SECTION NAME"), - "\n$(tput bold)$(tput setaf 7)SECTION NAME$(tput sgr0)"); + "\n$(tput bold)$(tput setaf 7)SECTION NAME$(tput sgr0)"); Assert.assertEquals(codegen.escapeText("### SECTION NAME"), - "\n$(tput bold)$(tput setaf 7)SECTION NAME$(tput sgr0)"); + "\n$(tput bold)$(tput setaf 7)SECTION NAME$(tput sgr0)"); Assert.assertEquals(codegen.escapeText( - "```\nnice -n 100 mvn test\n```"), - "\n---\nnice -n 100 mvn test\n---"); + "```\nnice -n 100 mvn test\n```"), + "\n---\nnice -n 100 mvn test\n---"); } @Test(description = "test Bash client codegen escapeUnsafeCharacters method") @@ -145,7 +145,7 @@ public class BashTest { final DefaultCodegen codegen = new BashClientCodegen(); Assert.assertEquals(codegen.escapeUnsafeCharacters("`no backticks`"), - "'no backticks'"); + "'no backticks'"); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/config/CodegenConfiguratorTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/config/CodegenConfiguratorTest.java index 9d56cf5812d..f0e9b63d5d4 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/config/CodegenConfiguratorTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/config/CodegenConfiguratorTest.java @@ -29,8 +29,6 @@ import java.nio.file.Paths; import java.util.HashMap; import java.util.Map; -import static org.testng.Assert.*; - public class CodegenConfiguratorTest { private void want(ConfigAssert configAssert, String key, Object expected) { configAssert.assertValue(key, expected); @@ -41,17 +39,17 @@ public class CodegenConfiguratorTest { // This tests that properties we set on CodegenConfigurator make it down into generator properties, // limiting to those managed in DefaultCodegen. Map properties = new HashMap() {{ - put("foo", "bar"); - put("baz", "quux"); - put(CodegenConstants.HIDE_GENERATION_TIMESTAMP, true); - put(CodegenConstants.SORT_PARAMS_BY_REQUIRED_FLAG, true); - put(CodegenConstants.PREPEND_FORM_OR_BODY_PARAMETERS, false); - put(CodegenConstants.ENSURE_UNIQUE_PARAMS, true); - put(CodegenConstants.ALLOW_UNICODE_IDENTIFIERS, true); - put(CodegenConstants.REMOVE_OPERATION_ID_PREFIX, false); - put(CodegenConstants.DOCEXTENSION, "D"); - put(CodegenConstants.ENABLE_POST_PROCESS_FILE, false); - put(CodegenConstants.GENERATE_ALIAS_AS_MODEL, true); + put("foo", "bar"); + put("baz", "quux"); + put(CodegenConstants.HIDE_GENERATION_TIMESTAMP, true); + put(CodegenConstants.SORT_PARAMS_BY_REQUIRED_FLAG, true); + put(CodegenConstants.PREPEND_FORM_OR_BODY_PARAMETERS, false); + put(CodegenConstants.ENSURE_UNIQUE_PARAMS, true); + put(CodegenConstants.ALLOW_UNICODE_IDENTIFIERS, true); + put(CodegenConstants.REMOVE_OPERATION_ID_PREFIX, false); + put(CodegenConstants.DOCEXTENSION, "D"); + put(CodegenConstants.ENABLE_POST_PROCESS_FILE, false); + put(CodegenConstants.GENERATE_ALIAS_AS_MODEL, true); }}; File output = Files.createTempDirectory("test").toFile(); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/config/DynamicSettingsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/config/DynamicSettingsTest.java index 05f0c79f611..32e68170933 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/config/DynamicSettingsTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/config/DynamicSettingsTest.java @@ -9,7 +9,10 @@ import org.openapitools.codegen.api.TemplateFileType; import org.testng.annotations.Test; import java.io.File; -import java.util.*; +import java.util.List; +import java.util.Map; +import java.util.StringJoiner; +import java.util.TreeMap; import java.util.function.Function; import java.util.stream.Collectors; @@ -24,9 +27,9 @@ public class DynamicSettingsTest { String spec = "gemName: 'petstore'" + System.lineSeparator() + - "moduleName: 'Petstore'" + System.lineSeparator() + - "gemVersion: '1.0.0'" + System.lineSeparator() + - "apiPackage: 'testing'" + System.lineSeparator(); + "moduleName: 'Petstore'" + System.lineSeparator() + + "gemVersion: '1.0.0'" + System.lineSeparator() + + "apiPackage: 'testing'" + System.lineSeparator(); DynamicSettings dynamicSettings = mapper.readValue(spec, DynamicSettings.class); GeneratorSettings generatorSettings = dynamicSettings.getGeneratorSettings(); @@ -63,7 +66,7 @@ public class DynamicSettingsTest { String spec = "generatorName: none" + System.lineSeparator() + - "templateDir: '" + input + "'" + System.lineSeparator(); + "templateDir: '" + input + "'" + System.lineSeparator(); DynamicSettings dynamicSettings = mapper.readValue(spec, DynamicSettings.class); GeneratorSettings generatorSettings = dynamicSettings.getGeneratorSettings(); @@ -93,8 +96,8 @@ public class DynamicSettingsTest { String gitUserId = "openapitools"; String spec = "supportPython2: true" + System.lineSeparator() + - "gitHost: '" + gitHost + "'" + System.lineSeparator() + - "gitUserId: '" + gitUserId + "'" + System.lineSeparator(); + "gitHost: '" + gitHost + "'" + System.lineSeparator() + + "gitUserId: '" + gitUserId + "'" + System.lineSeparator(); DynamicSettings dynamicSettings = mapper.readValue(spec, DynamicSettings.class); GeneratorSettings generatorSettings = dynamicSettings.getGeneratorSettings(); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/config/MergedSpecBuilderTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/config/MergedSpecBuilderTest.java index f3feed5c126..5a19c6f78d8 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/config/MergedSpecBuilderTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/config/MergedSpecBuilderTest.java @@ -1,5 +1,15 @@ package org.openapitools.codegen.config; +import com.google.common.collect.ImmutableMap; +import io.swagger.parser.OpenAPIParser; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.parser.core.models.ParseOptions; +import org.openapitools.codegen.ClientOptInput; +import org.openapitools.codegen.DefaultGenerator; +import org.openapitools.codegen.java.assertions.JavaFileAssert; +import org.openapitools.codegen.languages.SpringCodegen; +import org.testng.annotations.Test; + import java.io.File; import java.io.IOException; import java.nio.file.Files; @@ -8,18 +18,6 @@ import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; -import org.openapitools.codegen.ClientOptInput; -import org.openapitools.codegen.DefaultGenerator; -import org.openapitools.codegen.java.assertions.JavaFileAssert; -import org.openapitools.codegen.languages.SpringCodegen; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableMap; - -import io.swagger.parser.OpenAPIParser; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.parser.core.models.ParseOptions; - public class MergedSpecBuilderTest { @Test @@ -42,7 +40,7 @@ public class MergedSpecBuilderTest { String outputPath = output.getAbsolutePath().replace('\\', '/'); String mergedSpec = new MergedSpecBuilder(outputPath, "_merged_file") - .buildMergedSpec(); + .buildMergedSpec(); assertFilesFromMergedSpec(mergedSpec); } @@ -54,7 +52,7 @@ public class MergedSpecBuilderTest { ParseOptions parseOptions = new ParseOptions(); parseOptions.setResolve(true); OpenAPI openAPI = new OpenAPIParser() - .readLocation(mergedSpec, null, parseOptions).getOpenAPI(); + .readLocation(mergedSpec, null, parseOptions).getOpenAPI(); SpringCodegen codegen = new SpringCodegen(); codegen.setOutputDir(output.getAbsolutePath()); @@ -65,31 +63,31 @@ public class MergedSpecBuilderTest { DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(Collectors.toMap(File::getName, Function.identity())); JavaFileAssert.assertThat(files.get("Spec1Api.java")) - .assertMethod("spec1Operation").hasReturnType("ResponseEntity") + .assertMethod("spec1Operation").hasReturnType("ResponseEntity") - .toFileAssert() + .toFileAssert() - .assertMethod("spec1OperationComplex") + .assertMethod("spec1OperationComplex") .hasReturnType("ResponseEntity") .assertMethodAnnotations() .containsWithNameAndAttributes("RequestMapping", ImmutableMap.of("value", "\"/spec1/complex/{param1}/path\"")) - .toMethod() - .assertParameter("param1") + .toMethod() + .assertParameter("param1") .hasType("String") .assertParameterAnnotations() .containsWithNameAndAttributes("PathVariable", ImmutableMap.of("value", "\"param1\"")); JavaFileAssert.assertThat(files.get("Spec2Api.java")) - .assertMethod("spec2Operation").hasReturnType("ResponseEntity"); + .assertMethod("spec2Operation").hasReturnType("ResponseEntity"); JavaFileAssert.assertThat(files.get("Spec1Model.java")) - .assertMethod("getSpec1Field").hasReturnType("String"); + .assertMethod("getSpec1Field").hasReturnType("String"); JavaFileAssert.assertThat(files.get("Spec2Model.java")) - .assertMethod("getSpec2Field").hasReturnType("BigDecimal"); + .assertMethod("getSpec2Field").hasReturnType("BigDecimal"); } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/cpppistache/AbstractGeneratorsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/cpppistache/AbstractGeneratorsTest.java index d8e7da91e1b..e49eb05b0da 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/cpppistache/AbstractGeneratorsTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/cpppistache/AbstractGeneratorsTest.java @@ -16,19 +16,27 @@ package org.openapitools.codegen.cpppistache; -import java.io.*; -import java.nio.file.Files; -import java.util.*; - -import org.openapitools.codegen.*; +import org.openapitools.codegen.ClientOptInput; +import org.openapitools.codegen.CodegenConfig; +import org.openapitools.codegen.CodegenConfigLoader; +import org.openapitools.codegen.DefaultGenerator; import org.openapitools.codegen.config.CodegenConfigurator; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + /** * Abstract test class to make one or multiple generators generate files for one specific input spec */ public abstract class AbstractGeneratorsTest { /** * Test each with a given input spec + * * @param inputSpec The input spec to use * @return Map of generator and files * @throws IOException if the test directory cannot be created @@ -46,8 +54,9 @@ public abstract class AbstractGeneratorsTest { /** * Test each with a given input spec + * * @param generatorName the generator name to use - * @param inputSpec The input spec to use + * @param inputSpec The input spec to use * @return List of generated files * @throws IOException if the test directory cannot be created */ @@ -59,9 +68,9 @@ public abstract class AbstractGeneratorsTest { output.deleteOnExit(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName(generatorName) - .setInputSpec(inputSpec) - .setOutputDir(output.getAbsolutePath().replace("\\", "/")); + .setGeneratorName(generatorName) + .setInputSpec(inputSpec) + .setOutputDir(output.getAbsolutePath().replace("\\", "/")); final ClientOptInput clientOptInput = configurator.toClientOptInput(); DefaultGenerator generator = new DefaultGenerator(); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/cpppistache/ObjectAnyTypeSetTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/cpppistache/ObjectAnyTypeSetTest.java index 59abc88bab0..7f03d8e23b0 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/cpppistache/ObjectAnyTypeSetTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/cpppistache/ObjectAnyTypeSetTest.java @@ -16,29 +16,39 @@ package org.openapitools.codegen.cpppistache; -import java.io.*; -import java.util.*; - -import org.slf4j.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.testng.annotations.Test; import org.testng.asserts.SoftAssert; +import java.io.File; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + /** * Generate from an input spec containing various abstract objects and sets */ public class ObjectAnyTypeSetTest extends AbstractGeneratorsTest { - /** Logger. */ + /** + * Logger. + */ private static final Logger LOGGER = LoggerFactory.getLogger(ObjectAnyTypeSetTest.class); - /** A Petstore inputspec with abstract properties added in the Pet */ + /** + * A Petstore inputspec with abstract properties added in the Pet + */ private static final String INPUT_SPEC = "src/test/resources/3_0/issues-anytype-object-set-petstore-everything.yaml"; private static final String ISSUE_6726 = "src/test/resources/3_0/issue_6726.yaml"; - /** Soft assert to check all the generators before eventually failing a test */ + /** + * Soft assert to check all the generators before eventually failing a test + */ private final SoftAssert softAssert = new SoftAssert(); /** * Test some generators with an input spec requiring generation of abstract properties + * * @throws IOException if the test folder cannot be created */ @Test @@ -52,8 +62,9 @@ public class ObjectAnyTypeSetTest extends AbstractGeneratorsTest { /** * Asserts that a generator has produced some files + * * @param generatorName The generator name to test - * @param inputSpec The inputspec to use. + * @param inputSpec The inputspec to use. * @return List of files generated * @throws IOException if the test folder cannot be created */ diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/crystal/CrystalClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/crystal/CrystalClientCodegenTest.java index 98f2385d5c5..2c4f9af953a 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/crystal/CrystalClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/crystal/CrystalClientCodegenTest.java @@ -27,7 +27,7 @@ import org.testng.annotations.Test; import java.io.File; import java.nio.charset.StandardCharsets; import java.nio.file.Files; -import java.util.*; +import java.util.List; import static org.testng.Assert.assertTrue; import static org.testng.Assert.fail; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/csharpnetcore/CSharpClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/csharpnetcore/CSharpClientCodegenTest.java index d2e939e90f9..55e7d672fc5 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/csharpnetcore/CSharpClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/csharpnetcore/CSharpClientCodegenTest.java @@ -16,11 +16,12 @@ package org.openapitools.codegen.csharpnetcore; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.openapitools.codegen.TestUtils.assertFileContains; - import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.media.Schema; +import org.openapitools.codegen.*; +import org.openapitools.codegen.languages.CSharpClientCodegen; +import org.testng.Assert; +import org.testng.annotations.Test; import java.io.File; import java.io.IOException; @@ -30,15 +31,8 @@ import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; -import org.openapitools.codegen.ClientOptInput; -import org.openapitools.codegen.CodegenConstants; -import org.openapitools.codegen.CodegenModel; -import org.openapitools.codegen.CodegenProperty; -import org.openapitools.codegen.DefaultGenerator; -import org.openapitools.codegen.TestUtils; -import org.openapitools.codegen.languages.CSharpClientCodegen; -import org.testng.Assert; -import org.testng.annotations.Test; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.openapitools.codegen.TestUtils.assertFileContains; public class CSharpClientCodegenTest { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/csharpnetcore/CSharpClientDeepObjectTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/csharpnetcore/CSharpClientDeepObjectTest.java index ef3c0b289b2..b131b599520 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/csharpnetcore/CSharpClientDeepObjectTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/csharpnetcore/CSharpClientDeepObjectTest.java @@ -67,7 +67,7 @@ public class CSharpClientDeepObjectTest { "options[status]", "options[photoUrls]", "inputOptions[a]", "inputOptions[b]", "inputOptions[c]"); String content = new String(Files.readAllBytes(Paths.get(outputPath + "/src/Org.OpenAPITools/Api/DefaultApi.cs")), StandardCharsets.UTF_8); - int counter = StringUtils.countMatches(content,"inputOptions[a]"); + int counter = StringUtils.countMatches(content, "inputOptions[a]"); assertEquals(2, counter); } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/csharpnetcore/CSharpModelEnumTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/csharpnetcore/CSharpModelEnumTest.java index 731c899ac5e..0483b5d5136 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/csharpnetcore/CSharpModelEnumTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/csharpnetcore/CSharpModelEnumTest.java @@ -20,6 +20,7 @@ package org.openapitools.codegen.csharpnetcore; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.media.StringSchema; +import org.openapitools.codegen.CodegenConstants.ENUM_PROPERTY_NAMING_TYPE; import org.openapitools.codegen.CodegenModel; import org.openapitools.codegen.CodegenProperty; import org.openapitools.codegen.DefaultCodegen; @@ -27,14 +28,13 @@ import org.openapitools.codegen.TestUtils; import org.openapitools.codegen.languages.AspNetServerCodegen; import org.openapitools.codegen.languages.CSharpClientCodegen; import org.testng.Assert; -import org.testng.annotations.Test; import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; import java.util.Arrays; import java.util.HashMap; import java.util.Map; -import org.openapitools.codegen.CodegenConstants.ENUM_PROPERTY_NAMING_TYPE; import static org.openapitools.codegen.CodegenConstants.ENUM_PROPERTY_NAMING_TYPE.*; public class CSharpModelEnumTest { @@ -162,44 +162,43 @@ public class CSharpModelEnumTest { } @DataProvider(name = "enumVarName") - public Object[][] provideTestData() - { - return new Object[][] { - { "FooBar", "fooBar", camelCase }, - { "fooBar", "fooBar", camelCase }, - { "foo-bar", "fooBar", camelCase }, - { "foo_bar", "fooBar", camelCase }, - { "foo bar", "fooBar", camelCase }, - { "FOO-BAR", "fOOBAR", camelCase }, // camelize doesn't support uppercase - { "FOO_BAR", "fOOBAR", camelCase }, // ditto - { "FooBar", "FooBar", PascalCase }, - { "fooBar", "FooBar", PascalCase }, - { "foo-bar", "FooBar", PascalCase }, - { "foo_bar", "FooBar", PascalCase }, - { "foo bar", "FooBar", PascalCase }, - { "FOO-BAR", "FOOBAR", PascalCase }, // ditto - { "FOO_BAR", "FOOBAR", PascalCase }, // ditto - { "FooBar", "foo_bar", snake_case }, - { "fooBar", "foo_bar", snake_case }, - { "foo-bar", "foo_bar", snake_case }, - { "foo_bar", "foo_bar", snake_case }, - { "foo bar", "foo_bar", snake_case }, - { "FOO-BAR", "foo_bar", snake_case }, - { "FOO_BAR", "foo_bar", snake_case }, - { "FooBar", "FOO_BAR", UPPERCASE }, - { "fooBar", "FOO_BAR", UPPERCASE }, - { "foo-bar", "FOO_BAR", UPPERCASE }, - { "foo_bar", "FOO_BAR", UPPERCASE }, - { "foo bar", "FOO_BAR", UPPERCASE }, - { "FOO-BAR", "FOO_BAR", UPPERCASE }, - { "FOO_BAR", "FOO_BAR", UPPERCASE }, - { "FooBar", "FooBar", original }, - { "fooBar", "fooBar", original }, - { "foo-bar", "foo_bar", original }, - { "foo_bar", "foo_bar", original }, - { "foo bar", "foo_bar", original }, - { "FOO-BAR", "FOO_BAR", original }, - { "FOO_BAR", "FOO_BAR", original }, + public Object[][] provideTestData() { + return new Object[][]{ + {"FooBar", "fooBar", camelCase}, + {"fooBar", "fooBar", camelCase}, + {"foo-bar", "fooBar", camelCase}, + {"foo_bar", "fooBar", camelCase}, + {"foo bar", "fooBar", camelCase}, + {"FOO-BAR", "fOOBAR", camelCase}, // camelize doesn't support uppercase + {"FOO_BAR", "fOOBAR", camelCase}, // ditto + {"FooBar", "FooBar", PascalCase}, + {"fooBar", "FooBar", PascalCase}, + {"foo-bar", "FooBar", PascalCase}, + {"foo_bar", "FooBar", PascalCase}, + {"foo bar", "FooBar", PascalCase}, + {"FOO-BAR", "FOOBAR", PascalCase}, // ditto + {"FOO_BAR", "FOOBAR", PascalCase}, // ditto + {"FooBar", "foo_bar", snake_case}, + {"fooBar", "foo_bar", snake_case}, + {"foo-bar", "foo_bar", snake_case}, + {"foo_bar", "foo_bar", snake_case}, + {"foo bar", "foo_bar", snake_case}, + {"FOO-BAR", "foo_bar", snake_case}, + {"FOO_BAR", "foo_bar", snake_case}, + {"FooBar", "FOO_BAR", UPPERCASE}, + {"fooBar", "FOO_BAR", UPPERCASE}, + {"foo-bar", "FOO_BAR", UPPERCASE}, + {"foo_bar", "FOO_BAR", UPPERCASE}, + {"foo bar", "FOO_BAR", UPPERCASE}, + {"FOO-BAR", "FOO_BAR", UPPERCASE}, + {"FOO_BAR", "FOO_BAR", UPPERCASE}, + {"FooBar", "FooBar", original}, + {"fooBar", "fooBar", original}, + {"foo-bar", "foo_bar", original}, + {"foo_bar", "foo_bar", original}, + {"foo bar", "foo_bar", original}, + {"FOO-BAR", "FOO_BAR", original}, + {"FOO_BAR", "FOO_BAR", original}, }; } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/csharpnetcore/CSharpModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/csharpnetcore/CSharpModelTest.java index 36818b46c87..0f2cbac62e7 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/csharpnetcore/CSharpModelTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/csharpnetcore/CSharpModelTest.java @@ -21,11 +21,7 @@ import com.google.common.collect.Sets; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.media.*; import io.swagger.v3.parser.util.SchemaTypeUtil; -import org.openapitools.codegen.CodegenConstants; -import org.openapitools.codegen.CodegenModel; -import org.openapitools.codegen.CodegenProperty; -import org.openapitools.codegen.DefaultCodegen; -import org.openapitools.codegen.TestUtils; +import org.openapitools.codegen.*; import org.openapitools.codegen.languages.AbstractCSharpCodegen; import org.openapitools.codegen.languages.AspNetServerCodegen; import org.openapitools.codegen.languages.CSharpClientCodegen; @@ -52,7 +48,7 @@ public class CSharpModelTest { Assert.assertEquals(outerEnumVarsIsString(codegen, 3, true), true); } - public boolean outerEnumVarsIsString(final AbstractCSharpCodegen codegen, final int openApiVersion, final Boolean nullableReferenceTypes){ + public boolean outerEnumVarsIsString(final AbstractCSharpCodegen codegen, final int openApiVersion, final Boolean nullableReferenceTypes) { final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/" + openApiVersion + "_0/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml"); codegen.setNullableReferenceTypes(nullableReferenceTypes); codegen.setOpenAPI(openAPI); @@ -210,7 +206,7 @@ public class CSharpModelTest { public void nonNullablePropertyTest() { final Schema model = new Schema() .description("a sample model") - .addProperties("id", new IntegerSchema().format(SchemaTypeUtil.INTEGER64_FORMAT).nullable(false)) + .addProperties("id", new IntegerSchema().format(SchemaTypeUtil.INTEGER64_FORMAT).nullable(false)) .addProperties("urls", new ArraySchema() .items(new StringSchema())) .addProperties("name", new StringSchema().nullable(true)) @@ -261,7 +257,7 @@ public class CSharpModelTest { public void nullablePropertyTest() { final Schema model = new Schema() .description("a sample model") - .addProperties("id", new IntegerSchema().format(SchemaTypeUtil.INTEGER64_FORMAT).nullable(true)) + .addProperties("id", new IntegerSchema().format(SchemaTypeUtil.INTEGER64_FORMAT).nullable(true)) .addProperties("urls", new ArraySchema() .items(new StringSchema())) .addProperties("name", new StringSchema().nullable(true)) @@ -312,11 +308,11 @@ public class CSharpModelTest { public void nullablePropertyWithoutNullableReferenceTypesTest() { final Schema model = new Schema() .description("a sample model") - .addProperties("id", new IntegerSchema().format(SchemaTypeUtil.INTEGER64_FORMAT).nullable(true)) + .addProperties("id", new IntegerSchema().format(SchemaTypeUtil.INTEGER64_FORMAT).nullable(true)) .addProperties("urls", new ArraySchema() .items(new StringSchema()).nullable(true)) .addProperties("name", new StringSchema().nullable(true)) - .addProperties("subObject", new Schema().addProperties("name", new StringSchema()).nullable(true)) + .addProperties("subObject", new Schema().addProperties("name", new StringSchema()).nullable(true)) .addRequiredItem("id"); final DefaultCodegen codegen = new AspNetServerCodegen(); OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("sample", model); @@ -372,11 +368,11 @@ public class CSharpModelTest { public void nullablePropertyWithNullableReferenceTypesTest() { final Schema model = new Schema() .description("a sample model") - .addProperties("id", new IntegerSchema().format(SchemaTypeUtil.INTEGER64_FORMAT).nullable(true)) + .addProperties("id", new IntegerSchema().format(SchemaTypeUtil.INTEGER64_FORMAT).nullable(true)) .addProperties("urls", new ArraySchema() .items(new StringSchema()).nullable(true)) .addProperties("name", new StringSchema().nullable(true)) - .addProperties("subObject", new Schema().addProperties("name", new StringSchema()).nullable(true)) + .addProperties("subObject", new Schema().addProperties("name", new StringSchema()).nullable(true)) .addRequiredItem("id"); final DefaultCodegen codegen = new AspNetServerCodegen(); codegen.processOpts(); @@ -434,7 +430,7 @@ public class CSharpModelTest { public void listPropertyTest() { final Schema model = new Schema() .description("a sample model") - .addProperties("id", new IntegerSchema().format(SchemaTypeUtil.INTEGER64_FORMAT)) + .addProperties("id", new IntegerSchema().format(SchemaTypeUtil.INTEGER64_FORMAT)) .addProperties("urls", new ArraySchema() .items(new StringSchema())) .addRequiredItem("id"); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/csharpnetcore/CSharpOperationTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/csharpnetcore/CSharpOperationTest.java index a5381323088..94cf2310afa 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/csharpnetcore/CSharpOperationTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/csharpnetcore/CSharpOperationTest.java @@ -19,7 +19,6 @@ package org.openapitools.codegen.csharpnetcore; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.Operation; - import org.openapitools.codegen.CodegenOperation; import org.openapitools.codegen.TestUtils; import org.openapitools.codegen.languages.AbstractCSharpCodegen; @@ -27,7 +26,7 @@ import org.openapitools.codegen.languages.AspNetServerCodegen; import org.openapitools.codegen.languages.CSharpClientCodegen; import org.testng.annotations.Test; -import static org.testng.Assert.*; +import static org.testng.Assert.assertEquals; public class CSharpOperationTest { @@ -46,7 +45,7 @@ public class CSharpOperationTest { assertEquals(getOperationOptionalParameterDataType(codegen, 3, true), "System.IO.Stream?"); } - public String getOperationOptionalParameterDataType(final AbstractCSharpCodegen codegen, final int openApiVersion, final Boolean nullableReferenceTypes){ + public String getOperationOptionalParameterDataType(final AbstractCSharpCodegen codegen, final int openApiVersion, final Boolean nullableReferenceTypes) { final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/" + openApiVersion + "_0/petstore-with-fake-endpoints-models-for-testing.yaml"); codegen.processOpts(); codegen.setNullableReferenceTypes(nullableReferenceTypes); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/DartClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/DartClientCodegenTest.java index 8570b527a18..4bc51da8d9e 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/DartClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/DartClientCodegenTest.java @@ -17,6 +17,11 @@ package org.openapitools.codegen.dart; +import org.openapitools.codegen.CodegenConstants; +import org.openapitools.codegen.languages.DartClientCodegen; +import org.testng.Assert; +import org.testng.annotations.Test; + import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader; @@ -25,11 +30,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Locale; -import org.openapitools.codegen.CodegenConstants; -import org.openapitools.codegen.languages.DartClientCodegen; -import org.testng.Assert; -import org.testng.annotations.Test; - public class DartClientCodegenTest { @Test @@ -68,7 +68,7 @@ public class DartClientCodegenTest { List reservedWordsList = new ArrayList(); try { BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("src/main/resources/dart/dart-keywords.txt"), StandardCharsets.UTF_8)); - while(reader.ready()) { + while (reader.ready()) { reservedWordsList.add(reader.readLine()); } reader.close(); @@ -79,7 +79,7 @@ public class DartClientCodegenTest { Assert.assertTrue(reservedWordsList.size() > 20); Assert.assertEquals(codegen.reservedWords().size(), reservedWordsList.size()); - for(String keyword : reservedWordsList) { + for (String keyword : reservedWordsList) { // reserved words are stored in lowercase Assert.assertTrue(codegen.reservedWords().contains(keyword.toLowerCase(Locale.ROOT)), String.format(Locale.ROOT, "%s, part of %s, was not found in %s", keyword, reservedWordsList, codegen.reservedWords().toString())); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/DartModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/DartModelTest.java index 03848b4f802..ce679696606 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/DartModelTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/DartModelTest.java @@ -17,8 +17,6 @@ package org.openapitools.codegen.dart; -import static org.openapitools.codegen.TestUtils.createCodegenModelWrapper; - import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.Operation; import io.swagger.v3.oas.models.media.*; @@ -30,6 +28,8 @@ import org.testng.annotations.Test; import java.util.*; +import static org.openapitools.codegen.TestUtils.createCodegenModelWrapper; + @SuppressWarnings("static-method") public class DartModelTest { @@ -327,20 +327,20 @@ public class DartModelTest { @DataProvider(name = "modelNames") public static Object[][] modelNames() { - return new Object[][] { - {"sample", "Sample"}, - {"sample_name", "SampleName"}, - {"sample__name", "SampleName"}, - {"/sample", "Sample"}, - {"\\sample", "\\Sample"}, - {"sample.name", "SampleName"}, - {"_sample", "Sample"}, - {"sample name", "SampleName"}, - {"List", "ModelList"}, - {"list", "ModelList"}, - {"File", "TestModelFile"}, - {"Client", "TestModelClient"}, - {"String", "ModelString"}, + return new Object[][]{ + {"sample", "Sample"}, + {"sample_name", "SampleName"}, + {"sample__name", "SampleName"}, + {"/sample", "Sample"}, + {"\\sample", "\\Sample"}, + {"sample.name", "SampleName"}, + {"_sample", "Sample"}, + {"sample name", "SampleName"}, + {"List", "ModelList"}, + {"list", "ModelList"}, + {"File", "TestModelFile"}, + {"Client", "TestModelClient"}, + {"String", "ModelString"}, }; } @@ -360,7 +360,7 @@ public class DartModelTest { @DataProvider(name = "varNames") public static Object[][] varNames() { - return new Object[][] { + return new Object[][]{ {"Double", "double_"}, {"double", "double_"}, {"dynamic", "dynamic_"}, @@ -375,7 +375,7 @@ public class DartModelTest { {"_double", "double_"}, {"_123hello", "n123hello"}, {"_5FOO", "n5fOO"}, - {"_FOO", "FOO"}, + {"_FOO", "FOO"}, {"_$foo", "dollarFoo"}, {"_$_foo_", "dollarFoo"}, {"$special[property.name]", "dollarSpecialLeftSquareBracketPropertyPeriodNameRightSquareBracket"}, @@ -403,7 +403,7 @@ public class DartModelTest { @DataProvider(name = "enumVarNames") public static Object[] enumVarNames() { - return new Object[] { + return new Object[]{ new EnumVarName("", "empty", "String"), new EnumVarName("Double", "double_", "String"), new EnumVarName("double", "double_", "String"), diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/dio/DartDioClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/dio/DartDioClientCodegenTest.java index a48e2dbbc6c..90017530fb8 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/dio/DartDioClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/dio/DartDioClientCodegenTest.java @@ -16,21 +16,13 @@ package org.openapitools.codegen.dart.dio; -import org.openapitools.codegen.ClientOptInput; -import org.openapitools.codegen.CodegenConstants; -import org.openapitools.codegen.DefaultGenerator; -import org.openapitools.codegen.Generator; -import org.openapitools.codegen.TestUtils; +import org.openapitools.codegen.*; import org.openapitools.codegen.config.CodegenConfigurator; import org.openapitools.codegen.languages.DartDioClientCodegen; import org.testng.Assert; import org.testng.annotations.Test; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStreamReader; +import java.io.*; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.util.ArrayList; @@ -84,7 +76,9 @@ public class DartDioClientCodegenTest { List reservedWordsList = new ArrayList<>(); try { BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("src/main/resources/dart/dart-keywords.txt"), StandardCharsets.UTF_8)); - while(reader.ready()) { reservedWordsList.add(reader.readLine()); } + while (reader.ready()) { + reservedWordsList.add(reader.readLine()); + } reader.close(); } catch (Exception e) { String errorString = String.format(Locale.ROOT, "Error reading dart keywords: %s", e); @@ -93,7 +87,7 @@ public class DartDioClientCodegenTest { Assert.assertTrue(reservedWordsList.size() > 20); Assert.assertEquals(codegen.reservedWords().size(), reservedWordsList.size()); - for(String keyword : reservedWordsList) { + for (String keyword : reservedWordsList) { // reserved words are stored in lowercase Assert.assertTrue(codegen.reservedWords().contains(keyword.toLowerCase(Locale.ROOT)), String.format(Locale.ROOT, "%s, part of %s, was not found in %s", keyword, reservedWordsList, codegen.reservedWords().toString())); } @@ -113,7 +107,7 @@ public class DartDioClientCodegenTest { .setOutputDir(output.getAbsolutePath().replace("\\", "/")); ClientOptInput opts = configurator.toClientOptInput(); - + Generator generator = new DefaultGenerator().opts(opts); List files = generator.generate(); files.forEach(File::deleteOnExit); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/dio/DartDioModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/dio/DartDioModelTest.java index b89c3b11aa5..b23213fd74a 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/dio/DartDioModelTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/dio/DartDioModelTest.java @@ -82,13 +82,13 @@ public class DartDioModelTest { @Test(description = "convert a simple dart-dit model with datelibrary") public void simpleModelWithTimeMachineTest() { final Schema model = new Schema() - .description("a sample model") - .addProperties("id", new IntegerSchema()) - .addProperties("name", new StringSchema()) - .addProperties("createdAt", new DateTimeSchema()) - .addProperties("birthDate", new DateSchema()) - .addRequiredItem("id") - .addRequiredItem("name"); + .description("a sample model") + .addProperties("id", new IntegerSchema()) + .addProperties("name", new StringSchema()) + .addProperties("createdAt", new DateTimeSchema()) + .addProperties("birthDate", new DateSchema()) + .addRequiredItem("id") + .addRequiredItem("name"); final DartDioClientCodegen codegen = new DartDioClientCodegen(); codegen.additionalProperties().put(DartDioClientCodegen.DATE_LIBRARY, DartDioClientCodegen.DATE_LIBRARY_TIME_MACHINE); @@ -389,9 +389,9 @@ public class DartDioModelTest { @DataProvider(name = "modelNames") public static Object[][] modelNames() { - return new Object[][] { - {"EnumClass", "TestModelEnumClass"}, - {"JsonObject", "TestModelJsonObject"}, + return new Object[][]{ + {"EnumClass", "TestModelEnumClass"}, + {"JsonObject", "TestModelJsonObject"}, }; } @@ -415,10 +415,10 @@ public class DartDioModelTest { @DataProvider(name = "modelNamesTimemachine") public static Object[][] modelNamesTimemachine() { - return new Object[][] { - {"EnumClass", "TestModelEnumClass"}, - {"JsonObject", "TestModelJsonObject"}, - {"OffsetDate", "TestModelOffsetDate"}, + return new Object[][]{ + {"EnumClass", "TestModelEnumClass"}, + {"JsonObject", "TestModelJsonObject"}, + {"OffsetDate", "TestModelOffsetDate"}, }; } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/eiffel/AbstractEiffelCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/eiffel/AbstractEiffelCodegenTest.java index 144bfe7c2d0..7b99b1191a0 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/eiffel/AbstractEiffelCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/eiffel/AbstractEiffelCodegenTest.java @@ -30,17 +30,18 @@ import static org.mockito.Mockito.withSettings; public class AbstractEiffelCodegenTest { private AbstractEiffelCodegen codegen; - + /** * In TEST-NG, test class (and its fields) is only constructed once (vs. for every test in Jupiter), * using @BeforeMethod to have a fresh codegen mock for each test */ - @BeforeMethod void mockAbstractCodegen() { + @BeforeMethod + void mockAbstractCodegen() { codegen = mock( - AbstractEiffelCodegen.class, withSettings().defaultAnswer(Answers.CALLS_REAL_METHODS).useConstructor() + AbstractEiffelCodegen.class, withSettings().defaultAnswer(Answers.CALLS_REAL_METHODS).useConstructor() ); } - + @Test public void testInitialConfigValues() throws Exception { codegen.processOpts(); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/elm/ElmClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/elm/ElmClientCodegenTest.java index 286c10d22f2..6e97e5a33ae 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/elm/ElmClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/elm/ElmClientCodegenTest.java @@ -22,9 +22,6 @@ import io.swagger.v3.oas.models.media.DateTimeSchema; import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.media.UUIDSchema; import io.swagger.v3.oas.models.parameters.QueryParameter; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; import org.openapitools.codegen.CodegenOperation; import org.openapitools.codegen.languages.ElmClientCodegen; import org.openapitools.codegen.model.OperationMap; @@ -33,6 +30,10 @@ import org.testng.Assert; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + @SuppressWarnings("static-method") public class ElmClientCodegenTest { @DataProvider(name = "recursive-lists-of-uuid") diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/fsharp/FSharpServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/fsharp/FSharpServerCodegenTest.java index a62bb0013c4..e9d975e9f96 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/fsharp/FSharpServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/fsharp/FSharpServerCodegenTest.java @@ -15,7 +15,6 @@ */ package org.openapitools.codegen.fsharp; -import static org.openapitools.codegen.TestUtils.createCodegenModelWrapper; import org.openapitools.codegen.CodegenModel; import org.openapitools.codegen.languages.AbstractFSharpCodegen; @@ -24,16 +23,18 @@ import org.openapitools.codegen.model.ModelsMap; import org.testng.Assert; import org.testng.annotations.Test; +import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.Map; -import java.util.Arrays; + +import static org.openapitools.codegen.TestUtils.createCodegenModelWrapper; @SuppressWarnings("static-method") public class FSharpServerCodegenTest { - @Test(description = "sort models according to dependency order") - public void testModelsAreSortedAccordingToDependencyOrder() throws Exception { + @Test(description = "sort models according to dependency order") + public void testModelsAreSortedAccordingToDependencyOrder() throws Exception { final AbstractFSharpCodegen codegen = new P_AbstractFSharpCodegen(); final CodegenModel wheel = new CodegenModel(); @@ -77,11 +78,11 @@ public class FSharpServerCodegenTest { @Test(description = "modify model imports to explicit set namespace and package name") public void testModelImportsSpecifyNamespaceAndPackageName() throws Exception { - final AbstractFSharpCodegen codegen = new FsharpGiraffeServerCodegen(); - codegen.setPackageName("MyNamespace"); - codegen.setModelPackage("Model"); - String modified = codegen.toModelImport("Foo"); - Assert.assertEquals(modified, "MyNamespace.Model.Foo"); + final AbstractFSharpCodegen codegen = new FsharpGiraffeServerCodegen(); + codegen.setPackageName("MyNamespace"); + codegen.setModelPackage("Model"); + String modified = codegen.toModelImport("Foo"); + Assert.assertEquals(modified, "MyNamespace.Model.Foo"); } private static class P_AbstractFSharpCodegen extends AbstractFSharpCodegen { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/gdscript/GdscriptClientCodegenModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/gdscript/GdscriptClientCodegenModelTest.java index 6eb7cde852e..8d758fd18d8 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/gdscript/GdscriptClientCodegenModelTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/gdscript/GdscriptClientCodegenModelTest.java @@ -1,11 +1,11 @@ package org.openapitools.codegen.gdscript; -import org.openapitools.codegen.*; +import io.swagger.models.Model; +import io.swagger.models.ModelImpl; +import io.swagger.models.properties.LongProperty; +import io.swagger.models.properties.StringProperty; +import org.openapitools.codegen.DefaultCodegen; import org.openapitools.codegen.languages.GdscriptClientCodegen; -import io.swagger.models.*; -import io.swagger.models.properties.*; - -import org.testng.Assert; import org.testng.annotations.Test; @SuppressWarnings("static-method") diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/gdscript/GdscriptClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/gdscript/GdscriptClientCodegenTest.java index 2995a45d208..6c17799ceeb 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/gdscript/GdscriptClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/gdscript/GdscriptClientCodegenTest.java @@ -3,8 +3,6 @@ package org.openapitools.codegen.gdscript; import org.openapitools.codegen.languages.GdscriptClientCodegen; import org.testng.annotations.Test; -import static org.mockito.Mockito.verify; - public class GdscriptClientCodegenTest { GdscriptClientCodegen clientCodegen = new GdscriptClientCodegen(); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/AbstractGoCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/AbstractGoCodegenTest.java index af4f8bdfdd3..aae7102f35b 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/AbstractGoCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/AbstractGoCodegenTest.java @@ -19,11 +19,7 @@ package org.openapitools.codegen.go; import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.media.ArraySchema; -import io.swagger.v3.oas.models.media.IntegerSchema; -import io.swagger.v3.oas.models.media.MapSchema; -import io.swagger.v3.oas.models.media.ObjectSchema; -import io.swagger.v3.oas.models.media.Schema; +import io.swagger.v3.oas.models.media.*; import org.mockito.Answers; import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.languages.AbstractGoCodegen; @@ -43,9 +39,10 @@ public class AbstractGoCodegenTest { * In TEST-NG, test class (and its fields) is only constructed once (vs. for every test in Jupiter), * using @BeforeMethod to have a fresh codegen mock for each test */ - @BeforeMethod void mockAbstractCodegen() { + @BeforeMethod + void mockAbstractCodegen() { codegen = mock( - AbstractGoCodegen.class, withSettings().defaultAnswer(Answers.CALLS_REAL_METHODS).useConstructor() + AbstractGoCodegen.class, withSettings().defaultAnswer(Answers.CALLS_REAL_METHODS).useConstructor() ); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoClientCodegenTest.java index 188cba014ff..15140317d54 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoClientCodegenTest.java @@ -206,7 +206,7 @@ public class GoClientCodegenTest { Assert.assertEquals(codegen.modelFileFolder(), "generated-code/go/model_dir/".replace("/", File.separator)); } - + @Test public void verifyTestFile() throws IOException { File output = Files.createTempDirectory("test").toFile(); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoModelTest.java index f84c74d8ee1..e0829f2e0a6 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoModelTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoModelTest.java @@ -278,14 +278,14 @@ public class GoModelTest { @DataProvider(name = "modelNames") public static Object[][] primeNumbers() { - return new Object[][] { - {"sample", "Sample"}, - {"sample_name", "SampleName"}, - {"sample__name", "SampleName"}, - {"/sample", "Sample"}, - {"\\sample", "Sample"}, - {"sample.name", "SampleName"}, - {"_sample", "Sample"}, + return new Object[][]{ + {"sample", "Sample"}, + {"sample_name", "SampleName"}, + {"sample__name", "SampleName"}, + {"/sample", "Sample"}, + {"\\sample", "Sample"}, + {"sample.name", "SampleName"}, + {"_sample", "Sample"}, }; } @@ -303,9 +303,9 @@ public class GoModelTest { @DataProvider(name = "modelMappedNames") public static Object[][] mappedNames() { - return new Object[][] { - {"mapped", "Remapped", "model_remapped.go"}, - {"mapped_underscore", "RemappedUnderscore", "model_remapped_underscore.go"}, + return new Object[][]{ + {"mapped", "Remapped", "model_remapped.go"}, + {"mapped_underscore", "RemappedUnderscore", "model_remapped_underscore.go"}, }; } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/haskellservant/HaskellServantCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/haskellservant/HaskellServantCodegenTest.java index 4e7b149546b..a1ad2896166 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/haskellservant/HaskellServantCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/haskellservant/HaskellServantCodegenTest.java @@ -16,19 +16,19 @@ package org.openapitools.codegen.haskellservant; -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; +import io.swagger.parser.OpenAPIParser; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.parser.core.models.ParseOptions; import org.openapitools.codegen.ClientOptInput; import org.openapitools.codegen.DefaultGenerator; import org.openapitools.codegen.TestUtils; import org.openapitools.codegen.languages.HaskellServantCodegen; import org.testng.annotations.Test; -import io.swagger.parser.OpenAPIParser; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.parser.core.models.ParseOptions; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; public class HaskellServantCodegenTest { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/haskellyesod/HaskellYesodServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/haskellyesod/HaskellYesodServerCodegenTest.java index 548e08aaa57..5af999a1a13 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/haskellyesod/HaskellYesodServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/haskellyesod/HaskellYesodServerCodegenTest.java @@ -1,11 +1,14 @@ package org.openapitools.codegen.haskellyesod; -import java.util.*; - import org.openapitools.codegen.languages.HaskellYesodServerCodegen; import org.testng.Assert; import org.testng.annotations.Test; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + public class HaskellYesodServerCodegenTest { @Test diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/html/StaticHtmlGeneratorTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/html/StaticHtmlGeneratorTest.java index 14b1a9eab19..352d35abfd1 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/html/StaticHtmlGeneratorTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/html/StaticHtmlGeneratorTest.java @@ -59,8 +59,8 @@ public class StaticHtmlGeneratorTest { @Test(description = "ensure that snake_case property names wont be converted to snakeUnderscorecase") public void testFromPropertyWithUnderscores() { final Schema schema = new Schema() - .description("a sample model with property containing an underscore") - .addProperties("favorite_food", new StringSchema()); + .description("a sample model with property containing an underscore") + .addProperties("favorite_food", new StringSchema()); final OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("UnderscoreTest", schema); final DefaultCodegen codegen = new StaticHtmlGenerator(); codegen.setOpenAPI(openAPI); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenExampleValuesTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenExampleValuesTest.java index 599b40d0b8c..2de28a0a319 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenExampleValuesTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenExampleValuesTest.java @@ -37,9 +37,10 @@ public class AbstractJavaCodegenExampleValuesTest { * In TEST-NG, test class (and its fields) is only constructed once (vs. for every test in Jupiter), * using @BeforeMethod to have a fresh codegen mock for each test */ - @BeforeMethod void mockAbstractCodegen() { + @BeforeMethod + void mockAbstractCodegen() { codegen = Mockito.mock( - AbstractJavaCodegen.class, Mockito.withSettings().defaultAnswer(Answers.CALLS_REAL_METHODS).useConstructor() + AbstractJavaCodegen.class, Mockito.withSettings().defaultAnswer(Answers.CALLS_REAL_METHODS).useConstructor() ); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java index 1dfbd66951a..b85b4554469 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java @@ -21,20 +21,14 @@ import io.swagger.parser.OpenAPIParser; import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.media.*; - import io.swagger.v3.oas.models.parameters.Parameter; import io.swagger.v3.parser.core.models.ParseOptions; - -import java.math.BigDecimal; -import java.time.OffsetDateTime; -import java.time.ZonedDateTime; -import java.util.*; - -import java.util.stream.Collectors; - import org.mockito.Answers; import org.mockito.Mockito; -import org.openapitools.codegen.*; +import org.openapitools.codegen.CodegenConstants; +import org.openapitools.codegen.CodegenModel; +import org.openapitools.codegen.CodegenParameter; +import org.openapitools.codegen.TestUtils; import org.openapitools.codegen.languages.AbstractJavaCodegen; import org.openapitools.codegen.testutils.ConfigAssert; import org.openapitools.codegen.utils.ModelUtils; @@ -43,29 +37,35 @@ import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import java.io.File; +import java.math.BigDecimal; import java.time.LocalDate; +import java.time.OffsetDateTime; import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.util.*; +import java.util.stream.Collectors; import static org.assertj.core.api.Assertions.assertThat; public class AbstractJavaCodegenTest { static final Map FLATTENED_SPEC = Map.of( - "3_0/petstore", TestUtils.parseFlattenSpec("src/test/resources/3_0/petstore.yaml"), - "3_0/mapSchemas", TestUtils.parseFlattenSpec("src/test/resources/3_0/mapSchemas.yaml"), - "3_0/spring/date-time-parameter-types-for-testing", TestUtils.parseFlattenSpec("src/test/resources/3_0/spring/date-time-parameter-types-for-testing.yml") + "3_0/petstore", TestUtils.parseFlattenSpec("src/test/resources/3_0/petstore.yaml"), + "3_0/mapSchemas", TestUtils.parseFlattenSpec("src/test/resources/3_0/mapSchemas.yaml"), + "3_0/spring/date-time-parameter-types-for-testing", TestUtils.parseFlattenSpec("src/test/resources/3_0/spring/date-time-parameter-types-for-testing.yml") ); - + private AbstractJavaCodegen codegen; - + /** * In TEST-NG, test class (and its fields) is only constructed once (vs. for every test in Jupiter), * using @BeforeMethod to have a fresh codegen mock for each test */ - @BeforeMethod void mockAbstractCodegen() { + @BeforeMethod + void mockAbstractCodegen() { codegen = Mockito.mock( - AbstractJavaCodegen.class, Mockito.withSettings().defaultAnswer(Answers.CALLS_REAL_METHODS).useConstructor() - ); + AbstractJavaCodegen.class, Mockito.withSettings().defaultAnswer(Answers.CALLS_REAL_METHODS).useConstructor() + ); } @Test @@ -124,7 +124,7 @@ public class AbstractJavaCodegenTest { @Test public void testPreprocessOpenAPINumVersion() { final OpenAPI openAPIOtherNumVersion = TestUtils.parseFlattenSpec("src/test/resources/2_0/duplicateOperationIds.yaml"); - + codegen.preprocessOpenAPI(openAPIOtherNumVersion); Assert.assertEquals(codegen.getArtifactVersion(), openAPIOtherNumVersion.getInfo().getVersion()); @@ -156,7 +156,7 @@ public class AbstractJavaCodegenTest { Assert.assertEquals(codegen.toVarName("$name"), "$Name"); Assert.assertEquals(codegen.toVarName("1AAaa"), "_1AAaa"); } - + @Test public void convertModelName() { Assert.assertEquals(codegen.toModelName("name"), "Name"); @@ -243,7 +243,7 @@ public class AbstractJavaCodegenTest { codegen.preprocessOpenAPI(TestUtils.createOpenAPI()); assertThat(codegen.getAdditionalModelTypeAnnotations()) - .containsExactlyInAnyOrder("@Bar", "@Foo"); + .containsExactlyInAnyOrder("@Bar", "@Foo"); } @Test @@ -254,7 +254,7 @@ public class AbstractJavaCodegenTest { codegen.preprocessOpenAPI(TestUtils.createOpenAPI()); assertThat(codegen.getAdditionalModelTypeAnnotations()) - .containsExactlyInAnyOrder("@Bar", "@Foo"); + .containsExactlyInAnyOrder("@Bar", "@Foo"); } @Test @@ -265,7 +265,7 @@ public class AbstractJavaCodegenTest { codegen.preprocessOpenAPI(TestUtils.createOpenAPI()); assertThat(codegen.getAdditionalModelTypeAnnotations()) - .containsExactlyInAnyOrder("@Bar", "@Foo"); + .containsExactlyInAnyOrder("@Bar", "@Foo"); } @Test @@ -276,7 +276,7 @@ public class AbstractJavaCodegenTest { codegen.preprocessOpenAPI(TestUtils.createOpenAPI()); assertThat(codegen.getAdditionalModelTypeAnnotations()) - .containsExactlyInAnyOrder("@Bar", "@Foo", "@Foobar"); + .containsExactlyInAnyOrder("@Bar", "@Foo", "@Foobar"); } @Test @@ -287,7 +287,7 @@ public class AbstractJavaCodegenTest { codegen.preprocessOpenAPI(TestUtils.createOpenAPI()); assertThat(codegen.getAdditionalModelTypeAnnotations()) - .containsExactlyInAnyOrder("@Bar", "@Foo", "@Foo"); + .containsExactlyInAnyOrder("@Bar", "@Foo", "@Foo"); } @Test @@ -399,7 +399,7 @@ public class AbstractJavaCodegenTest { codegen.setArtifactVersion(null); OpenAPI api = TestUtils.createOpenAPI(); api.getInfo().setVersion(null); - + codegen.processOpts(); codegen.preprocessOpenAPI(api); @@ -412,7 +412,7 @@ public class AbstractJavaCodegenTest { codegen.additionalProperties().put("snapshotVersion", "true"); OpenAPI api = TestUtils.createOpenAPI(); api.getInfo().setVersion(null); - + codegen.processOpts(); codegen.preprocessOpenAPI(api); @@ -425,7 +425,7 @@ public class AbstractJavaCodegenTest { codegen.additionalProperties().put(CodegenConstants.SNAPSHOT_VERSION, "true"); OpenAPI api = TestUtils.createOpenAPI(); api.getInfo().setVersion("2.0"); - + codegen.processOpts(); codegen.preprocessOpenAPI(api); @@ -484,7 +484,7 @@ public class AbstractJavaCodegenTest { codegen.processOpts(); codegen.preprocessOpenAPI(TestUtils.createOpenAPI()); - + Assert.assertEquals(codegen.getArtifactVersion(), "4.1.2-SNAPSHOT"); } @@ -623,7 +623,7 @@ public class AbstractJavaCodegenTest { codegen.schemaMapping().put("MyStringType", "com.example.foo"); codegen.setOpenAPI(new OpenAPI().components(new Components().addSchemas("MyStringType", new StringSchema()))); Schema schema = new ArraySchema().items(new Schema<>().$ref("#/components/schemas/MyStringType")); - + String defaultValue = codegen.getTypeDeclaration(schema); Assert.assertEquals(defaultValue, "List"); @@ -678,16 +678,16 @@ public class AbstractJavaCodegenTest { @Test public void processOptsBooleanTrueFromString() { codegen.additionalProperties().put(CodegenConstants.SNAPSHOT_VERSION, "true"); - + codegen.preprocessOpenAPI(FLATTENED_SPEC.get("3_0/petstore")); - + Assert.assertTrue((boolean) codegen.additionalProperties().get(CodegenConstants.SNAPSHOT_VERSION)); } @Test public void processOptsBooleanTrueFromBoolean() { codegen.additionalProperties().put(CodegenConstants.SNAPSHOT_VERSION, true); - + codegen.preprocessOpenAPI(FLATTENED_SPEC.get("3_0/petstore")); Assert.assertTrue((boolean) codegen.additionalProperties().get(CodegenConstants.SNAPSHOT_VERSION)); @@ -696,7 +696,7 @@ public class AbstractJavaCodegenTest { @Test public void processOptsBooleanFalseFromString() { codegen.additionalProperties().put(CodegenConstants.SNAPSHOT_VERSION, "false"); - + codegen.preprocessOpenAPI(FLATTENED_SPEC.get("3_0/petstore")); Assert.assertFalse((boolean) codegen.additionalProperties().get(CodegenConstants.SNAPSHOT_VERSION)); @@ -705,16 +705,16 @@ public class AbstractJavaCodegenTest { @Test public void processOptsBooleanFalseFromBoolean() { codegen.additionalProperties().put(CodegenConstants.SNAPSHOT_VERSION, false); - + codegen.preprocessOpenAPI(FLATTENED_SPEC.get("3_0/petstore")); - + Assert.assertFalse((boolean) codegen.additionalProperties().get(CodegenConstants.SNAPSHOT_VERSION)); } @Test public void processOptsBooleanFalseFromGarbage() { codegen.additionalProperties().put(CodegenConstants.SNAPSHOT_VERSION, "blibb"); - + codegen.preprocessOpenAPI(FLATTENED_SPEC.get("3_0/petstore")); Assert.assertFalse((boolean) codegen.additionalProperties().get(CodegenConstants.SNAPSHOT_VERSION)); @@ -840,7 +840,7 @@ public class AbstractJavaCodegenTest { defaultValue = codegen.getTypeDeclaration(schema); Assert.assertEquals(defaultValue, "File"); - schema = new Schema<>().type("string")._enum(List.of("A","B")).pattern("^[a-z]$").maxLength(36); + schema = new Schema<>().type("string")._enum(List.of("A", "B")).pattern("^[a-z]$").maxLength(36); defaultValue = codegen.getTypeDeclaration(schema); Assert.assertEquals(defaultValue, "String"); } @@ -865,7 +865,7 @@ public class AbstractJavaCodegenTest { defaultValue = codegen.getTypeDeclaration(schema); Assert.assertEquals(defaultValue, "List"); - schema = new ArraySchema().items(new Schema<>().type("string")._enum(List.of("A","B")).pattern("^[a-z]$").maxLength(36)); + schema = new ArraySchema().items(new Schema<>().type("string")._enum(List.of("A", "B")).pattern("^[a-z]$").maxLength(36)); defaultValue = codegen.getTypeDeclaration(schema); Assert.assertEquals(defaultValue, "List"); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaCXFClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaCXFClientCodegenTest.java index 1b0eb9772b8..e1e9dd7285c 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaCXFClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaCXFClientCodegenTest.java @@ -115,7 +115,7 @@ public class JavaCXFClientCodegenTest { public void testAdditionalPropertiesPutForConfigValues() throws Exception { final JavaCXFClientCodegen codegen = new JavaCXFClientCodegen(); codegen.additionalProperties().put(CodegenConstants.HIDE_GENERATION_TIMESTAMP, "false"); - codegen.additionalProperties().put(CodegenConstants.INVOKER_PACKAGE,"org.openapitools.client.xyz.invoker"); + codegen.additionalProperties().put(CodegenConstants.INVOKER_PACKAGE, "org.openapitools.client.xyz.invoker"); codegen.processOpts(); ConfigAssert configAssert = new ConfigAssert(codegen.additionalProperties()); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java index 0aaf47677a8..89308ee164c 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java @@ -3308,7 +3308,8 @@ public class JavaClientCodegenTest { ); } - @Test public void testWebClientWithUseSingleRequestParameter_static() { + @Test + public void testWebClientWithUseSingleRequestParameter_static() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() .setGeneratorName("java") diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientDeepObjectTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientDeepObjectTest.java index b3bcd53ef60..029ed897bea 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientDeepObjectTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientDeepObjectTest.java @@ -19,7 +19,9 @@ package org.openapitools.codegen.java; import io.swagger.parser.OpenAPIParser; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.parser.core.models.ParseOptions; -import org.openapitools.codegen.*; +import org.openapitools.codegen.ClientOptInput; +import org.openapitools.codegen.CodegenConstants; +import org.openapitools.codegen.DefaultGenerator; import org.openapitools.codegen.languages.JavaClientCodegen; import org.testng.annotations.Test; @@ -27,6 +29,7 @@ import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; + import static org.openapitools.codegen.TestUtils.assertFileContains; public class JavaClientDeepObjectTest { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaInheritanceTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaInheritanceTest.java index 2fbe08939c9..3a1b96f40ec 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaInheritanceTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaInheritanceTest.java @@ -20,12 +20,7 @@ package org.openapitools.codegen.java; import com.google.common.collect.Sets; import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.media.ComposedSchema; -import io.swagger.v3.oas.models.media.Discriminator; -import io.swagger.v3.oas.models.media.ObjectSchema; -import io.swagger.v3.oas.models.media.Schema; -import io.swagger.v3.oas.models.media.StringSchema; -import java.util.Collections; +import io.swagger.v3.oas.models.media.*; import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.CodegenModel; import org.openapitools.codegen.CodegenProperty; @@ -35,6 +30,8 @@ import org.openapitools.codegen.languages.JavaClientCodegen; import org.testng.Assert; import org.testng.annotations.Test; +import java.util.Collections; + public class JavaInheritanceTest { @Test(description = "convert a composed model with parent") @@ -47,7 +44,7 @@ public class JavaInheritanceTest { OpenAPI openAPI = TestUtils.createOpenAPI(); openAPI.setComponents(new Components() - .addSchemas(parentModel.getName(),parentModel) + .addSchemas(parentModel.getName(), parentModel) .addSchemas(schema.getName(), schema) ); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaIsMatrixParameterTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaIsMatrixParameterTest.java index e86d4a82413..96ddbe1c12b 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaIsMatrixParameterTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaIsMatrixParameterTest.java @@ -9,10 +9,9 @@ package org.openapitools.codegen.java; -import java.util.HashSet; -import java.util.List; -import java.util.Map; - +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.PathItem; +import io.swagger.v3.oas.models.parameters.Parameter; import org.openapitools.codegen.CodegenParameter; import org.openapitools.codegen.DefaultCodegen; import org.openapitools.codegen.TestUtils; @@ -20,9 +19,9 @@ import org.openapitools.codegen.languages.JavaClientCodegen; import org.testng.Assert; import org.testng.annotations.Test; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.PathItem; -import io.swagger.v3.oas.models.parameters.Parameter; +import java.util.HashSet; +import java.util.List; +import java.util.Map; public class JavaIsMatrixParameterTest { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaModelTest.java index d9d3157d8be..2f3070275e3 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaModelTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaModelTest.java @@ -438,6 +438,7 @@ public class JavaModelTest { Assert.assertTrue(property.isContainer); Assert.assertTrue(property.getUniqueItemsBoolean()); } + @Test(description = "convert a model with an array property with item name") public void arrayModelWithItemNameTest() { final Schema propertySchema = new ArraySchema() @@ -1131,14 +1132,14 @@ public class JavaModelTest { Assert.assertEquals(cp.maxLength, Integer.valueOf(10)); Assert.assertEquals(cp.pattern, "^[A-Z]+$"); } - + @Test(description = "convert string property with password format") public void stringPropertyPasswordFormatTest() { OpenAPI openAPI = TestUtils.createOpenAPI(); final Schema property = new StringSchema().format("password"); final DefaultCodegen codegen = new JavaClientCodegen(); codegen.setOpenAPI(openAPI); - + final CodegenProperty cp = codegen.fromProperty("somePropertyWithPasswordFormat", property); Assert.assertEquals(cp.isPassword, true); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaValidationArrayPrimitivesTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaValidationArrayPrimitivesTest.java index 20e05a4244a..322c36f8bd7 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaValidationArrayPrimitivesTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaValidationArrayPrimitivesTest.java @@ -414,19 +414,19 @@ public class JavaValidationArrayPrimitivesTest { } @DataProvider(name = "typeMappings") - public Object[] typeMappings(){ + public Object[] typeMappings() { return new Object[][]{ - {Collections.emptyMap(), "@Valid MyItem" }, - { Map.of("array", "List"), "@Valid MyItem" }, - { Map.of("array", "Set"), "@Valid MyItem" }, - { Collections.emptyMap(), "@Valid MyItem" }, - { Map.of( "MyItem", "com.mycompany.MyItem"), "com.mycompany.@Valid MyItem"}, - { Map.of( "MyItem", "com.mycompany.MyContainer"), "com.mycompany.@Valid MyContainer"} + {Collections.emptyMap(), "@Valid MyItem"}, + {Map.of("array", "List"), "@Valid MyItem"}, + {Map.of("array", "Set"), "@Valid MyItem"}, + {Collections.emptyMap(), "@Valid MyItem"}, + {Map.of("MyItem", "com.mycompany.MyItem"), "com.mycompany.@Valid MyItem"}, + {Map.of("MyItem", "com.mycompany.MyContainer"), "com.mycompany.@Valid MyContainer"} }; } @Test(dataProvider = "typeMappings") - public void typeMappingsForCollections(Map typeMappings, String expectedMyItemArgument) throws IOException { + public void typeMappingsForCollections(Map typeMappings, String expectedMyItemArgument) throws IOException { File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); output.deleteOnExit(); @@ -447,7 +447,7 @@ public class JavaValidationArrayPrimitivesTest { Map files = generator.opts(input).generate().stream() .collect(Collectors.toMap(File::getName, Function.identity())); - String arrayMapping= typeMappings.getOrDefault("array", "List"); + String arrayMapping = typeMappings.getOrDefault("array", "List"); // @Valid@Size(min = 5) is not nice, but not related to this fix // adding a space would probably break many other tests JavaFileAssert.assertThat(files.get("ListOfPatternsApi.java")) @@ -471,7 +471,7 @@ public class JavaValidationArrayPrimitivesTest { JavaFileAssert.assertThat(files.get("ListOfQualifiedItemApi.java")) .fileContains( "ResponseEntity<" + arrayMapping + "<" + myItem + ">>", - arrayMapping + "<"+ expectedMyItemArgument + ">"); + arrayMapping + "<" + expectedMyItemArgument + ">"); if (!typeMappings.containsKey("array")) { // the mapping to Set is done automatically with uniqueItems: true diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/apachehttpclient/ApacheHttpClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/apachehttpclient/ApacheHttpClientCodegenTest.java index 7313557c1c6..43c8306caf4 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/apachehttpclient/ApacheHttpClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/apachehttpclient/ApacheHttpClientCodegenTest.java @@ -76,18 +76,18 @@ public class ApacheHttpClientCodegenTest { output.deleteOnExit(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") - .setLibrary(JavaClientCodegen.APACHE) - .setAdditionalProperties(properties) - .setInputSpec("src/test/resources/3_0/exploded-query-param-array.yaml") - .setOutputDir(output.getAbsolutePath().replace("\\", "/")); + .setGeneratorName("java") + .setLibrary(JavaClientCodegen.APACHE) + .setAdditionalProperties(properties) + .setInputSpec("src/test/resources/3_0/exploded-query-param-array.yaml") + .setOutputDir(output.getAbsolutePath().replace("\\", "/")); final ClientOptInput clientOptInput = configurator.toClientOptInput(); DefaultGenerator generator = new DefaultGenerator(); generator.opts(clientOptInput).generate(); TestUtils.assertFileContains(Paths.get(output + "/src/main/java/xyz/abcdef/api/DefaultApi.java"), - "localVarQueryParams.addAll(apiClient.parameterToPairs(\"multi\", \"values\", queryObject.getValues()))" + "localVarQueryParams.addAll(apiClient.parameterToPairs(\"multi\", \"values\", queryObject.getValues()))" ); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/AbstractAnnotationsAssert.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/AbstractAnnotationsAssert.java index ccda2854b2e..d99ad0a878f 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/AbstractAnnotationsAssert.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/AbstractAnnotationsAssert.java @@ -1,20 +1,19 @@ package org.openapitools.codegen.java.assertions; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.stream.Collectors; - -import org.assertj.core.api.ListAssert; -import org.assertj.core.util.CanIgnoreReturnValue; - import com.github.javaparser.ast.expr.AnnotationExpr; import com.github.javaparser.ast.expr.MarkerAnnotationExpr; import com.github.javaparser.ast.expr.NormalAnnotationExpr; import com.github.javaparser.ast.expr.SingleMemberAnnotationExpr; import com.github.javaparser.ast.nodeTypes.NodeWithSimpleName; import com.google.common.collect.ImmutableMap; +import org.assertj.core.api.ListAssert; +import org.assertj.core.util.CanIgnoreReturnValue; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; @CanIgnoreReturnValue public abstract class AbstractAnnotationsAssert> extends ListAssert { @@ -31,22 +30,22 @@ public abstract class AbstractAnnotationsAssert annotation.getNameAsString().equals(name)); + .withFailMessage("Should have annotation with name: " + name) + .anyMatch(annotation -> annotation.getNameAsString().equals(name)); return myself(); } public ACTUAL doesNotContainWithName(final String name) { super - .withFailMessage("Shouldn't have annotation with name: " + name) - .noneMatch(annotation -> annotation.getNameAsString().equals(name)); + .withFailMessage("Shouldn't have annotation with name: " + name) + .noneMatch(annotation -> annotation.getNameAsString().equals(name)); return myself(); } public ACTUAL containsWithNameAndAttributes(final String name, final Map attributes) { super - .withFailMessage("Should have annotation with name: " + name + " and attributes: " + attributes + ", but was: " + actual) - .anyMatch(annotation -> annotation.getNameAsString().equals(name) && hasAttributes(annotation, attributes)); + .withFailMessage("Should have annotation with name: " + name + " and attributes: " + attributes + ", but was: " + actual) + .anyMatch(annotation -> annotation.getNameAsString().equals(name) && hasAttributes(annotation, attributes)); return myself(); } @@ -54,11 +53,11 @@ public abstract class AbstractAnnotationsAssert actualAttributes; if (annotation instanceof SingleMemberAnnotationExpr) { actualAttributes = ImmutableMap.of( - "value", ((SingleMemberAnnotationExpr) annotation).getMemberValue().toString() + "value", ((SingleMemberAnnotationExpr) annotation).getMemberValue().toString() ); } else if (annotation instanceof NormalAnnotationExpr) { actualAttributes = ((NormalAnnotationExpr) annotation).getPairs().stream() - .collect(Collectors.toMap(NodeWithSimpleName::getNameAsString, pair -> pair.getValue().toString())); + .collect(Collectors.toMap(NodeWithSimpleName::getNameAsString, pair -> pair.getValue().toString())); } else if (annotation instanceof MarkerAnnotationExpr) { actualAttributes = new HashMap<>(); } else { @@ -66,7 +65,7 @@ public abstract class AbstractAnnotationsAssert Objects.equals(actualAttributes.get(expected.getKey()), expected.getValue())); + .allMatch(expected -> Objects.equals(actualAttributes.get(expected.getKey()), expected.getValue())); } @SuppressWarnings("unchecked") diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/AbstractMethodAssert.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/AbstractMethodAssert.java index 1217d87933a..b30e4132f44 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/AbstractMethodAssert.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/AbstractMethodAssert.java @@ -15,18 +15,19 @@ import java.util.stream.Collectors; public abstract class AbstractMethodAssert> extends AbstractAssert, MethodDeclaration> { protected final String methodSignature; - + protected AbstractMethodAssert(MethodDeclaration methodDeclaration, Class selfType) { super(methodDeclaration, selfType); this.methodSignature = methodDeclaration.getDeclarationAsString(); } public abstract JavaFileAssert toFileAssert(); + public abstract AbstractAnnotationsAssert assertMethodAnnotations(); - + public ACTUAL hasReturnType(final String returnType) { Assertions.assertThat(actual.getType().toString()) - .isEqualTo(returnType); + .isEqualTo(returnType); return myself(); } @@ -47,101 +48,101 @@ public abstract class AbstractMethodAssert new IllegalStateException("Not-abstract method doesn't have body")) - .toString(); + .orElseThrow(() -> new IllegalStateException("Not-abstract method doesn't have body")) + .toString(); Assertions.assertThat(actualBody) - .withFailMessage( - "Method's %s body should contains lines\n====\n%s\n====\nbut actually was\n====\n%s\n====", - methodSignature, Arrays.stream(lines).collect(Collectors.joining(System.lineSeparator())), actualBody - ) - .contains(lines); + .withFailMessage( + "Method's %s body should contains lines\n====\n%s\n====\nbut actually was\n====\n%s\n====", + methodSignature, Arrays.stream(lines).collect(Collectors.joining(System.lineSeparator())), actualBody + ) + .contains(lines); return myself(); } public ACTUAL bodyNotContainsLines(final String... lines) { Assertions.assertThat(isWithImplementation()) - .withFailMessage("Method %s is abstract", methodSignature) - .isTrue(); + .withFailMessage("Method %s is abstract", methodSignature) + .isTrue(); final String actualBody = actual.getTokenRange() - .orElseThrow(() -> new IllegalStateException("Not-abstract method doesn't have body")) - .toString(); + .orElseThrow(() -> new IllegalStateException("Not-abstract method doesn't have body")) + .toString(); Assertions.assertThat(actualBody) - .withFailMessage( - "Method's %s body shouldn't contains lines\n====\n%s\n====\nbut actually was\n====\n%s\n====", - methodSignature, Arrays.stream(lines).collect(Collectors.joining(System.lineSeparator())), actualBody - ) - .doesNotContain(lines); + .withFailMessage( + "Method's %s body shouldn't contains lines\n====\n%s\n====\nbut actually was\n====\n%s\n====", + methodSignature, Arrays.stream(lines).collect(Collectors.joining(System.lineSeparator())), actualBody + ) + .doesNotContain(lines); return myself(); } public ACTUAL doesNotHaveImplementation() { Assertions.assertThat(isWithImplementation()) - .withFailMessage("Method %s should be abstract", methodSignature) - .isFalse(); + .withFailMessage("Method %s should be abstract", methodSignature) + .isFalse(); return myself(); } public ACTUAL doesNotHaveComment() { Assertions.assertThat(actual.getJavadocComment()) - .withFailMessage("Method %s shouldn't contains comment, but it does", methodSignature) - .isEmpty(); + .withFailMessage("Method %s shouldn't contains comment, but it does", methodSignature) + .isEmpty(); return myself(); } @SuppressWarnings("OptionalGetWithoutIsPresent") public ACTUAL commentContainsLines(final String... lines) { Assertions.assertThat(actual.getJavadocComment()) - .withFailMessage("Method %s should contains comment, but it doesn't", methodSignature) - .isPresent(); + .withFailMessage("Method %s should contains comment, but it doesn't", methodSignature) + .isPresent(); final String actualComment = actual.getJavadocComment().get().getContent(); Assertions.assertThat(actualComment) - .withFailMessage( - "Method's %s comment should contains lines\n====\n%s\n====\nbut actually was\n====%s\n====", - methodSignature, Arrays.stream(lines).collect(Collectors.joining(System.lineSeparator())), actualComment - ) - .contains(lines); + .withFailMessage( + "Method's %s comment should contains lines\n====\n%s\n====\nbut actually was\n====%s\n====", + methodSignature, Arrays.stream(lines).collect(Collectors.joining(System.lineSeparator())), actualComment + ) + .contains(lines); return myself(); } public ACTUAL noneOfParameterHasAnnotation(final String annotationName) { actual.getParameters() - .forEach( - param -> Assertions.assertThat(param.getAnnotations()) - .withFailMessage("Parameter %s contains annotation %s while it shouldn't", param.getNameAsString(), annotationName) - .extracting(NodeWithName::getNameAsString) - .doesNotContain(annotationName) - ); + .forEach( + param -> Assertions.assertThat(param.getAnnotations()) + .withFailMessage("Parameter %s contains annotation %s while it shouldn't", param.getNameAsString(), annotationName) + .extracting(NodeWithName::getNameAsString) + .doesNotContain(annotationName) + ); return myself(); } private boolean isWithImplementation() { final boolean isInterface = actual.getParentNode() - .filter(ClassOrInterfaceDeclaration.class::isInstance) - .map(ClassOrInterfaceDeclaration.class::cast) - .map(ClassOrInterfaceDeclaration::isInterface) - .orElse(false); + .filter(ClassOrInterfaceDeclaration.class::isInstance) + .map(ClassOrInterfaceDeclaration.class::cast) + .map(ClassOrInterfaceDeclaration::isInterface) + .orElse(false); return !(actual.isAbstract() || (isInterface && !actual.isDefault())); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/ConstructorAssert.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/ConstructorAssert.java index dfe465caba4..57cdccab443 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/ConstructorAssert.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/ConstructorAssert.java @@ -35,63 +35,63 @@ public class ConstructorAssert extends AbstractAssert parameter = actual.getParameterByName(paramName); Assertions.assertThat(parameter) - .withFailMessage("Constructor %s should have parameter %s, but it doesn't", signature, paramName) - .isPresent(); + .withFailMessage("Constructor %s should have parameter %s, but it doesn't", signature, paramName) + .isPresent(); return new ParameterAssert(this, parameter.get()); } public ConstructorAssert doesNotHaveParameter(final String paramName) { Assertions.assertThat(actual.getParameterByName(paramName)) - .withFailMessage("Constructor %s shouldn't have parameter %s, but it does", signature, paramName) - .isEmpty(); + .withFailMessage("Constructor %s shouldn't have parameter %s, but it does", signature, paramName) + .isEmpty(); return this; } public ConstructorAssert bodyContainsLines(final String... lines) { final String actualBody = actual.getTokenRange() - .orElseThrow(() -> new IllegalStateException("Can't get constructor body")) - .toString(); + .orElseThrow(() -> new IllegalStateException("Can't get constructor body")) + .toString(); Assertions.assertThat(actualBody) - .withFailMessage( - "Constructor's %s body should contains lines\n====\n%s\n====\nbut actually was\n====\n%s\n====", - signature, Arrays.stream(lines).collect(Collectors.joining(System.lineSeparator())), actualBody - ) - .contains(lines); + .withFailMessage( + "Constructor's %s body should contains lines\n====\n%s\n====\nbut actually was\n====\n%s\n====", + signature, Arrays.stream(lines).collect(Collectors.joining(System.lineSeparator())), actualBody + ) + .contains(lines); return this; } public ConstructorAssert doesNotHaveComment() { Assertions.assertThat(actual.getJavadocComment()) - .withFailMessage("Constructor %s shouldn't contains comment, but it does", signature) - .isEmpty(); + .withFailMessage("Constructor %s shouldn't contains comment, but it does", signature) + .isEmpty(); return this; } @SuppressWarnings("OptionalGetWithoutIsPresent") public ConstructorAssert commentContainsLines(final String... lines) { Assertions.assertThat(actual.getJavadocComment()) - .withFailMessage("Constructor %s should contains comment, but it doesn't", signature) - .isPresent(); + .withFailMessage("Constructor %s should contains comment, but it doesn't", signature) + .isPresent(); final String actualComment = actual.getJavadocComment().get().getContent(); Assertions.assertThat(actualComment) - .withFailMessage( - "Constructor's %s comment should contains lines\n====\n%s\n====\nbut actually was\n====%s\n====", - signature, Arrays.stream(lines).collect(Collectors.joining(System.lineSeparator())), actualComment - ) - .contains(lines); + .withFailMessage( + "Constructor's %s comment should contains lines\n====\n%s\n====\nbut actually was\n====%s\n====", + signature, Arrays.stream(lines).collect(Collectors.joining(System.lineSeparator())), actualComment + ) + .contains(lines); return this; } public ConstructorAssert noneOfParameterHasAnnotation(final String annotationName) { actual.getParameters() - .forEach( - param -> Assertions.assertThat(param.getAnnotations()) - .withFailMessage("Parameter %s contains annotation %s while it shouldn't", param.getNameAsString(), annotationName) - .extracting(NodeWithName::getNameAsString) - .doesNotContain(annotationName) - ); + .forEach( + param -> Assertions.assertThat(param.getAnnotations()) + .withFailMessage("Parameter %s contains annotation %s while it shouldn't", param.getNameAsString(), annotationName) + .extracting(NodeWithName::getNameAsString) + .doesNotContain(annotationName) + ); return this; } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/InnerClassAssert.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/InnerClassAssert.java index d62cb196f40..13d7546e09c 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/InnerClassAssert.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/InnerClassAssert.java @@ -13,7 +13,7 @@ public class InnerClassAssert extends AbstractAssert methods = paramTypes.length == 0 - ? innerClass.getMethodsByName(methodName) - : innerClass.getMethodsBySignature(methodName, paramTypes); - final String failMessage = (methods.isEmpty() - ? "No methods matching `%s(%s)` exist" - : "There are " + methods.size() + " methods matching `%s(%s)`") - + " in inner class `" + innerClass.getName() + "`"; - + final List methods = paramTypes.length == 0 + ? innerClass.getMethodsByName(methodName) + : innerClass.getMethodsBySignature(methodName, paramTypes); + + final String failMessage = (methods.isEmpty() + ? "No methods matching `%s(%s)` exist" + : "There are " + methods.size() + " methods matching `%s(%s)`") + + " in inner class `" + innerClass.getName() + "`"; + Assertions.assertThat(methods) - .withFailMessage(failMessage, methodName, Arrays.toString(paramTypes).replaceAll("\\[]", "")) - .hasSize(1); - + .withFailMessage(failMessage, methodName, Arrays.toString(paramTypes).replaceAll("\\[]", "")) + .hasSize(1); + return new MethodAssert(this, methods.get(0)); } - + public static class MethodAssert extends AbstractMethodAssert { - + private final InnerClassAssert innerClassAssert; MethodAssert(InnerClassAssert innerClassAssert, MethodDeclaration methodDeclaration) { @@ -57,7 +57,7 @@ public class InnerClassAssert extends AbstractAssert { private final MethodAssert parent; - + protected MethodAnnotationsAssert(MethodAssert methodAssert, List annotationExpr) { super(annotationExpr); parent = methodAssert; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/JavaFileAssert.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/JavaFileAssert.java index edb3946d192..d6c9d229ea2 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/JavaFileAssert.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/JavaFileAssert.java @@ -42,76 +42,76 @@ public class JavaFileAssert extends AbstractAssert methods = paramTypes.length == 0 - ? actual.getType(0).getMethodsByName(methodName) - : actual.getType(0).getMethodsBySignature(methodName, paramTypes); + ? actual.getType(0).getMethodsByName(methodName) + : actual.getType(0).getMethodsBySignature(methodName, paramTypes); String message = paramTypes.length == 0 - ? "Expected not to find a single method %s, but found " + methods.size() - : "Expected not to find a method %s with parameter(s) %s, but found " + methods.size(); + ? "Expected not to find a single method %s, but found " + methods.size() + : "Expected not to find a method %s with parameter(s) %s, but found " + methods.size(); Assertions.assertThat(methods) - .withFailMessage(message, methodName, Arrays.toString(paramTypes)) - .isEmpty(); + .withFailMessage(message, methodName, Arrays.toString(paramTypes)) + .isEmpty(); return this; } public MethodAssert assertMethod(final String methodName, final String... paramTypes) { List methods = paramTypes.length == 0 - ? actual.getType(0).getMethodsByName(methodName) - : actual.getType(0).getMethodsBySignature(methodName, paramTypes); + ? actual.getType(0).getMethodsByName(methodName) + : actual.getType(0).getMethodsBySignature(methodName, paramTypes); String message = paramTypes.length == 0 - ? "Expected to be a single method %s, but found " + methods.size() - : "Expected to be a single method %s with parameter(s) %s, but found " + methods.size(); + ? "Expected to be a single method %s, but found " + methods.size() + : "Expected to be a single method %s with parameter(s) %s, but found " + methods.size(); Assertions.assertThat(methods) - .withFailMessage(message, methodName, Arrays.toString(paramTypes)) - .hasSize(1); + .withFailMessage(message, methodName, Arrays.toString(paramTypes)) + .hasSize(1); return new MethodAssert(this, methods.get(0)); } - + @SuppressWarnings("OptionalGetWithoutIsPresent") public InnerClassAssert assertInnerClass(final String className) { Optional innerClass = actual.getType(0).getMembers().stream() - .filter(BodyDeclaration::isClassOrInterfaceDeclaration) - .map(clazz -> (ClassOrInterfaceDeclaration) clazz) - .filter(clazz -> clazz.isInnerClass() || clazz.isStatic() && clazz.getNameAsString().equals(className)) - .findFirst(); + .filter(BodyDeclaration::isClassOrInterfaceDeclaration) + .map(clazz -> (ClassOrInterfaceDeclaration) clazz) + .filter(clazz -> clazz.isInnerClass() || clazz.isStatic() && clazz.getNameAsString().equals(className)) + .findFirst(); Assertions.assertThat(innerClass) - .withFailMessage("No inner class with name %s found", className) - .isPresent(); - - return new InnerClassAssert(this, innerClass.get ()); + .withFailMessage("No inner class with name %s found", className) + .isPresent(); + + return new InnerClassAssert(this, innerClass.get()); } @SuppressWarnings("OptionalGetWithoutIsPresent") public ConstructorAssert assertConstructor(final String... paramTypes) { Optional constructorDeclaration = actual.getType(0).getConstructorByParameterTypes(paramTypes); Assertions.assertThat(constructorDeclaration) - .withFailMessage("No constructor with parameter(s) %s", Arrays.toString(paramTypes)) - .isPresent(); + .withFailMessage("No constructor with parameter(s) %s", Arrays.toString(paramTypes)) + .isPresent(); return new ConstructorAssert(this, constructorDeclaration.get()); } @@ -128,26 +128,26 @@ public class JavaFileAssert extends AbstractAssert fieldOptional = actual.getType(0).getMembers().stream() - .filter(FieldDeclaration.class::isInstance) - .map(FieldDeclaration.class::cast) - .filter(field -> field.getVariables().getFirst().map(var -> var.getNameAsString().equals(propertyName)).orElse(Boolean.FALSE)) - .findFirst(); + .filter(FieldDeclaration.class::isInstance) + .map(FieldDeclaration.class::cast) + .filter(field -> field.getVariables().getFirst().map(var -> var.getNameAsString().equals(propertyName)).orElse(Boolean.FALSE)) + .findFirst(); Assertions.assertThat(fieldOptional) - .withFailMessage("Should have field with name %s", propertyName) - .isPresent(); + .withFailMessage("Should have field with name %s", propertyName) + .isPresent(); return new PropertyAssert(this, fieldOptional.get()); } public JavaFileAssert hasImports(final String... imports) { Assertions.assertThat(actual.getImports().stream().map(NodeWithName::getNameAsString)) - .containsAll(Arrays.asList(imports)); + .containsAll(Arrays.asList(imports)); return this; } public JavaFileAssert hasNoImports(final String... imports) { Assertions.assertThat(actual.getImports().stream().map(NodeWithName::getNameAsString)) - .doesNotContainAnyElementsOf(Arrays.asList(imports)); + .doesNotContainAnyElementsOf(Arrays.asList(imports)); return this; } @@ -158,14 +158,14 @@ public class JavaFileAssert extends AbstractAssert new IllegalStateException("Empty file")) - .toString(); + .orElseThrow(() -> new IllegalStateException("Empty file")) + .toString(); Assertions.assertThat(actualBody) - .withFailMessage( - "File should contains lines\n====\n%s\n====\nbut actually was\n====\n%s\n====", - Arrays.stream(lines).collect(Collectors.joining(System.lineSeparator())), actualBody - ) - .contains(lines); + .withFailMessage( + "File should contains lines\n====\n%s\n====\nbut actually was\n====\n%s\n====", + Arrays.stream(lines).collect(Collectors.joining(System.lineSeparator())), actualBody + ) + .contains(lines); return this; } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/MethodAnnotationsAssert.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/MethodAnnotationsAssert.java index bef34665a72..53fd0d93b9e 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/MethodAnnotationsAssert.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/MethodAnnotationsAssert.java @@ -1,10 +1,9 @@ package org.openapitools.codegen.java.assertions; -import java.util.List; - +import com.github.javaparser.ast.expr.AnnotationExpr; import org.assertj.core.util.CanIgnoreReturnValue; -import com.github.javaparser.ast.expr.AnnotationExpr; +import java.util.List; @CanIgnoreReturnValue public class MethodAnnotationsAssert extends AbstractAnnotationsAssert { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/MethodAssert.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/MethodAssert.java index bdd4f776e76..0f33471c60a 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/MethodAssert.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/MethodAssert.java @@ -30,8 +30,8 @@ public class MethodAssert extends AbstractMethodAssert { public ParameterAssert assertParameter(final String paramName) { final Optional parameter = actual.getParameterByName(paramName); Assertions.assertThat(parameter) - .withFailMessage("Method %s should have parameter %s, but it doesn't", methodSignature, paramName) - .isPresent(); + .withFailMessage("Method %s should have parameter %s, but it doesn't", methodSignature, paramName) + .isPresent(); return new ParameterAssert(this, parameter.get()); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/ParameterAnnotationsAssert.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/ParameterAnnotationsAssert.java index bf3cdbcb952..30830e9db62 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/ParameterAnnotationsAssert.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/ParameterAnnotationsAssert.java @@ -1,10 +1,9 @@ package org.openapitools.codegen.java.assertions; -import java.util.List; - +import com.github.javaparser.ast.expr.AnnotationExpr; import org.assertj.core.util.CanIgnoreReturnValue; -import com.github.javaparser.ast.expr.AnnotationExpr; +import java.util.List; @CanIgnoreReturnValue public class ParameterAnnotationsAssert extends AbstractAnnotationsAssert { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/ParameterAssert.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/ParameterAssert.java index a878ad2cd9b..c9296c63e46 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/ParameterAssert.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/ParameterAssert.java @@ -1,11 +1,10 @@ package org.openapitools.codegen.java.assertions; +import com.github.javaparser.ast.body.Parameter; import org.assertj.core.api.Assertions; import org.assertj.core.api.ObjectAssert; import org.assertj.core.util.CanIgnoreReturnValue; -import com.github.javaparser.ast.body.Parameter; - @CanIgnoreReturnValue public class ParameterAssert extends ObjectAssert { @@ -40,8 +39,8 @@ public class ParameterAssert extends ObjectAssert { public ParameterAssert hasType(final String expectedType) { Assertions.assertThat(actual.getTypeAsString()) - .withFailMessage("Expected parameter to have type %s, but was %s", expectedType, actual.getTypeAsString()) - .isEqualTo(expectedType); + .withFailMessage("Expected parameter to have type %s, but was %s", expectedType, actual.getTypeAsString()) + .isEqualTo(expectedType); return this; } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/PropertyAnnotationsAssert.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/PropertyAnnotationsAssert.java index 25b09f31116..8491cd1e753 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/PropertyAnnotationsAssert.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/PropertyAnnotationsAssert.java @@ -1,10 +1,9 @@ package org.openapitools.codegen.java.assertions; -import java.util.List; - +import com.github.javaparser.ast.expr.AnnotationExpr; import org.assertj.core.util.CanIgnoreReturnValue; -import com.github.javaparser.ast.expr.AnnotationExpr; +import java.util.List; @CanIgnoreReturnValue public class PropertyAnnotationsAssert extends AbstractAnnotationsAssert { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/PropertyAssert.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/PropertyAssert.java index 2ae08ad5506..e598c210a1f 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/PropertyAssert.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/PropertyAssert.java @@ -1,11 +1,10 @@ package org.openapitools.codegen.java.assertions; +import com.github.javaparser.ast.body.FieldDeclaration; import org.assertj.core.api.Assertions; import org.assertj.core.api.ObjectAssert; import org.assertj.core.util.CanIgnoreReturnValue; -import com.github.javaparser.ast.body.FieldDeclaration; - @CanIgnoreReturnValue public class PropertyAssert extends ObjectAssert { @@ -22,8 +21,8 @@ public class PropertyAssert extends ObjectAssert { public PropertyAssert withType(final String expectedType) { Assertions.assertThat(actual.getElementType().toString()) - .withFailMessage("Expected property %s to have type %s, but was %s", actual.getVariable(0).getNameAsString(), expectedType, actual.getElementType().toString()) - .isEqualTo(expectedType); + .withFailMessage("Expected property %s to have type %s, but was %s", actual.getVariable(0).getNameAsString(), expectedType, actual.getElementType().toString()) + .isEqualTo(expectedType); return this; } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/TypeAnnotationsAssert.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/TypeAnnotationsAssert.java index 8da97accd1b..abad31de31e 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/TypeAnnotationsAssert.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/assertions/TypeAnnotationsAssert.java @@ -1,10 +1,9 @@ package org.openapitools.codegen.java.assertions; -import java.util.List; - +import com.github.javaparser.ast.expr.AnnotationExpr; import org.assertj.core.util.CanIgnoreReturnValue; -import com.github.javaparser.ast.expr.AnnotationExpr; +import java.util.List; @CanIgnoreReturnValue public class TypeAnnotationsAssert extends AbstractAnnotationsAssert { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/helidon/JavaHelidonCommonCodegenPackagePrefixTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/helidon/JavaHelidonCommonCodegenPackagePrefixTest.java index f8d50b337db..131e5751b8b 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/helidon/JavaHelidonCommonCodegenPackagePrefixTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/helidon/JavaHelidonCommonCodegenPackagePrefixTest.java @@ -16,16 +16,6 @@ */ package org.openapitools.codegen.java.helidon; -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.DefaultGenerator; import org.openapitools.codegen.TestUtils; @@ -35,187 +25,193 @@ import org.testng.annotations.BeforeMethod; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.*; + public class JavaHelidonCommonCodegenPackagePrefixTest { - private static final String INPUT_FILE = "src/test/resources/3_0/helidon/petstore-for-testing.yaml"; - private static final String PACKAGE_PREFIX_KEY = "rootJavaEEPackage"; - private static final String HELIDON_VERSION_KEY = "helidonVersion"; + private static final String INPUT_FILE = "src/test/resources/3_0/helidon/petstore-for-testing.yaml"; + private static final String PACKAGE_PREFIX_KEY = "rootJavaEEPackage"; + private static final String HELIDON_VERSION_KEY = "helidonVersion"; - private static final String EXCEPTION_MESSAGE_FRAGMENT = "namespace but options specified"; + private static final String EXCEPTION_MESSAGE_FRAGMENT = "namespace but options specified"; - // The generated SE client does not depend on the jakarta/javax imports, so no need to test it. - private static final List> GENERATOR_LIBRARY_PAIRS = new ArrayList<>() { - { - add(listOf("java-helidon-client", "mp")); - add(listOf("java-helidon-server", "se")); - add(listOf("java-helidon-server", "mp")); - } - }; + // The generated SE client does not depend on the jakarta/javax imports, so no need to test it. + private static final List> GENERATOR_LIBRARY_PAIRS = new ArrayList<>() { + { + add(listOf("java-helidon-client", "mp")); + add(listOf("java-helidon-server", "se")); + add(listOf("java-helidon-server", "mp")); + } + }; - private String outputDir; + private String outputDir; - @BeforeMethod - public void setup() throws IOException { - File output = Files.createTempDirectory("test").toFile(); - output.deleteOnExit(); - outputDir = output.getAbsolutePath().replace('\\', '/'); - } + @BeforeMethod + public void setup() throws IOException { + File output = Files.createTempDirectory("test").toFile(); + output.deleteOnExit(); + outputDir = output.getAbsolutePath().replace('\\', '/'); + } - @Test(dataProvider = "valid") - public void checkValidCombinations(String explicitHelidonVersion, - String explicitPrefix, - String expectedPrefix, - String generatorName, - String libraryName) { - List files = runTest(explicitHelidonVersion, explicitPrefix, generatorName, libraryName); - checkFileForPackagePrefix(files, generatorName, libraryName, expectedPrefix); - } - - @Test(dataProvider = "invalid") - public void checkInvalidCombinations(String explicitHelidonVersion, + @Test(dataProvider = "valid") + public void checkValidCombinations(String explicitHelidonVersion, String explicitPrefix, + String expectedPrefix, String generatorName, String libraryName) { - IllegalArgumentException e = Assert.expectThrows( - "Run invalid combo: " + assertMsg(explicitHelidonVersion, explicitPrefix, generatorName, libraryName), - IllegalArgumentException.class, - () -> runTest(explicitHelidonVersion, explicitPrefix, generatorName, libraryName) - ); - Assert.assertTrue( - e.getMessage().contains(EXCEPTION_MESSAGE_FRAGMENT), - "Exception message for " + assertMsg(explicitHelidonVersion, explicitPrefix, generatorName, libraryName) - + "'" + e.getMessage() + "' containing '" + EXCEPTION_MESSAGE_FRAGMENT + "'" - ); - } - - private static String assertMsg(String explicitHelidonVersion, String explicitPrefix, String generatorName, String libraryName) { - return "Explicit version: " + (explicitHelidonVersion == null ? "null" : explicitHelidonVersion) - + ", explicit prefix: " + (explicitPrefix == null ? "null" : explicitPrefix) - + ", generatorName: " + generatorName - + ", libraryName: " + libraryName; - } - - @DataProvider(name = "valid") - public Object [][] createValidData() { - Object [][] settingsForEachRun = new Object[][] { - {null, null, "jakarta"}, - {"3.0.1", null, "jakarta"}, - {"2.5.3", null, "javax"}, - {null, "jakarta", "jakarta"}, - {"3.0.1", "jakarta", "jakarta"}, - {"2.5.3", "javax", "javax"} - }; - - return prepareTestData(settingsForEachRun); - } - - @DataProvider(name = "invalid") - public Object [][] createInvalidData() { - Object [][] settingsForEachRun = new Object[][] { - {"2.5.3", "jakarta"}, - {null, "javax"}, - {"3.0.1", "javax"} - }; - - return prepareTestData(settingsForEachRun); - } - - /** - * Creates test data for each tested generator/library pair for all the version/prefix settings. - * - * @param settingsForEachRun version/prefix settings to test - * @return test data for driving a test method - */ - private Object[][] prepareTestData(Object[][] settingsForEachRun) { - Object [][] result = new Object[GENERATOR_LIBRARY_PAIRS.size() * settingsForEachRun.length][]; - int resultSlot = 0; - - int settingsLength = settingsForEachRun[0].length; - for (List generatorLibraryPair : GENERATOR_LIBRARY_PAIRS) { - for (Object[] settings : settingsForEachRun) { - result[resultSlot] = Arrays.copyOf(settings, settingsLength + 2); - result[resultSlot][settingsLength] = generatorLibraryPair.get(0); // generator - result[resultSlot][settingsLength + 1] = generatorLibraryPair.get(1); // library - resultSlot++; - } - } - return result; - } - - private static List listOf(String... values) { - return new ArrayList<>(Arrays.asList(values)); - } - - private List runTest(String explicitHelidonVersion, - String explicitPackagePrefix, - String generatorName, - String libraryName) { - Map additionalProperties = new HashMap<>(); - CodegenConfigurator clientConfigurator = new CodegenConfigurator() - .setGeneratorName(generatorName) - .setLibrary(libraryName) - .setInputSpec(INPUT_FILE) - .setOutputDir(outputDir); - - if (explicitHelidonVersion != null) { - additionalProperties.put(HELIDON_VERSION_KEY, explicitHelidonVersion); - } - if (explicitPackagePrefix != null) { - additionalProperties.put(PACKAGE_PREFIX_KEY, explicitPackagePrefix); + List files = runTest(explicitHelidonVersion, explicitPrefix, generatorName, libraryName); + checkFileForPackagePrefix(files, generatorName, libraryName, expectedPrefix); } - // Use JSON-B for serialization to force jakarta or json imports into the generated POJOs. - additionalProperties.put(CodegenConstants.SERIALIZATION_LIBRARY, "jsonb"); - - clientConfigurator.setAdditionalProperties(additionalProperties); - - DefaultGenerator generator = new DefaultGenerator(); - generator.opts(clientConfigurator.toClientOptInput()); - - return generator.generate(); - } - - private void checkFileForPackagePrefix(List files, + @Test(dataProvider = "invalid") + public void checkInvalidCombinations(String explicitHelidonVersion, + String explicitPrefix, String generatorName, - String libraryName, - String expectedPrefix) { - // The SE client does not use the rootJavaEEPackage so we don't check any file in that case. - if (generatorName.equals("java-helidon-client") && libraryName.equals("se")) { - return; + String libraryName) { + IllegalArgumentException e = Assert.expectThrows( + "Run invalid combo: " + assertMsg(explicitHelidonVersion, explicitPrefix, generatorName, libraryName), + IllegalArgumentException.class, + () -> runTest(explicitHelidonVersion, explicitPrefix, generatorName, libraryName) + ); + Assert.assertTrue( + e.getMessage().contains(EXCEPTION_MESSAGE_FRAGMENT), + "Exception message for " + assertMsg(explicitHelidonVersion, explicitPrefix, generatorName, libraryName) + + "'" + e.getMessage() + "' containing '" + EXCEPTION_MESSAGE_FRAGMENT + "'" + ); } - // The MP client and server generator create PetAPI containing a wildcard include. - if (libraryName.equals("mp")) { - TestUtils.ensureContainsFile(files, Paths.get(outputDir).toFile(), generatedFilePath(generatorName, libraryName)); - TestUtils.assertFileContains(Paths.get(outputDir + "/" + generatedFilePath(generatorName, libraryName)), - "import " + expectedPrefix + ".ws.rs.*;"); - return; + private static String assertMsg(String explicitHelidonVersion, String explicitPrefix, String generatorName, String libraryName) { + return "Explicit version: " + (explicitHelidonVersion == null ? "null" : explicitHelidonVersion) + + ", explicit prefix: " + (explicitPrefix == null ? "null" : explicitPrefix) + + ", generatorName: " + generatorName + + ", libraryName: " + libraryName; } - // The SE server generates 'import {{rootJavaEEPackage}}.json.stream.JsonParser;' in POJOs for JSON-B seriolization. - TestUtils.ensureContainsFile(files, Paths.get(outputDir).toFile(), generatedFilePath(generatorName, libraryName)); - TestUtils.assertFileContains(Paths.get(outputDir + "/" + generatedFilePath(generatorName, libraryName)), - "import " + expectedPrefix + ".json.stream.JsonParser;"); - } + @DataProvider(name = "valid") + public Object[][] createValidData() { + Object[][] settingsForEachRun = new Object[][]{ + {null, null, "jakarta"}, + {"3.0.1", null, "jakarta"}, + {"2.5.3", null, "javax"}, + {null, "jakarta", "jakarta"}, + {"3.0.1", "jakarta", "jakarta"}, + {"2.5.3", "javax", "javax"} + }; - private String generatedFilePath(String generatorName, String libraryName) { - // The path to the file depends on client or server. - String serverOrClient = (generatorName.contains("server") ? "server" : "client"); + return prepareTestData(settingsForEachRun); + } - // The file to check depends on the generator: e.g., PetApi for client, PetService for server. - String apiFileNameSuffix = (generatorName.contains("server") ? "Service" : "Api"); + @DataProvider(name = "invalid") + public Object[][] createInvalidData() { + Object[][] settingsForEachRun = new Object[][]{ + {"2.5.3", "jakarta"}, + {null, "javax"}, + {"3.0.1", "javax"} + }; - // For MP, check api/PetApi or api/PetService; for SE check model/Pet.java. - String filePath = (libraryName.equals("mp") - ? "api/Pet" + apiFileNameSuffix - : "model/Pet") - + ".java"; + return prepareTestData(settingsForEachRun); + } - return "src/main/java/org/openapitools/" - + serverOrClient - + "/" - + filePath; - } + /** + * Creates test data for each tested generator/library pair for all the version/prefix settings. + * + * @param settingsForEachRun version/prefix settings to test + * @return test data for driving a test method + */ + private Object[][] prepareTestData(Object[][] settingsForEachRun) { + Object[][] result = new Object[GENERATOR_LIBRARY_PAIRS.size() * settingsForEachRun.length][]; + int resultSlot = 0; + + int settingsLength = settingsForEachRun[0].length; + for (List generatorLibraryPair : GENERATOR_LIBRARY_PAIRS) { + for (Object[] settings : settingsForEachRun) { + result[resultSlot] = Arrays.copyOf(settings, settingsLength + 2); + result[resultSlot][settingsLength] = generatorLibraryPair.get(0); // generator + result[resultSlot][settingsLength + 1] = generatorLibraryPair.get(1); // library + resultSlot++; + } + } + return result; + } + + private static List listOf(String... values) { + return new ArrayList<>(Arrays.asList(values)); + } + + private List runTest(String explicitHelidonVersion, + String explicitPackagePrefix, + String generatorName, + String libraryName) { + Map additionalProperties = new HashMap<>(); + CodegenConfigurator clientConfigurator = new CodegenConfigurator() + .setGeneratorName(generatorName) + .setLibrary(libraryName) + .setInputSpec(INPUT_FILE) + .setOutputDir(outputDir); + + if (explicitHelidonVersion != null) { + additionalProperties.put(HELIDON_VERSION_KEY, explicitHelidonVersion); + } + if (explicitPackagePrefix != null) { + additionalProperties.put(PACKAGE_PREFIX_KEY, explicitPackagePrefix); + } + + // Use JSON-B for serialization to force jakarta or json imports into the generated POJOs. + additionalProperties.put(CodegenConstants.SERIALIZATION_LIBRARY, "jsonb"); + + clientConfigurator.setAdditionalProperties(additionalProperties); + + DefaultGenerator generator = new DefaultGenerator(); + generator.opts(clientConfigurator.toClientOptInput()); + + return generator.generate(); + } + + private void checkFileForPackagePrefix(List files, + String generatorName, + String libraryName, + String expectedPrefix) { + // The SE client does not use the rootJavaEEPackage so we don't check any file in that case. + if (generatorName.equals("java-helidon-client") && libraryName.equals("se")) { + return; + } + + // The MP client and server generator create PetAPI containing a wildcard include. + if (libraryName.equals("mp")) { + TestUtils.ensureContainsFile(files, Paths.get(outputDir).toFile(), generatedFilePath(generatorName, libraryName)); + TestUtils.assertFileContains(Paths.get(outputDir + "/" + generatedFilePath(generatorName, libraryName)), + "import " + expectedPrefix + ".ws.rs.*;"); + return; + } + + // The SE server generates 'import {{rootJavaEEPackage}}.json.stream.JsonParser;' in POJOs for JSON-B seriolization. + TestUtils.ensureContainsFile(files, Paths.get(outputDir).toFile(), generatedFilePath(generatorName, libraryName)); + TestUtils.assertFileContains(Paths.get(outputDir + "/" + generatedFilePath(generatorName, libraryName)), + "import " + expectedPrefix + ".json.stream.JsonParser;"); + } + + private String generatedFilePath(String generatorName, String libraryName) { + // The path to the file depends on client or server. + String serverOrClient = (generatorName.contains("server") ? "server" : "client"); + + // The file to check depends on the generator: e.g., PetApi for client, PetService for server. + String apiFileNameSuffix = (generatorName.contains("server") ? "Service" : "Api"); + + // For MP, check api/PetApi or api/PetService; for SE check model/Pet.java. + String filePath = (libraryName.equals("mp") + ? "api/Pet" + apiFileNameSuffix + : "model/Pet") + + ".java"; + + return "src/main/java/org/openapitools/" + + serverOrClient + + "/" + + filePath; + } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/helidon/JavaHelidonCommonCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/helidon/JavaHelidonCommonCodegenTest.java index 5cebf0e858a..4acb8b740b4 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/helidon/JavaHelidonCommonCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/helidon/JavaHelidonCommonCodegenTest.java @@ -17,15 +17,6 @@ package org.openapitools.codegen.java.helidon; -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; - import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.DefaultGenerator; import org.openapitools.codegen.TestUtils; @@ -35,6 +26,15 @@ import org.testng.Assert; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; + public class JavaHelidonCommonCodegenTest { private DefaultGenerator mpServerGenerator; @@ -132,12 +132,12 @@ public class JavaHelidonCommonCodegenTest { expected = JavaHelidonCommonCodegen.chooseVersion(helidonVersion); } generator.opts(configurator.setAdditionalProperties(additionalProperties) - .toClientOptInput()); + .toClientOptInput()); List files = generator.generate(); TestUtils.ensureContainsFile(files, Paths.get(outputDir).toFile(), "pom.xml"); TestUtils.assertFileContains(Paths.get(outputDir + "/pom.xml"), - String.format(Locale.ROOT, "%s", expected)); + String.format(Locale.ROOT, "%s", expected)); } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/AbstractJavaJAXRSServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/AbstractJavaJAXRSServerCodegenTest.java index 9e65458eb1a..12dd7b8c74d 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/AbstractJavaJAXRSServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/AbstractJavaJAXRSServerCodegenTest.java @@ -30,7 +30,9 @@ import org.testng.Assert; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.withSettings; @@ -43,9 +45,10 @@ public class AbstractJavaJAXRSServerCodegenTest { * In TEST-NG, test class (and its fields) is only constructed once (vs. for every test in Jupiter), * using @BeforeMethod to have a fresh codegen mock for each test */ - @BeforeMethod void mockAbstractCodegen() { + @BeforeMethod + void mockAbstractCodegen() { codegen = mock( - AbstractJavaJAXRSServerCodegen.class, withSettings().defaultAnswer(Answers.CALLS_REAL_METHODS).useConstructor() + AbstractJavaJAXRSServerCodegen.class, withSettings().defaultAnswer(Answers.CALLS_REAL_METHODS).useConstructor() ); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSCXFCDIServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSCXFCDIServerCodegenTest.java index 2f528391173..33731edb652 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSCXFCDIServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSCXFCDIServerCodegenTest.java @@ -1,11 +1,9 @@ package org.openapitools.codegen.java.jaxrs; -import java.io.File; -import java.nio.file.Files; -import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; - +import com.google.common.collect.ImmutableMap; +import io.swagger.parser.OpenAPIParser; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.parser.core.models.ParseOptions; import org.openapitools.codegen.ClientOptInput; import org.openapitools.codegen.DefaultGenerator; import org.openapitools.codegen.java.assertions.JavaFileAssert; @@ -14,11 +12,11 @@ import org.openapitools.codegen.languages.features.CXFServerFeatures; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; -import com.google.common.collect.ImmutableMap; - -import io.swagger.parser.OpenAPIParser; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.parser.core.models.ParseOptions; +import java.io.File; +import java.nio.file.Files; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; public class JavaJAXRSCXFCDIServerCodegenTest extends JavaJaxrsBaseTest { @@ -33,69 +31,69 @@ public class JavaJAXRSCXFCDIServerCodegenTest extends JavaJaxrsBaseTest { output.deleteOnExit(); OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/3_0/issue_8535.yaml", null, new ParseOptions()).getOpenAPI(); + .readLocation("src/test/resources/3_0/issue_8535.yaml", null, new ParseOptions()).getOpenAPI(); codegen.setOutputDir(output.getAbsolutePath()); codegen.additionalProperties().put(CXFServerFeatures.LOAD_TEST_DATA_FROM_FILE, "true"); ClientOptInput input = new ClientOptInput() - .openAPI(openAPI) - .config(codegen); + .openAPI(openAPI) + .config(codegen); DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(Collectors.toMap(File::getName, Function.identity())); JavaFileAssert.assertThat(files.get("TestHeadersApi.java")) - .assertMethod("headersTest") + .assertMethod("headersTest") .assertParameter("headerNumber").hasType("BigDecimal") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"11.2\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"11.2\"")) .toParameter().toMethod() .assertParameter("headerString").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\"")) .toParameter().toMethod() .assertParameter("headerStringWrapped").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\"")) .toParameter().toMethod() .assertParameter("headerStringQuotes").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\\\"with quotes\\\" test\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\\\"with quotes\\\" test\"")) .toParameter().toMethod() .assertParameter("headerStringQuotesWrapped").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\\\"with quotes\\\" test\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\\\"with quotes\\\" test\"")) .toParameter().toMethod() .assertParameter("headerBoolean").hasType("Boolean") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"true\"")); + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"true\"")); JavaFileAssert.assertThat(files.get("TestQueryParamsApi.java")) - .assertMethod("queryParamsTest") + .assertMethod("queryParamsTest") .assertParameter("queryNumber").hasType("BigDecimal") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"11.2\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"11.2\"")) .toParameter().toMethod() .assertParameter("queryString").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\"")) .toParameter().toMethod() .assertParameter("queryStringWrapped").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\"")) .toParameter().toMethod() .assertParameter("queryStringQuotes").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\\\"with quotes\\\" test\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\\\"with quotes\\\" test\"")) .toParameter().toMethod() .assertParameter("queryStringQuotesWrapped").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\\\"with quotes\\\" test\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\\\"with quotes\\\" test\"")) .toParameter().toMethod() .assertParameter("queryBoolean").hasType("Boolean") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"true\"")); + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"true\"")); } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSCXFExtServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSCXFExtServerCodegenTest.java index 7ff20b18ad3..25cd5731a9f 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSCXFExtServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSCXFExtServerCodegenTest.java @@ -4,9 +4,10 @@ import io.swagger.parser.OpenAPIParser; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.servers.Server; import io.swagger.v3.parser.core.models.ParseOptions; - import org.assertj.core.api.Assertions; -import org.openapitools.codegen.*; +import org.openapitools.codegen.ClientOptInput; +import org.openapitools.codegen.CodegenConstants; +import org.openapitools.codegen.DefaultGenerator; import org.openapitools.codegen.java.assertions.JavaFileAssert; import org.openapitools.codegen.languages.AbstractJavaCodegen; import org.openapitools.codegen.languages.AbstractJavaJAXRSServerCodegen; @@ -21,7 +22,8 @@ import java.nio.file.Files; import java.nio.file.Paths; import java.util.Map; -import static org.testng.Assert.*; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNull; public class JavaJAXRSCXFExtServerCodegenTest extends JavaJaxrsBaseTest { private static class JavaCXFExtServerCodegenTester extends JavaCXFExtServerCodegen { @@ -340,24 +342,24 @@ public class JavaJAXRSCXFExtServerCodegenTest extends JavaJaxrsBaseTest { generator.opts(input).generate(); JavaFileAssert.assertThat(Paths.get(outputPath + "/src/main/java/org/openapitools/api/impl/PetApiServiceImpl.java")) - .assertMethod("getPetById") - .bodyContainsLines( - "Pet response = new Pet();", - "return response;" - ); + .assertMethod("getPetById") + .bodyContainsLines( + "Pet response = new Pet();", + "return response;" + ); JavaFileAssert.assertThat(Paths.get(outputPath + "/src/test/java/org/openapitools/api/PetApiTest.java")) - .assertMethod("findPetsByStatusTest") - .bodyContainsLines( - "List status = new ArrayList<>();", - "// List response = api.findPetsByStatus(status);", - "// validate(response);" - ); + .assertMethod("findPetsByStatusTest") + .bodyContainsLines( + "List status = new ArrayList<>();", + "// List response = api.findPetsByStatus(status);", + "// validate(response);" + ); Assertions.assertThat(Paths.get(outputPath + "/src/main/resources/test-data.json")) - .doesNotExist(); + .doesNotExist(); Assertions.assertThat(Paths.get(outputPath + "/test-data-control.json")) - .doesNotExist(); + .doesNotExist(); } @Test @@ -381,33 +383,33 @@ public class JavaJAXRSCXFExtServerCodegenTest extends JavaJaxrsBaseTest { generator.opts(input).generate(); JavaFileAssert.assertThat(Paths.get(outputPath + "/src/main/java/org/openapitools/api/impl/PetApiServiceImpl.java")) - .fileContains( - "File cacheFile = new File(System.getProperty(\"jaxrs.test.server.json\"", - "cache = JsonCache.Factory.instance.get(\"test-data\").load(cacheFile).child(\"/org.openapitools.api/PetApi\");" - ) - .assertMethod("getPetById") - .bodyContainsLines( - "Pet response = cache.getObject(\"/getPetById/response\", Pet.class);" - ); + .fileContains( + "File cacheFile = new File(System.getProperty(\"jaxrs.test.server.json\"", + "cache = JsonCache.Factory.instance.get(\"test-data\").load(cacheFile).child(\"/org.openapitools.api/PetApi\");" + ) + .assertMethod("getPetById") + .bodyContainsLines( + "Pet response = cache.getObject(\"/getPetById/response\", Pet.class);" + ); JavaFileAssert.assertThat(Paths.get(outputPath + "/src/test/java/org/openapitools/api/PetApiTest.java")) - .assertMethod("beforeClass") + .assertMethod("beforeClass") .bodyContainsLines( - "File cacheFile = new File(System.getProperty(\"jaxrs.test.client.json\",", - "cache = JsonCache.Factory.instance.get(\"test-data\").load(cacheFile).child(\"/org.openapitools.api/PetApi\");", - "validator = Validation.buildDefaultValidatorFactory().getValidator();" + "File cacheFile = new File(System.getProperty(\"jaxrs.test.client.json\",", + "cache = JsonCache.Factory.instance.get(\"test-data\").load(cacheFile).child(\"/org.openapitools.api/PetApi\");", + "validator = Validation.buildDefaultValidatorFactory().getValidator();" ) - .toFileAssert() - .assertMethod("addPetTest") + .toFileAssert() + .assertMethod("addPetTest") .bodyContainsLines( - "Pet pet = cache.getObject(\"/addPet/pet\", Pet.class);" + "Pet pet = cache.getObject(\"/addPet/pet\", Pet.class);" ); Assertions.assertThat(Paths.get(outputPath + "/src/main/resources/test-data.json")) - .exists(); + .exists(); Assertions.assertThat(Paths.get(outputPath + "/test-data-control.json")) - .exists(); + .exists(); } @Test @@ -499,7 +501,7 @@ public class JavaJAXRSCXFExtServerCodegenTest extends JavaJaxrsBaseTest { codegen.processOpts(); ConfigAssert configAssert = new ConfigAssert(codegen.additionalProperties()); - configAssert.assertValue(CodegenConstants.HIDE_GENERATION_TIMESTAMP,codegen::isHideGenerationTimestamp, false); + configAssert.assertValue(CodegenConstants.HIDE_GENERATION_TIMESTAMP, codegen::isHideGenerationTimestamp, false); configAssert.assertValue(CodegenConstants.MODEL_PACKAGE, codegen::modelPackage, "xx.yyyyyyyy.model"); configAssert.assertValue(CodegenConstants.API_PACKAGE, codegen::apiPackage, "xx.yyyyyyyy.api"); configAssert.assertValue(CodegenConstants.INVOKER_PACKAGE, codegen::getInvokerPackage, "xx.yyyyyyyy.invoker"); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSSpecServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSSpecServerCodegenTest.java index 3c3dead1194..b44e0b2c319 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSSpecServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSSpecServerCodegenTest.java @@ -1,5 +1,6 @@ package org.openapitools.codegen.java.jaxrs; +import com.google.common.collect.ImmutableMap; import io.swagger.parser.OpenAPIParser; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.Operation; @@ -32,8 +33,6 @@ import static org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen.*; import static org.openapitools.codegen.languages.features.GzipFeatures.USE_GZIP_FEATURE; import static org.testng.Assert.assertTrue; -import com.google.common.collect.ImmutableMap; - /** * Unit-Test for {@link org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen}. * @@ -56,7 +55,7 @@ public class JavaJAXRSSpecServerCodegenTest extends JavaJaxrsBaseTest { codegen.preprocessOpenAPI(openAPI); ConfigAssert configAssert = new ConfigAssert(codegen.additionalProperties()); - configAssert.assertValue(CodegenConstants.HIDE_GENERATION_TIMESTAMP,codegen::isHideGenerationTimestamp, false); + configAssert.assertValue(CodegenConstants.HIDE_GENERATION_TIMESTAMP, codegen::isHideGenerationTimestamp, false); configAssert.assertValue(CodegenConstants.MODEL_PACKAGE, codegen::modelPackage, "org.openapitools.model"); configAssert.assertValue(CodegenConstants.API_PACKAGE, codegen::apiPackage, "org.openapitools.api"); configAssert.assertValue(CodegenConstants.INVOKER_PACKAGE, codegen::getInvokerPackage, "org.openapitools.api"); @@ -75,7 +74,7 @@ public class JavaJAXRSSpecServerCodegenTest extends JavaJaxrsBaseTest { codegen.processOpts(); ConfigAssert configAssert = new ConfigAssert(codegen.additionalProperties()); - configAssert.assertValue(CodegenConstants.HIDE_GENERATION_TIMESTAMP,codegen::isHideGenerationTimestamp, true); + configAssert.assertValue(CodegenConstants.HIDE_GENERATION_TIMESTAMP, codegen::isHideGenerationTimestamp, true); configAssert.assertValue(CodegenConstants.MODEL_PACKAGE, codegen::modelPackage, "xx.yyyyyyyy.model"); configAssert.assertValue(CodegenConstants.API_PACKAGE, codegen::apiPackage, "xx.yyyyyyyy.api"); configAssert.assertValue(CodegenConstants.INVOKER_PACKAGE, codegen::getInvokerPackage, "xx.yyyyyyyy.invoker"); @@ -99,13 +98,13 @@ public class JavaJAXRSSpecServerCodegenTest extends JavaJaxrsBaseTest { codegen.preprocessOpenAPI(openAPI); ConfigAssert configAssert = new ConfigAssert(codegen.additionalProperties()); - configAssert.assertValue(CodegenConstants.HIDE_GENERATION_TIMESTAMP,codegen::isHideGenerationTimestamp, true); + configAssert.assertValue(CodegenConstants.HIDE_GENERATION_TIMESTAMP, codegen::isHideGenerationTimestamp, true); configAssert.assertValue(CodegenConstants.MODEL_PACKAGE, codegen::modelPackage, "xyz.yyyyy.mmmmm.model"); configAssert.assertValue(CodegenConstants.API_PACKAGE, codegen::apiPackage, "xyz.yyyyy.aaaaa.api"); configAssert.assertValue(CodegenConstants.INVOKER_PACKAGE, codegen::getInvokerPackage, "xyz.yyyyy.iiii.invoker"); configAssert.assertValue(AbstractJavaJAXRSServerCodegen.SERVER_PORT, "8088"); configAssert.assertValue(JavaJAXRSSpecServerCodegen.OPEN_API_SPEC_FILE_LOCATION, codegen::getOpenApiSpecFileLocation, "openapi.yml"); - configAssert.assertValue(SUPPORT_ASYNC, true); + configAssert.assertValue(SUPPORT_ASYNC, true); } /** @@ -243,10 +242,10 @@ public class JavaJAXRSSpecServerCodegenTest extends JavaJaxrsBaseTest { File output = Files.createTempDirectory("test").toFile(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("jaxrs-spec") - .setAdditionalProperties(properties) - .setInputSpec("src/test/resources/3_0/ping-array-default.yaml") - .setOutputDir(output.getAbsolutePath().replace("\\", "/")); + .setGeneratorName("jaxrs-spec") + .setAdditionalProperties(properties) + .setInputSpec("src/test/resources/3_0/ping-array-default.yaml") + .setOutputDir(output.getAbsolutePath().replace("\\", "/")); final ClientOptInput clientOptInput = configurator.toClientOptInput(); DefaultGenerator generator = new DefaultGenerator(); @@ -258,7 +257,7 @@ public class JavaJAXRSSpecServerCodegenTest extends JavaJaxrsBaseTest { Path path = Paths.get(output.toPath() + "/src/gen/java/org/openapitools/model/AnArrayOfString.java"); - assertFileContains(path , "\nimport java.util.Arrays;\n"); + assertFileContains(path, "\nimport java.util.Arrays;\n"); output.deleteOnExit(); } @@ -799,7 +798,7 @@ public class JavaJAXRSSpecServerCodegenTest extends JavaJaxrsBaseTest { output.deleteOnExit(); final OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/3_0/issue_4832.yaml", null, new ParseOptions()).getOpenAPI(); + .readLocation("src/test/resources/3_0/issue_4832.yaml", null, new ParseOptions()).getOpenAPI(); codegen.setOutputDir(output.getAbsolutePath()); codegen.setLibrary(QUARKUS_LIBRARY); @@ -807,8 +806,8 @@ public class JavaJAXRSSpecServerCodegenTest extends JavaJaxrsBaseTest { codegen.additionalProperties().put(USE_TAGS, true); //And use tags to generate everything in PingApi.java final ClientOptInput input = new ClientOptInput() - .openAPI(openAPI) - .config(codegen); //Using JavaJAXRSSpecServerCodegen + .openAPI(openAPI) + .config(codegen); //Using JavaJAXRSSpecServerCodegen final DefaultGenerator generator = new DefaultGenerator(); final List files = generator.opts(input).generate(); //When generating files @@ -819,8 +818,8 @@ public class JavaJAXRSSpecServerCodegenTest extends JavaJaxrsBaseTest { //And the generated class contains CompletionStage TestUtils.ensureContainsFile(files, output, "src/gen/java/org/openapitools/api/PingApi.java"); TestUtils.assertFileContains(output.toPath().resolve("src/gen/java/org/openapitools/api/PingApi.java"), - "CompletionStage pingGetBoolean", //Support primitive types response - "CompletionStage pingGetInteger" //Support primitive types response + "CompletionStage pingGetBoolean", //Support primitive types response + "CompletionStage pingGetInteger" //Support primitive types response ); } @@ -830,7 +829,7 @@ public class JavaJAXRSSpecServerCodegenTest extends JavaJaxrsBaseTest { output.deleteOnExit(); final OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/3_0/issue_4832.yaml", null, new ParseOptions()).getOpenAPI(); + .readLocation("src/test/resources/3_0/issue_4832.yaml", null, new ParseOptions()).getOpenAPI(); codegen.setOutputDir(output.getAbsolutePath()); codegen.setLibrary(QUARKUS_LIBRARY); @@ -840,8 +839,8 @@ public class JavaJAXRSSpecServerCodegenTest extends JavaJaxrsBaseTest { codegen.additionalProperties().put(USE_MUTINY, true); final ClientOptInput input = new ClientOptInput() - .openAPI(openAPI) - .config(codegen); //Using JavaJAXRSSpecServerCodegen + .openAPI(openAPI) + .config(codegen); //Using JavaJAXRSSpecServerCodegen final DefaultGenerator generator = new DefaultGenerator(); final List files = generator.opts(input).generate(); //When generating files @@ -852,8 +851,8 @@ public class JavaJAXRSSpecServerCodegenTest extends JavaJaxrsBaseTest { //And the generated class contains CompletionStage TestUtils.ensureContainsFile(files, output, "src/gen/java/org/openapitools/api/PingApi.java"); TestUtils.assertFileContains(output.toPath().resolve("src/gen/java/org/openapitools/api/PingApi.java"), - "Uni pingGetBoolean", //Support primitive types response - "Uni pingGetInteger" //Support primitive types response + "Uni pingGetBoolean", //Support primitive types response + "Uni pingGetInteger" //Support primitive types response ); } @@ -864,7 +863,7 @@ public class JavaJAXRSSpecServerCodegenTest extends JavaJaxrsBaseTest { output.deleteOnExit(); final OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/3_0/issue_4832.yaml", null, new ParseOptions()).getOpenAPI(); + .readLocation("src/test/resources/3_0/issue_4832.yaml", null, new ParseOptions()).getOpenAPI(); codegen.setOutputDir(output.getAbsolutePath()); codegen.setLibrary(QUARKUS_LIBRARY); @@ -873,8 +872,8 @@ public class JavaJAXRSSpecServerCodegenTest extends JavaJaxrsBaseTest { codegen.additionalProperties().put(USE_MUTINY, true); final ClientOptInput input = new ClientOptInput() - .openAPI(openAPI) - .config(codegen); //Using JavaJAXRSSpecServerCodegen + .openAPI(openAPI) + .config(codegen); //Using JavaJAXRSSpecServerCodegen final DefaultGenerator generator = new DefaultGenerator(); final List files = generator.opts(input).generate(); //When generating files @@ -885,8 +884,8 @@ public class JavaJAXRSSpecServerCodegenTest extends JavaJaxrsBaseTest { //And the generated class contains CompletionStage TestUtils.ensureContainsFile(files, output, "src/gen/java/org/openapitools/api/PingApi.java"); TestUtils.assertFileContains(output.toPath().resolve("src/gen/java/org/openapitools/api/PingApi.java"), - "Uni pingGetBoolean", //Support primitive types response - "Uni pingGetInteger" //Support primitive types response + "Uni pingGetBoolean", //Support primitive types response + "Uni pingGetInteger" //Support primitive types response ); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJaxrsBaseTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJaxrsBaseTest.java index b76b8378039..e1e77d5a53f 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJaxrsBaseTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJaxrsBaseTest.java @@ -14,9 +14,9 @@ import org.testng.annotations.Test; import java.io.File; import java.io.IOException; import java.nio.file.Files; +import java.nio.file.Paths; import java.util.List; import java.util.Map; -import java.nio.file.Paths; import java.util.function.Function; import java.util.stream.Collectors; @@ -83,7 +83,7 @@ public abstract class JavaJaxrsBaseTest { " @JsonSubTypes.Type(value = Cat.class, name = \"Cat\"),\n" + " @JsonSubTypes.Type(value = Dog.class, name = \"Dog\"),\n" + "})"; - assertFileNotContains(Paths.get(outputPath + "/src/gen/java/org/openapitools/model/Animal.java"), jsonTypeInfo, jsonSubType); + assertFileNotContains(Paths.get(outputPath + "/src/gen/java/org/openapitools/model/Animal.java"), jsonTypeInfo, jsonSubType); } @@ -106,7 +106,7 @@ public abstract class JavaJaxrsBaseTest { DefaultGenerator generator = new DefaultGenerator(); generator.opts(input).generate(); - assertFileNotContains(Paths.get(outputPath + "/src/gen/java/org/openapitools/api/ExamplesApi.java"), "DefaultValue"); + assertFileNotContains(Paths.get(outputPath + "/src/gen/java/org/openapitools/api/ExamplesApi.java"), "DefaultValue"); } @Test @@ -124,13 +124,13 @@ public abstract class JavaJaxrsBaseTest { codegen.additionalProperties().put(CXFServerFeatures.LOAD_TEST_DATA_FROM_FILE, "true"); ClientOptInput input = new ClientOptInput() - .openAPI(openAPI) - .config(codegen); + .openAPI(openAPI) + .config(codegen); DefaultGenerator generator = new DefaultGenerator(); generator.opts(input).generate(); - assertFileContains(Paths.get(outputPath + "/src/gen/java/org/openapitools/api/ExamplesApi.java"), "DefaultValue"); + assertFileContains(Paths.get(outputPath + "/src/gen/java/org/openapitools/api/ExamplesApi.java"), "DefaultValue"); } @Test @@ -215,7 +215,7 @@ public abstract class JavaJaxrsBaseTest { Assert.assertEquals(tag0.size(), 2); assertOperation(tag0.get(0), "default", "/", false); assertOperation(tag0.get(1), "default", "/{id}", true); - + final var group1ApiTemplateData = dryRunTMan.getCapturedTemplateData(output.toPath().resolve("src/gen/java/org/openapitools/api/Group1Api.java")); Assert.assertEquals(group1ApiTemplateData.get("baseName"), "group1"); Assert.assertEquals(group1ApiTemplateData.get("commonPath"), "/group1"); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJaxrsResteasyServerCodegenModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJaxrsResteasyServerCodegenModelTest.java index 025d1d94d9f..66b9cd5e473 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJaxrsResteasyServerCodegenModelTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJaxrsResteasyServerCodegenModelTest.java @@ -1,18 +1,13 @@ package org.openapitools.codegen.java.jaxrs; +import com.google.common.collect.ImmutableMap; import io.swagger.parser.OpenAPIParser; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.Operation; import io.swagger.v3.oas.models.media.MapSchema; import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.parser.core.models.ParseOptions; - -import org.openapitools.codegen.ClientOptInput; -import org.openapitools.codegen.CodegenModel; -import org.openapitools.codegen.CodegenOperation; -import org.openapitools.codegen.CodegenParameter; -import org.openapitools.codegen.DefaultGenerator; -import org.openapitools.codegen.TestUtils; +import org.openapitools.codegen.*; import org.openapitools.codegen.java.assertions.JavaFileAssert; import org.openapitools.codegen.languages.JavaResteasyServerCodegen; import org.openapitools.codegen.languages.features.CXFServerFeatures; @@ -20,16 +15,14 @@ import org.testng.Assert; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertTrue; - import java.io.File; import java.nio.file.Files; import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; -import com.google.common.collect.ImmutableMap; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertTrue; public class JavaJaxrsResteasyServerCodegenModelTest extends JavaJaxrsBaseTest { @@ -82,69 +75,69 @@ public class JavaJaxrsResteasyServerCodegenModelTest extends JavaJaxrsBaseTest { output.deleteOnExit(); OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/3_0/issue_8535.yaml", null, new ParseOptions()).getOpenAPI(); + .readLocation("src/test/resources/3_0/issue_8535.yaml", null, new ParseOptions()).getOpenAPI(); codegen.setOutputDir(output.getAbsolutePath()); codegen.additionalProperties().put(CXFServerFeatures.LOAD_TEST_DATA_FROM_FILE, "true"); ClientOptInput input = new ClientOptInput() - .openAPI(openAPI) - .config(codegen); + .openAPI(openAPI) + .config(codegen); DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(Collectors.toMap(File::getName, Function.identity())); JavaFileAssert.assertThat(files.get("TestHeadersApi.java")) - .assertMethod("headersTest") + .assertMethod("headersTest") .assertParameter("headerNumber").hasType("BigDecimal") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"11.2\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"11.2\"")) .toParameter().toMethod() .assertParameter("headerString").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\"")) .toParameter().toMethod() .assertParameter("headerStringWrapped").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\"")) .toParameter().toMethod() .assertParameter("headerStringQuotes").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\\\"with quotes\\\" test\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\\\"with quotes\\\" test\"")) .toParameter().toMethod() .assertParameter("headerStringQuotesWrapped").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\\\"with quotes\\\" test\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\\\"with quotes\\\" test\"")) .toParameter().toMethod() .assertParameter("headerBoolean").hasType("Boolean") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"true\"")); + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"true\"")); JavaFileAssert.assertThat(files.get("TestQueryParamsApi.java")) - .assertMethod("queryParamsTest") + .assertMethod("queryParamsTest") .assertParameter("queryNumber").hasType("BigDecimal") - .assertParameterAnnotations() - .containsWithNameAndAttributes("DefaultValue", ImmutableMap.of("value", "\"11.2\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("DefaultValue", ImmutableMap.of("value", "\"11.2\"")) .toParameter().toMethod() .assertParameter("queryString").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("DefaultValue", ImmutableMap.of("value", "\"qwerty\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("DefaultValue", ImmutableMap.of("value", "\"qwerty\"")) .toParameter().toMethod() .assertParameter("queryStringWrapped").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("DefaultValue", ImmutableMap.of("value", "\"qwerty\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("DefaultValue", ImmutableMap.of("value", "\"qwerty\"")) .toParameter().toMethod() .assertParameter("queryStringQuotes").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("DefaultValue", ImmutableMap.of("value", "\"qwerty\\\"with quotes\\\" test\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("DefaultValue", ImmutableMap.of("value", "\"qwerty\\\"with quotes\\\" test\"")) .toParameter().toMethod() .assertParameter("queryStringQuotesWrapped").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("DefaultValue", ImmutableMap.of("value", "\"qwerty\\\"with quotes\\\" test\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("DefaultValue", ImmutableMap.of("value", "\"qwerty\\\"with quotes\\\" test\"")) .toParameter().toMethod() .assertParameter("queryBoolean").hasType("Boolean") - .assertParameterAnnotations() - .containsWithNameAndAttributes("DefaultValue", ImmutableMap.of("value", "\"true\"")); + .assertParameterAnnotations() + .containsWithNameAndAttributes("DefaultValue", ImmutableMap.of("value", "\"true\"")); } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJerseyServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJerseyServerCodegenTest.java index cb91ae2c1e5..8e4bc1c9f9d 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJerseyServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJerseyServerCodegenTest.java @@ -3,21 +3,14 @@ package org.openapitools.codegen.java.jaxrs; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; - import io.swagger.parser.OpenAPIParser; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.servers.Server; import io.swagger.v3.parser.core.models.ParseOptions; - -import org.openapitools.codegen.ClientOptInput; -import org.openapitools.codegen.CodegenConstants; -import org.openapitools.codegen.CodegenType; -import org.openapitools.codegen.DefaultCodegen; -import org.openapitools.codegen.TestUtils; +import org.openapitools.codegen.*; import org.openapitools.codegen.java.assertions.JavaFileAssert; import org.openapitools.codegen.languages.JavaJerseyServerCodegen; import org.openapitools.codegen.languages.features.CXFServerFeatures; -import org.openapitools.codegen.DefaultGenerator; import org.openapitools.codegen.templating.MustacheEngineAdapter; import org.openapitools.codegen.testutils.ConfigAssert; import org.testng.Assert; @@ -25,8 +18,6 @@ import org.testng.annotations.BeforeMethod; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; -import static org.openapitools.codegen.TestUtils.assertFileContains; - import java.io.File; import java.io.IOException; import java.nio.file.Files; @@ -37,6 +28,8 @@ import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; +import static org.openapitools.codegen.TestUtils.assertFileContains; + public class JavaJerseyServerCodegenTest extends JavaJaxrsBaseTest { @BeforeMethod @@ -135,7 +128,7 @@ public class JavaJerseyServerCodegenTest extends JavaJaxrsBaseTest { codegen.setLibrary("jersey2"); codegen.setDateLibrary("java8"); codegen.setUseJakartaEe(false); - + final Map files = generateFiles(codegen, "src/test/resources/3_0/petstore.yaml"); files.values() @@ -147,13 +140,13 @@ public class JavaJerseyServerCodegenTest extends JavaJaxrsBaseTest { TestUtils.assertFileNotContains(file.toPath(), "jakarta.ws"); }); } - + @Test public void testJersey2Jakarta() throws Exception { codegen.setLibrary("jersey2"); codegen.setDateLibrary("java8"); codegen.setUseJakartaEe(true); - + final Map files = generateFiles(codegen, "src/test/resources/3_0/petstore.yaml"); files.values() @@ -174,22 +167,22 @@ public class JavaJerseyServerCodegenTest extends JavaJaxrsBaseTest { final Map files = generateFiles(codegen, "src/test/resources/3_0/petstore.yaml"); files.values() - .stream() - .filter(file -> file.getName().endsWith(".java")) - .forEach(file -> { - // Jersey3 uses "jakarta.ws.rs" - // Let's confirm that "javax.ws" is not present - TestUtils.assertFileNotContains(file.toPath(), "javax.ws"); - }); + .stream() + .filter(file -> file.getName().endsWith(".java")) + .forEach(file -> { + // Jersey3 uses "jakarta.ws.rs" + // Let's confirm that "javax.ws" is not present + TestUtils.assertFileNotContains(file.toPath(), "javax.ws"); + }); } - + @DataProvider(name = "codegenParameterMatrix") public Object[][] codegenParameterMatrix() { final Set libraries = new JavaJerseyServerCodegen().supportedLibraries().keySet(); final List rows = new ArrayList(); - for (final String jerseyLibrary: ImmutableList.of("jersey2")) { - for (final String dateLibrary: ImmutableList.of("joda", "java8")) { - rows.add(new Object[] { jerseyLibrary, dateLibrary }); + for (final String jerseyLibrary : ImmutableList.of("jersey2")) { + for (final String dateLibrary : ImmutableList.of("joda", "java8")) { + rows.add(new Object[]{jerseyLibrary, dateLibrary}); } } return rows.toArray(new Object[0][0]); @@ -205,8 +198,8 @@ public class JavaJerseyServerCodegenTest extends JavaJaxrsBaseTest { // Check files for Single, Mixed String[] fileS = { - "MultipartSingleApi.java", "MultipartSingleApiService.java", "MultipartSingleApiServiceImpl.java", - "MultipartMixedApi.java", "MultipartMixedApiService.java", "MultipartMixedApiServiceImpl.java" }; + "MultipartSingleApi.java", "MultipartSingleApiService.java", "MultipartSingleApiServiceImpl.java", + "MultipartMixedApi.java", "MultipartMixedApiService.java", "MultipartMixedApiServiceImpl.java"}; // UPDATE: the following test has been ignored due to https://github.com/OpenAPITools/openapi-generator/pull/11081/ // We will contact the contributor of the following test to see if the fix will break their use cases and @@ -216,9 +209,9 @@ public class JavaJerseyServerCodegenTest extends JavaJaxrsBaseTest { //} // Check files for Array - final String[] fileA = { "MultipartArrayApiService.java", "MultipartArrayApi.java", "MultipartArrayApiServiceImpl.java"}; + final String[] fileA = {"MultipartArrayApiService.java", "MultipartArrayApi.java", "MultipartArrayApiServiceImpl.java"}; for (String f : fileA) { - assertFileContains( files.get(f).toPath(), "List files"); + assertFileContains(files.get(f).toPath(), "List files"); } } @@ -228,70 +221,70 @@ public class JavaJerseyServerCodegenTest extends JavaJaxrsBaseTest { output.deleteOnExit(); OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/3_0/issue_8535.yaml", null, new ParseOptions()).getOpenAPI(); + .readLocation("src/test/resources/3_0/issue_8535.yaml", null, new ParseOptions()).getOpenAPI(); codegen.setOutputDir(output.getAbsolutePath()); codegen.additionalProperties().put(CXFServerFeatures.LOAD_TEST_DATA_FROM_FILE, "true"); ClientOptInput input = new ClientOptInput() - .openAPI(openAPI) - .config(codegen); + .openAPI(openAPI) + .config(codegen); DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(Collectors.toMap(File::getName, Function.identity())); JavaFileAssert.assertThat(files.get("TestHeadersApi.java")) - .assertMethod("headersTest") + .assertMethod("headersTest") .assertParameter("headerNumber").hasType("BigDecimal") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"11.2\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"11.2\"")) .toParameter().toMethod() .assertParameter("headerString").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\"")) .toParameter().toMethod() .assertParameter("headerStringWrapped").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\"")) .toParameter().toMethod() .assertParameter("headerStringQuotes").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\\\"with quotes\\\" test\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\\\"with quotes\\\" test\"")) .toParameter().toMethod() .assertParameter("headerStringQuotesWrapped").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\\\"with quotes\\\" test\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\\\"with quotes\\\" test\"")) .toParameter().toMethod() .assertParameter("headerBoolean").hasType("Boolean") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"true\"")); + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"true\"")); JavaFileAssert.assertThat(files.get("TestQueryParamsApi.java")) - .assertMethod("queryParamsTest") + .assertMethod("queryParamsTest") .assertParameter("queryNumber").hasType("BigDecimal") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"11.2\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"11.2\"")) .toParameter().toMethod() .assertParameter("queryString").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\"")) .toParameter().toMethod() .assertParameter("queryStringWrapped").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\"")) .toParameter().toMethod() .assertParameter("queryStringQuotes").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\\\"with quotes\\\" test\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\\\"with quotes\\\" test\"")) .toParameter().toMethod() .assertParameter("queryStringQuotesWrapped").hasType("String") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\\\"with quotes\\\" test\"")) + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"qwerty\\\"with quotes\\\" test\"")) .toParameter().toMethod() .assertParameter("queryBoolean").hasType("Boolean") - .assertParameterAnnotations() - .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"true\"")); + .assertParameterAnnotations() + .containsWithNameAndAttributes("ApiParam", ImmutableMap.of("defaultValue", "\"true\"")); } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/micronaut/AbstractMicronautCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/micronaut/AbstractMicronautCodegenTest.java index 2241771ef6a..2b869f30830 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/micronaut/AbstractMicronautCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/micronaut/AbstractMicronautCodegenTest.java @@ -7,6 +7,7 @@ import org.openapitools.codegen.ClientOptInput; import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.DefaultGenerator; import org.openapitools.codegen.languages.JavaMicronautAbstractCodegen; + import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; @@ -27,9 +28,8 @@ public abstract class AbstractMicronautCodegenTest { protected final String PETSTORE_PATH = "src/test/resources/petstore.json"; /** - * - * @param codegen - the code generator - * @param configPath - the path to the config starting from src/test/resources + * @param codegen - the code generator + * @param configPath - the path to the config starting from src/test/resources * @param filesToGenerate - which files to generate - can be CodegenConstants.MODELS, APIS, SUPPORTING_FILES, ... * @return - the path to the generated folder */ @@ -66,7 +66,7 @@ public abstract class AbstractMicronautCodegenTest { generator.setGeneratorPropertyDefault(CodegenConstants.API_DOCS, "false"); generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false"); // set all the files user wants to generate - for (String files: filesToGenerate) { + for (String files : filesToGenerate) { generator.setGeneratorPropertyDefault(files, "true"); } @@ -77,13 +77,13 @@ public abstract class AbstractMicronautCodegenTest { public static void assertFileContainsRegex(String path, String... regex) { String file = readFile(path); - for (String line: regex) + for (String line : regex) assertTrue(Pattern.compile(line.replace(" ", "\\s+")).matcher(file).find()); } public static void assertFileNotContainsRegex(String path, String... regex) { String file = readFile(path); - for (String line: regex) + for (String line : regex) assertFalse(Pattern.compile(line.replace(" ", "\\s+")).matcher(file).find()); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/micronaut/JavaMicronautClientCodegenSerializationLibraryTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/micronaut/JavaMicronautClientCodegenSerializationLibraryTest.java index 77569fcb5ee..285e2ac6f58 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/micronaut/JavaMicronautClientCodegenSerializationLibraryTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/micronaut/JavaMicronautClientCodegenSerializationLibraryTest.java @@ -12,7 +12,7 @@ public class JavaMicronautClientCodegenSerializationLibraryTest extends Abstract JavaMicronautClientCodegen codegen = new JavaMicronautClientCodegen(); codegen.additionalProperties().put(CodegenConstants.SERIALIZATION_LIBRARY, JavaMicronautAbstractCodegen.SERIALIZATION_LIBRARY_TYPE.jackson.name()); String outputPath = generateFiles(codegen, PETSTORE_PATH, - CodegenConstants.MODELS); + CodegenConstants.MODELS); // Model does not contain micronaut serde annotation String micronautSerDeAnnotation = "@io.micronaut.serde.annotation.Serdeable"; @@ -29,6 +29,7 @@ public class JavaMicronautClientCodegenSerializationLibraryTest extends Abstract /** * Checks micronaut-serde-jackson limitation. + * * @see */ @Test @@ -36,7 +37,7 @@ public class JavaMicronautClientCodegenSerializationLibraryTest extends Abstract JavaMicronautClientCodegen codegen = new JavaMicronautClientCodegen(); codegen.additionalProperties().put(CodegenConstants.SERIALIZATION_LIBRARY, JavaMicronautAbstractCodegen.SERIALIZATION_LIBRARY_TYPE.micronaut_serde_jackson.name()); String outputPath = generateFiles(codegen, PETSTORE_PATH, - CodegenConstants.MODELS); + CodegenConstants.MODELS); // Model contains micronaut serde annotation String micronautSerDeAnnotation = "@io.micronaut.serde.annotation.Serdeable"; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/micronaut/JavaMicronautClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/micronaut/JavaMicronautClientCodegenTest.java index 23e808675f7..ec5508d74db 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/micronaut/JavaMicronautClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/micronaut/JavaMicronautClientCodegenTest.java @@ -10,7 +10,6 @@ import org.openapitools.codegen.config.CodegenConfigurator; import org.openapitools.codegen.java.assertions.JavaFileAssert; import org.openapitools.codegen.languages.JavaMicronautClientCodegen; import org.openapitools.codegen.testutils.ConfigAssert; -import org.testng.Assert; import org.testng.annotations.Test; import java.io.File; @@ -251,7 +250,7 @@ public class JavaMicronautClientCodegenTest extends AbstractMicronautCodegenTest JavaMicronautClientCodegen codegen = new JavaMicronautClientCodegen(); codegen.additionalProperties().put(JavaMicronautClientCodegen.ADDITIONAL_CLIENT_TYPE_ANNOTATIONS, "MyAdditionalAnnotation1(1,${param1});MyAdditionalAnnotation2(2,${param2});"); String outputPath = generateFiles(codegen, PETSTORE_PATH, - CodegenConstants.APIS); + CodegenConstants.APIS); // Micronaut declarative http client should contain custom added annotations assertFileContains(outputPath + "/src/main/java/org/openapitools/api/PetApi.java", "MyAdditionalAnnotation1(1,${param1})"); @@ -323,138 +322,139 @@ public class JavaMicronautClientCodegenTest extends AbstractMicronautCodegenTest * Includes regression tests for: * - Correct Jackson annotation when `wrapped: false` */ - @Test public void shouldGenerateCorrectXmlAnnotations() { + @Test + public void shouldGenerateCorrectXmlAnnotations() { // Arrange final CodegenConfigurator config = new CodegenConfigurator() - .addAdditionalProperty(CodegenConstants.WITH_XML, true) - .addGlobalProperty(CodegenConstants.MODELS, "Pet") - .addGlobalProperty(CodegenConstants.MODEL_DOCS, null) - .addGlobalProperty(CodegenConstants.MODEL_TESTS, null) - .setGeneratorName(JavaMicronautClientCodegen.NAME) - .setInputSpec("src/test/resources/3_0/java/xml-annotations-test.yaml") - .setOutputDir(newTempFolder().toString()); - + .addAdditionalProperty(CodegenConstants.WITH_XML, true) + .addGlobalProperty(CodegenConstants.MODELS, "Pet") + .addGlobalProperty(CodegenConstants.MODEL_DOCS, null) + .addGlobalProperty(CodegenConstants.MODEL_TESTS, null) + .setGeneratorName(JavaMicronautClientCodegen.NAME) + .setInputSpec("src/test/resources/3_0/java/xml-annotations-test.yaml") + .setOutputDir(newTempFolder().toString()); + // Act final List files = new DefaultGenerator().opts(config.toClientOptInput()).generate(); // Assert JavaFileAssert.assertThat(files.get(0)) - .assertTypeAnnotations() - .containsWithNameAndAttributes("JacksonXmlRootElement", Map.of("localName", "\"Pet\"", "namespace", "\"urn:jacksonxml\"")) - .containsWithNameAndAttributes("XmlRootElement", Map.of("name", "\"Pet\"", "namespace", "\"urn:jacksonxml\"")) - .containsWithNameAndAttributes("XmlAccessorType", Map.of("value", "XmlAccessType.FIELD")) - .toType() + .assertTypeAnnotations() + .containsWithNameAndAttributes("JacksonXmlRootElement", Map.of("localName", "\"Pet\"", "namespace", "\"urn:jacksonxml\"")) + .containsWithNameAndAttributes("XmlRootElement", Map.of("name", "\"Pet\"", "namespace", "\"urn:jacksonxml\"")) + .containsWithNameAndAttributes("XmlAccessorType", Map.of("value", "XmlAccessType.FIELD")) + .toType() - // ↓ test custom-name on wrapper element (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Use%20xml/name%20to%20give%20different%20names) - .assertProperty("tags").assertPropertyAnnotations() - .doesNotContainWithName("XmlAttribute") - .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"Tag\"")) - .containsWithNameAndAttributes("XmlElementWrapper", Map.of("name", "\"TagList\"")) - .toProperty().toType() - .assertMethod("getTags") - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"Tag\"")) - .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"TagList\"", "useWrapping", "true")) - .toFileAssert() + // ↓ test custom-name on wrapper element (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Use%20xml/name%20to%20give%20different%20names) + .assertProperty("tags").assertPropertyAnnotations() + .doesNotContainWithName("XmlAttribute") + .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"Tag\"")) + .containsWithNameAndAttributes("XmlElementWrapper", Map.of("name", "\"TagList\"")) + .toProperty().toType() + .assertMethod("getTags") + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"Tag\"")) + .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"TagList\"", "useWrapping", "true")) + .toFileAssert() - // ↓ custom internal xml-array element name, non-wrapped (1st example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) - .assertProperty("friends").assertPropertyAnnotations() - .doesNotContainWithName("XmlAttribute") - .doesNotContainWithName("XmlElementWrapper") - .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"friend-pet\"")) - .toProperty().toType() - .assertMethod("getFriends") - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"friend-pet\"")) - .hasAnnotation("JacksonXmlElementWrapper", Map.of("useWrapping", "false")) - .toFileAssert() + // ↓ custom internal xml-array element name, non-wrapped (1st example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) + .assertProperty("friends").assertPropertyAnnotations() + .doesNotContainWithName("XmlAttribute") + .doesNotContainWithName("XmlElementWrapper") + .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"friend-pet\"")) + .toProperty().toType() + .assertMethod("getFriends") + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"friend-pet\"")) + .hasAnnotation("JacksonXmlElementWrapper", Map.of("useWrapping", "false")) + .toFileAssert() - // ↓ test custom element name (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Change%20Element%20Names) - .assertProperty("status").assertPropertyAnnotations() - .doesNotContainWithName("XmlAttribute") - .doesNotContainWithName("XmlElementWrapper") - .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"PetStatus\"")) - .toProperty().toType() - .assertMethod("getStatus") - .doesNotHaveAnnotation("JacksonXmlElementWrapper") - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"PetStatus\"")) - .toFileAssert() + // ↓ test custom element name (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Change%20Element%20Names) + .assertProperty("status").assertPropertyAnnotations() + .doesNotContainWithName("XmlAttribute") + .doesNotContainWithName("XmlElementWrapper") + .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"PetStatus\"")) + .toProperty().toType() + .assertMethod("getStatus") + .doesNotHaveAnnotation("JacksonXmlElementWrapper") + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"PetStatus\"")) + .toFileAssert() - // ↓ test same-name wrapping element (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Wrapping%20Arrays) - // maps to 3rd example in https://spec.openapis.org/oas/v3.0.0#xml-arrays - .assertProperty("photoUrls").assertPropertyAnnotations() - .doesNotContainWithName("XmlAttribute") - .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"photoUrls\"")) - .containsWithNameAndAttributes("XmlElementWrapper", Map.of("name", "\"photoUrls\"")) - .toProperty().toType() - .assertMethod("getPhotoUrls") - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"photoUrls\"")) - .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"photoUrls\"", "useWrapping", "true")) - .toFileAssert() + // ↓ test same-name wrapping element (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Wrapping%20Arrays) + // maps to 3rd example in https://spec.openapis.org/oas/v3.0.0#xml-arrays + .assertProperty("photoUrls").assertPropertyAnnotations() + .doesNotContainWithName("XmlAttribute") + .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"photoUrls\"")) + .containsWithNameAndAttributes("XmlElementWrapper", Map.of("name", "\"photoUrls\"")) + .toProperty().toType() + .assertMethod("getPhotoUrls") + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"photoUrls\"")) + .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"photoUrls\"", "useWrapping", "true")) + .toFileAssert() - // ↓ test attribute generation (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Convert%20Property%20to%20an%20Attribute) - .assertProperty("name").assertPropertyAnnotations() - .doesNotContainWithName("XmlElement") - .doesNotContainWithName("XmlElementWrapper") - .containsWithNameAndAttributes("XmlAttribute", Map.of("name", "\"name\"")) - .toProperty().toType() - .assertMethod("getName") - .doesNotHaveAnnotation("JacksonXmlElementWrapper") - .hasAnnotation("JacksonXmlProperty", Map.of("isAttribute", "true", "localName", "\"name\"")) - .toFileAssert() + // ↓ test attribute generation (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Convert%20Property%20to%20an%20Attribute) + .assertProperty("name").assertPropertyAnnotations() + .doesNotContainWithName("XmlElement") + .doesNotContainWithName("XmlElementWrapper") + .containsWithNameAndAttributes("XmlAttribute", Map.of("name", "\"name\"")) + .toProperty().toType() + .assertMethod("getName") + .doesNotHaveAnnotation("JacksonXmlElementWrapper") + .hasAnnotation("JacksonXmlProperty", Map.of("isAttribute", "true", "localName", "\"name\"")) + .toFileAssert() - // ↓ test XML namespace and prefix (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Prefixes%20and%20Namespaces) - .assertProperty("id").assertPropertyAnnotations() - .doesNotContainWithName("XmlAttribute") - .doesNotContainWithName("XmlElementWrapper") - .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"id\"", "namespace", "\"http://example.com/schema\"")) - .toProperty().toType() - .assertMethod("getId") - .doesNotHaveAnnotation("JacksonXmlElementWrapper") - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"id\"", "namespace", "\"http://example.com/schema\"")) - .toFileAssert() + // ↓ test XML namespace and prefix (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Prefixes%20and%20Namespaces) + .assertProperty("id").assertPropertyAnnotations() + .doesNotContainWithName("XmlAttribute") + .doesNotContainWithName("XmlElementWrapper") + .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"id\"", "namespace", "\"http://example.com/schema\"")) + .toProperty().toType() + .assertMethod("getId") + .doesNotHaveAnnotation("JacksonXmlElementWrapper") + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"id\"", "namespace", "\"http://example.com/schema\"")) + .toFileAssert() - // ↓ external xml-array element name only (last example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) - .assertProperty("foods").assertPropertyAnnotations() - .doesNotContainWithName("XmlAttribute") - .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"yummy-yummy\"")) - .containsWithNameAndAttributes("XmlElementWrapper", Map.of("name", "\"yummy-yummy\"")) - .toProperty().toType() - .assertMethod("getFoods") - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"yummy-yummy\"")) - .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"yummy-yummy\"")) - .toFileAssert() + // ↓ external xml-array element name only (last example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) + .assertProperty("foods").assertPropertyAnnotations() + .doesNotContainWithName("XmlAttribute") + .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"yummy-yummy\"")) + .containsWithNameAndAttributes("XmlElementWrapper", Map.of("name", "\"yummy-yummy\"")) + .toProperty().toType() + .assertMethod("getFoods") + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"yummy-yummy\"")) + .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"yummy-yummy\"")) + .toFileAssert() - // ↓ internal xml-array element name (4th example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) - .assertProperty("colors").assertPropertyAnnotations() - .doesNotContainWithName("XmlAttribute") - .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"color\"")) - .containsWithNameAndAttributes("XmlElementWrapper", Map.of("name", "\"colors\"")) - .toProperty().toType() - .assertMethod("getColors") - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"color\"")) - .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"colors\"")) - .toFileAssert() + // ↓ internal xml-array element name (4th example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) + .assertProperty("colors").assertPropertyAnnotations() + .doesNotContainWithName("XmlAttribute") + .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"color\"")) + .containsWithNameAndAttributes("XmlElementWrapper", Map.of("name", "\"colors\"")) + .toProperty().toType() + .assertMethod("getColors") + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"color\"")) + .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"colors\"")) + .toFileAssert() - // ↓ ignored external xml-array element name, non-wrapped (2nd example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) - .assertProperty("categories").assertPropertyAnnotations() - .doesNotContainWithName("XmlAttribute") - .doesNotContainWithName("XmlElementWrapper") - .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"Category\"")) - .toProperty().toType() - .assertMethod("getCategories") - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"Category\"")) - // ↓ specific regression test for #2417: (useWrapping=false) needs to be present - .hasAnnotation("JacksonXmlElementWrapper", Map.of("useWrapping", "false")) - .toFileAssert() + // ↓ ignored external xml-array element name, non-wrapped (2nd example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) + .assertProperty("categories").assertPropertyAnnotations() + .doesNotContainWithName("XmlAttribute") + .doesNotContainWithName("XmlElementWrapper") + .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"Category\"")) + .toProperty().toType() + .assertMethod("getCategories") + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"Category\"")) + // ↓ specific regression test for #2417: (useWrapping=false) needs to be present + .hasAnnotation("JacksonXmlElementWrapper", Map.of("useWrapping", "false")) + .toFileAssert() - // ↓ test custom-name on wrapper AND children (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Use%20xml/name%20to%20give%20different%20names) - // maps to 5th example in https://spec.openapis.org/oas/v3.0.0#xml-arrays - .assertProperty("activities").assertPropertyAnnotations() - .doesNotContainWithName("XmlAttribute") - .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"item\"")) - .containsWithNameAndAttributes("XmlElementWrapper", Map.of("name", "\"activities-array\"")) - .toProperty().toType() - .assertMethod("getActivities") - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"item\"")) - .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"activities-array\"")); + // ↓ test custom-name on wrapper AND children (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Use%20xml/name%20to%20give%20different%20names) + // maps to 5th example in https://spec.openapis.org/oas/v3.0.0#xml-arrays + .assertProperty("activities").assertPropertyAnnotations() + .doesNotContainWithName("XmlAttribute") + .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"item\"")) + .containsWithNameAndAttributes("XmlElementWrapper", Map.of("name", "\"activities-array\"")) + .toProperty().toType() + .assertMethod("getActivities") + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"item\"")) + .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"activities-array\"")); } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/micronaut/JavaMicronautServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/micronaut/JavaMicronautServerCodegenTest.java index ceb6aee4b85..6f7df0f45b7 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/micronaut/JavaMicronautServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/micronaut/JavaMicronautServerCodegenTest.java @@ -11,7 +11,6 @@ import org.openapitools.codegen.config.CodegenConfigurator; import org.openapitools.codegen.java.assertions.JavaFileAssert; import org.openapitools.codegen.languages.JavaMicronautServerCodegen; import org.openapitools.codegen.testutils.ConfigAssert; -import org.testng.Assert; import org.testng.annotations.Test; import java.io.File; @@ -204,7 +203,7 @@ public class JavaMicronautServerCodegenTest extends AbstractMicronautCodegenTest @Test public void testExtraAnnotations() throws Exception { - + JavaMicronautServerCodegen codegen = new JavaMicronautServerCodegen(); String outputPath = generateFiles(codegen, "src/test/resources/3_0/issue_11772.yml", CodegenConstants.MODELS); @@ -353,138 +352,139 @@ public class JavaMicronautServerCodegenTest extends AbstractMicronautCodegenTest * Includes regression tests for: * - Correct Jackson annotation when `wrapped: false` */ - @Test public void shouldGenerateCorrectXmlAnnotations() { + @Test + public void shouldGenerateCorrectXmlAnnotations() { // Arrange final CodegenConfigurator config = new CodegenConfigurator() - .addAdditionalProperty(CodegenConstants.WITH_XML, true) - .addGlobalProperty(CodegenConstants.MODELS, "Pet") - .addGlobalProperty(CodegenConstants.MODEL_DOCS, null) - .addGlobalProperty(CodegenConstants.MODEL_TESTS, null) - .setGeneratorName(JavaMicronautServerCodegen.NAME) - .setInputSpec("src/test/resources/3_0/java/xml-annotations-test.yaml") - .setOutputDir(newTempFolder().toString()); + .addAdditionalProperty(CodegenConstants.WITH_XML, true) + .addGlobalProperty(CodegenConstants.MODELS, "Pet") + .addGlobalProperty(CodegenConstants.MODEL_DOCS, null) + .addGlobalProperty(CodegenConstants.MODEL_TESTS, null) + .setGeneratorName(JavaMicronautServerCodegen.NAME) + .setInputSpec("src/test/resources/3_0/java/xml-annotations-test.yaml") + .setOutputDir(newTempFolder().toString()); // Act final List files = new DefaultGenerator().opts(config.toClientOptInput()).generate(); // Assert JavaFileAssert.assertThat(files.get(0)) - .assertTypeAnnotations() - .containsWithNameAndAttributes("JacksonXmlRootElement", Map.of("localName", "\"Pet\"", "namespace", "\"urn:jacksonxml\"")) - .containsWithNameAndAttributes("XmlRootElement", Map.of("name", "\"Pet\"", "namespace", "\"urn:jacksonxml\"")) - .containsWithNameAndAttributes("XmlAccessorType", Map.of("value", "XmlAccessType.FIELD")) - .toType() + .assertTypeAnnotations() + .containsWithNameAndAttributes("JacksonXmlRootElement", Map.of("localName", "\"Pet\"", "namespace", "\"urn:jacksonxml\"")) + .containsWithNameAndAttributes("XmlRootElement", Map.of("name", "\"Pet\"", "namespace", "\"urn:jacksonxml\"")) + .containsWithNameAndAttributes("XmlAccessorType", Map.of("value", "XmlAccessType.FIELD")) + .toType() - // ↓ test custom-name on wrapper element (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Use%20xml/name%20to%20give%20different%20names) - .assertProperty("tags").assertPropertyAnnotations() - .doesNotContainWithName("XmlAttribute") - .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"Tag\"")) - .containsWithNameAndAttributes("XmlElementWrapper", Map.of("name", "\"TagList\"")) - .toProperty().toType() - .assertMethod("getTags") - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"Tag\"")) - .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"TagList\"", "useWrapping", "true")) - .toFileAssert() + // ↓ test custom-name on wrapper element (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Use%20xml/name%20to%20give%20different%20names) + .assertProperty("tags").assertPropertyAnnotations() + .doesNotContainWithName("XmlAttribute") + .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"Tag\"")) + .containsWithNameAndAttributes("XmlElementWrapper", Map.of("name", "\"TagList\"")) + .toProperty().toType() + .assertMethod("getTags") + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"Tag\"")) + .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"TagList\"", "useWrapping", "true")) + .toFileAssert() - // ↓ custom internal xml-array element name, non-wrapped (1st example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) - .assertProperty("friends").assertPropertyAnnotations() - .doesNotContainWithName("XmlAttribute") - .doesNotContainWithName("XmlElementWrapper") - .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"friend-pet\"")) - .toProperty().toType() - .assertMethod("getFriends") - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"friend-pet\"")) - .hasAnnotation("JacksonXmlElementWrapper", Map.of("useWrapping", "false")) - .toFileAssert() + // ↓ custom internal xml-array element name, non-wrapped (1st example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) + .assertProperty("friends").assertPropertyAnnotations() + .doesNotContainWithName("XmlAttribute") + .doesNotContainWithName("XmlElementWrapper") + .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"friend-pet\"")) + .toProperty().toType() + .assertMethod("getFriends") + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"friend-pet\"")) + .hasAnnotation("JacksonXmlElementWrapper", Map.of("useWrapping", "false")) + .toFileAssert() - // ↓ test custom element name (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Change%20Element%20Names) - .assertProperty("status").assertPropertyAnnotations() - .doesNotContainWithName("XmlAttribute") - .doesNotContainWithName("XmlElementWrapper") - .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"PetStatus\"")) - .toProperty().toType() - .assertMethod("getStatus") - .doesNotHaveAnnotation("JacksonXmlElementWrapper") - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"PetStatus\"")) - .toFileAssert() + // ↓ test custom element name (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Change%20Element%20Names) + .assertProperty("status").assertPropertyAnnotations() + .doesNotContainWithName("XmlAttribute") + .doesNotContainWithName("XmlElementWrapper") + .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"PetStatus\"")) + .toProperty().toType() + .assertMethod("getStatus") + .doesNotHaveAnnotation("JacksonXmlElementWrapper") + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"PetStatus\"")) + .toFileAssert() - // ↓ test same-name wrapping element (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Wrapping%20Arrays) - // maps to 3rd example in https://spec.openapis.org/oas/v3.0.0#xml-arrays - .assertProperty("photoUrls").assertPropertyAnnotations() - .doesNotContainWithName("XmlAttribute") - .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"photoUrls\"")) - .containsWithNameAndAttributes("XmlElementWrapper", Map.of("name", "\"photoUrls\"")) - .toProperty().toType() - .assertMethod("getPhotoUrls") - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"photoUrls\"")) - .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"photoUrls\"", "useWrapping", "true")) - .toFileAssert() + // ↓ test same-name wrapping element (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Wrapping%20Arrays) + // maps to 3rd example in https://spec.openapis.org/oas/v3.0.0#xml-arrays + .assertProperty("photoUrls").assertPropertyAnnotations() + .doesNotContainWithName("XmlAttribute") + .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"photoUrls\"")) + .containsWithNameAndAttributes("XmlElementWrapper", Map.of("name", "\"photoUrls\"")) + .toProperty().toType() + .assertMethod("getPhotoUrls") + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"photoUrls\"")) + .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"photoUrls\"", "useWrapping", "true")) + .toFileAssert() - // ↓ test attribute generation (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Convert%20Property%20to%20an%20Attribute) - .assertProperty("name").assertPropertyAnnotations() - .doesNotContainWithName("XmlElement") - .doesNotContainWithName("XmlElementWrapper") - .containsWithNameAndAttributes("XmlAttribute", Map.of("name", "\"name\"")) - .toProperty().toType() - .assertMethod("getName") - .doesNotHaveAnnotation("JacksonXmlElementWrapper") - .hasAnnotation("JacksonXmlProperty", Map.of("isAttribute", "true", "localName", "\"name\"")) - .toFileAssert() + // ↓ test attribute generation (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Convert%20Property%20to%20an%20Attribute) + .assertProperty("name").assertPropertyAnnotations() + .doesNotContainWithName("XmlElement") + .doesNotContainWithName("XmlElementWrapper") + .containsWithNameAndAttributes("XmlAttribute", Map.of("name", "\"name\"")) + .toProperty().toType() + .assertMethod("getName") + .doesNotHaveAnnotation("JacksonXmlElementWrapper") + .hasAnnotation("JacksonXmlProperty", Map.of("isAttribute", "true", "localName", "\"name\"")) + .toFileAssert() - // ↓ test XML namespace and prefix (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Prefixes%20and%20Namespaces) - .assertProperty("id").assertPropertyAnnotations() - .doesNotContainWithName("XmlAttribute") - .doesNotContainWithName("XmlElementWrapper") - .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"id\"", "namespace", "\"http://example.com/schema\"")) - .toProperty().toType() - .assertMethod("getId") - .doesNotHaveAnnotation("JacksonXmlElementWrapper") - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"id\"", "namespace", "\"http://example.com/schema\"")) - .toFileAssert() + // ↓ test XML namespace and prefix (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Prefixes%20and%20Namespaces) + .assertProperty("id").assertPropertyAnnotations() + .doesNotContainWithName("XmlAttribute") + .doesNotContainWithName("XmlElementWrapper") + .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"id\"", "namespace", "\"http://example.com/schema\"")) + .toProperty().toType() + .assertMethod("getId") + .doesNotHaveAnnotation("JacksonXmlElementWrapper") + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"id\"", "namespace", "\"http://example.com/schema\"")) + .toFileAssert() - // ↓ external xml-array element name only (last example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) - .assertProperty("foods").assertPropertyAnnotations() - .doesNotContainWithName("XmlAttribute") - .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"yummy-yummy\"")) - .containsWithNameAndAttributes("XmlElementWrapper", Map.of("name", "\"yummy-yummy\"")) - .toProperty().toType() - .assertMethod("getFoods") - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"yummy-yummy\"")) - .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"yummy-yummy\"")) - .toFileAssert() + // ↓ external xml-array element name only (last example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) + .assertProperty("foods").assertPropertyAnnotations() + .doesNotContainWithName("XmlAttribute") + .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"yummy-yummy\"")) + .containsWithNameAndAttributes("XmlElementWrapper", Map.of("name", "\"yummy-yummy\"")) + .toProperty().toType() + .assertMethod("getFoods") + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"yummy-yummy\"")) + .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"yummy-yummy\"")) + .toFileAssert() - // ↓ internal xml-array element name (4th example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) - .assertProperty("colors").assertPropertyAnnotations() - .doesNotContainWithName("XmlAttribute") - .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"color\"")) - .containsWithNameAndAttributes("XmlElementWrapper", Map.of("name", "\"colors\"")) - .toProperty().toType() - .assertMethod("getColors") - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"color\"")) - .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"colors\"")) - .toFileAssert() + // ↓ internal xml-array element name (4th example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) + .assertProperty("colors").assertPropertyAnnotations() + .doesNotContainWithName("XmlAttribute") + .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"color\"")) + .containsWithNameAndAttributes("XmlElementWrapper", Map.of("name", "\"colors\"")) + .toProperty().toType() + .assertMethod("getColors") + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"color\"")) + .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"colors\"")) + .toFileAssert() - // ↓ ignored external xml-array element name, non-wrapped (2nd example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) - .assertProperty("categories").assertPropertyAnnotations() - .doesNotContainWithName("XmlAttribute") - .doesNotContainWithName("XmlElementWrapper") - .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"Category\"")) - .toProperty().toType() - .assertMethod("getCategories") - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"Category\"")) - // ↓ specific regression test for #2417: (useWrapping=false) needs to be present - .hasAnnotation("JacksonXmlElementWrapper", Map.of("useWrapping", "false")) - .toFileAssert() + // ↓ ignored external xml-array element name, non-wrapped (2nd example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) + .assertProperty("categories").assertPropertyAnnotations() + .doesNotContainWithName("XmlAttribute") + .doesNotContainWithName("XmlElementWrapper") + .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"Category\"")) + .toProperty().toType() + .assertMethod("getCategories") + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"Category\"")) + // ↓ specific regression test for #2417: (useWrapping=false) needs to be present + .hasAnnotation("JacksonXmlElementWrapper", Map.of("useWrapping", "false")) + .toFileAssert() - // ↓ test custom-name on wrapper AND children (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Use%20xml/name%20to%20give%20different%20names) - // maps to 5th example in https://spec.openapis.org/oas/v3.0.0#xml-arrays - .assertProperty("activities").assertPropertyAnnotations() - .doesNotContainWithName("XmlAttribute") - .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"item\"")) - .containsWithNameAndAttributes("XmlElementWrapper", Map.of("name", "\"activities-array\"")) - .toProperty().toType() - .assertMethod("getActivities") - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"item\"")) - .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"activities-array\"")); + // ↓ test custom-name on wrapper AND children (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Use%20xml/name%20to%20give%20different%20names) + // maps to 5th example in https://spec.openapis.org/oas/v3.0.0#xml-arrays + .assertProperty("activities").assertPropertyAnnotations() + .doesNotContainWithName("XmlAttribute") + .containsWithNameAndAttributes("XmlElement", Map.of("name", "\"item\"")) + .containsWithNameAndAttributes("XmlElementWrapper", Map.of("name", "\"activities-array\"")) + .toProperty().toType() + .assertMethod("getActivities") + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"item\"")) + .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"activities-array\"")); } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/play/JavaPlayFrameworkCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/play/JavaPlayFrameworkCodegenTest.java index 8a7c81c91db..ff8cbcca8c1 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/play/JavaPlayFrameworkCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/play/JavaPlayFrameworkCodegenTest.java @@ -20,14 +20,12 @@ package org.openapitools.codegen.java.play; import io.swagger.parser.OpenAPIParser; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.parser.core.models.ParseOptions; - import org.openapitools.codegen.ClientOptInput; import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.DefaultGenerator; import org.openapitools.codegen.TestUtils; import org.openapitools.codegen.languages.JavaPlayFrameworkCodegen; import org.openapitools.codegen.testutils.ConfigAssert; -import org.testng.Assert; import org.testng.annotations.Test; import java.io.File; @@ -74,10 +72,10 @@ public class JavaPlayFrameworkCodegenTest { codegen.additionalProperties().put(CodegenConstants.HIDE_GENERATION_TIMESTAMP, "true"); codegen.additionalProperties().put(CodegenConstants.MODEL_PACKAGE, "xyz.yyyyy.mmmmm.model"); codegen.additionalProperties().put(CodegenConstants.API_PACKAGE, "xyz.yyyyy.aaaaa.api"); - codegen.additionalProperties().put(CodegenConstants.INVOKER_PACKAGE,"xyz.yyyyy.iiii.invoker"); - codegen.additionalProperties().put(JavaPlayFrameworkCodegen.BASE_PACKAGE,"xyz.yyyyy.bbbb.base"); - codegen.additionalProperties().put(JavaPlayFrameworkCodegen.CONFIG_PACKAGE,"xyz.yyyyy.cccc.config"); - codegen.additionalProperties().put("serverPort","8088"); + codegen.additionalProperties().put(CodegenConstants.INVOKER_PACKAGE, "xyz.yyyyy.iiii.invoker"); + codegen.additionalProperties().put(JavaPlayFrameworkCodegen.BASE_PACKAGE, "xyz.yyyyy.bbbb.base"); + codegen.additionalProperties().put(JavaPlayFrameworkCodegen.CONFIG_PACKAGE, "xyz.yyyyy.cccc.config"); + codegen.additionalProperties().put("serverPort", "8088"); codegen.processOpts(); ConfigAssert configAssert = new ConfigAssert(codegen.additionalProperties()); configAssert.assertValue(CodegenConstants.HIDE_GENERATION_TIMESTAMP, codegen::isHideGenerationTimestamp, Boolean.TRUE); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java index 378ec66140e..3bff328a603 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java @@ -740,25 +740,25 @@ public class SpringCodegenTest { final Map files = generateFiles(codegen, "src/test/resources/3_0/spring/petstore-with-fake-endpoints-models-for-testing.yaml"); JavaFileAssert.assertThat(files.get("AdditionalPropertiesAnyType.java")) - .assertProperty("additionalProperties").withType("Map") - .toType() - .assertMethod("putAdditionalProperty", "String", "Object") - .toFileAssert() - .assertMethod("getAdditionalProperty", "String").hasReturnType("Object"); + .assertProperty("additionalProperties").withType("Map") + .toType() + .assertMethod("putAdditionalProperty", "String", "Object") + .toFileAssert() + .assertMethod("getAdditionalProperty", "String").hasReturnType("Object"); JavaFileAssert.assertThat(files.get("AdditionalPropertiesArray.java")) - .assertProperty("additionalProperties").withType("Map") - .toType() - .assertMethod("putAdditionalProperty", "String", "List") - .toFileAssert() - .assertMethod("getAdditionalProperty", "String").hasReturnType("List"); + .assertProperty("additionalProperties").withType("Map") + .toType() + .assertMethod("putAdditionalProperty", "String", "List") + .toFileAssert() + .assertMethod("getAdditionalProperty", "String").hasReturnType("List"); JavaFileAssert.assertThat(files.get("AdditionalPropertiesInteger.java")) - .assertProperty("additionalProperties").withType("Map") - .toType() - .assertMethod("putAdditionalProperty", "String", "Integer") - .toFileAssert() - .assertMethod("getAdditionalProperty", "String").hasReturnType("Integer"); + .assertProperty("additionalProperties").withType("Map") + .toType() + .assertMethod("putAdditionalProperty", "String", "Integer") + .toFileAssert() + .assertMethod("getAdditionalProperty", "String").hasReturnType("Integer"); } @Test @@ -767,7 +767,7 @@ public class SpringCodegenTest { output.deleteOnExit(); OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/bugs/issue_14418.yaml", null, new ParseOptions()).getOpenAPI(); + .readLocation("src/test/resources/bugs/issue_14418.yaml", null, new ParseOptions()).getOpenAPI(); SpringCodegen codegen = new SpringCodegen(); codegen.setLibrary(SPRING_BOOT); codegen.setOutputDir(output.getAbsolutePath()); @@ -779,23 +779,23 @@ public class SpringCodegenTest { codegen.additionalProperties().put(SpringCodegen.IMPLICIT_HEADERS, "true"); ClientOptInput input = new ClientOptInput() - .openAPI(openAPI) - .config(codegen); + .openAPI(openAPI) + .config(codegen); DefaultGenerator generator = new DefaultGenerator(); generator.setGenerateMetadata(false); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(Collectors.toMap(File::getName, Function.identity())); JavaFileAssert.assertThat(files.get("TestApi.java")) - .isInterface() - .hasImports("io.swagger.v3.oas.annotations.enums.ParameterIn") - .assertMethod("test") - .assertMethodAnnotations() - .containsWithNameAndAttributes("Parameters", ImmutableMap.of( - "value", "{ @Parameter(name = \"testHeader\", description = \"Test header\", required = true, in = ParameterIn.HEADER) }" - // in = ParameterIn.HEADER is missing?! - )); + .isInterface() + .hasImports("io.swagger.v3.oas.annotations.enums.ParameterIn") + .assertMethod("test") + .assertMethodAnnotations() + .containsWithNameAndAttributes("Parameters", ImmutableMap.of( + "value", "{ @Parameter(name = \"testHeader\", description = \"Test header\", required = true, in = ParameterIn.HEADER) }" + // in = ParameterIn.HEADER is missing?! + )); } @Test @@ -804,7 +804,7 @@ public class SpringCodegenTest { output.deleteOnExit(); OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/3_1/petstore.yaml", null, new ParseOptions()).getOpenAPI(); + .readLocation("src/test/resources/3_1/petstore.yaml", null, new ParseOptions()).getOpenAPI(); SpringCodegen codegen = new SpringCodegen(); codegen.setLibrary(SPRING_CLOUD_LIBRARY); codegen.setOutputDir(output.getAbsolutePath()); @@ -816,16 +816,16 @@ public class SpringCodegenTest { ClientOptInput input = new ClientOptInput() - .openAPI(openAPI) - .config(codegen); + .openAPI(openAPI) + .config(codegen); DefaultGenerator generator = new DefaultGenerator(); generator.setGenerateMetadata(false); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(Collectors.toMap(File::getName, Function.identity())); JavaFileAssert.assertThat(files.get("PetController.java")) - .isInterface(); + .isInterface(); File notExisting = files.get("PetApi.java"); assertThat(notExisting).isNull(); @@ -837,7 +837,7 @@ public class SpringCodegenTest { output.deleteOnExit(); OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/bugs/issue_15933.yaml", null, new ParseOptions()).getOpenAPI(); + .readLocation("src/test/resources/bugs/issue_15933.yaml", null, new ParseOptions()).getOpenAPI(); SpringCodegen codegen = new SpringCodegen(); codegen.setLibrary(SPRING_CLOUD_LIBRARY); codegen.setOutputDir(output.getAbsolutePath()); @@ -849,17 +849,17 @@ public class SpringCodegenTest { ClientOptInput input = new ClientOptInput() - .openAPI(openAPI) - .config(codegen); + .openAPI(openAPI) + .config(codegen); DefaultGenerator generator = new DefaultGenerator(); generator.setGenerateMetadata(false); - + Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(Collectors.toMap(File::getName, Function.identity())); JavaFileAssert.assertThat(files.get("PetTagApi.java")) - .isInterface(); + .isInterface(); File notExisting = files.get("PetApi.java"); assertThat(notExisting).isNull(); @@ -871,7 +871,7 @@ public class SpringCodegenTest { output.deleteOnExit(); OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/bugs/issue_15933.yaml", null, new ParseOptions()).getOpenAPI(); + .readLocation("src/test/resources/bugs/issue_15933.yaml", null, new ParseOptions()).getOpenAPI(); SpringCodegen codegen = new SpringCodegen(); codegen.setLibrary(SPRING_CLOUD_LIBRARY); codegen.setOutputDir(output.getAbsolutePath()); @@ -883,16 +883,16 @@ public class SpringCodegenTest { ClientOptInput input = new ClientOptInput() - .openAPI(openAPI) - .config(codegen); + .openAPI(openAPI) + .config(codegen); DefaultGenerator generator = new DefaultGenerator(); generator.setGenerateMetadata(false); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(Collectors.toMap(File::getName, Function.identity())); JavaFileAssert.assertThat(files.get("PetApi.java")) - .isInterface(); + .isInterface(); File notExisting = files.get("PetTagApi.java"); assertThat(notExisting).isNull(); @@ -904,7 +904,7 @@ public class SpringCodegenTest { output.deleteOnExit(); OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/bugs/issue_14723.yaml", null, new ParseOptions()).getOpenAPI(); + .readLocation("src/test/resources/bugs/issue_14723.yaml", null, new ParseOptions()).getOpenAPI(); SpringCodegen codegen = new SpringCodegen(); codegen.setLibrary(SPRING_CLOUD_LIBRARY); codegen.setOutputDir(output.getAbsolutePath()); @@ -914,47 +914,47 @@ public class SpringCodegenTest { codegen.additionalProperties().put(CodegenConstants.API_PACKAGE, "xyz.controller"); ClientOptInput input = new ClientOptInput() - .openAPI(openAPI) - .config(codegen); + .openAPI(openAPI) + .config(codegen); DefaultGenerator generator = new DefaultGenerator(); generator.setGenerateMetadata(false); // skip metadata and ↓ only generate models generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(Collectors.toMap(File::getName, Function.identity())); JavaFileAssert.assertThat(files.get("ResponseTest.java")) - .isNormalClass() - .hasImports("javax.validation.Valid") - .assertProperty("details") - .withType( "Map" ) - .toType() - .assertProperty("response") - .withType( "JsonNullable>" ) - .toType() - .assertProperty("nullableDtos") - .withType( "JsonNullable>" ) - .toType() - .assertProperty("dtos") - .withType( "Set<@Valid ResponseTest2>" ) - .toType() - .assertProperty("listNullableDtos") - .withType( "JsonNullable>" ) - .toType() - .assertProperty("listDtos") - .withType( "List<@Valid ResponseTest2>" ) - .toType() - .assertProperty("nullableStrings") - .withType( "JsonNullable>" ) - .toType() - .assertProperty("strings") - .withType( "Set" ) - .toType() - .assertProperty("nullableInts") - .withType( "JsonNullable>" ) - .toType() - .assertProperty("ints") - .withType( "Set" ); + .isNormalClass() + .hasImports("javax.validation.Valid") + .assertProperty("details") + .withType("Map") + .toType() + .assertProperty("response") + .withType("JsonNullable>") + .toType() + .assertProperty("nullableDtos") + .withType("JsonNullable>") + .toType() + .assertProperty("dtos") + .withType("Set<@Valid ResponseTest2>") + .toType() + .assertProperty("listNullableDtos") + .withType("JsonNullable>") + .toType() + .assertProperty("listDtos") + .withType("List<@Valid ResponseTest2>") + .toType() + .assertProperty("nullableStrings") + .withType("JsonNullable>") + .toType() + .assertProperty("strings") + .withType("Set") + .toType() + .assertProperty("nullableInts") + .withType("JsonNullable>") + .toType() + .assertProperty("ints") + .withType("Set"); } @Test @@ -968,7 +968,7 @@ public class SpringCodegenTest { codegen.setLibrary(SPRING_CLOUD_LIBRARY); codegen.setOutputDir(output.getAbsolutePath()); codegen.additionalProperties().put(SpringCodegen.USE_BEANVALIDATION, "true"); - // codegen.additionalProperties().put(SpringCodegen.PERFORM_BEANVALIDATION, "true"); + // codegen.additionalProperties().put(SpringCodegen.PERFORM_BEANVALIDATION, "true"); codegen.additionalProperties().put(CodegenConstants.MODEL_PACKAGE, "xyz.model"); codegen.additionalProperties().put(CodegenConstants.API_PACKAGE, "xyz.controller"); codegen.setUseSpringBoot3(true); @@ -988,65 +988,65 @@ public class SpringCodegenTest { .hasImports("jakarta.validation.Valid") .hasImports("jakarta.validation.constraints") .assertProperty("stringPattern") - .withType( "Set<@Pattern(regexp = \"[a-z]\") String>" ) + .withType("Set<@Pattern(regexp = \"[a-z]\") String>") .toType() .assertProperty("stringMaxMinLength") - .withType( "Set<@Size(min = 1, max = 10) String>" ) + .withType("Set<@Size(min = 1, max = 10) String>") .toType() .assertProperty("stringMinLength") - .withType( "List<@Size(min = 1) String>" ) + .withType("List<@Size(min = 1) String>") .toType() .assertProperty("stringMaxLength") - .withType( "Set<@Size(max = 1) String>" ) + .withType("Set<@Size(max = 1) String>") .toType() .assertProperty("intMinMax") - .withType( "List<@Min(1) @Max(10) Integer>" ) + .withType("List<@Min(1) @Max(10) Integer>") .toType() .assertProperty("intMin") - .withType( "List<@Min(1) Integer>" ) + .withType("List<@Min(1) Integer>") .toType() .assertProperty("intMax") - .withType( "List<@Max(10) Integer>" ) + .withType("List<@Max(10) Integer>") .toType() .assertProperty("numberMinMax") - .withType( "List<@DecimalMin(value = \"1\", inclusive = true) @DecimalMax(value = \"10\", inclusive = true) BigDecimal>" ) + .withType("List<@DecimalMin(value = \"1\", inclusive = true) @DecimalMax(value = \"10\", inclusive = true) BigDecimal>") .toType() .assertProperty("numberMin") - .withType( "List<@DecimalMin(value = \"1\", inclusive = true) BigDecimal>" ) + .withType("List<@DecimalMin(value = \"1\", inclusive = true) BigDecimal>") .toType() .assertProperty("numberMax") - .withType( "List<@DecimalMax(value = \"10\", inclusive = true) BigDecimal>" ) + .withType("List<@DecimalMax(value = \"10\", inclusive = true) BigDecimal>") .toType() .assertProperty("stringPatternNullable") - .withType( "JsonNullable>" ) + .withType("JsonNullable>") .toType() .assertProperty("stringMaxMinLengthNullable") - .withType( "JsonNullable>" ) + .withType("JsonNullable>") .toType() .assertProperty("stringMinLengthNullable") - .withType( "JsonNullable>" ) + .withType("JsonNullable>") .toType() .assertProperty("stringMaxLengthNullable") - .withType( "JsonNullable>" ) + .withType("JsonNullable>") .toType() .assertProperty("intMinMaxNullable") - .withType( "JsonNullable>" ) + .withType("JsonNullable>") .toType() .assertProperty("intMinNullable") - .withType( "JsonNullable>" ) + .withType("JsonNullable>") .toType() .assertProperty("intMaxNullable") - .withType( "JsonNullable>" ) + .withType("JsonNullable>") .toType() .assertProperty("numberMinMaxNullable") - .withType( "JsonNullable>" ) + .withType("JsonNullable>") .toType() .assertProperty("numberMinNullable") - .withType( "JsonNullable>" ) + .withType("JsonNullable>") .toType() .assertProperty("numberMaxNullable") - .withType( "JsonNullable>" ) + .withType("JsonNullable>") .toType() ; } @@ -1116,33 +1116,33 @@ public class SpringCodegenTest { assertFileNotContains(petApiControllerFile.toPath(), "@RequestMapping(\"${openapi.openAPIPetstore.base-path:/v2}\")"); } - @Test - public void testNoRequestMappingAnnotation_spring_cloud_default() throws IOException { - final SpringCodegen codegen = new SpringCodegen(); - codegen.setLibrary( "spring-cloud" ); + @Test + public void testNoRequestMappingAnnotation_spring_cloud_default() throws IOException { + final SpringCodegen codegen = new SpringCodegen(); + codegen.setLibrary("spring-cloud"); - final Map files = generateFiles( codegen, "src/test/resources/2_0/petstore.yaml" ); + final Map files = generateFiles(codegen, "src/test/resources/2_0/petstore.yaml"); - // Check that the @RequestMapping annotation is not generated in the Api file - final File petApiFile = files.get( "PetApi.java" ); - JavaFileAssert.assertThat( petApiFile ).assertTypeAnnotations().hasSize( 3 ).containsWithName( "Validated" ) - .containsWithName( "Generated" ).containsWithName( "Tag" ); + // Check that the @RequestMapping annotation is not generated in the Api file + final File petApiFile = files.get("PetApi.java"); + JavaFileAssert.assertThat(petApiFile).assertTypeAnnotations().hasSize(3).containsWithName("Validated") + .containsWithName("Generated").containsWithName("Tag"); - } + } @Test public void testNoRequestMappingAnnotation() throws IOException { final SpringCodegen codegen = new SpringCodegen(); - codegen.setLibrary( "spring-cloud" ); + codegen.setLibrary("spring-cloud"); codegen.additionalProperties().put(INTERFACE_ONLY, "true"); codegen.additionalProperties().put(REQUEST_MAPPING_OPTION, SpringCodegen.RequestMappingMode.none); - final Map files = generateFiles( codegen, "src/test/resources/2_0/petstore.yaml" ); + final Map files = generateFiles(codegen, "src/test/resources/2_0/petstore.yaml"); // Check that the @RequestMapping annotation is not generated in the Api file - final File petApiFile = files.get( "PetApi.java" ); - JavaFileAssert.assertThat( petApiFile ).assertTypeAnnotations().hasSize( 3 ).containsWithName( "Validated" ) - .containsWithName( "Generated" ).containsWithName( "Tag" ); + final File petApiFile = files.get("PetApi.java"); + JavaFileAssert.assertThat(petApiFile).assertTypeAnnotations().hasSize(3).containsWithName("Validated") + .containsWithName("Generated").containsWithName("Tag"); } @Test @@ -1164,7 +1164,7 @@ public class SpringCodegenTest { configAssert.assertValue(CodegenConstants.INVOKER_PACKAGE, codegen::getInvokerPackage, "xx.yyyyyyyy.invoker"); configAssert.assertValue(SpringCodegen.BASE_PACKAGE, codegen::getBasePackage, "xx.yyyyyyyy.base"); configAssert.assertValue(SpringCodegen.CONFIG_PACKAGE, codegen::getConfigPackage, "xx.yyyyyyyy.config"); - configAssert.assertValue(SpringCodegen.UNHANDLED_EXCEPTION_HANDLING, codegen::isUnhandledException, true); + configAssert.assertValue(SpringCodegen.UNHANDLED_EXCEPTION_HANDLING, codegen::isUnhandledException, true); } @Test @@ -1216,7 +1216,7 @@ public class SpringCodegenTest { ); - assertFileNotContains(filePath,"spring.security.oauth2.client.registration.oAuth2Application.scope"); + assertFileNotContains(filePath, "spring.security.oauth2.client.registration.oAuth2Application.scope"); } @Test @@ -1231,7 +1231,7 @@ public class SpringCodegenTest { @Test public void useBeanValidationTruePerformBeanValidationFalseJakartaeeTrueForFormatEmail() throws IOException { - beanValidationForFormatEmail(true, false, true,"@jakarta.validation.constraints.Email", "@javax.validation.constraints.Email"); + beanValidationForFormatEmail(true, false, true, "@jakarta.validation.constraints.Email", "@javax.validation.constraints.Email"); } // note: java8 option/mustache tag has been removed and default to true @@ -1267,11 +1267,12 @@ public class SpringCodegenTest { .collect(Collectors.toMap(File::getName, Function.identity())); JavaFileAssert javaFileAssert = JavaFileAssert.assertThat(files.get("PersonWithEmail.java")); - if (useBeanValidation) javaFileAssert.hasImports((useJakarta? "jakarta" : "javax") + ".validation.constraints"); + if (useBeanValidation) + javaFileAssert.hasImports((useJakarta ? "jakarta" : "javax") + ".validation.constraints"); if (performBeanValidation) javaFileAssert.hasImports("org.hibernate.validator.constraints"); JavaFileAssert.assertThat(Paths.get(outputPath + "/src/main/java/org/openapitools/model/PersonWithEmail.java")) - .fileContains(contains) - .fileDoesNotContain(notContains); + .fileContains(contains) + .fileDoesNotContain(notContains); } @Test @@ -1301,11 +1302,11 @@ public class SpringCodegenTest { generator.opts(input).generate(); JavaFileAssert.assertThat(Paths.get(outputPath + "/src/main/java/org/openapitools/api/SomeApi.java")) - .fileContains("Mono>") - .fileDoesNotContain("Mono"); + .fileContains("Mono>") + .fileDoesNotContain("Mono"); JavaFileAssert.assertThat(Paths.get(outputPath + "/src/main/java/org/openapitools/api/SomeApiDelegate.java")) - .fileContains("Mono>") - .fileDoesNotContain("Mono"); + .fileContains("Mono>") + .fileDoesNotContain("Mono"); } @Test @@ -1319,11 +1320,11 @@ public class SpringCodegenTest { Map files = generateFromContract("src/test/resources/3_0/petstore.yaml", SPRING_BOOT, additionalProperties); JavaFileAssert - .assertThat(files.get("PetApi.java")) + .assertThat(files.get("PetApi.java")) .assertMethod("addPet").hasReturnType("Mono") - .toFileAssert() + .toFileAssert() .assertMethod("findPetsByStatus").hasReturnType("Flux") - .toFileAssert() + .toFileAssert() .assertMethod("deletePet").hasReturnType("Mono"); } @@ -1341,11 +1342,11 @@ public class SpringCodegenTest { Map files = generateFromContract("src/test/resources/3_0/petstore.yaml", SPRING_BOOT, additionalProperties); JavaFileAssert - .assertThat(files.get("PetApi.java")) + .assertThat(files.get("PetApi.java")) .assertMethod("addPet").hasReturnType("Mono>") - .toFileAssert() + .toFileAssert() .assertMethod("findPetsByStatus").hasReturnType("Mono>>") - .toFileAssert() + .toFileAssert() .assertMethod("deletePet").hasReturnType("Mono>"); } @@ -1375,10 +1376,10 @@ public class SpringCodegenTest { generator.setGenerateMetadata(false); // skip metadata Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(Collectors.toMap(File::getName, Function.identity())); JavaFileAssert.assertThat(files.get("ConsentControllerApi.java")) - .assertMethod("readAgreements", "ServerWebExchange"); + .assertMethod("readAgreements", "ServerWebExchange"); } @Test @@ -1407,12 +1408,12 @@ public class SpringCodegenTest { generator.setGenerateMetadata(false); // skip metadata and ↓ only generate models Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(Collectors.toMap(File::getName, Function.identity())); JavaFileAssert.assertThat(files.get("ConsentControllerApi.java")) - .assertMethod("paginated", "ServerWebExchange", "Pageable") - .toFileAssert() - .assertMethod("paginatedWithParams", "String", "ServerWebExchange", "Pageable"); + .assertMethod("paginated", "ServerWebExchange", "Pageable") + .toFileAssert() + .assertMethod("paginatedWithParams", "String", "ServerWebExchange", "Pageable"); } @Test @@ -1440,12 +1441,12 @@ public class SpringCodegenTest { generator.setGenerateMetadata(false); // skip metadata and ↓ only generate models Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(Collectors.toMap(File::getName, Function.identity())); JavaFileAssert.assertThat(files.get("ConsentControllerApi.java")) - .assertMethod("paginated", "Pageable") - .toFileAssert() - .assertMethod("paginatedWithParams", "String", "Pageable"); + .assertMethod("paginated", "Pageable") + .toFileAssert() + .assertMethod("paginatedWithParams", "String", "Pageable"); } @Test @@ -1488,13 +1489,13 @@ public class SpringCodegenTest { generator.opts(input).generate(); JavaFileAssert.assertThat(Paths.get(outputPath + "/src/main/java/org/openapitools/api/ZebrasApi.java")) - .fileContains( "allowableValues = \"0, 1\"", "@PathVariable"); + .fileContains("allowableValues = \"0, 1\"", "@PathVariable"); JavaFileAssert.assertThat(Paths.get(outputPath + "/src/main/java/org/openapitools/api/BearsApi.java")) - .fileContains( "allowableValues = \"sleeping, awake\"", "@PathVariable"); + .fileContains("allowableValues = \"sleeping, awake\"", "@PathVariable"); JavaFileAssert.assertThat(Paths.get(outputPath + "/src/main/java/org/openapitools/api/CamelsApi.java")) - .fileContains( "allowableValues = \"sleeping, awake\"", "@PathVariable"); + .fileContains("allowableValues = \"sleeping, awake\"", "@PathVariable"); JavaFileAssert.assertThat(Paths.get(outputPath + "/src/main/java/org/openapitools/api/GiraffesApi.java")) - .fileContains( "allowableValues = \"0, 1\"", "@PathVariable"); + .fileContains("allowableValues = \"0, 1\"", "@PathVariable"); } @Test @@ -1609,7 +1610,7 @@ public class SpringCodegenTest { generator.opts(input).generate(); JavaFileAssert.assertThat(Paths.get(outputPath + "/src/main/java/org/openapitools/model/Dummy.java")) - .fileContains( "status", "@NotNull"); + .fileContains("status", "@NotNull"); } @Test @@ -1636,8 +1637,8 @@ public class SpringCodegenTest { generator.opts(input).generate(); JavaFileAssert.assertThat(Paths.get(outputPath + "/src/main/java/org/openapitools/model/Dummy.java")) - .fileContains( "status") - .fileDoesNotContain("@NotNull"); + .fileContains("status") + .fileDoesNotContain("@NotNull"); } @Test @@ -1658,13 +1659,13 @@ public class SpringCodegenTest { input.config(codegen); DefaultGenerator generator = new DefaultGenerator(); - // codegen.setHateoas(true); + // codegen.setHateoas(true); generator.setGenerateMetadata(false); // skip metadata and ↓ only generate models generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_TESTS, "false"); generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_DOCS, "false"); generator.setGeneratorPropertyDefault(CodegenConstants.LEGACY_DISCRIMINATOR_BEHAVIOR, "false"); - + codegen.setUseOneOfInterfaces(true); codegen.setLegacyDiscriminatorBehavior(false); @@ -1710,7 +1711,7 @@ public class SpringCodegenTest { assertFileContains(Paths.get(outputPath + "/src/main/java/org/openapitools/model/FooRefOrValue.java"), "public interface FooRefOrValue"); // previous bugs JavaFileAssert.assertThat(Paths.get(outputPath + "/src/main/java/org/openapitools/model/BarRef.java")) - .fileDoesNotContain("atTypesuper.hashCode", "private String atBaseType"); + .fileDoesNotContain("atTypesuper.hashCode", "private String atBaseType"); // imports for inherited properties assertFileContains(Paths.get(outputPath + "/src/main/java/org/openapitools/model/PizzaSpeziale.java"), "import java.math.BigDecimal"); } @@ -1721,7 +1722,7 @@ public class SpringCodegenTest { output.deleteOnExit(); String outputPath = output.getAbsolutePath().replace('\\', '/'); OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/bugs/issue_14731.yaml", null, new ParseOptions()).getOpenAPI(); + .readLocation("src/test/resources/bugs/issue_14731.yaml", null, new ParseOptions()).getOpenAPI(); SpringCodegen codegen = new SpringCodegen(); codegen.setOutputDir(output.getAbsolutePath()); @@ -1758,7 +1759,7 @@ public class SpringCodegenTest { output.deleteOnExit(); String outputPath = output.getAbsolutePath().replace('\\', '/'); OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/bugs/issue_14731.yaml", null, new ParseOptions()).getOpenAPI(); + .readLocation("src/test/resources/bugs/issue_14731.yaml", null, new ParseOptions()).getOpenAPI(); SpringCodegen codegen = new SpringCodegen(); codegen.setOutputDir(output.getAbsolutePath()); @@ -1796,7 +1797,7 @@ public class SpringCodegenTest { output.deleteOnExit(); String outputPath = output.getAbsolutePath().replace('\\', '/'); OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/3_0/oneOfDiscriminator.yaml", null, new ParseOptions()).getOpenAPI(); + .readLocation("src/test/resources/3_0/oneOfDiscriminator.yaml", null, new ParseOptions()).getOpenAPI(); SpringCodegen codegen = new SpringCodegen(); codegen.setOutputDir(output.getAbsolutePath()); @@ -1821,18 +1822,18 @@ public class SpringCodegenTest { generator.opts(input).generate(); assertFileContains( - Paths.get(outputPath + "/src/main/java/org/openapitools/model/FruitOneOfEnumMappingDisc.java"), - "public FruitTypeEnum getFruitType();" + Paths.get(outputPath + "/src/main/java/org/openapitools/model/FruitOneOfEnumMappingDisc.java"), + "public FruitTypeEnum getFruitType();" ); assertFileContains( - Paths.get(outputPath + "/src/main/java/org/openapitools/model/AppleOneOfEnumMappingDisc.java"), - "private FruitTypeEnum fruitType;", - "public FruitTypeEnum getFruitType() {" + Paths.get(outputPath + "/src/main/java/org/openapitools/model/AppleOneOfEnumMappingDisc.java"), + "private FruitTypeEnum fruitType;", + "public FruitTypeEnum getFruitType() {" ); assertFileContains( - Paths.get(outputPath + "/src/main/java/org/openapitools/model/BananaOneOfEnumMappingDisc.java"), - "private FruitTypeEnum fruitType;", - "public FruitTypeEnum getFruitType() {" + Paths.get(outputPath + "/src/main/java/org/openapitools/model/BananaOneOfEnumMappingDisc.java"), + "private FruitTypeEnum fruitType;", + "public FruitTypeEnum getFruitType() {" ); } @@ -1981,7 +1982,7 @@ public class SpringCodegenTest { output.deleteOnExit(); OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/3_0/petstore.yaml", null, new ParseOptions()).getOpenAPI(); + .readLocation("src/test/resources/3_0/petstore.yaml", null, new ParseOptions()).getOpenAPI(); SpringCodegen codegen = new SpringCodegen(); codegen.setLibrary(SPRING_BOOT); codegen.setOutputDir(output.getAbsolutePath()); @@ -1989,8 +1990,8 @@ public class SpringCodegenTest { codegen.additionalProperties().put(BeanValidationFeatures.USE_BEANVALIDATION, "true"); ClientOptInput input = new ClientOptInput() - .openAPI(openAPI) - .config(codegen); + .openAPI(openAPI) + .config(codegen); DefaultGenerator generator = new DefaultGenerator(); generator.setGenerateMetadata(false); // skip metadata and ↓ only generate API @@ -1999,19 +2000,19 @@ public class SpringCodegenTest { generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(Collectors.toMap(File::getName, Function.identity())); JavaFileAssert.assertThat(files.get("PetApi.java")) - .hasImports("io.swagger.v3.oas.annotations.ExternalDocumentation") - .assertMethod("updatePet") - .assertMethodAnnotations() - .containsWithName("Operation") - .containsWithNameAndAttributes("Operation", - ImmutableMap.of( - "operationId", "\"updatePet\"", - //"security", "{ @SecurityRequirement(name = \"petstore_auth\", scopes = { \"write:pets\", \"read:pets\" }) }", - "externalDocs", "@ExternalDocumentation(description = \"API documentation for the updatePet operation\", url = \"http://petstore.swagger.io/v2/doc/updatePet\")" - ) + .hasImports("io.swagger.v3.oas.annotations.ExternalDocumentation") + .assertMethod("updatePet") + .assertMethodAnnotations() + .containsWithName("Operation") + .containsWithNameAndAttributes("Operation", + ImmutableMap.of( + "operationId", "\"updatePet\"", + //"security", "{ @SecurityRequirement(name = \"petstore_auth\", scopes = { \"write:pets\", \"read:pets\" }) }", + "externalDocs", "@ExternalDocumentation(description = \"API documentation for the updatePet operation\", url = \"http://petstore.swagger.io/v2/doc/updatePet\")" + ) ); } @@ -2206,7 +2207,7 @@ public class SpringCodegenTest { Map files = generateFromContract("src/test/resources/bugs/issue_12524.json", SPRING_BOOT, additionalProperties); JavaFileAssert.assertThat(files.get("API01ListOfStuff.java")) - .hasImports("com.fasterxml.jackson.annotation.JsonTypeName"); + .hasImports("com.fasterxml.jackson.annotation.JsonTypeName"); } finally { GlobalSettings.reset(); } @@ -2222,11 +2223,11 @@ public class SpringCodegenTest { Map files = generateFromContract("src/test/resources/2_0/petstore-with-spring-pageable.yaml", SPRING_BOOT, additionalProperties); JavaFileAssert.assertThat(files.get("PetApi.java")) - .hasImports("org.springdoc.api.annotations.ParameterObject") - .assertMethod("findPetsByStatus") - .assertParameter("pageable").hasType("Pageable") - .assertParameterAnnotations() - .containsWithName("ParameterObject"); + .hasImports("org.springdoc.api.annotations.ParameterObject") + .assertMethod("findPetsByStatus") + .assertParameter("pageable").hasType("Pageable") + .assertParameterAnnotations() + .containsWithName("ParameterObject"); // different import for SB3 @@ -2234,11 +2235,11 @@ public class SpringCodegenTest { files = generateFromContract("src/test/resources/2_0/petstore-with-spring-pageable.yaml", SPRING_BOOT, additionalProperties); JavaFileAssert.assertThat(files.get("PetApi.java")) - .hasImports("org.springdoc.core.annotations.ParameterObject", "org.springframework.data.domain.Pageable") - .assertMethod("findPetsByStatus") - .assertParameter("pageable").hasType("Pageable") - .assertParameterAnnotations() - .containsWithName("ParameterObject"); + .hasImports("org.springdoc.core.annotations.ParameterObject", "org.springframework.data.domain.Pageable") + .assertMethod("findPetsByStatus") + .assertParameter("pageable").hasType("Pageable") + .assertParameterAnnotations() + .containsWithName("ParameterObject"); } @Test @@ -2328,7 +2329,7 @@ public class SpringCodegenTest { generator.opts(input).generate(); definitions.forEach((file, check) -> - assertFileContains(Paths.get(outputPath + "/src/main/java/org/openapitools/model/" + file), check)); + assertFileContains(Paths.get(outputPath + "/src/main/java/org/openapitools/model/" + file), check)); } @Test @@ -2547,12 +2548,12 @@ public class SpringCodegenTest { Map files = generateFiles(codegen, "src/test/resources/bugs/issue_14252.yaml"); JavaFileAssert.assertThat(files.get("MyResponse.java")) - .hasImports("com.fasterxml.jackson.annotation.JsonFormat") - .assertMethod("getMyPropTypeNumber") - .assertMethodAnnotations() - .containsWithNameAndAttributes("JsonFormat", ImmutableMap.of( - "shape", "JsonFormat.Shape.STRING" - )); + .hasImports("com.fasterxml.jackson.annotation.JsonFormat") + .assertMethod("getMyPropTypeNumber") + .assertMethodAnnotations() + .containsWithNameAndAttributes("JsonFormat", ImmutableMap.of( + "shape", "JsonFormat.Shape.STRING" + )); } @Test @@ -2576,8 +2577,8 @@ public class SpringCodegenTest { javaFileAssert.assertMethod("getName").assertMethodAnnotations() .containsWithName("NotNull").containsWithName("Size").containsWithName("javax.validation.constraints.Email"); javaFileAssert - .hasNoImports("javax.validation.constraints.NotNull") - .hasImports("javax.validation.constraints"); + .hasNoImports("javax.validation.constraints.NotNull") + .hasImports("javax.validation.constraints"); } @Test @@ -2683,7 +2684,7 @@ public class SpringCodegenTest { output.deleteOnExit(); OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/bugs/issue_13917.yaml", null, new ParseOptions()).getOpenAPI(); + .readLocation("src/test/resources/bugs/issue_13917.yaml", null, new ParseOptions()).getOpenAPI(); SpringCodegen codegen = new SpringCodegen(); codegen.setLibrary(SPRING_BOOT); codegen.setOutputDir(output.getAbsolutePath()); @@ -2696,27 +2697,27 @@ public class SpringCodegenTest { codegen.additionalProperties().put(AbstractJavaCodegen.ADDITIONAL_ONE_OF_TYPE_ANNOTATIONS, "@marker.Interface1;@marker.Common"); ClientOptInput input = new ClientOptInput() - .openAPI(openAPI) - .config(codegen); + .openAPI(openAPI) + .config(codegen); DefaultGenerator generator = new DefaultGenerator(); generator.setGenerateMetadata(false); // skip metadata and ↓ only generate models generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(Collectors.toMap(File::getName, Function.identity())); JavaFileAssert.assertThat(files.get("PatchRequestInner.java")) - .isInterface() - .assertTypeAnnotations() - .containsWithName("marker.Interface1") - .containsWithName("marker.Common"); + .isInterface() + .assertTypeAnnotations() + .containsWithName("marker.Interface1") + .containsWithName("marker.Common"); JavaFileAssert.assertThat(files.get("JSONPatchRequestRemove.java")) - .isNormalClass() - .assertTypeAnnotations() - .containsWithName("marker.Class1") - .containsWithName("marker.Class2") - .containsWithName("marker.Common"); + .isNormalClass() + .assertTypeAnnotations() + .containsWithName("marker.Class1") + .containsWithName("marker.Class2") + .containsWithName("marker.Common"); } @Test @@ -2748,7 +2749,7 @@ public class SpringCodegenTest { final ClientOptInput clientOptInput = configurator.toClientOptInput(); DefaultGenerator generator = new DefaultGenerator(); generator.setGenerateMetadata(false); - + Map files = generator.opts(clientOptInput).generate().stream() .collect(Collectors.toMap(File::getName, Function.identity())); @@ -2759,7 +2760,7 @@ public class SpringCodegenTest { @Test public void shouldUseTheSameTagNameForTheInterfaceAndTheMethod_issue11570() throws IOException { final Map output = generateFromContract( - "src/test/resources/bugs/issue_11570.yml", SPRING_BOOT, Map.of(INTERFACE_ONLY, "true") + "src/test/resources/bugs/issue_11570.yml", SPRING_BOOT, Map.of(INTERFACE_ONLY, "true") ); final String expectedTagName = "\"personTagWithExclamation!\""; @@ -2773,9 +2774,9 @@ public class SpringCodegenTest { @Test public void shouldGenerateConstructorWithOnlyRequiredParameters() throws IOException { final Map output = generateFromContract( - "src/test/resources/3_0/spring/issue_9789.yml", - SPRING_BOOT, - Map.of(GENERATE_CONSTRUCTOR_WITH_ALL_ARGS, "false") + "src/test/resources/3_0/spring/issue_9789.yml", + SPRING_BOOT, + Map.of(GENERATE_CONSTRUCTOR_WITH_ALL_ARGS, "false") ); JavaFileAssert.assertThat(output.get("ObjectWithNoRequiredParameter.java")).hasNoConstructor("String"); @@ -2798,12 +2799,13 @@ public class SpringCodegenTest { } private Map generateFromContract(String url, String library, Map additionalProperties) throws IOException { - return generateFromContract(url, library, additionalProperties, codegen -> {}); + return generateFromContract(url, library, additionalProperties, codegen -> { + }); } /** * Generate the contract with additional configuration. - * + *

    * use CodegenConfigurator instead of CodegenConfig for easier configuration like in JavaClientCodeGenTest */ private Map generateFromContract(String url, String library, Map additionalProperties, @@ -2861,8 +2863,8 @@ public class SpringCodegenTest { generator.opts(input).generate(); String jsonSubType = "@JsonSubTypes({\n" + - " @JsonSubTypes.Type(value = Foo.class, name = \"foo\")\n" + - "})"; + " @JsonSubTypes.Type(value = Foo.class, name = \"foo\")\n" + + "})"; assertFileContains(Paths.get(outputPath + "/src/main/java/org/openapitools/model/Parent.java"), jsonSubType); } @@ -2872,59 +2874,59 @@ public class SpringCodegenTest { output.deleteOnExit(); OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/3_0/spring/petstore-with-fake-endpoints-models-for-testing.yaml", null, new ParseOptions()).getOpenAPI(); + .readLocation("src/test/resources/3_0/spring/petstore-with-fake-endpoints-models-for-testing.yaml", null, new ParseOptions()).getOpenAPI(); SpringCodegen codegen = new SpringCodegen(); codegen.setLibrary(SPRING_BOOT); codegen.setWithXml(true); codegen.setOutputDir(output.getAbsolutePath()); ClientOptInput input = new ClientOptInput() - .openAPI(openAPI) - .config(codegen); + .openAPI(openAPI) + .config(codegen); DefaultGenerator generator = new DefaultGenerator(); generator.setGenerateMetadata(false); // skip metadata and ↓ only generate models generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(Collectors.toMap(File::getName, Function.identity())); JavaFileAssert.assertThat(files.get("ResponseObjectWithDifferentFieldNames.java")) - .assertProperty("normalPropertyName") + .assertProperty("normalPropertyName") .assertPropertyAnnotations() .doesNotContainWithName("JsonProperty") .doesNotContainWithName("JacksonXmlProperty") .toProperty().toType() - .assertProperty("UPPER_CASE_PROPERTY_SNAKE") + .assertProperty("UPPER_CASE_PROPERTY_SNAKE") .assertPropertyAnnotations() .doesNotContainWithName("JsonProperty") .doesNotContainWithName("JacksonXmlProperty") .toProperty().toType() - .assertProperty("lowerCasePropertyDashes") + .assertProperty("lowerCasePropertyDashes") .assertPropertyAnnotations() .doesNotContainWithName("JsonProperty") .doesNotContainWithName("JacksonXmlProperty") .toProperty().toType() - .assertProperty("propertyNameWithSpaces") + .assertProperty("propertyNameWithSpaces") .assertPropertyAnnotations() .doesNotContainWithName("JsonProperty") .doesNotContainWithName("JacksonXmlProperty") .toProperty().toType() - .assertMethod("getNormalPropertyName") + .assertMethod("getNormalPropertyName") .assertMethodAnnotations() .containsWithNameAndAttributes("JsonProperty", ImmutableMap.of("value", "\"normalPropertyName\"")) .containsWithNameAndAttributes("JacksonXmlProperty", ImmutableMap.of("localName", "\"normalPropertyName\"")) .toMethod().toFileAssert() - .assertMethod("getUPPERCASEPROPERTYSNAKE") + .assertMethod("getUPPERCASEPROPERTYSNAKE") .assertMethodAnnotations() .containsWithNameAndAttributes("JsonProperty", ImmutableMap.of("value", "\"UPPER_CASE_PROPERTY_SNAKE\"")) .containsWithNameAndAttributes("JacksonXmlProperty", ImmutableMap.of("localName", "\"UPPER_CASE_PROPERTY_SNAKE\"")) .toMethod().toFileAssert() - .assertMethod("getLowerCasePropertyDashes") + .assertMethod("getLowerCasePropertyDashes") .assertMethodAnnotations() .containsWithNameAndAttributes("JsonProperty", ImmutableMap.of("value", "\"lower-case-property-dashes\"")) .containsWithNameAndAttributes("JacksonXmlProperty", ImmutableMap.of("localName", "\"lower-case-property-dashes\"")) .toMethod().toFileAssert() - .assertMethod("getPropertyNameWithSpaces") + .assertMethod("getPropertyNameWithSpaces") .assertMethodAnnotations() .containsWithNameAndAttributes("JsonProperty", ImmutableMap.of("value", "\"property name with spaces\"")) .containsWithNameAndAttributes("JacksonXmlProperty", ImmutableMap.of("localName", "\"property name with spaces\"")); @@ -3499,7 +3501,7 @@ public class SpringCodegenTest { String outputPath = output.getAbsolutePath().replace('\\', '/'); OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/3_0/issue_16496.yaml", null, new ParseOptions()).getOpenAPI(); + .readLocation("src/test/resources/3_0/issue_16496.yaml", null, new ParseOptions()).getOpenAPI(); SpringCodegen codegen = new SpringCodegen(); codegen.setOutputDir(output.getAbsolutePath()); @@ -3520,33 +3522,33 @@ public class SpringCodegenTest { JavaFileAssert.assertThat(Paths.get(outputPath + "/src/main/java/org/openapitools/model/Animal.java")) - // Fluent method assertions - .assertMethod("alias") - .hasReturnType("Animal") - .bodyContainsLines("this.alias = JsonNullable.of(alias);", "return this;") - .assertParameter("alias") - .hasType("String") - .toMethod() - .toFileAssert() + // Fluent method assertions + .assertMethod("alias") + .hasReturnType("Animal") + .bodyContainsLines("this.alias = JsonNullable.of(alias);", "return this;") + .assertParameter("alias") + .hasType("String") + .toMethod() + .toFileAssert() - // Setter method assertions - .assertMethod("setAlias") - .hasReturnType("void") - .assertParameter("alias") - .hasType("JsonNullable"); + // Setter method assertions + .assertMethod("setAlias") + .hasReturnType("void") + .assertParameter("alias") + .hasType("JsonNullable"); JavaFileAssert.assertThat(Paths.get(outputPath + "/src/main/java/org/openapitools/model/Zebra.java")) - // Fluent method assertions - .assertMethod("alias") - .hasReturnType("Zebra") - .bodyContainsLines("super.alias(alias);", "return this;") - .assertParameter("alias") - .hasType("String") - .toMethod() - .toFileAssert() + // Fluent method assertions + .assertMethod("alias") + .hasReturnType("Zebra") + .bodyContainsLines("super.alias(alias);", "return this;") + .assertParameter("alias") + .hasType("String") + .toMethod() + .toFileAssert() - // No overridden setter on child object - .hasNoMethod("setAlias"); + // No overridden setter on child object + .hasNoMethod("setAlias"); } @Test @@ -3581,96 +3583,96 @@ public class SpringCodegenTest { .hasImports("jakarta.validation.constraints") .assertProperty("name") - .withType( "String" ) + .withType("String") .toType() .assertProperty("age") - .withType( "JsonNullable" ) + .withType("JsonNullable") .toType() .assertProperty("alias") - .withType( "JsonNullable" ) + .withType("JsonNullable") .toType() .assertProperty("color") - .withType( "String" ) + .withType("String") .toType() .assertProperty("names") - .withType( "List" ) + .withType("List") .toType() .assertProperty("colors") - .withType( "JsonNullable>" ) + .withType("JsonNullable>") .toType() .assertProperty("stringPattern") - .withType( "String" ) + .withType("String") .toType() .assertProperty("stringMaxMinLength") - .withType( "String" ) + .withType("String") .toType() .assertProperty("stringMinLength") - .withType( "String" ) + .withType("String") .toType() .assertProperty("stringMaxLength") - .withType( "String" ) + .withType("String") .toType() .assertProperty("stringEmail") - .withType( "String" ) + .withType("String") .toType() .assertProperty("intMinMax") - .withType( "Integer" ) + .withType("Integer") .toType() .assertProperty("intMin") - .withType( "Integer" ) + .withType("Integer") .toType() .assertProperty("intMax") - .withType( "Integer" ) + .withType("Integer") .toType() .assertProperty("numberMinMax") - .withType( "BigDecimal" ) + .withType("BigDecimal") .toType() .assertProperty("numberMin") - .withType( "BigDecimal" ) + .withType("BigDecimal") .toType() .assertProperty("numberMax") - .withType( "BigDecimal" ) + .withType("BigDecimal") .toType() .assertProperty("stringDefault") - .withType( "String" ) + .withType("String") .toType() .fileContains("stringDefault = \"ABC\"") .assertProperty("zebra") - .withType( "Zebra" ) + .withType("Zebra") .toType() .assertProperty("stringPatternNullable") - .withType( "JsonNullable<@Pattern(regexp = \"[a-z]\") String>" ) + .withType("JsonNullable<@Pattern(regexp = \"[a-z]\") String>") .toType() .assertProperty("stringMaxMinLengthNullable") - .withType( "JsonNullable<@Size(min = 1, max = 10) String>" ) + .withType("JsonNullable<@Size(min = 1, max = 10) String>") .toType() .assertProperty("stringMinLengthNullable") - .withType( "JsonNullable<@Size(min = 1) String>" ) + .withType("JsonNullable<@Size(min = 1) String>") .toType() .assertProperty("stringMaxLengthNullable") - .withType( "JsonNullable<@Size(max = 1) String>" ) + .withType("JsonNullable<@Size(max = 1) String>") .toType() .assertProperty("intMinMaxNullable") - .withType( "JsonNullable<@Min(1) @Max(10) Integer>" ) + .withType("JsonNullable<@Min(1) @Max(10) Integer>") .toType() .assertProperty("intMinNullable") - .withType( "JsonNullable<@Min(1) Integer>" ) + .withType("JsonNullable<@Min(1) Integer>") .toType() .assertProperty("intMaxNullable") - .withType( "JsonNullable<@Max(10) Integer>" ) + .withType("JsonNullable<@Max(10) Integer>") .toType() .assertProperty("numberMinMaxNullable") - .withType( "JsonNullable<@DecimalMin(\"1\") @DecimalMax(\"10\") BigDecimal>" ) + .withType("JsonNullable<@DecimalMin(\"1\") @DecimalMax(\"10\") BigDecimal>") .toType() .assertProperty("numberMinNullable") - .withType( "JsonNullable<@DecimalMin(\"1\") BigDecimal>" ) + .withType("JsonNullable<@DecimalMin(\"1\") BigDecimal>") .toType() .assertProperty("numberMaxNullable") - .withType( "JsonNullable<@DecimalMax(\"10\") BigDecimal>" ) + .withType("JsonNullable<@DecimalMax(\"10\") BigDecimal>") .toType() .assertProperty("stringDefaultNullable") - .withType( "JsonNullable<@Size(max = 1) String>" ) + .withType("JsonNullable<@Size(max = 1) String>") .toType() .fileContains("stringDefaultNullable = JsonNullable.undefined();") @@ -3797,96 +3799,96 @@ public class SpringCodegenTest { .hasImports("jakarta.validation.constraints") .assertProperty("name") - .withType( "String" ) + .withType("String") .toType() .assertProperty("age") - .withType( "JsonNullable" ) + .withType("JsonNullable") .toType() .assertProperty("alias") - .withType( "JsonNullable" ) + .withType("JsonNullable") .toType() .assertProperty("color") - .withType( "Optional" ) + .withType("Optional") .toType() .assertProperty("names") - .withType( "List" ) + .withType("List") .toType() .assertProperty("colors") - .withType( "JsonNullable>" ) + .withType("JsonNullable>") .toType() .assertProperty("stringPattern") - .withType( "Optional<@Pattern(regexp = \"[a-z]\") String>" ) + .withType("Optional<@Pattern(regexp = \"[a-z]\") String>") .toType() .assertProperty("stringMaxMinLength") - .withType( "Optional<@Size(min = 1, max = 10) String>" ) + .withType("Optional<@Size(min = 1, max = 10) String>") .toType() .assertProperty("stringMinLength") - .withType( "Optional<@Size(min = 1) String>" ) + .withType("Optional<@Size(min = 1) String>") .toType() .assertProperty("stringMaxLength") - .withType( "Optional<@Size(max = 1) String>" ) + .withType("Optional<@Size(max = 1) String>") .toType() .assertProperty("stringEmail") - .withType( "Optional<@jakarta.validation.constraints.Email String>" ) + .withType("Optional<@jakarta.validation.constraints.Email String>") .toType() .assertProperty("intMinMax") - .withType( "Optional<@Min(1) @Max(10) Integer>" ) + .withType("Optional<@Min(1) @Max(10) Integer>") .toType() .assertProperty("intMin") - .withType( "Optional<@Min(1) Integer>" ) + .withType("Optional<@Min(1) Integer>") .toType() .assertProperty("intMax") - .withType( "Optional<@Max(10) Integer>" ) + .withType("Optional<@Max(10) Integer>") .toType() .assertProperty("numberMinMax") - .withType( "Optional<@DecimalMin(\"1\") @DecimalMax(\"10\") BigDecimal>" ) + .withType("Optional<@DecimalMin(\"1\") @DecimalMax(\"10\") BigDecimal>") .toType() .assertProperty("numberMin") - .withType( "Optional<@DecimalMin(\"1\") BigDecimal>" ) + .withType("Optional<@DecimalMin(\"1\") BigDecimal>") .toType() .assertProperty("numberMax") - .withType( "Optional<@DecimalMax(\"10\") BigDecimal>" ) + .withType("Optional<@DecimalMax(\"10\") BigDecimal>") .toType() .assertProperty("stringDefault") - .withType( "Optional<@Size(max = 1) String>" ) + .withType("Optional<@Size(max = 1) String>") .toType() .fileContains("stringDefault = Optional.of(\"ABC\")") .assertProperty("zebra") - .withType( "Optional" ) + .withType("Optional") .toType() .assertProperty("stringPatternNullable") - .withType( "JsonNullable<@Pattern(regexp = \"[a-z]\") String>" ) + .withType("JsonNullable<@Pattern(regexp = \"[a-z]\") String>") .toType() .assertProperty("stringMaxMinLengthNullable") - .withType( "JsonNullable<@Size(min = 1, max = 10) String>" ) + .withType("JsonNullable<@Size(min = 1, max = 10) String>") .toType() .assertProperty("stringMinLengthNullable") - .withType( "JsonNullable<@Size(min = 1) String>" ) + .withType("JsonNullable<@Size(min = 1) String>") .toType() .assertProperty("stringMaxLengthNullable") - .withType( "JsonNullable<@Size(max = 1) String>" ) + .withType("JsonNullable<@Size(max = 1) String>") .toType() .assertProperty("intMinMaxNullable") - .withType( "JsonNullable<@Min(1) @Max(10) Integer>" ) + .withType("JsonNullable<@Min(1) @Max(10) Integer>") .toType() .assertProperty("intMinNullable") - .withType( "JsonNullable<@Min(1) Integer>" ) + .withType("JsonNullable<@Min(1) Integer>") .toType() .assertProperty("intMaxNullable") - .withType( "JsonNullable<@Max(10) Integer>" ) + .withType("JsonNullable<@Max(10) Integer>") .toType() .assertProperty("numberMinMaxNullable") - .withType( "JsonNullable<@DecimalMin(\"1\") @DecimalMax(\"10\") BigDecimal>" ) + .withType("JsonNullable<@DecimalMin(\"1\") @DecimalMax(\"10\") BigDecimal>") .toType() .assertProperty("numberMinNullable") - .withType( "JsonNullable<@DecimalMin(\"1\") BigDecimal>" ) + .withType("JsonNullable<@DecimalMin(\"1\") BigDecimal>") .toType() .assertProperty("numberMaxNullable") - .withType( "JsonNullable<@DecimalMax(\"10\") BigDecimal>" ) + .withType("JsonNullable<@DecimalMax(\"10\") BigDecimal>") .toType() .assertProperty("stringDefaultNullable") - .withType( "JsonNullable<@Size(max = 1) String>" ) + .withType("JsonNullable<@Size(max = 1) String>") .toType() .fileContains("stringDefaultNullable = JsonNullable.undefined();") @@ -3897,7 +3899,7 @@ public class SpringCodegenTest { .hasType("String") .toMethod() .toFileAssert() - // Setter method assertions + // Setter method assertions .assertMethod("setName") .hasReturnType("void") .assertParameter("name") @@ -3950,34 +3952,34 @@ public class SpringCodegenTest { .doesNotHaveParameters() .toFileAssert(); - assertJsonNullableMethod(javaFileAssert, String.class, "alias", "JsonNullable"); - assertJsonNullableMethod(javaFileAssert, Integer.class, "age", "JsonNullable"); - assertOptionalMethod(javaFileAssert, String.class, "color", "Optional"); + assertJsonNullableMethod(javaFileAssert, String.class, "alias", "JsonNullable"); + assertJsonNullableMethod(javaFileAssert, Integer.class, "age", "JsonNullable"); + assertOptionalMethod(javaFileAssert, String.class, "color", "Optional"); - assertOptionalMethod(javaFileAssert, String.class, "stringPattern", "Optional<@Pattern(regexp = \"[a-z]\") String>"); - assertOptionalMethod(javaFileAssert, String.class, "stringMaxMinLength", "Optional<@Size(min = 1, max = 10) String>"); - assertOptionalMethod(javaFileAssert, String.class, "stringMinLength", "Optional<@Size(min = 1) String>"); - assertOptionalMethod(javaFileAssert, String.class, "stringMaxLength", "Optional<@Size(max = 1) String>"); - assertOptionalMethod(javaFileAssert, String.class, "stringEmail", "Optional<@jakarta.validation.constraints.Email String>"); - assertOptionalMethod(javaFileAssert, Integer.class, "intMinMax", "Optional<@Min(1) @Max(10) Integer>"); - assertOptionalMethod(javaFileAssert, Integer.class, "intMin", "Optional<@Min(1) Integer>"); - assertOptionalMethod(javaFileAssert, Integer.class, "intMax", "Optional<@Max(10) Integer>"); - assertOptionalMethod(javaFileAssert, BigDecimal.class, "numberMinMax", "Optional<@DecimalMin(\"1\") @DecimalMax(\"10\") BigDecimal>"); - assertOptionalMethod(javaFileAssert, BigDecimal.class, "numberMin", "Optional<@DecimalMin(\"1\") BigDecimal>"); - assertOptionalMethod(javaFileAssert, BigDecimal.class, "numberMax", "Optional<@DecimalMax(\"10\") BigDecimal>"); - assertOptionalMethod(javaFileAssert,"Zebra", "zebra", "Optional"); + assertOptionalMethod(javaFileAssert, String.class, "stringPattern", "Optional<@Pattern(regexp = \"[a-z]\") String>"); + assertOptionalMethod(javaFileAssert, String.class, "stringMaxMinLength", "Optional<@Size(min = 1, max = 10) String>"); + assertOptionalMethod(javaFileAssert, String.class, "stringMinLength", "Optional<@Size(min = 1) String>"); + assertOptionalMethod(javaFileAssert, String.class, "stringMaxLength", "Optional<@Size(max = 1) String>"); + assertOptionalMethod(javaFileAssert, String.class, "stringEmail", "Optional<@jakarta.validation.constraints.Email String>"); + assertOptionalMethod(javaFileAssert, Integer.class, "intMinMax", "Optional<@Min(1) @Max(10) Integer>"); + assertOptionalMethod(javaFileAssert, Integer.class, "intMin", "Optional<@Min(1) Integer>"); + assertOptionalMethod(javaFileAssert, Integer.class, "intMax", "Optional<@Max(10) Integer>"); + assertOptionalMethod(javaFileAssert, BigDecimal.class, "numberMinMax", "Optional<@DecimalMin(\"1\") @DecimalMax(\"10\") BigDecimal>"); + assertOptionalMethod(javaFileAssert, BigDecimal.class, "numberMin", "Optional<@DecimalMin(\"1\") BigDecimal>"); + assertOptionalMethod(javaFileAssert, BigDecimal.class, "numberMax", "Optional<@DecimalMax(\"10\") BigDecimal>"); + assertOptionalMethod(javaFileAssert, "Zebra", "zebra", "Optional"); - assertJsonNullableMethod(javaFileAssert, String.class, "stringPatternNullable", "JsonNullable<@Pattern(regexp = \"[a-z]\") String>"); - assertJsonNullableMethod(javaFileAssert, String.class, "stringMaxMinLengthNullable", "JsonNullable<@Size(min = 1, max = 10) String>"); - assertJsonNullableMethod(javaFileAssert, String.class, "stringMinLengthNullable", "JsonNullable<@Size(min = 1) String>"); - assertJsonNullableMethod(javaFileAssert, String.class, "stringMaxLengthNullable", "JsonNullable<@Size(max = 1) String>"); - assertJsonNullableMethod(javaFileAssert, String.class, "stringEmailNullable", "JsonNullable<@jakarta.validation.constraints.Email String>"); - assertJsonNullableMethod(javaFileAssert, Integer.class, "intMinMaxNullable", "JsonNullable<@Min(1) @Max(10) Integer>"); - assertJsonNullableMethod(javaFileAssert, Integer.class, "intMinNullable", "JsonNullable<@Min(1) Integer>"); - assertJsonNullableMethod(javaFileAssert, Integer.class, "intMaxNullable", "JsonNullable<@Max(10) Integer>"); - assertJsonNullableMethod(javaFileAssert, BigDecimal.class, "numberMinMaxNullable", "JsonNullable<@DecimalMin(\"1\") @DecimalMax(\"10\") BigDecimal>"); - assertJsonNullableMethod(javaFileAssert, BigDecimal.class, "numberMinNullable", "JsonNullable<@DecimalMin(\"1\") BigDecimal>"); - assertJsonNullableMethod(javaFileAssert, BigDecimal.class, "numberMaxNullable", "JsonNullable<@DecimalMax(\"10\") BigDecimal>"); + assertJsonNullableMethod(javaFileAssert, String.class, "stringPatternNullable", "JsonNullable<@Pattern(regexp = \"[a-z]\") String>"); + assertJsonNullableMethod(javaFileAssert, String.class, "stringMaxMinLengthNullable", "JsonNullable<@Size(min = 1, max = 10) String>"); + assertJsonNullableMethod(javaFileAssert, String.class, "stringMinLengthNullable", "JsonNullable<@Size(min = 1) String>"); + assertJsonNullableMethod(javaFileAssert, String.class, "stringMaxLengthNullable", "JsonNullable<@Size(max = 1) String>"); + assertJsonNullableMethod(javaFileAssert, String.class, "stringEmailNullable", "JsonNullable<@jakarta.validation.constraints.Email String>"); + assertJsonNullableMethod(javaFileAssert, Integer.class, "intMinMaxNullable", "JsonNullable<@Min(1) @Max(10) Integer>"); + assertJsonNullableMethod(javaFileAssert, Integer.class, "intMinNullable", "JsonNullable<@Min(1) Integer>"); + assertJsonNullableMethod(javaFileAssert, Integer.class, "intMaxNullable", "JsonNullable<@Max(10) Integer>"); + assertJsonNullableMethod(javaFileAssert, BigDecimal.class, "numberMinMaxNullable", "JsonNullable<@DecimalMin(\"1\") @DecimalMax(\"10\") BigDecimal>"); + assertJsonNullableMethod(javaFileAssert, BigDecimal.class, "numberMinNullable", "JsonNullable<@DecimalMin(\"1\") BigDecimal>"); + assertJsonNullableMethod(javaFileAssert, BigDecimal.class, "numberMaxNullable", "JsonNullable<@DecimalMax(\"10\") BigDecimal>"); } @@ -4013,96 +4015,96 @@ public class SpringCodegenTest { .hasImports("jakarta.validation.constraints") .assertProperty("name") - .withType( "String" ) + .withType("String") .toType() .assertProperty("age") - .withType( "Integer" ) + .withType("Integer") .toType() .assertProperty("alias") - .withType( "String" ) + .withType("String") .toType() .assertProperty("color") - .withType( "String" ) + .withType("String") .toType() .assertProperty("names") - .withType( "List" ) + .withType("List") .toType() .assertProperty("colors") - .withType( "List" ) + .withType("List") .toType() .assertProperty("stringPattern") - .withType( "String" ) + .withType("String") .toType() .assertProperty("stringMaxMinLength") - .withType( "String" ) + .withType("String") .toType() .assertProperty("stringMinLength") - .withType( "String" ) + .withType("String") .toType() .assertProperty("stringMaxLength") - .withType( "String" ) + .withType("String") .toType() .assertProperty("stringEmail") - .withType( "String" ) + .withType("String") .toType() .assertProperty("intMinMax") - .withType( "Integer" ) + .withType("Integer") .toType() .assertProperty("intMin") - .withType( "Integer" ) + .withType("Integer") .toType() .assertProperty("intMax") - .withType( "Integer" ) + .withType("Integer") .toType() .assertProperty("numberMinMax") - .withType( "BigDecimal" ) + .withType("BigDecimal") .toType() .assertProperty("numberMin") - .withType( "BigDecimal" ) + .withType("BigDecimal") .toType() .assertProperty("numberMax") - .withType( "BigDecimal" ) + .withType("BigDecimal") .toType() .assertProperty("stringDefault") - .withType( "String" ) + .withType("String") .toType() .fileContains("stringDefault = \"ABC\"") .assertProperty("zebra") - .withType( "Zebra" ) + .withType("Zebra") .toType() .assertProperty("stringPatternNullable") - .withType( "String" ) + .withType("String") .toType() .assertProperty("stringMaxMinLengthNullable") - .withType( "String" ) + .withType("String") .toType() .assertProperty("stringMinLengthNullable") - .withType( "String" ) + .withType("String") .toType() .assertProperty("stringMaxLengthNullable") - .withType( "String" ) + .withType("String") .toType() .assertProperty("intMinMaxNullable") - .withType( "Integer" ) + .withType("Integer") .toType() .assertProperty("intMinNullable") - .withType( "Integer" ) + .withType("Integer") .toType() .assertProperty("intMaxNullable") - .withType( "Integer" ) + .withType("Integer") .toType() .assertProperty("numberMinMaxNullable") - .withType( "BigDecimal" ) + .withType("BigDecimal") .toType() .assertProperty("numberMinNullable") - .withType( "BigDecimal" ) + .withType("BigDecimal") .toType() .assertProperty("numberMaxNullable") - .withType( "BigDecimal" ) + .withType("BigDecimal") .toType() .assertProperty("stringDefaultNullable") - .withType( "String" ) + .withType("String") .toType() .fileContains("stringDefaultNullable = null;") @@ -4248,96 +4250,96 @@ public class SpringCodegenTest { .hasImports("jakarta.validation.constraints") .assertProperty("name") - .withType( "String" ) + .withType("String") .toType() .assertProperty("age") - .withType( "Integer" ) + .withType("Integer") .toType() .assertProperty("alias") - .withType( "String" ) + .withType("String") .toType() .assertProperty("color") - .withType( "String" ) + .withType("String") .toType() .assertProperty("names") - .withType( "List" ) + .withType("List") .toType() .assertProperty("colors") - .withType( "List" ) + .withType("List") .toType() .assertProperty("stringPattern") - .withType( "String" ) + .withType("String") .toType() .assertProperty("stringMaxMinLength") - .withType( "String" ) + .withType("String") .toType() .assertProperty("stringMinLength") - .withType( "String" ) + .withType("String") .toType() .assertProperty("stringMaxLength") - .withType( "String" ) + .withType("String") .toType() .assertProperty("stringEmail") - .withType( "String" ) + .withType("String") .toType() .assertProperty("intMinMax") - .withType( "Integer" ) + .withType("Integer") .toType() .assertProperty("intMin") - .withType( "Integer" ) + .withType("Integer") .toType() .assertProperty("intMax") - .withType( "Integer" ) + .withType("Integer") .toType() .assertProperty("numberMinMax") - .withType( "BigDecimal" ) + .withType("BigDecimal") .toType() .assertProperty("numberMin") - .withType( "BigDecimal" ) + .withType("BigDecimal") .toType() .assertProperty("numberMax") - .withType( "BigDecimal" ) + .withType("BigDecimal") .toType() .assertProperty("stringDefault") - .withType( "String" ) + .withType("String") .toType() .fileContains("stringDefault = \"ABC\"") .assertProperty("zebra") - .withType( "Zebra" ) + .withType("Zebra") .toType() .assertProperty("stringPatternNullable") - .withType( "String" ) + .withType("String") .toType() .assertProperty("stringMaxMinLengthNullable") - .withType( "String" ) + .withType("String") .toType() .assertProperty("stringMinLengthNullable") - .withType( "String" ) + .withType("String") .toType() .assertProperty("stringMaxLengthNullable") - .withType( "String" ) + .withType("String") .toType() .assertProperty("intMinMaxNullable") - .withType( "Integer" ) + .withType("Integer") .toType() .assertProperty("intMinNullable") - .withType( "Integer" ) + .withType("Integer") .toType() .assertProperty("intMaxNullable") - .withType( "Integer" ) + .withType("Integer") .toType() .assertProperty("numberMinMaxNullable") - .withType( "BigDecimal" ) + .withType("BigDecimal") .toType() .assertProperty("numberMinNullable") - .withType( "BigDecimal" ) + .withType("BigDecimal") .toType() .assertProperty("numberMaxNullable") - .withType( "BigDecimal" ) + .withType("BigDecimal") .toType() .assertProperty("stringDefaultNullable") - .withType( "String" ) + .withType("String") .toType() .fileContains("stringDefaultNullable = null;") @@ -4450,72 +4452,72 @@ public class SpringCodegenTest { assertMethod(javaFileAssert, BigDecimal.class, "numberMaxNullable"); } - - private void assertOptionalMethod(JavaFileAssert javaFileAssert, Class type, String expectedName, String getterReturnType){ + + private void assertOptionalMethod(JavaFileAssert javaFileAssert, Class type, String expectedName, String getterReturnType) { assertOptionalMethod(javaFileAssert, type.getSimpleName(), expectedName, getterReturnType); } - private void assertOptionalMethod(JavaFileAssert javaFileAssert, String type, String expectedName, String getterReturnType){ + private void assertOptionalMethod(JavaFileAssert javaFileAssert, String type, String expectedName, String getterReturnType) { assertWrapperMethod(javaFileAssert, "Optional", type, expectedName, getterReturnType); } - private void assertJsonNullableMethod(JavaFileAssert javaFileAssert, Class type, String expectedName, String getterReturnType){ + private void assertJsonNullableMethod(JavaFileAssert javaFileAssert, Class type, String expectedName, String getterReturnType) { assertJsonNullableMethod(javaFileAssert, type.getSimpleName(), expectedName, getterReturnType); } - private void assertJsonNullableMethod(JavaFileAssert javaFileAssert, String type, String expectedName, String getterReturnType){ + private void assertJsonNullableMethod(JavaFileAssert javaFileAssert, String type, String expectedName, String getterReturnType) { assertWrapperMethod(javaFileAssert, "JsonNullable", type, expectedName, getterReturnType); } - private void assertWrapperMethod(JavaFileAssert javaFileAssert, String wrapperType, String type, String expectedName, String getterReturnType){ + private void assertWrapperMethod(JavaFileAssert javaFileAssert, String wrapperType, String type, String expectedName, String getterReturnType) { String methodName = StringUtils.capitalize(expectedName); var of = wrapperType.equals("Optional") ? "ofNullable" : "of"; javaFileAssert.assertMethod(expectedName) .hasReturnType("Animal") - .bodyContainsLines("this." + expectedName + " = "+wrapperType+ "." + of + "(" +expectedName+");", "return this;") + .bodyContainsLines("this." + expectedName + " = " + wrapperType + "." + of + "(" + expectedName + ");", "return this;") .assertParameter(expectedName) .hasType(type) .toMethod() .toFileAssert() // Setter method assertions - .assertMethod("set"+methodName) + .assertMethod("set" + methodName) .hasReturnType("void") .assertParameter(expectedName) - .hasType(wrapperType+"<"+type+">") + .hasType(wrapperType + "<" + type + ">") .toMethod() .toFileAssert() // Getter method assertions - .assertMethod("get"+methodName) + .assertMethod("get" + methodName) .hasReturnType(getterReturnType) .doesNotHaveParameters() .toFileAssert(); } - private void assertMethod(JavaFileAssert javaFileAssert, String type, String expectedName){ + private void assertMethod(JavaFileAssert javaFileAssert, String type, String expectedName) { String methodName = StringUtils.capitalize(expectedName); javaFileAssert.assertMethod(expectedName) .hasReturnType("Animal") - .bodyContainsLines("this."+expectedName+" = "+ expectedName + ";", "return this;") + .bodyContainsLines("this." + expectedName + " = " + expectedName + ";", "return this;") .assertParameter(expectedName) .hasType(type) .toMethod() .toFileAssert() // Setter method assertions - .assertMethod("set"+methodName) + .assertMethod("set" + methodName) .hasReturnType("void") .assertParameter(expectedName) .hasType(type) .toMethod() .toFileAssert() // Getter method assertions - .assertMethod("get"+methodName) + .assertMethod("get" + methodName) .hasReturnType(type) .doesNotHaveParameters() .toFileAssert(); } - private void assertMethod(JavaFileAssert javaFileAssert, Class type, String expectedName){ - assertMethod(javaFileAssert,type.getSimpleName(), expectedName); + private void assertMethod(JavaFileAssert javaFileAssert, Class type, String expectedName) { + assertMethod(javaFileAssert, type.getSimpleName(), expectedName); } @@ -4698,7 +4700,7 @@ public class SpringCodegenTest { @Test public void testMultiInheritanceParentRequiredParams_issue16797() throws IOException { final Map output = generateFromContract( - "src/test/resources/3_0/spring/issue_16797.yaml", SPRING_BOOT, Map.of(INTERFACE_ONLY, "true") + "src/test/resources/3_0/spring/issue_16797.yaml", SPRING_BOOT, Map.of(INTERFACE_ONLY, "true") ); // constructor should as // public Object4(Type1 pageInfo, String responseType, String requestId, Boolean success) { @@ -4716,7 +4718,7 @@ public class SpringCodegenTest { @Test public void testMultiInheritanceParentRequiredParams_issue15796() throws IOException { final Map output = generateFromContract( - "src/test/resources/3_0/spring/issue_15796.yaml", SPRING_BOOT, Map.of(INTERFACE_ONLY, "true") + "src/test/resources/3_0/spring/issue_15796.yaml", SPRING_BOOT, Map.of(INTERFACE_ONLY, "true") ); // constructor should as this //public Poodle(String race, String type) { @@ -4791,9 +4793,9 @@ public class SpringCodegenTest { @Test public void allOfDuplicatedProperties() throws IOException { Map output = generateFromContract( - "src/test/resources/3_0/allOfDuplicatedProperties.yaml", - SPRING_BOOT, - Map.of(GENERATE_CONSTRUCTOR_WITH_ALL_ARGS, true, INTERFACE_ONLY, "true") + "src/test/resources/3_0/allOfDuplicatedProperties.yaml", + SPRING_BOOT, + Map.of(GENERATE_CONSTRUCTOR_WITH_ALL_ARGS, true, INTERFACE_ONLY, "true") ); JavaFileAssert.assertThat(output.get("ModelC.java")) @@ -4848,14 +4850,14 @@ public class SpringCodegenTest { @Test void testBuilderJavaSpring_noOptional() throws IOException { Map files = generateFromContract( - "src/test/resources/3_0/java/builder.yaml", - SPRING_BOOT, - Map.of( - GENERATE_BUILDERS, true, - SpringCodegen.OPENAPI_NULLABLE, false, - SpringCodegen.USE_OPTIONAL, false, - INTERFACE_ONLY, "true" - ) + "src/test/resources/3_0/java/builder.yaml", + SPRING_BOOT, + Map.of( + GENERATE_BUILDERS, true, + SpringCodegen.OPENAPI_NULLABLE, false, + SpringCodegen.USE_OPTIONAL, false, + INTERFACE_ONLY, "true" + ) ); JavaFileAssert.assertThat(files.get("Pet.java")) @@ -4877,14 +4879,14 @@ public class SpringCodegenTest { @Test void testBuilderJavaSpring_useOptional() throws IOException { Map files = generateFromContract( - "src/test/resources/3_0/java/builder.yaml", - SPRING_BOOT, - Map.of( - GENERATE_BUILDERS, true, - SpringCodegen.OPENAPI_NULLABLE, true, - SpringCodegen.USE_OPTIONAL, true, - INTERFACE_ONLY, "true" - ) + "src/test/resources/3_0/java/builder.yaml", + SPRING_BOOT, + Map.of( + GENERATE_BUILDERS, true, + SpringCodegen.OPENAPI_NULLABLE, true, + SpringCodegen.USE_OPTIONAL, true, + INTERFACE_ONLY, "true" + ) ); JavaFileAssert.assertThat(files.get("Pet.java")) @@ -4927,7 +4929,7 @@ public class SpringCodegenTest { DefaultGenerator generator = new DefaultGenerator(); generator.setGenerateMetadata(false); // skip metadata and ↓ only generate models generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); - + Map files = generator.opts(input).generate().stream() .collect(Collectors.toMap(File::getName, Function.identity())); @@ -4961,7 +4963,7 @@ public class SpringCodegenTest { DefaultGenerator generator = new DefaultGenerator(); generator.setGenerateMetadata(false); // skip metadata and ↓ only generate models generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); - + Map files = generator.opts(input).generate().stream() .collect(Collectors.toMap(File::getName, Function.identity())); @@ -5037,140 +5039,142 @@ public class SpringCodegenTest { * Includes regression tests for: * - Correct Jackson annotation when `wrapped: false` */ - @Test void shouldGenerateCorrectXmlAnnotations() { + @Test + void shouldGenerateCorrectXmlAnnotations() { // Arrange final CodegenConfigurator config = new CodegenConfigurator() - .addAdditionalProperty(CodegenConstants.WITH_XML, true) - .addGlobalProperty(CodegenConstants.MODELS, "Pet") - .setGeneratorName("spring") - .setInputSpec("src/test/resources/3_0/java/xml-annotations-test.yaml") - .setLibrary(SPRING_BOOT) - .setOutputDir(newTempFolder().toString()); + .addAdditionalProperty(CodegenConstants.WITH_XML, true) + .addGlobalProperty(CodegenConstants.MODELS, "Pet") + .setGeneratorName("spring") + .setInputSpec("src/test/resources/3_0/java/xml-annotations-test.yaml") + .setLibrary(SPRING_BOOT) + .setOutputDir(newTempFolder().toString()); // Act final List files = new DefaultGenerator().opts(config.toClientOptInput()).generate(); // Assert JavaFileAssert.assertThat(files.get(0)) - .assertTypeAnnotations() - .containsWithNameAndAttributes("JacksonXmlRootElement", Map.of("localName", "\"Pet\"", "namespace", "\"urn:jacksonxml\"")) - .containsWithNameAndAttributes("XmlRootElement", Map.of("name", "\"Pet\"", "namespace", "\"urn:jacksonxml\"")) - .containsWithNameAndAttributes("XmlAccessorType", Map.of("value", "XmlAccessType.FIELD")) - .toType() + .assertTypeAnnotations() + .containsWithNameAndAttributes("JacksonXmlRootElement", Map.of("localName", "\"Pet\"", "namespace", "\"urn:jacksonxml\"")) + .containsWithNameAndAttributes("XmlRootElement", Map.of("name", "\"Pet\"", "namespace", "\"urn:jacksonxml\"")) + .containsWithNameAndAttributes("XmlAccessorType", Map.of("value", "XmlAccessType.FIELD")) + .toType() - // ↓ test custom-name on wrapper element (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Use%20xml/name%20to%20give%20different%20names) - .assertMethod("getTags") - .doesNotHaveAnnotation("XmlAttribute") - .hasAnnotation("XmlElement", Map.of("name", "\"Tag\"")) - .hasAnnotation("XmlElementWrapper", Map.of("name", "\"TagList\"")) - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"Tag\"")) - .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"TagList\"", "useWrapping", "true")) - .toFileAssert() + // ↓ test custom-name on wrapper element (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Use%20xml/name%20to%20give%20different%20names) + .assertMethod("getTags") + .doesNotHaveAnnotation("XmlAttribute") + .hasAnnotation("XmlElement", Map.of("name", "\"Tag\"")) + .hasAnnotation("XmlElementWrapper", Map.of("name", "\"TagList\"")) + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"Tag\"")) + .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"TagList\"", "useWrapping", "true")) + .toFileAssert() - // ↓ custom internal xml-array element name, non-wrapped (1st example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) - .assertMethod("getFriends") - .doesNotHaveAnnotation("XmlAttribute") - .doesNotHaveAnnotation("XmlElementWrapper") - .hasAnnotation("XmlElement", Map.of("name", "\"friend-pet\"")) - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"friend-pet\"")) - .hasAnnotation("JacksonXmlElementWrapper", Map.of("useWrapping", "false")) - .toFileAssert() + // ↓ custom internal xml-array element name, non-wrapped (1st example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) + .assertMethod("getFriends") + .doesNotHaveAnnotation("XmlAttribute") + .doesNotHaveAnnotation("XmlElementWrapper") + .hasAnnotation("XmlElement", Map.of("name", "\"friend-pet\"")) + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"friend-pet\"")) + .hasAnnotation("JacksonXmlElementWrapper", Map.of("useWrapping", "false")) + .toFileAssert() - // ↓ test custom element name (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Change%20Element%20Names) - .assertMethod("getStatus") - .doesNotHaveAnnotation("XmlAttribute") - .doesNotHaveAnnotation("XmlElementWrapper") - .hasAnnotation("XmlElement", Map.of("name", "\"PetStatus\"")) - .doesNotHaveAnnotation("JacksonXmlElementWrapper") - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"PetStatus\"")) - .toFileAssert() - - // ↓ test same-name wrapping element (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Wrapping%20Arrays) - // maps to 3rd example in https://spec.openapis.org/oas/v3.0.0#xml-arrays - .assertMethod("getPhotoUrls") - .doesNotHaveAnnotation("XmlAttribute") - .hasAnnotation("XmlElement", Map.of("name", "\"photoUrls\"")) - .hasAnnotation("XmlElementWrapper", Map.of("name", "\"photoUrls\"")) - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"photoUrls\"")) - .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"photoUrls\"", "useWrapping", "true")) - .toFileAssert() + // ↓ test custom element name (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Change%20Element%20Names) + .assertMethod("getStatus") + .doesNotHaveAnnotation("XmlAttribute") + .doesNotHaveAnnotation("XmlElementWrapper") + .hasAnnotation("XmlElement", Map.of("name", "\"PetStatus\"")) + .doesNotHaveAnnotation("JacksonXmlElementWrapper") + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"PetStatus\"")) + .toFileAssert() - // ↓ test attribute generation (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Convert%20Property%20to%20an%20Attribute) - .assertMethod("getName") - .doesNotHaveAnnotation("XmlElement") - .doesNotHaveAnnotation("XmlElementWrapper") - .hasAnnotation("XmlAttribute", Map.of("name", "\"name\"")) - .doesNotHaveAnnotation("JacksonXmlElementWrapper") - .hasAnnotation("JacksonXmlProperty", Map.of("isAttribute", "true", "localName", "\"name\"")) - .toFileAssert() + // ↓ test same-name wrapping element (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Wrapping%20Arrays) + // maps to 3rd example in https://spec.openapis.org/oas/v3.0.0#xml-arrays + .assertMethod("getPhotoUrls") + .doesNotHaveAnnotation("XmlAttribute") + .hasAnnotation("XmlElement", Map.of("name", "\"photoUrls\"")) + .hasAnnotation("XmlElementWrapper", Map.of("name", "\"photoUrls\"")) + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"photoUrls\"")) + .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"photoUrls\"", "useWrapping", "true")) + .toFileAssert() - // ↓ test XML namespace and prefix (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Prefixes%20and%20Namespaces) - .assertMethod("getId") - .doesNotHaveAnnotation("XmlAttribute") - .doesNotHaveAnnotation("XmlElementWrapper") - .hasAnnotation("XmlElement", Map.of("name", "\"id\"", "namespace", "\"http://example.com/schema\"")) - .doesNotHaveAnnotation("JacksonXmlElementWrapper") - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"id\"", "namespace", "\"http://example.com/schema\"")) - .toFileAssert() + // ↓ test attribute generation (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Convert%20Property%20to%20an%20Attribute) + .assertMethod("getName") + .doesNotHaveAnnotation("XmlElement") + .doesNotHaveAnnotation("XmlElementWrapper") + .hasAnnotation("XmlAttribute", Map.of("name", "\"name\"")) + .doesNotHaveAnnotation("JacksonXmlElementWrapper") + .hasAnnotation("JacksonXmlProperty", Map.of("isAttribute", "true", "localName", "\"name\"")) + .toFileAssert() - // ↓ external xml-array element name only (last example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) - .assertMethod("getFoods") - .doesNotHaveAnnotation("XmlAttribute") - .hasAnnotation("XmlElement", Map.of("name", "\"yummy-yummy\"")) - .hasAnnotation("XmlElementWrapper", Map.of("name", "\"yummy-yummy\"")) - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"yummy-yummy\"")) - .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"yummy-yummy\"")) - .toFileAssert() - - // ↓ internal xml-array element name (4th example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) - .assertMethod("getColors") - .doesNotHaveAnnotation("XmlAttribute") - .hasAnnotation("XmlElement", Map.of("name", "\"color\"")) - .hasAnnotation("XmlElementWrapper", Map.of("name", "\"colors\"")) - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"color\"")) - .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"colors\"")) - .toFileAssert() - - // ↓ ignored external xml-array element name, non-wrapped (2nd example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) - .assertMethod("getCategories") - .doesNotHaveAnnotation("XmlAttribute") - .doesNotHaveAnnotation("XmlElementWrapper") - .hasAnnotation("XmlElement", Map.of("name", "\"Category\"")) - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"Category\"")) - // ↓ specific regression test for #2417: (useWrapping=false) needs to be present - .hasAnnotation("JacksonXmlElementWrapper", Map.of("useWrapping", "false")) - .toFileAssert() + // ↓ test XML namespace and prefix (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Prefixes%20and%20Namespaces) + .assertMethod("getId") + .doesNotHaveAnnotation("XmlAttribute") + .doesNotHaveAnnotation("XmlElementWrapper") + .hasAnnotation("XmlElement", Map.of("name", "\"id\"", "namespace", "\"http://example.com/schema\"")) + .doesNotHaveAnnotation("JacksonXmlElementWrapper") + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"id\"", "namespace", "\"http://example.com/schema\"")) + .toFileAssert() - // ↓ test custom-name on wrapper AND children (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Use%20xml/name%20to%20give%20different%20names) - // maps to 5th example in https://spec.openapis.org/oas/v3.0.0#xml-arrays - .assertMethod("getActivities") - .doesNotHaveAnnotation("XmlAttribute") - .hasAnnotation("XmlElement", Map.of("name", "\"item\"")) - .hasAnnotation("XmlElementWrapper", Map.of("name", "\"activities-array\"")) - .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"item\"")) - .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"activities-array\"")); + // ↓ external xml-array element name only (last example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) + .assertMethod("getFoods") + .doesNotHaveAnnotation("XmlAttribute") + .hasAnnotation("XmlElement", Map.of("name", "\"yummy-yummy\"")) + .hasAnnotation("XmlElementWrapper", Map.of("name", "\"yummy-yummy\"")) + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"yummy-yummy\"")) + .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"yummy-yummy\"")) + .toFileAssert() + + // ↓ internal xml-array element name (4th example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) + .assertMethod("getColors") + .doesNotHaveAnnotation("XmlAttribute") + .hasAnnotation("XmlElement", Map.of("name", "\"color\"")) + .hasAnnotation("XmlElementWrapper", Map.of("name", "\"colors\"")) + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"color\"")) + .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"colors\"")) + .toFileAssert() + + // ↓ ignored external xml-array element name, non-wrapped (2nd example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) + .assertMethod("getCategories") + .doesNotHaveAnnotation("XmlAttribute") + .doesNotHaveAnnotation("XmlElementWrapper") + .hasAnnotation("XmlElement", Map.of("name", "\"Category\"")) + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"Category\"")) + // ↓ specific regression test for #2417: (useWrapping=false) needs to be present + .hasAnnotation("JacksonXmlElementWrapper", Map.of("useWrapping", "false")) + .toFileAssert() + + // ↓ test custom-name on wrapper AND children (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Use%20xml/name%20to%20give%20different%20names) + // maps to 5th example in https://spec.openapis.org/oas/v3.0.0#xml-arrays + .assertMethod("getActivities") + .doesNotHaveAnnotation("XmlAttribute") + .hasAnnotation("XmlElement", Map.of("name", "\"item\"")) + .hasAnnotation("XmlElementWrapper", Map.of("name", "\"activities-array\"")) + .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"item\"")) + .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"activities-array\"")); } - + /** * Regression test for #12804 */ - @Test public void shouldGenerateSingleDeprecatedAnnotation() { + @Test + public void shouldGenerateSingleDeprecatedAnnotation() { final var tempDir = TestUtils.newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .addAdditionalProperty(GENERATE_BUILDERS, true) - .addGlobalProperty(CodegenConstants.MODELS, "Pet") - .setInputSpec("src/test/resources/3_0/petstore.yaml") - .setGeneratorName("spring") - .setOutputDir(tempDir.toString()); + .addAdditionalProperty(GENERATE_BUILDERS, true) + .addGlobalProperty(CodegenConstants.MODELS, "Pet") + .setInputSpec("src/test/resources/3_0/petstore.yaml") + .setGeneratorName("spring") + .setOutputDir(tempDir.toString()); new DefaultGenerator().opts(configurator.toClientOptInput()).generate(); JavaFileAssert.assertThat(tempDir.resolve("src/main/java/org/openapitools/model/Pet.java")) - .assertInnerClass("Builder") - .assertMethod("status").hasAnnotation("Deprecated") - .toInnerClassAssert() - .assertMethod("build") - .doesNotHaveAnnotation("Deprecated"); + .assertInnerClass("Builder") + .assertMethod("status").hasAnnotation("Deprecated") + .toInnerClassAssert() + .assertMethod("build") + .doesNotHaveAnnotation("Deprecated"); } @Test diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/javascript/JavascriptClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/javascript/JavascriptClientCodegenTest.java index 7b5e0ca5de7..4130fa960cb 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/javascript/JavascriptClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/javascript/JavascriptClientCodegenTest.java @@ -138,7 +138,7 @@ public class JavascriptClientCodegenTest { Operation textOperation = openAPI.getPaths().get("/pet").getPost(); CodegenOperation coText = codegen.fromOperation("/user", "post", textOperation, null); - for (Map consume: coText.consumes) { + for (Map consume : coText.consumes) { if ("application/json".equals(consume.get("mediaType"))) { Assert.assertEquals(consume.get("isJson"), "true"); } @@ -158,7 +158,7 @@ public class JavascriptClientCodegenTest { Operation textOperation = openAPI.getPaths().get("/pet/{petId}").getGet(); CodegenOperation coText = codegen.fromOperation("/user", "get", textOperation, null); - for (Map consume: coText.produces) { + for (Map consume : coText.produces) { if ("application/json".equals(consume.get("mediaType"))) { Assert.assertEquals(consume.get("isJson"), "true"); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/jetbrains/http/client/JetbrainsHttpClientClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/jetbrains/http/client/JetbrainsHttpClientClientCodegenTest.java index 54fae7f36c2..d8fd326fd4e 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/jetbrains/http/client/JetbrainsHttpClientClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/jetbrains/http/client/JetbrainsHttpClientClientCodegenTest.java @@ -1,10 +1,12 @@ package org.openapitools.codegen.jetbrains.http.client; -import org.testng.annotations.Ignore; -import org.testng.annotations.Test; -import org.openapitools.codegen.*; +import org.openapitools.codegen.ClientOptInput; +import org.openapitools.codegen.DefaultGenerator; +import org.openapitools.codegen.TestUtils; import org.openapitools.codegen.config.CodegenConfigurator; import org.openapitools.codegen.languages.JetbrainsHttpClientClientCodegen; +import org.testng.annotations.Ignore; +import org.testng.annotations.Test; import java.io.File; import java.io.IOException; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/AbstractKotlinCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/AbstractKotlinCodegenTest.java index 6ab3fd69878..aa2674f79af 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/AbstractKotlinCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/AbstractKotlinCodegenTest.java @@ -36,9 +36,10 @@ public class AbstractKotlinCodegenTest { * In TEST-NG, test class (and its fields) is only constructed once (vs. for every test in Jupiter), * using @BeforeMethod to have a fresh codegen mock for each test */ - @BeforeMethod void mockAbstractCodegen() { + @BeforeMethod + void mockAbstractCodegen() { codegen = mock( - AbstractKotlinCodegen.class, withSettings().defaultAnswer(Answers.CALLS_REAL_METHODS).useConstructor() + AbstractKotlinCodegen.class, withSettings().defaultAnswer(Answers.CALLS_REAL_METHODS).useConstructor() ); } @@ -57,6 +58,7 @@ public class AbstractKotlinCodegenTest { assertEquals(codegen.toEnumVarName("1long Name", null), "_1LONG_NAME"); assertEquals(codegen.toEnumVarName("not1long Name", null), "NOT1LONG_NAME"); } + @Test public void snake_caseEnumConverter() { codegen.setEnumPropertyNaming(snake_case.name()); @@ -73,6 +75,7 @@ public class AbstractKotlinCodegenTest { assertEquals(codegen.toEnumVarName("not1long Name", null), "not1long_Name"); assertEquals(codegen.toEnumVarName("data/*", null), "dataSlashStar"); } + @Test public void pascalCaseEnumConverter() { codegen.setEnumPropertyNaming(PascalCase.name()); @@ -245,15 +248,15 @@ public class AbstractKotlinCodegenTest { Assert.assertEquals(allVarsMap.get(p.baseName).isInherited, p.isInherited); } Assert.assertEqualsNoOrder( - pm.requiredVars.stream().map(CodegenProperty::getBaseName).toArray(), - new String[] {"a", "c"} + pm.requiredVars.stream().map(CodegenProperty::getBaseName).toArray(), + new String[]{"a", "c"} ); for (CodegenProperty p : pm.optionalVars) { Assert.assertEquals(allVarsMap.get(p.baseName).isInherited, p.isInherited); } Assert.assertEqualsNoOrder( - pm.optionalVars.stream().map(CodegenProperty::getBaseName).toArray(), - new String[] {"b", "d"} + pm.optionalVars.stream().map(CodegenProperty::getBaseName).toArray(), + new String[]{"b", "d"} ); } @@ -291,13 +294,13 @@ public class AbstractKotlinCodegenTest { // Assert the enums are generated without changing capitalization CodegenProperty cp0 = cm1.vars.get(0); Assert.assertEquals(cp0.getEnumName(), "PropertyName"); - Assert.assertEquals(((HashMap)((ArrayList) cp0.getAllowableValues().get("enumVars")).get(0)).get("name"), "VALUE"); + Assert.assertEquals(((HashMap) ((ArrayList) cp0.getAllowableValues().get("enumVars")).get(0)).get("name"), "VALUE"); CodegenProperty cp1 = cm1.vars.get(1); Assert.assertEquals(cp1.getEnumName(), "PropertyName2"); - Assert.assertEquals(((HashMap)((ArrayList) cp1.getAllowableValues().get("enumVars")).get(0)).get("name"), "Value"); + Assert.assertEquals(((HashMap) ((ArrayList) cp1.getAllowableValues().get("enumVars")).get(0)).get("name"), "Value"); CodegenProperty cp2 = cm1.vars.get(2); Assert.assertEquals(cp2.getEnumName(), "PropertyName3"); - Assert.assertEquals(((HashMap)((ArrayList) cp2.getAllowableValues().get("enumVars")).get(0)).get("name"), "nonkeywordvalue"); + Assert.assertEquals(((HashMap) ((ArrayList) cp2.getAllowableValues().get("enumVars")).get(0)).get("name"), "nonkeywordvalue"); } @Test(description = "Issue #3804") @@ -339,23 +342,23 @@ public class AbstractKotlinCodegenTest { @Test(description = "Issue #10792") public void handleInheritanceWithObjectTypeShouldNotBeAMap() { Schema parent = new ObjectSchema() - .addProperty("a", new StringSchema()) - .addProperty("b", new StringSchema()) - .addRequiredItem("a") - .name("Parent"); + .addProperty("a", new StringSchema()) + .addProperty("b", new StringSchema()) + .addRequiredItem("a") + .name("Parent"); Schema child = new ComposedSchema() - .addAllOfItem(new Schema().$ref("Parent")) - .addAllOfItem(new ObjectSchema() - .addProperty("c", new StringSchema()) - .addProperty("d", new StringSchema()) - .addRequiredItem("c")) - .name("Child") - .type("object"); // Without the object type it is not wrongly recognized as map + .addAllOfItem(new Schema().$ref("Parent")) + .addAllOfItem(new ObjectSchema() + .addProperty("c", new StringSchema()) + .addProperty("d", new StringSchema()) + .addRequiredItem("c")) + .name("Child") + .type("object"); // Without the object type it is not wrongly recognized as map Schema mapSchema = new ObjectSchema() - .addProperty("a", new StringSchema()) - .additionalProperties(Boolean.TRUE) - .name("MapSchema") - .type("object"); + .addProperty("a", new StringSchema()) + .additionalProperties(Boolean.TRUE) + .name("MapSchema") + .type("object"); OpenAPI openAPI = TestUtils.createOpenAPI(); openAPI.getComponents().addSchemas(parent.getName(), parent); @@ -365,13 +368,13 @@ public class AbstractKotlinCodegenTest { codegen.setOpenAPI(openAPI); final CodegenModel pm = codegen - .fromModel("Child", child); + .fromModel("Child", child); Assert.assertFalse(pm.isMap); // Make sure a real map is still flagged as map final CodegenModel mapSchemaModel = codegen - .fromModel("MapSchema", mapSchema); + .fromModel("MapSchema", mapSchema); Assert.assertTrue(mapSchemaModel.isMap); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinClientCodegenApiTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinClientCodegenApiTest.java index 16e7e6e6457..8ec98207a4f 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinClientCodegenApiTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinClientCodegenApiTest.java @@ -3,8 +3,6 @@ package org.openapitools.codegen.kotlin; import io.swagger.parser.OpenAPIParser; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.parser.core.models.ParseOptions; -import lombok.Getter; -import org.jetbrains.kotlin.com.intellij.openapi.util.text.Strings; import org.openapitools.codegen.ClientOptInput; import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.DefaultGenerator; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinClientCodegenModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinClientCodegenModelTest.java index 7834549424b..0c465fc4757 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinClientCodegenModelTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinClientCodegenModelTest.java @@ -18,20 +18,8 @@ package org.openapitools.codegen.kotlin; import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.media.ArraySchema; -import io.swagger.v3.oas.models.media.DateTimeSchema; -import io.swagger.v3.oas.models.media.IntegerSchema; -import io.swagger.v3.oas.models.media.MapSchema; -import io.swagger.v3.oas.models.media.ObjectSchema; -import io.swagger.v3.oas.models.media.Schema; -import io.swagger.v3.oas.models.media.StringSchema; -import org.openapitools.codegen.ClientOptInput; -import org.openapitools.codegen.CodegenConstants; -import org.openapitools.codegen.CodegenModel; -import org.openapitools.codegen.CodegenProperty; -import org.openapitools.codegen.DefaultCodegen; -import org.openapitools.codegen.DefaultGenerator; -import org.openapitools.codegen.TestUtils; +import io.swagger.v3.oas.models.media.*; +import org.openapitools.codegen.*; import org.openapitools.codegen.config.CodegenConfigurator; import org.openapitools.codegen.languages.KotlinClientCodegen; import org.openapitools.codegen.testutils.ConfigAssert; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinModelCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinModelCodegenTest.java index dd9bcbf26eb..224d7e4bda6 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinModelCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinModelCodegenTest.java @@ -6,11 +6,7 @@ import io.swagger.v3.parser.core.models.ParseOptions; import org.openapitools.codegen.ClientOptInput; import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.DefaultGenerator; -import org.openapitools.codegen.languages.AbstractKotlinCodegen; -import org.openapitools.codegen.languages.KotlinClientCodegen; -import org.openapitools.codegen.languages.KotlinServerCodegen; -import org.openapitools.codegen.languages.KotlinSpringServerCodegen; -import org.openapitools.codegen.languages.KotlinVertxServerCodegen; +import org.openapitools.codegen.languages.*; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinReservedWordsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinReservedWordsTest.java index 9b2f7d97a8b..7e41bae2152 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinReservedWordsTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinReservedWordsTest.java @@ -25,7 +25,8 @@ import static org.testng.Assert.assertEquals; public class KotlinReservedWordsTest { OpenAPI openAPI; - @BeforeTest void loadOpenApi() { + @BeforeTest + void loadOpenApi() { openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/kotlin/reserved_words.yaml"); } @@ -160,9 +161,9 @@ public class KotlinReservedWordsTest { File resultSourcePath = new File(output, "src/main/kotlin"); assertFileContains(Paths.get(resultSourcePath.getAbsolutePath() + baseApiPackage + "DefaultApi.kt"), - "fun test(`value`: kotlin.String) : Unit {", - "fun testWithHttpInfo(`value`: kotlin.String) : ApiResponse {", - "fun testRequestConfig(`value`: kotlin.String) : RequestConfig {" + "fun test(`value`: kotlin.String) : Unit {", + "fun testWithHttpInfo(`value`: kotlin.String) : ApiResponse {", + "fun testRequestConfig(`value`: kotlin.String) : RequestConfig {" ); assertFileNotContains(Paths.get(resultSourcePath.getAbsolutePath() + baseApiPackage + "DefaultApi.kt"), @@ -190,8 +191,8 @@ public class KotlinReservedWordsTest { File resultSourcePath = new File(output, "src/main/kotlin"); assertFileContains(Paths.get(resultSourcePath.getAbsolutePath() + baseApiPackage + "AnnotationsApiController.kt"), - "fun annotationsPost(@Parameter(description = \"\", required = true) @Valid @RequestBody `annotation`: Annotation", - "return ResponseEntity(service.annotationsPost(`annotation`), HttpStatus.valueOf(200))" + "fun annotationsPost(@Parameter(description = \"\", required = true) @Valid @RequestBody `annotation`: Annotation", + "return ResponseEntity(service.annotationsPost(`annotation`), HttpStatus.valueOf(200))" ); assertFileNotContains(Paths.get(resultSourcePath.getAbsolutePath() + baseApiPackage + "AnnotationsApiController.kt"), @@ -199,8 +200,8 @@ public class KotlinReservedWordsTest { ); assertFileContains(Paths.get(resultSourcePath.getAbsolutePath() + baseApiPackage + "AnnotationsApiService.kt"), - "* @param `annotation` (required)", - "fun annotationsPost(`annotation`: Annotation): Unit" + "* @param `annotation` (required)", + "fun annotationsPost(`annotation`: Annotation): Unit" ); assertFileNotContains(Paths.get(resultSourcePath.getAbsolutePath() + baseApiPackage + "AnnotationsApiService.kt"), diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinServerCodegenTest.java index 939d840118e..4068c8de40d 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinServerCodegenTest.java @@ -14,11 +14,11 @@ import java.nio.file.Path; import java.nio.file.Paths; import static org.openapitools.codegen.CodegenConstants.LIBRARY; +import static org.openapitools.codegen.TestUtils.assertFileContains; +import static org.openapitools.codegen.TestUtils.assertFileNotContains; import static org.openapitools.codegen.languages.AbstractKotlinCodegen.USE_JAKARTA_EE; import static org.openapitools.codegen.languages.KotlinServerCodegen.Constants.INTERFACE_ONLY; import static org.openapitools.codegen.languages.KotlinServerCodegen.Constants.JAXRS_SPEC; -import static org.openapitools.codegen.TestUtils.assertFileContains; -import static org.openapitools.codegen.TestUtils.assertFileNotContains; import static org.openapitools.codegen.languages.features.BeanValidationFeatures.USE_BEANVALIDATION; public class KotlinServerCodegenTest { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinSpringServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinSpringServerCodegenTest.java index 26f857c2d1e..c0d34d64b66 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinSpringServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinSpringServerCodegenTest.java @@ -12,7 +12,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import static org.testng.Assert.*; +import static org.testng.Assert.assertTrue; public class KotlinSpringServerCodegenTest { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/ktorm/KtormSchemaCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/ktorm/KtormSchemaCodegenTest.java index e62f1a7b565..f30b689b097 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/ktorm/KtormSchemaCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/ktorm/KtormSchemaCodegenTest.java @@ -16,8 +16,9 @@ package org.openapitools.codegen.ktorm; -import static org.openapitools.codegen.TestUtils.createCodegenModelWrapper; - +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.media.*; +import io.swagger.v3.parser.util.SchemaTypeUtil; import org.openapitools.codegen.CodegenModel; import org.openapitools.codegen.CodegenProperty; import org.openapitools.codegen.TestUtils; @@ -25,12 +26,10 @@ import org.openapitools.codegen.languages.KtormSchemaCodegen; import org.testng.Assert; import org.testng.annotations.Test; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.media.*; -import io.swagger.v3.parser.util.SchemaTypeUtil; - import java.util.Map; +import static org.openapitools.codegen.TestUtils.createCodegenModelWrapper; + public class KtormSchemaCodegenTest { private CodegenModel getModel(Schema schema, String pkName, Boolean surrogateKey) { @@ -46,24 +45,24 @@ public class KtormSchemaCodegenTest { private Map getExtension(CodegenProperty property) { return (Map) - property.vendorExtensions.get(KtormSchemaCodegen.VENDOR_EXTENSION_SCHEMA); + property.vendorExtensions.get(KtormSchemaCodegen.VENDOR_EXTENSION_SCHEMA); } private Map getColumnDefinition(Map schema) { return (Map) - schema.get("columnDefinition"); + schema.get("columnDefinition"); } private Map getRelationDefinition(Map schema) { return (Map) - schema.get("relationDefinition"); + schema.get("relationDefinition"); } private Map getKtormSchema(Schema propertySchema) { final Schema schema = new Schema() - .description("a sample model") - .addProperties("key", propertySchema) - .addRequiredItem("key"); + .description("a sample model") + .addProperties("key", propertySchema) + .addRequiredItem("key"); final CodegenModel cm = getModel(schema, "id", false); final CodegenProperty prop = cm.vars.get(0); return getExtension(prop); @@ -254,13 +253,13 @@ public class KtormSchemaCodegenTest { @Test public void testDefinePrimaryKey() { final Schema schema = new Schema() - .description("a sample model") - .addProperties("key" , new IntegerSchema()) - .addRequiredItem("key"); + .description("a sample model") + .addProperties("key", new IntegerSchema()) + .addRequiredItem("key"); CodegenModel cm = getModel(schema, "key", false); Assert.assertEquals(cm.vars.size(), 1); CodegenProperty prop = cm.vars.get(0); - Map propSchema = getColumnDefinition(getExtension(prop)); + Map propSchema = getColumnDefinition(getExtension(prop)); Assert.assertEquals(propSchema.get("colPrimaryKey"), true); Assert.assertEquals(propSchema.get("colType"), "int"); } @@ -268,13 +267,13 @@ public class KtormSchemaCodegenTest { @Test public void testDontAddSurrogateKey() { final Schema schema = new Schema() - .description("a sample model") - .addProperties("key" , new IntegerSchema()) - .addRequiredItem("key"); + .description("a sample model") + .addProperties("key", new IntegerSchema()) + .addRequiredItem("key"); CodegenModel cm = getModel(schema, "id", false); Assert.assertEquals(cm.vars.size(), 1); CodegenProperty prop = cm.vars.get(0); - Map propSchema = getColumnDefinition(getExtension(prop)); + Map propSchema = getColumnDefinition(getExtension(prop)); Assert.assertEquals(propSchema.get("colPrimaryKey"), false); Assert.assertEquals(propSchema.get("colType"), "int"); } @@ -282,18 +281,18 @@ public class KtormSchemaCodegenTest { @Test public void testAddSurrogateKey() { final Schema schema = new Schema() - .description("a sample model") - .addProperties("key", new IntegerSchema()); + .description("a sample model") + .addProperties("key", new IntegerSchema()); CodegenModel cm = getModel(schema, "id", true); Assert.assertEquals(cm.vars.size(), 2); CodegenProperty prop = cm.vars.get(0); - Map propSchema = getColumnDefinition(getExtension(prop)); + Map propSchema = getColumnDefinition(getExtension(prop)); Assert.assertEquals(propSchema.get("colNotNull"), true); Assert.assertEquals(propSchema.get("colPrimaryKey"), true); Assert.assertEquals(propSchema.get("colName"), "id"); Assert.assertEquals(propSchema.get("colType"), "long"); //by default CodegenProperty prop2 = cm.vars.get(1); - Map propSchema2 = getColumnDefinition(getExtension(prop2)); + Map propSchema2 = getColumnDefinition(getExtension(prop2)); Assert.assertEquals(propSchema2.get("colNotNull"), false); Assert.assertEquals(propSchema2.get("colPrimaryKey"), false); Assert.assertEquals(propSchema2.get("colName"), "key"); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/languages/HelidonCommonCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/languages/HelidonCommonCodegenTest.java index 9d56d4cc913..bdab2801cf8 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/languages/HelidonCommonCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/languages/HelidonCommonCodegenTest.java @@ -28,15 +28,17 @@ import static org.assertj.core.api.Assertions.assertThat; public class HelidonCommonCodegenTest { JavaHelidonCommonCodegen.VersionUtil test = JavaHelidonCommonCodegen.VersionUtil.instance(); - - @Test void checkMajorVersionMatch() { + + @Test + void checkMajorVersionMatch() { assertThat(test.chooseVersion("1", List.of("3.2.1", "3.2.0", "2.0.4", "1.2.3", "1.2.2", "1.1.0"))) - .isEqualTo("1.2.3"); + .isEqualTo("1.2.3"); } - @Test void checkExactMatch() { + @Test + void checkExactMatch() { assertThat(test.chooseVersion("1.2.2", List.of("3.2.1", "3.2.0", "2.0.4", "1.2.3", "1.2.2", "1.1.0"))) - .isEqualTo("1.2.2"); + .isEqualTo("1.2.2"); } @Test @@ -44,23 +46,23 @@ public class HelidonCommonCodegenTest { // Simulate a network failure so the full list of valid versions is inaccessible and the user selects a version // that is not in the cached values or the hard-coded list. assertThat(test.chooseVersion("4.0.8", List.of("1.2.3", "2.5.6", "3.2.7", "4.0.9"))) - .isEqualTo("4.0.8"); + .isEqualTo("4.0.8"); } - - @Test void checkUseOfUnpublishedRelease() { + @Test + void checkUseOfUnpublishedRelease() { assertThat(test.chooseVersionBestMatchOrSelf("4.0.11-SNAPSHOT", - List.of("4.0.10", "3.2.1", "3.2.0", "2.0.4", "1.2.3", "1.2.2", "1.1.0"))) + List.of("4.0.10", "3.2.1", "3.2.0", "2.0.4", "1.2.3", "1.2.2", "1.1.0"))) .isEqualTo("4.0.11-SNAPSHOT"); } @Test void checkCommonPathWithPathParams() { String[] paths = List.of("/users/{userId}/profile", - "/users/{userId}/problems", - "/users/{userEmail}", - "/users/{username}") + "/users/{userId}/problems", + "/users/{userEmail}", + "/users/{username}") .toArray(new String[0]); String commonPrefix = JavaHelidonCommonCodegen.commonPathPrefix(paths); @@ -70,8 +72,8 @@ public class HelidonCommonCodegenTest { @Test void checkCommonPathWithMultipleCommonLevels() { String[] paths = List.of("/users/a/x", - "/users/a/y", - "/users/a/z") + "/users/a/y", + "/users/a/z") .toArray(new String[0]); String commonPrefix = JavaHelidonCommonCodegen.commonPathPrefix(paths); @@ -81,8 +83,8 @@ public class HelidonCommonCodegenTest { @Test void checkNoCommonSegments() { String[] paths = List.of("/a/x", - "/b/y", - "/c") + "/b/y", + "/c") .toArray(new String[0]); String commonPrefix = JavaHelidonCommonCodegen.commonPathPrefix(paths); @@ -98,9 +100,9 @@ public class HelidonCommonCodegenTest { @Test void checkMixedWithPathParam() { String[] paths = List.of("/store/order/{order_id}", - "/store/inventory", - "/store/order/{order_id}", - "/store/order") + "/store/inventory", + "/store/order/{order_id}", + "/store/order") .toArray(new String[0]); String commonPrefix = JavaHelidonCommonCodegen.commonPathPrefix(paths); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/languages/JavaPKMSTServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/languages/JavaPKMSTServerCodegenTest.java index e4db32d175f..2de7944a60c 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/languages/JavaPKMSTServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/languages/JavaPKMSTServerCodegenTest.java @@ -20,88 +20,89 @@ public class JavaPKMSTServerCodegenTest { * Includes regression tests for: * - Correct Jackson annotation when `wrapped: false` */ - @Test public void shouldGenerateCorrectXmlAnnotations() { + @Test + public void shouldGenerateCorrectXmlAnnotations() { // Arrange final CodegenConfigurator config = new CodegenConfigurator() - .addAdditionalProperty(CodegenConstants.WITH_XML, true) - .addGlobalProperty(CodegenConstants.MODELS, "Pet") - .addGlobalProperty(CodegenConstants.MODEL_DOCS, null) - .addGlobalProperty(CodegenConstants.MODEL_TESTS, null) - .setGeneratorName("java-pkmst") - .setInputSpec("src/test/resources/3_0/java/xml-annotations-test.yaml") - .setOutputDir(newTempFolder().toString()); + .addAdditionalProperty(CodegenConstants.WITH_XML, true) + .addGlobalProperty(CodegenConstants.MODELS, "Pet") + .addGlobalProperty(CodegenConstants.MODEL_DOCS, null) + .addGlobalProperty(CodegenConstants.MODEL_TESTS, null) + .setGeneratorName("java-pkmst") + .setInputSpec("src/test/resources/3_0/java/xml-annotations-test.yaml") + .setOutputDir(newTempFolder().toString()); // Act final List files = new DefaultGenerator().opts(config.toClientOptInput()).generate(); // Assert JavaFileAssert.assertThat(files.get(0)) - .assertTypeAnnotations() - .containsWithNameAndAttributes("JacksonXmlRootElement", Map.of("localName", "\"Pet\"", "namespace", "\"urn:jacksonxml\"")) - .containsWithNameAndAttributes("XmlRootElement", Map.of("name", "\"Pet\"", "namespace", "\"urn:jacksonxml\"")) - .containsWithNameAndAttributes("XmlAccessorType", Map.of("value", "XmlAccessType.FIELD")) - .toType() + .assertTypeAnnotations() + .containsWithNameAndAttributes("JacksonXmlRootElement", Map.of("localName", "\"Pet\"", "namespace", "\"urn:jacksonxml\"")) + .containsWithNameAndAttributes("XmlRootElement", Map.of("name", "\"Pet\"", "namespace", "\"urn:jacksonxml\"")) + .containsWithNameAndAttributes("XmlAccessorType", Map.of("value", "XmlAccessType.FIELD")) + .toType() - // ↓ test custom-name on wrapper element (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Use%20xml/name%20to%20give%20different%20names) - .assertProperty("tags").assertPropertyAnnotations() - .containsWithNameAndAttributes("JacksonXmlProperty", Map.of("localName", "\"Tag\"")) - .containsWithNameAndAttributes("JacksonXmlElementWrapper", Map.of("localName", "\"TagList\"", "useWrapping", "true")) - .toProperty().toType() + // ↓ test custom-name on wrapper element (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Use%20xml/name%20to%20give%20different%20names) + .assertProperty("tags").assertPropertyAnnotations() + .containsWithNameAndAttributes("JacksonXmlProperty", Map.of("localName", "\"Tag\"")) + .containsWithNameAndAttributes("JacksonXmlElementWrapper", Map.of("localName", "\"TagList\"", "useWrapping", "true")) + .toProperty().toType() - // ↓ custom internal xml-array element name, non-wrapped (1st example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) - .assertProperty("friends").assertPropertyAnnotations() - .containsWithNameAndAttributes("JacksonXmlProperty", Map.of("localName", "\"friend-pet\"")) - .containsWithNameAndAttributes("JacksonXmlElementWrapper", Map.of("useWrapping", "false")) - .toProperty().toType() + // ↓ custom internal xml-array element name, non-wrapped (1st example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) + .assertProperty("friends").assertPropertyAnnotations() + .containsWithNameAndAttributes("JacksonXmlProperty", Map.of("localName", "\"friend-pet\"")) + .containsWithNameAndAttributes("JacksonXmlElementWrapper", Map.of("useWrapping", "false")) + .toProperty().toType() - // ↓ test custom element name (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Change%20Element%20Names) - .assertProperty("status").assertPropertyAnnotations() - .doesNotContainWithName("JacksonXmlElementWrapper") - .containsWithNameAndAttributes("JacksonXmlProperty", Map.of("localName", "\"PetStatus\"")) - .toProperty().toType() + // ↓ test custom element name (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Change%20Element%20Names) + .assertProperty("status").assertPropertyAnnotations() + .doesNotContainWithName("JacksonXmlElementWrapper") + .containsWithNameAndAttributes("JacksonXmlProperty", Map.of("localName", "\"PetStatus\"")) + .toProperty().toType() - // ↓ test same-name wrapping element (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Wrapping%20Arrays) - // maps to 3rd example in https://spec.openapis.org/oas/v3.0.0#xml-arrays - .assertProperty("photoUrls").assertPropertyAnnotations() - .containsWithNameAndAttributes("JacksonXmlProperty", Map.of("localName", "\"photoUrls\"")) - .containsWithNameAndAttributes("JacksonXmlElementWrapper", Map.of("localName", "\"photoUrls\"", "useWrapping", "true")) - .toProperty().toType() + // ↓ test same-name wrapping element (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Wrapping%20Arrays) + // maps to 3rd example in https://spec.openapis.org/oas/v3.0.0#xml-arrays + .assertProperty("photoUrls").assertPropertyAnnotations() + .containsWithNameAndAttributes("JacksonXmlProperty", Map.of("localName", "\"photoUrls\"")) + .containsWithNameAndAttributes("JacksonXmlElementWrapper", Map.of("localName", "\"photoUrls\"", "useWrapping", "true")) + .toProperty().toType() - // ↓ test attribute generation (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Convert%20Property%20to%20an%20Attribute) - .assertProperty("name").assertPropertyAnnotations() - .doesNotContainWithName("JacksonXmlElementWrapper") - .containsWithNameAndAttributes("JacksonXmlProperty", Map.of("isAttribute", "true", "localName", "\"name\"")) - .toProperty().toType() + // ↓ test attribute generation (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Convert%20Property%20to%20an%20Attribute) + .assertProperty("name").assertPropertyAnnotations() + .doesNotContainWithName("JacksonXmlElementWrapper") + .containsWithNameAndAttributes("JacksonXmlProperty", Map.of("isAttribute", "true", "localName", "\"name\"")) + .toProperty().toType() - // ↓ test XML namespace and prefix (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Prefixes%20and%20Namespaces) - .assertProperty("id").assertPropertyAnnotations() - .doesNotContainWithName("JacksonXmlElementWrapper") - .containsWithNameAndAttributes("JacksonXmlProperty", Map.of("localName", "\"id\"", "namespace", "\"http://example.com/schema\"")) - .toProperty().toType() + // ↓ test XML namespace and prefix (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Prefixes%20and%20Namespaces) + .assertProperty("id").assertPropertyAnnotations() + .doesNotContainWithName("JacksonXmlElementWrapper") + .containsWithNameAndAttributes("JacksonXmlProperty", Map.of("localName", "\"id\"", "namespace", "\"http://example.com/schema\"")) + .toProperty().toType() - // ↓ external xml-array element name only (last example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) - .assertProperty("foods").assertPropertyAnnotations() - .containsWithNameAndAttributes("JacksonXmlProperty", Map.of("localName", "\"yummy-yummy\"")) - .containsWithNameAndAttributes("JacksonXmlElementWrapper", Map.of("localName", "\"yummy-yummy\"")) - .toProperty().toType() + // ↓ external xml-array element name only (last example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) + .assertProperty("foods").assertPropertyAnnotations() + .containsWithNameAndAttributes("JacksonXmlProperty", Map.of("localName", "\"yummy-yummy\"")) + .containsWithNameAndAttributes("JacksonXmlElementWrapper", Map.of("localName", "\"yummy-yummy\"")) + .toProperty().toType() - // ↓ internal xml-array element name (4th example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) - .assertProperty("colors").assertPropertyAnnotations() - .containsWithNameAndAttributes("JacksonXmlProperty", Map.of("localName", "\"color\"")) - .containsWithNameAndAttributes("JacksonXmlElementWrapper", Map.of("localName", "\"colors\"")) - .toProperty().toType() + // ↓ internal xml-array element name (4th example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) + .assertProperty("colors").assertPropertyAnnotations() + .containsWithNameAndAttributes("JacksonXmlProperty", Map.of("localName", "\"color\"")) + .containsWithNameAndAttributes("JacksonXmlElementWrapper", Map.of("localName", "\"colors\"")) + .toProperty().toType() - // ↓ ignored external xml-array element name, non-wrapped (2nd example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) - .assertProperty("categories").assertPropertyAnnotations() - .containsWithNameAndAttributes("JacksonXmlProperty", Map.of("localName", "\"Category\"")) - // ↓ specific regression test for #2417: (useWrapping=false) needs to be present - .containsWithNameAndAttributes("JacksonXmlElementWrapper", Map.of("useWrapping", "false")) - .toProperty().toType() + // ↓ ignored external xml-array element name, non-wrapped (2nd example in https://spec.openapis.org/oas/v3.0.0#xml-arrays) + .assertProperty("categories").assertPropertyAnnotations() + .containsWithNameAndAttributes("JacksonXmlProperty", Map.of("localName", "\"Category\"")) + // ↓ specific regression test for #2417: (useWrapping=false) needs to be present + .containsWithNameAndAttributes("JacksonXmlElementWrapper", Map.of("useWrapping", "false")) + .toProperty().toType() - // ↓ test custom-name on wrapper AND children (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Use%20xml/name%20to%20give%20different%20names) - // maps to 5th example in https://spec.openapis.org/oas/v3.0.0#xml-arrays - .assertProperty("activities").assertPropertyAnnotations() - .containsWithNameAndAttributes("JacksonXmlProperty", Map.of("localName", "\"item\"")) - .containsWithNameAndAttributes("JacksonXmlElementWrapper", Map.of("localName", "\"activities-array\"")); + // ↓ test custom-name on wrapper AND children (https://swagger.io/docs/specification/data-models/representing-xml/#:~:text=Use%20xml/name%20to%20give%20different%20names) + // maps to 5th example in https://spec.openapis.org/oas/v3.0.0#xml-arrays + .assertProperty("activities").assertPropertyAnnotations() + .containsWithNameAndAttributes("JacksonXmlProperty", Map.of("localName", "\"item\"")) + .containsWithNameAndAttributes("JacksonXmlElementWrapper", Map.of("localName", "\"activities-array\"")); } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/languages/features/DocumentationProviderFeaturesTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/languages/features/DocumentationProviderFeaturesTest.java index 0954e79fb3a..76067eeac3f 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/languages/features/DocumentationProviderFeaturesTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/languages/features/DocumentationProviderFeaturesTest.java @@ -1,50 +1,51 @@ package org.openapitools.codegen.languages.features; -import java.util.Arrays; -import java.util.List; -import java.util.Locale; -import java.util.stream.Collectors; import org.openapitools.codegen.languages.features.DocumentationProviderFeatures.AnnotationLibrary; import org.openapitools.codegen.languages.features.DocumentationProviderFeatures.DocumentationProvider; import org.testng.Assert; import org.testng.annotations.Test; +import java.util.Arrays; +import java.util.List; +import java.util.Locale; +import java.util.stream.Collectors; + // Tests are not final, methods currently just generate documentation as MD tables. public class DocumentationProviderFeaturesTest { - @Test(priority = 0) - void generateDocumentationProviderTable() { - List providers = Arrays.asList(DocumentationProvider.values()); - StringBuilder sb = new StringBuilder(); - sb.append("### DocumentationProvider\n"); - sb.append("|Cli Option|Description|Property Name|Preferred Annotation Library|Supported Annotation Libraries|\n"); - sb.append("|----------|-----------|-------------|----------------------------|------------------------------|\n"); - providers.forEach(dp -> sb.append(String.format(Locale.ROOT, "|**%s**|%s|`%s`|%s|%s|\n", - dp.toCliOptValue(), - dp.getDescription(), - dp.getPropertyName(), - dp.getPreferredAnnotationLibrary().toCliOptValue(), - dp.supportedAnnotationLibraries().stream() - .map(AnnotationLibrary::toCliOptValue) - .collect(Collectors.joining(", ")) - ))); - sb.append("\n"); - Assert.assertTrue(sb.toString().contains("none")); - } + @Test(priority = 0) + void generateDocumentationProviderTable() { + List providers = Arrays.asList(DocumentationProvider.values()); + StringBuilder sb = new StringBuilder(); + sb.append("### DocumentationProvider\n"); + sb.append("|Cli Option|Description|Property Name|Preferred Annotation Library|Supported Annotation Libraries|\n"); + sb.append("|----------|-----------|-------------|----------------------------|------------------------------|\n"); + providers.forEach(dp -> sb.append(String.format(Locale.ROOT, "|**%s**|%s|`%s`|%s|%s|\n", + dp.toCliOptValue(), + dp.getDescription(), + dp.getPropertyName(), + dp.getPreferredAnnotationLibrary().toCliOptValue(), + dp.supportedAnnotationLibraries().stream() + .map(AnnotationLibrary::toCliOptValue) + .collect(Collectors.joining(", ")) + ))); + sb.append("\n"); + Assert.assertTrue(sb.toString().contains("none")); + } - @Test(priority = 1) - void generateAnnotationLibraryTable() { - List libraries = Arrays.asList(AnnotationLibrary.values()); - StringBuilder sb = new StringBuilder(); - sb.append("### AnnotationLibrary\n"); - sb.append("|Cli Option|Description|Property Name|\n"); - sb.append("|----------|-----------|-----------|\n"); - libraries.forEach(dp -> sb.append(String.format(Locale.ROOT, "|**%s**|%s|`%s`|\n", - dp.toCliOptValue(), - dp.getDescription(), - dp.getPropertyName() - ))); - Assert.assertTrue(sb.toString().contains("none")); - sb.append("\n"); - } + @Test(priority = 1) + void generateAnnotationLibraryTable() { + List libraries = Arrays.asList(AnnotationLibrary.values()); + StringBuilder sb = new StringBuilder(); + sb.append("### AnnotationLibrary\n"); + sb.append("|Cli Option|Description|Property Name|\n"); + sb.append("|----------|-----------|-----------|\n"); + libraries.forEach(dp -> sb.append(String.format(Locale.ROOT, "|**%s**|%s|`%s`|\n", + dp.toCliOptValue(), + dp.getDescription(), + dp.getPropertyName() + ))); + Assert.assertTrue(sb.toString().contains("none")); + sb.append("\n"); + } } \ No newline at end of file diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/mysql/MysqlSchemaCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/mysql/MysqlSchemaCodegenTest.java index 220a663d795..3987baf1252 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/mysql/MysqlSchemaCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/mysql/MysqlSchemaCodegenTest.java @@ -114,9 +114,9 @@ public class MysqlSchemaCodegenTest { final MysqlSchemaCodegen codegen = new MysqlSchemaCodegen(); HashMap defaultMap = null; ArrayList intFixture = new ArrayList(Arrays.asList( - "TINYINT", "SmallInt", "Mediumint", "INT", "bigint" + "TINYINT", "SmallInt", "Mediumint", "INT", "bigint" )); - for(String intType : intFixture) { + for (String intType : intFixture) { defaultMap = codegen.toCodegenMysqlDataTypeDefault("150", intType); Assert.assertTrue((Boolean) defaultMap.get("isNumeric")); Assert.assertFalse((Boolean) defaultMap.get("isString")); @@ -130,9 +130,9 @@ public class MysqlSchemaCodegenTest { Assert.assertSame(defaultMap.get("defaultValue"), "SERIAL DEFAULT VALUE"); ArrayList dateFixture = new ArrayList(Arrays.asList( - "Timestamp", "DateTime" + "Timestamp", "DateTime" )); - for(String dateType : dateFixture) { + for (String dateType : dateFixture) { defaultMap = codegen.toCodegenMysqlDataTypeDefault("2018-08-12", dateType); Assert.assertFalse((Boolean) defaultMap.get("isNumeric")); Assert.assertTrue((Boolean) defaultMap.get("isString")); @@ -146,9 +146,9 @@ public class MysqlSchemaCodegenTest { Assert.assertSame(defaultMap.get("defaultValue"), "CURRENT_TIMESTAMP"); ArrayList restFixture = new ArrayList(Arrays.asList( - "VARCHAR", "CHAR", "ENUM", "UNKNOWN" + "VARCHAR", "CHAR", "ENUM", "UNKNOWN" )); - for(String restType : restFixture) { + for (String restType : restFixture) { defaultMap = codegen.toCodegenMysqlDataTypeDefault("sometext", restType); Assert.assertFalse((Boolean) defaultMap.get("isNumeric")); Assert.assertTrue((Boolean) defaultMap.get("isString")); @@ -162,9 +162,9 @@ public class MysqlSchemaCodegenTest { final MysqlSchemaCodegen codegen = new MysqlSchemaCodegen(); HashMap defaultMap = null; ArrayList specialFixture = new ArrayList(Arrays.asList( - "TINYBLOB", "Blob", "MEDIUMBLOB", "LONGBLOB", "TINYTEXT", "TEXT", "MEDIUMTEXT", "LONGTEXT", "GEOMETRY", "JSON" + "TINYBLOB", "Blob", "MEDIUMBLOB", "LONGBLOB", "TINYTEXT", "TEXT", "MEDIUMTEXT", "LONGTEXT", "GEOMETRY", "JSON" )); - for(String specialType : specialFixture) { + for (String specialType : specialFixture) { defaultMap = codegen.toCodegenMysqlDataTypeDefault("2018-08-12", specialType); Assert.assertNull(defaultMap); } @@ -174,15 +174,15 @@ public class MysqlSchemaCodegenTest { public void testIsMysqlDataType() { final MysqlSchemaCodegen codegen = new MysqlSchemaCodegen(); ArrayList trueFixture = new ArrayList(Arrays.asList( - "INTEGER", "integer", "Integer", "DATETIME", "datetime", "DateTime", "VARCHAR", "varchar", "VarChar", "POINT", "Point", "point", "JSON", "json", "Json" + "INTEGER", "integer", "Integer", "DATETIME", "datetime", "DateTime", "VARCHAR", "varchar", "VarChar", "POINT", "Point", "point", "JSON", "json", "Json" )); ArrayList falseFixture = new ArrayList(Arrays.asList( - "unknown", "HashMap", "HASHMAP", "hashmap" + "unknown", "HashMap", "HASHMAP", "hashmap" )); - for(String trueValue : trueFixture) { + for (String trueValue : trueFixture) { Assert.assertTrue(codegen.isMysqlDataType(trueValue), "'" + trueValue + "' isn't MySQL data type"); } - for(String falseValue : falseFixture) { + for (String falseValue : falseFixture) { Assert.assertFalse(codegen.isMysqlDataType(falseValue), "'" + falseValue + "' is MySQL data type"); } } @@ -226,15 +226,15 @@ public class MysqlSchemaCodegenTest { final MysqlSchemaCodegen codegen = new MysqlSchemaCodegen(); Set reservedWords = codegen.reservedWords(); ArrayList trueFixture = new ArrayList(Arrays.asList( - "accessible", "asc", "between", "blob", "change", "column", "day_hour", "distinct", "enclosed", "except", "explain", "float", "for", "function", "grant", "grouping", "high_priority", "groups", "hour_minute", "insensitive", "interval", "json_table", "keys", "kill", "leave", "left", "mediumblob", "modifies", "not", "null", "numeric", "optimize", "outer", "precision", "primary", "references", "replace", "select", "sql", "then", "tinytext", "unique", "unlock", "varchar", "virtual", "when", "where", "xor", "year_month", "zerofill" + "accessible", "asc", "between", "blob", "change", "column", "day_hour", "distinct", "enclosed", "except", "explain", "float", "for", "function", "grant", "grouping", "high_priority", "groups", "hour_minute", "insensitive", "interval", "json_table", "keys", "kill", "leave", "left", "mediumblob", "modifies", "not", "null", "numeric", "optimize", "outer", "precision", "primary", "references", "replace", "select", "sql", "then", "tinytext", "unique", "unlock", "varchar", "virtual", "when", "where", "xor", "year_month", "zerofill" )); ArrayList falseFixture = new ArrayList(Arrays.asList( - "after", "boolean", "charset", "cpu", "current", "delay_key_write", "end", "format", "global", "host", "install", "json", "key_block_size", "local", "max_size", "none", "offset", "partial", "quarter", "relay", "second", "status", "timestamp", "until", "variables", "without", "xml", "year" + "after", "boolean", "charset", "cpu", "current", "delay_key_write", "end", "format", "global", "host", "install", "json", "key_block_size", "local", "max_size", "none", "offset", "partial", "quarter", "relay", "second", "status", "timestamp", "until", "variables", "without", "xml", "year" )); - for(String trueValue : trueFixture) { + for (String trueValue : trueFixture) { Assert.assertTrue(reservedWords.contains(trueValue), "'" + trueValue + "' isn't MySQL reserved word"); } - for(String falseValue : falseFixture) { + for (String falseValue : falseFixture) { Assert.assertFalse(reservedWords.contains(falseValue), "'" + falseValue + "' is MySQL reserved word"); } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/n4js/N4jsClientCodegenOptionsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/n4js/N4jsClientCodegenOptionsTest.java index 38659942983..e606aa1240c 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/n4js/N4jsClientCodegenOptionsTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/n4js/N4jsClientCodegenOptionsTest.java @@ -1,23 +1,17 @@ package org.openapitools.codegen.n4js; -import static java.lang.Boolean.parseBoolean; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.mockito.Mockito.mock; -import static org.openapitools.codegen.CodegenConstants.API_NAME_PREFIX; -import static org.openapitools.codegen.CodegenConstants.API_PACKAGE; -import static org.openapitools.codegen.CodegenConstants.MODEL_PACKAGE; -import static org.openapitools.codegen.languages.N4jsClientCodegen.CHECK_REQUIRED_PARAMS_NOT_NULL; -import static org.openapitools.codegen.languages.N4jsClientCodegen.CHECK_SUPERFLUOUS_BODY_PROPS; -import static org.openapitools.codegen.languages.N4jsClientCodegen.GENERATE_DEFAULT_API_EXECUTER; -import static org.openapitools.codegen.options.N4jsClientCodegenOptionsProvider.CHECK_REQUIRED_PARAMS_NOT_NULL__VALUE; -import static org.openapitools.codegen.options.N4jsClientCodegenOptionsProvider.CHECK_SUPERFLUOUS_BODY_PROPS__VALUE; -import static org.openapitools.codegen.options.N4jsClientCodegenOptionsProvider.GENERATE_DEFAULT_API_EXECUTER__VALUE; - import org.openapitools.codegen.AbstractOptionsTest; import org.openapitools.codegen.CodegenConfig; import org.openapitools.codegen.languages.N4jsClientCodegen; import org.openapitools.codegen.options.N4jsClientCodegenOptionsProvider; +import static java.lang.Boolean.parseBoolean; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.mock; +import static org.openapitools.codegen.CodegenConstants.*; +import static org.openapitools.codegen.languages.N4jsClientCodegen.*; +import static org.openapitools.codegen.options.N4jsClientCodegenOptionsProvider.*; + public class N4jsClientCodegenOptionsTest extends AbstractOptionsTest { private N4jsClientCodegen codegen = mock(N4jsClientCodegen.class, mockSettings); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/nim/NimClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/nim/NimClientCodegenTest.java index ea0ab8297b7..b817ad80a8d 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/nim/NimClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/nim/NimClientCodegenTest.java @@ -1,38 +1,38 @@ package org.openapitools.codegen.nim; -import org.openapitools.codegen.*; +import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.languages.NimClientCodegen; import org.testng.Assert; import org.testng.annotations.Test; public class NimClientCodegenTest { - @Test - public void testInitialConfigValues() throws Exception { - final NimClientCodegen codegen = new NimClientCodegen(); - codegen.processOpts(); + @Test + public void testInitialConfigValues() throws Exception { + final NimClientCodegen codegen = new NimClientCodegen(); + codegen.processOpts(); - Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.HIDE_GENERATION_TIMESTAMP), Boolean.TRUE); - Assert.assertEquals(codegen.isHideGenerationTimestamp(), true); - } + Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.HIDE_GENERATION_TIMESTAMP), Boolean.TRUE); + Assert.assertEquals(codegen.isHideGenerationTimestamp(), true); + } - @Test - public void testSettersForConfigValues() throws Exception { - final NimClientCodegen codegen = new NimClientCodegen(); - codegen.setHideGenerationTimestamp(false); - codegen.processOpts(); + @Test + public void testSettersForConfigValues() throws Exception { + final NimClientCodegen codegen = new NimClientCodegen(); + codegen.setHideGenerationTimestamp(false); + codegen.processOpts(); - Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.HIDE_GENERATION_TIMESTAMP), Boolean.FALSE); - Assert.assertEquals(codegen.isHideGenerationTimestamp(), false); - } + Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.HIDE_GENERATION_TIMESTAMP), Boolean.FALSE); + Assert.assertEquals(codegen.isHideGenerationTimestamp(), false); + } - @Test - public void testAdditionalPropertiesPutForConfigValues() throws Exception { - final NimClientCodegen codegen = new NimClientCodegen(); - codegen.additionalProperties().put(CodegenConstants.HIDE_GENERATION_TIMESTAMP, false); - codegen.processOpts(); + @Test + public void testAdditionalPropertiesPutForConfigValues() throws Exception { + final NimClientCodegen codegen = new NimClientCodegen(); + codegen.additionalProperties().put(CodegenConstants.HIDE_GENERATION_TIMESTAMP, false); + codegen.processOpts(); - Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.HIDE_GENERATION_TIMESTAMP), Boolean.FALSE); - Assert.assertEquals(codegen.isHideGenerationTimestamp(), false); - } + Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.HIDE_GENERATION_TIMESTAMP), Boolean.FALSE); + Assert.assertEquals(codegen.isHideGenerationTimestamp(), false); + } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/objc/ObjcModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/objc/ObjcModelTest.java index 7881f8fbf00..33a18d834fe 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/objc/ObjcModelTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/objc/ObjcModelTest.java @@ -36,10 +36,10 @@ public class ObjcModelTest { @Test(description = "convert a model with an advanced map property") public void advancedMapPropertyTest() { final Schema model = new Schema() - .description("a sample model") - .addProperties("translations", new MapSchema() - .additionalProperties(new MapSchema().additionalProperties(new StringSchema()))) - .addRequiredItem("id"); + .description("a sample model") + .addProperties("translations", new MapSchema() + .additionalProperties(new MapSchema().additionalProperties(new StringSchema()))) + .addRequiredItem("id"); final DefaultCodegen codegen = new ObjcClientCodegen(); OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("sample", model); codegen.setOpenAPI(openAPI); @@ -297,7 +297,7 @@ public class ObjcModelTest { @Test(description = "test uuid") public void uuidAndPasswordDataModelTest() { - final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml"); + final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml"); final DefaultCodegen codegen = new ObjcClientCodegen(); codegen.setOpenAPI(openAPI); final Schema definition = openAPI.getComponents().getSchemas().get("format_test"); @@ -312,12 +312,12 @@ public class ObjcModelTest { @Test(description = "test mixedProperties") public void mixedPropertiesDataModelTest() { - final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml"); + final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml"); final DefaultCodegen codegen = new ObjcClientCodegen(); codegen.setOpenAPI(openAPI); final Schema definition = openAPI.getComponents().getSchemas().get("MixedPropertiesAndAdditionalPropertiesClass"); - Schema property = ((Map)definition.getProperties()).get("map"); + Schema property = ((Map) definition.getProperties()).get("map"); CodegenProperty prope = codegen.fromProperty("map", property); Assert.assertEquals(prope.baseType, "NSDictionary"); } @@ -331,13 +331,13 @@ public class ObjcModelTest { final CodegenModel codegenModel = codegen.fromModel("AnimalFarm", definition); Assert.assertEquals(codegenModel.isArray, true); - Assert.assertEquals(codegenModel.arrayModelType,"OAIAnimal"); + Assert.assertEquals(codegenModel.arrayModelType, "OAIAnimal"); } @Test(description = "test binary data") public void binaryDataModelTest() { - final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/2_0/binaryDataTest.json"); + final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/2_0/binaryDataTest.json"); final DefaultCodegen codegen = new ObjcClientCodegen(); final String path = "/tests/binaryResponse"; final Operation p = openAPI.getPaths().get(path).getPost(); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/BashClientOptionsProvider.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/BashClientOptionsProvider.java index 338a9e5ea13..76b523fcd72 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/BashClientOptionsProvider.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/BashClientOptionsProvider.java @@ -31,13 +31,13 @@ public class BashClientOptionsProvider implements OptionsProvider { public static final String GENERATE_BASH_COMPLETION = "true"; public static final String GENERATE_ZSH_COMPLETION = "false"; public static final String HOST_ENVIRONMENT_VARIABLE_NAME - = "PETSTORE_HOSTNAME"; + = "PETSTORE_HOSTNAME"; public static final String BASIC_AUTH_ENVIRONMENT_VARIABLE_NAME - = "PETSTORE_BASIC_AUTH"; + = "PETSTORE_BASIC_AUTH"; public static final String APIKEY_AUTH_ENVIRONMENT_VARIABLE_NAME - = "PETSTORE_APIKEY"; + = "PETSTORE_APIKEY"; public static final String ALLOW_UNICODE_IDENTIFIERS_VALUE - = "false"; + = "false"; public static final String PREPEND_FORM_OR_BODY_PARAMETERS_VALUE = "true"; public static final String ENUM_UNKNOWN_DEFAULT_CASE_VALUE = "false"; @@ -50,7 +50,7 @@ public class BashClientOptionsProvider implements OptionsProvider { public Map createOptions() { ImmutableMap.Builder builder - = new ImmutableMap.Builder(); + = new ImmutableMap.Builder(); return builder .put(BashClientCodegen.CURL_OPTIONS, CURL_OPTIONS) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/DartClientOptionsProvider.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/DartClientOptionsProvider.java index 7851eb08236..50bbfdb5e9b 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/DartClientOptionsProvider.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/DartClientOptionsProvider.java @@ -17,13 +17,12 @@ package org.openapitools.codegen.options; -import java.util.Map; - import com.google.common.collect.ImmutableMap; - import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.languages.DartClientCodegen; +import java.util.Map; + public class DartClientOptionsProvider implements OptionsProvider { public static final String SORT_PARAMS_VALUE = "true"; public static final String SORT_MODEL_PROPERTIES_VALUE = "false"; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/GdscriptClientOptionsProvider.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/GdscriptClientOptionsProvider.java index 2c00ea50b18..d218f398f37 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/GdscriptClientOptionsProvider.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/GdscriptClientOptionsProvider.java @@ -1,10 +1,9 @@ package org.openapitools.codegen.options; +import com.google.common.collect.ImmutableMap; import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.languages.GdscriptClientCodegen; -import com.google.common.collect.ImmutableMap; - import java.util.Map; public class GdscriptClientOptionsProvider implements OptionsProvider { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/JetbrainsHttpClientClientCodegenOptionsProvider.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/JetbrainsHttpClientClientCodegenOptionsProvider.java index f5d7706402a..de84ccb814e 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/JetbrainsHttpClientClientCodegenOptionsProvider.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/JetbrainsHttpClientClientCodegenOptionsProvider.java @@ -1,8 +1,7 @@ package org.openapitools.codegen.options; -import org.openapitools.codegen.languages.JetbrainsHttpClientClientCodegen; - import com.google.common.collect.ImmutableMap; +import org.openapitools.codegen.languages.JetbrainsHttpClientClientCodegen; import java.util.Map; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/MysqlSchemaOptionsProvider.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/MysqlSchemaOptionsProvider.java index ccb40f73a0d..dc766a05129 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/MysqlSchemaOptionsProvider.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/MysqlSchemaOptionsProvider.java @@ -36,10 +36,10 @@ public class MysqlSchemaOptionsProvider implements OptionsProvider { public Map createOptions() { ImmutableMap.Builder builder = new ImmutableMap.Builder(); return builder.put(MysqlSchemaCodegen.DEFAULT_DATABASE_NAME, DEFAULT_DATABASE_NAME_VALUE) - .put(MysqlSchemaCodegen.JSON_DATA_TYPE_ENABLED, JSON_DATA_TYPE_ENABLED_VALUE) - .put(MysqlSchemaCodegen.IDENTIFIER_NAMING_CONVENTION, IDENTIFIER_NAMING_CONVENTION_VALUE) - .put(MysqlSchemaCodegen.NAMED_PARAMETERS_ENABLED, NAMED_PARAMETERS_ENABLED_VALUE) - .build(); + .put(MysqlSchemaCodegen.JSON_DATA_TYPE_ENABLED, JSON_DATA_TYPE_ENABLED_VALUE) + .put(MysqlSchemaCodegen.IDENTIFIER_NAMING_CONVENTION, IDENTIFIER_NAMING_CONVENTION_VALUE) + .put(MysqlSchemaCodegen.NAMED_PARAMETERS_ENABLED, NAMED_PARAMETERS_ENABLED_VALUE) + .build(); } @Override diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/N4jsClientCodegenOptionsProvider.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/N4jsClientCodegenOptionsProvider.java index 917c951f0b4..b22da078ecb 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/N4jsClientCodegenOptionsProvider.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/N4jsClientCodegenOptionsProvider.java @@ -1,11 +1,10 @@ package org.openapitools.codegen.options; -import java.util.Map; - +import com.google.common.collect.ImmutableMap; import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.languages.N4jsClientCodegen; -import com.google.common.collect.ImmutableMap; +import java.util.Map; public class N4jsClientCodegenOptionsProvider implements OptionsProvider { public static final String PROJECT_NAME_VALUE = "OpenAPI"; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/NimClientCodegenOptionsProvider.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/NimClientCodegenOptionsProvider.java index c5e5eb63aa5..94aca25ec8c 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/NimClientCodegenOptionsProvider.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/NimClientCodegenOptionsProvider.java @@ -1,8 +1,7 @@ package org.openapitools.codegen.options; -import org.openapitools.codegen.languages.NimClientCodegen; - import com.google.common.collect.ImmutableMap; +import org.openapitools.codegen.languages.NimClientCodegen; import java.util.Map; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/OptionsProvider.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/OptionsProvider.java index 1a662831032..8f9e0f37f07 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/OptionsProvider.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/OptionsProvider.java @@ -21,6 +21,8 @@ import java.util.Map; public interface OptionsProvider { String getLanguage(); + Map createOptions(); + boolean isServer(); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/PostgresqlSchemaOptionsProvider.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/PostgresqlSchemaOptionsProvider.java index d84e43f003b..a6f8ccbc73c 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/PostgresqlSchemaOptionsProvider.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/PostgresqlSchemaOptionsProvider.java @@ -37,11 +37,11 @@ public class PostgresqlSchemaOptionsProvider implements OptionsProvider { public Map createOptions() { ImmutableMap.Builder builder = new ImmutableMap.Builder(); return builder.put(PostgresqlSchemaCodegen.DEFAULT_DATABASE_NAME, DEFAULT_DATABASE_NAME_VALUE) - .put(PostgresqlSchemaCodegen.JSON_DATA_TYPE, JSON_DATA_TYPE_VALUE) - .put(PostgresqlSchemaCodegen.IDENTIFIER_NAMING_CONVENTION, IDENTIFIER_NAMING_CONVENTION_VALUE) - .put(PostgresqlSchemaCodegen.NAMED_PARAMETERS_ENABLED, NAMED_PARAMETERS_ENABLED_VALUE) - .put(PostgresqlSchemaCodegen.ID_AUTOINC_ENABLED, ID_AUTOINC_ENABLED_VALUE) - .build(); + .put(PostgresqlSchemaCodegen.JSON_DATA_TYPE, JSON_DATA_TYPE_VALUE) + .put(PostgresqlSchemaCodegen.IDENTIFIER_NAMING_CONVENTION, IDENTIFIER_NAMING_CONVENTION_VALUE) + .put(PostgresqlSchemaCodegen.NAMED_PARAMETERS_ENABLED, NAMED_PARAMETERS_ENABLED_VALUE) + .put(PostgresqlSchemaCodegen.ID_AUTOINC_ENABLED, ID_AUTOINC_ENABLED_VALUE) + .build(); } @Override diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/ScalaHttp4sClientCodegenOptionsProvider.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/ScalaHttp4sClientCodegenOptionsProvider.java index bacc31603da..10fa8bab405 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/ScalaHttp4sClientCodegenOptionsProvider.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/ScalaHttp4sClientCodegenOptionsProvider.java @@ -1,7 +1,7 @@ package org.openapitools.codegen.options; -import org.openapitools.codegen.CodegenConstants; import com.google.common.collect.ImmutableMap; +import org.openapitools.codegen.CodegenConstants; import java.io.File; import java.util.Map; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/Swift6ClientCodegenOptionsProvider.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/Swift6ClientCodegenOptionsProvider.java index a8c6473d1be..cf951b0113e 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/Swift6ClientCodegenOptionsProvider.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/Swift6ClientCodegenOptionsProvider.java @@ -17,11 +17,10 @@ package org.openapitools.codegen.options; +import com.google.common.collect.ImmutableMap; import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.languages.Swift6ClientCodegen; -import com.google.common.collect.ImmutableMap; - import java.util.Map; public class Swift6ClientCodegenOptionsProvider implements OptionsProvider { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/SwiftCombineClientCodegenOptionsProvider.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/SwiftCombineClientCodegenOptionsProvider.java index e5bca028aa3..6b3069a9602 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/SwiftCombineClientCodegenOptionsProvider.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/SwiftCombineClientCodegenOptionsProvider.java @@ -1,8 +1,7 @@ package org.openapitools.codegen.options; -import org.openapitools.codegen.languages.SwiftCombineClientCodegen; - import com.google.common.collect.ImmutableMap; +import org.openapitools.codegen.languages.SwiftCombineClientCodegen; import java.util.Map; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/AbstractPhpCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/AbstractPhpCodegenTest.java index 7ad989f0f88..4b62437c0fc 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/AbstractPhpCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/AbstractPhpCodegenTest.java @@ -19,14 +19,9 @@ package org.openapitools.codegen.php; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.media.Schema; - import org.mockito.Answers; -import org.openapitools.codegen.CodegenConstants; -import org.openapitools.codegen.CodegenModel; -import org.openapitools.codegen.CodegenOperation; -import org.openapitools.codegen.CodegenProperty; +import org.openapitools.codegen.*; import org.openapitools.codegen.languages.AbstractPhpCodegen; -import org.openapitools.codegen.TestUtils; import org.testng.Assert; import org.testng.annotations.BeforeMethod; import org.testng.annotations.DataProvider; @@ -46,12 +41,13 @@ public class AbstractPhpCodegenTest { * In TEST-NG, test class (and its fields) is only constructed once (vs. for every test in Jupiter), * using @BeforeMethod to have a fresh codegen mock for each test */ - @BeforeMethod void mockAbstractCodegen() { + @BeforeMethod + void mockAbstractCodegen() { codegen = mock( - AbstractPhpCodegen.class, withSettings().defaultAnswer(Answers.CALLS_REAL_METHODS).useConstructor() + AbstractPhpCodegen.class, withSettings().defaultAnswer(Answers.CALLS_REAL_METHODS).useConstructor() ); } - + @Test public void testInitialConfigValues() throws Exception { codegen.processOpts(); @@ -79,7 +75,7 @@ public class AbstractPhpCodegenTest { Assert.assertEquals(codegen.modelPackage(), "My\\Client\\Model"); Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.MODEL_PACKAGE), "My\\Client\\Model"); Assert.assertEquals(codegen.apiPackage(), "My\\Client\\Api"); - Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.API_PACKAGE),"My\\Client\\Api"); + Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.API_PACKAGE), "My\\Client\\Api"); Assert.assertEquals(codegen.getInvokerPackage(), "My\\Client\\Invoker"); Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.INVOKER_PACKAGE), "My\\Client\\Invoker"); } @@ -130,12 +126,12 @@ public class AbstractPhpCodegenTest { @DataProvider(name = "composerNames") public static Object[][] composerNames() { - return new Object[][] { - {"", "", ""}, - {"null", "null", ""}, - {"GIT_REPO_ID", "GIT_USER_ID", ""}, - {"git_repo_id", "git_user_id", "git_repo_id/git_user_id"}, - {"foo", "bar", "foo/bar"}, + return new Object[][]{ + {"", "", ""}, + {"null", "null", ""}, + {"GIT_REPO_ID", "GIT_USER_ID", ""}, + {"git_repo_id", "git_user_id", "git_repo_id/git_user_id"}, + {"foo", "bar", "foo/bar"}, }; } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpClientCodegenTest.java index 66a6302344b..991dd174515 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpClientCodegenTest.java @@ -21,8 +21,6 @@ import io.swagger.parser.OpenAPIParser; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.parser.core.models.ParseOptions; import org.openapitools.codegen.*; -import org.openapitools.codegen.java.assertions.JavaFileAssert; -import org.openapitools.codegen.languages.JavaMicroprofileServerCodegen; import org.openapitools.codegen.languages.PhpClientCodegen; import org.testng.Assert; import org.testng.annotations.BeforeMethod; @@ -72,7 +70,7 @@ public class PhpClientCodegenTest { Assert.assertEquals(codegen.modelPackage(), "My\\Client\\Model"); Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.MODEL_PACKAGE), "My\\Client\\Model"); Assert.assertEquals(codegen.apiPackage(), "My\\Client\\Api"); - Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.API_PACKAGE),"My\\Client\\Api"); + Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.API_PACKAGE), "My\\Client\\Api"); Assert.assertEquals(codegen.getInvokerPackage(), "My\\Client\\Invoker"); Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.INVOKER_PACKAGE), "My\\Client\\Invoker"); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpModelTest.java index d2bc34a33b5..4328e203731 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpModelTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpModelTest.java @@ -272,14 +272,14 @@ public class PhpModelTest { @DataProvider(name = "modelNames") public static Object[][] primeNumbers() { - return new Object[][] { - {"sample", "Sample"}, - {"sample_name", "SampleName"}, - {"sample__name", "SampleName"}, - {"/sample", "Sample"}, - {"\\sample", "\\Sample"}, - {"sample.name", "SampleName"}, - {"_sample", "Sample"}, + return new Object[][]{ + {"sample", "Sample"}, + {"sample_name", "SampleName"}, + {"sample__name", "SampleName"}, + {"/sample", "Sample"}, + {"\\sample", "\\Sample"}, + {"sample.name", "SampleName"}, + {"_sample", "Sample"}, }; } @@ -303,7 +303,7 @@ public class PhpModelTest { final Map schemas = openAPI.getComponents().getSchemas(); final Schema definition = schemas.get("EnumArrays"); - Schema property = (Schema) definition.getProperties().get("array_enum"); + Schema property = (Schema) definition.getProperties().get("array_enum"); CodegenProperty prope = codegen.fromProperty("array_enum", property); codegen.updateCodegenPropertyEnum(prope); Assert.assertEquals(prope.datatypeWithEnum, "ARRAY_ENUM[]"); @@ -311,11 +311,11 @@ public class PhpModelTest { Assert.assertTrue(prope.isEnum); Assert.assertEquals(prope.allowableValues.get("values"), Arrays.asList("fish", "crab")); - HashMap fish= new HashMap(); + HashMap fish = new HashMap(); fish.put("name", "FISH"); fish.put("value", "\'fish\'"); fish.put("isString", true); - HashMap crab= new HashMap(); + HashMap crab = new HashMap(); crab.put("name", "CRAB"); crab.put("value", "\'crab\'"); crab.put("isString", true); @@ -337,7 +337,7 @@ public class PhpModelTest { codegen.setOpenAPI(openAPI); final Schema definition = openAPI.getComponents().getSchemas().get("Enum_Test"); - Schema property = (Schema) definition.getProperties().get("enum_integer"); + Schema property = (Schema) definition.getProperties().get("enum_integer"); CodegenProperty prope = codegen.fromProperty("enum_integer", property); codegen.updateCodegenPropertyEnum(prope); Assert.assertEquals(prope.datatypeWithEnum, "ENUM_INTEGER"); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpNextgenClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpNextgenClientCodegenTest.java index 16ed6aeb0d7..68e9dc11ed1 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpNextgenClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpNextgenClientCodegenTest.java @@ -22,7 +22,6 @@ import io.swagger.v3.parser.core.models.ParseOptions; import org.openapitools.codegen.ClientOptInput; import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.DefaultGenerator; -import org.openapitools.codegen.languages.PhpClientCodegen; import org.openapitools.codegen.languages.PhpNextgenClientCodegen; import org.openapitools.codegen.testutils.ConfigAssert; import org.testng.Assert; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java index b5144ff7627..dbbb89171c7 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java @@ -17,12 +17,6 @@ package org.openapitools.codegen.php; -import java.io.File; -import java.nio.file.Files; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import org.openapitools.codegen.ClientOptInput; import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.DefaultGenerator; @@ -33,6 +27,12 @@ import org.openapitools.codegen.languages.PhpSymfonyServerCodegen; import org.testng.Assert; import org.testng.annotations.Test; +import java.io.File; +import java.nio.file.Files; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + public class PhpSymfonyServerCodegenTest { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/flight/PhpFlightServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/flight/PhpFlightServerCodegenTest.java index cbba0a00ed8..6511d34e294 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/flight/PhpFlightServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/flight/PhpFlightServerCodegenTest.java @@ -1,15 +1,16 @@ package org.openapitools.codegen.php.flight; +import org.openapitools.codegen.ClientOptInput; +import org.openapitools.codegen.DefaultGenerator; +import org.openapitools.codegen.TestUtils; +import org.openapitools.codegen.config.CodegenConfigurator; +import org.testng.annotations.Test; + import java.io.File; import java.nio.file.Files; import java.util.HashMap; import java.util.List; import java.util.Map; -import org.openapitools.codegen.ClientOptInput; -import org.openapitools.codegen.DefaultGenerator; -import org.openapitools.codegen.TestUtils; -import org.openapitools.codegen.config.CodegenConfigurator; -import org.testng.annotations.Test; public class PhpFlightServerCodegenTest { @@ -20,10 +21,10 @@ public class PhpFlightServerCodegenTest { File output = Files.createTempDirectory("test").toFile(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("php-flight") - .setAdditionalProperties(properties) - .setInputSpec("src/test/resources/3_0/petstore-php-flight.yaml") - .setOutputDir(output.getAbsolutePath().replace("\\", "/")); + .setGeneratorName("php-flight") + .setAdditionalProperties(properties) + .setInputSpec("src/test/resources/3_0/petstore-php-flight.yaml") + .setOutputDir(output.getAbsolutePath().replace("\\", "/")); final ClientOptInput clientOptInput = configurator.toClientOptInput(); DefaultGenerator generator = new DefaultGenerator(); @@ -59,7 +60,7 @@ public class PhpFlightServerCodegenTest { java.nio.file.Path registerRoutesFile = files.stream().filter(f -> f.getName().contains("RegisterRoutes.php")).findFirst().orElseThrow().toPath(); TestUtils.assertFileContains(registerRoutesFile, "function registerRoutes(\\OpenAPIServer\\Api\\AbstractPetApi|\\OpenAPIServer\\Api\\AbstractUserApi $handler): void"); TestUtils.assertFileContains(registerRoutesFile, - "Flight::route('POST /user/createWithArray/@pathParamInt/@pathParamString', function (string $pathParamInt, string $pathParamString) use ($handler) {"); + "Flight::route('POST /user/createWithArray/@pathParamInt/@pathParamString', function (string $pathParamInt, string $pathParamString) use ($handler) {"); TestUtils.assertFileContains(registerRoutesFile, "parseParam($pathParamInt, 'int')"); TestUtils.assertFileContains(registerRoutesFile, "parseParam($pathParamString, 'string')"); TestUtils.assertFileContains(registerRoutesFile, "parseParam(json_decode($r->getBody(), true), '\\\\OpenAPIServer\\\\Model\\\\User[]')"); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/plantuml/PlantumlDocumentationCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/plantuml/PlantumlDocumentationCodegenTest.java index 358948df3b7..eb946437c0f 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/plantuml/PlantumlDocumentationCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/plantuml/PlantumlDocumentationCodegenTest.java @@ -39,11 +39,11 @@ public class PlantumlDocumentationCodegenTest { List fieldList = getList(firstEntity, "fields"); Assert.assertEquals(fieldList.size(), 2, "size of field list"); - Map firstField = (Map)fieldList.get(0); + Map firstField = (Map) fieldList.get(0); - Assert.assertEquals((String)firstField.get("name"), "id"); - Assert.assertTrue((boolean)firstField.get("isRequired")); - Assert.assertEquals((String)firstField.get("dataType"), "Long"); + Assert.assertEquals((String) firstField.get("name"), "id"); + Assert.assertTrue((boolean) firstField.get("isRequired")); + Assert.assertEquals((String) firstField.get("dataType"), "Long"); } @Test @@ -63,7 +63,7 @@ public class PlantumlDocumentationCodegenTest { Map sampleEntity = getEntityFromList("Sample", entityList); Map tagsField = getFieldFromEntity("tags", sampleEntity); - Assert.assertEquals((String)tagsField.get("dataType"), "List"); + Assert.assertEquals((String) tagsField.get("dataType"), "List"); } @Test @@ -112,7 +112,7 @@ public class PlantumlDocumentationCodegenTest { List inheritanceList = getList(objs, "inheritances"); Assert.assertEquals(inheritanceList.size(), 1, "size of inheritance list"); - Map firstInheritance = (Map)inheritanceList.get(0); + Map firstInheritance = (Map) inheritanceList.get(0); Assert.assertEquals(firstInheritance.get("parent"), "Parent"); Assert.assertEquals(firstInheritance.get("child"), "Child"); } @@ -156,25 +156,25 @@ public class PlantumlDocumentationCodegenTest { Map parentEntity = getEntityFromList("Parent", entityList); Map nameField = getFieldFromEntity("name", parentEntity); - Assert.assertEquals((String)nameField.get("dataType"), "Simple"); + Assert.assertEquals((String) nameField.get("dataType"), "Simple"); Map tagsField = getFieldFromEntity("tags", parentEntity); - Assert.assertEquals((String)tagsField.get("dataType"), "List"); + Assert.assertEquals((String) tagsField.get("dataType"), "List"); List relationshipList = getList(objs, "relationships"); Assert.assertEquals(relationshipList.size(), 2, "size of relationship list"); - Map firstRelationship = (Map)relationshipList.get(0); - Assert.assertEquals((String)firstRelationship.get("parent"), "Parent"); - Assert.assertEquals((String)firstRelationship.get("child"), "Simple"); - Assert.assertEquals((String)firstRelationship.get("name"), "name"); - Assert.assertFalse((boolean)firstRelationship.get("isList")); + Map firstRelationship = (Map) relationshipList.get(0); + Assert.assertEquals((String) firstRelationship.get("parent"), "Parent"); + Assert.assertEquals((String) firstRelationship.get("child"), "Simple"); + Assert.assertEquals((String) firstRelationship.get("name"), "name"); + Assert.assertFalse((boolean) firstRelationship.get("isList")); - Map secondRelationship = (Map)relationshipList.get(1); - Assert.assertEquals((String)secondRelationship.get("parent"), "Parent"); - Assert.assertEquals((String)secondRelationship.get("child"), "Tag"); - Assert.assertEquals((String)secondRelationship.get("name"), "tags"); - Assert.assertTrue((boolean)secondRelationship.get("isList")); + Map secondRelationship = (Map) relationshipList.get(1); + Assert.assertEquals((String) secondRelationship.get("parent"), "Parent"); + Assert.assertEquals((String) secondRelationship.get("child"), "Tag"); + Assert.assertEquals((String) secondRelationship.get("name"), "tags"); + Assert.assertTrue((boolean) secondRelationship.get("isList")); } @Test @@ -222,22 +222,22 @@ public class PlantumlDocumentationCodegenTest { List inheritanceList = getList(objs, "inheritances"); Assert.assertEquals(inheritanceList.size(), 1, "size of inheritance list"); - Map firstInheritance = (Map)inheritanceList.get(0); + Map firstInheritance = (Map) inheritanceList.get(0); Assert.assertEquals(firstInheritance.get("parent"), "Parent"); Assert.assertEquals(firstInheritance.get("child"), "Child"); List relationshipList = getList(objs, "relationships"); Assert.assertEquals(relationshipList.size(), 1, "size of relationship list"); - Map firstRelationship = (Map)relationshipList.get(0); - Assert.assertEquals((String)firstRelationship.get("parent"), "Child"); - Assert.assertEquals((String)firstRelationship.get("child"), "Tag"); + Map firstRelationship = (Map) relationshipList.get(0); + Assert.assertEquals((String) firstRelationship.get("parent"), "Child"); + Assert.assertEquals((String) firstRelationship.get("child"), "Tag"); } private Map createObjectsMapFor(CodegenModel... codegenModels) { List modelsList = new ArrayList<>(); - for (CodegenModel codegenModel: codegenModels) { + for (CodegenModel codegenModel : codegenModels) { ModelMap modelMap = new ModelMap(); modelMap.setModel(codegenModel); modelsList.add(modelMap); @@ -249,7 +249,7 @@ public class PlantumlDocumentationCodegenTest { } private Map toMap(Object entityItem) { - return (Map)entityItem; + return (Map) entityItem; } private boolean hasName(String name, Map map) { @@ -277,7 +277,7 @@ public class PlantumlDocumentationCodegenTest { } private void assertFieldDoesNotExistsInEntity(String name, Map entity) { - List fieldList = (List)entity.get("fields"); + List fieldList = (List) entity.get("fields"); long count = fieldList.stream() .map(fieldItem -> toMap(fieldItem)) .filter(fieldMap -> hasName(name, fieldMap)) @@ -287,7 +287,7 @@ public class PlantumlDocumentationCodegenTest { } private Map getFieldFromEntity(String name, Map entity) { - List fieldList = (List)entity.get("fields"); + List fieldList = (List) entity.get("fields"); Optional> field = fieldList.stream() .map(fieldItem -> toMap(fieldItem)) .filter(fieldMap -> hasName(name, fieldMap)) @@ -303,6 +303,6 @@ public class PlantumlDocumentationCodegenTest { Assert.assertNotNull(list, "object with name '" + listName + "' in objs map"); Assert.assertTrue(list instanceof List, "object with name '" + listName + "' in objs map is a list"); - return (List)list; + return (List) list; } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/postgresql/PostgresqlSchemaCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/postgresql/PostgresqlSchemaCodegenTest.java index e97613dce29..d38f4dd8364 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/postgresql/PostgresqlSchemaCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/postgresql/PostgresqlSchemaCodegenTest.java @@ -201,15 +201,15 @@ public class PostgresqlSchemaCodegenTest { final PostgresqlSchemaCodegen codegen = new PostgresqlSchemaCodegen(); Set reservedWords = codegen.reservedWords(); ArrayList trueFixture = new ArrayList(Arrays.asList( - "abort", "absent", "access", "action", "admin", "after", "alter", "always", "array", "atomic", "attach", "base64", "before", "begin", "bigint", "binary", "btrim", "cache", "called", "chain", "check", "class", "close", "cobol", "column", "commit", "count", "create", "cross", "cursor", "cycle", "define", "degree", "delete", "depth", "deref", "detach", "domain", "double", "empty", "enable", "equals", "error", "escape", "event", "every", "except", "exists", "false", "family", "fetch", "filter", "final", "finish", "first", "float", "floor", "force", "format", "found", "freeze", "fusion", "global", "grant", "group", "groups", "having", "header", "ignore", "ilike", "import", "indent", "index", "inline", "inner", "inout", "input", "insert", "isnull", "label", "large", "least", "length", "level", "limit", "listen", "local", "locked", "log10", "logged", "lower", "ltrim", "match", "member", "merge", "method", "minute", "module", "month", "mumps", "names", "nchar", "nclob", "nested", "notify", "nowait", "ntile", "nullif", "nulls", "number", "object", "octets", "offset", "option", "order", "others", "outer", "output", "owned", "owner", "parser", "pascal", "period", "plans", "policy", "power", "prior", "prune", "public", "quote", "quotes", "range", "reads", "rename", "reset", "result", "return", "revoke", "right", "rollup", "rtrim", "scalar", "scale", "schema", "scope", "scroll", "search", "second", "select", "server", "setof", "share", "simple", "source", "space", "stable", "start", "state", "static", "stdin", "stdout", "stored", "strict", "string", "strip", "style", "subset", "sysid", "system", "table", "tables", "target", "token", "treat", "types", "under", "union", "unique", "unlink", "unnest", "until", "update", "upper", "usage", "using", "utf16", "utf32", "vacuum" + "abort", "absent", "access", "action", "admin", "after", "alter", "always", "array", "atomic", "attach", "base64", "before", "begin", "bigint", "binary", "btrim", "cache", "called", "chain", "check", "class", "close", "cobol", "column", "commit", "count", "create", "cross", "cursor", "cycle", "define", "degree", "delete", "depth", "deref", "detach", "domain", "double", "empty", "enable", "equals", "error", "escape", "event", "every", "except", "exists", "false", "family", "fetch", "filter", "final", "finish", "first", "float", "floor", "force", "format", "found", "freeze", "fusion", "global", "grant", "group", "groups", "having", "header", "ignore", "ilike", "import", "indent", "index", "inline", "inner", "inout", "input", "insert", "isnull", "label", "large", "least", "length", "level", "limit", "listen", "local", "locked", "log10", "logged", "lower", "ltrim", "match", "member", "merge", "method", "minute", "module", "month", "mumps", "names", "nchar", "nclob", "nested", "notify", "nowait", "ntile", "nullif", "nulls", "number", "object", "octets", "offset", "option", "order", "others", "outer", "output", "owned", "owner", "parser", "pascal", "period", "plans", "policy", "power", "prior", "prune", "public", "quote", "quotes", "range", "reads", "rename", "reset", "result", "return", "revoke", "right", "rollup", "rtrim", "scalar", "scale", "schema", "scope", "scroll", "search", "second", "select", "server", "setof", "share", "simple", "source", "space", "stable", "start", "state", "static", "stdin", "stdout", "stored", "strict", "string", "strip", "style", "subset", "sysid", "system", "table", "tables", "target", "token", "treat", "types", "under", "union", "unique", "unlink", "unnest", "until", "update", "upper", "usage", "using", "utf16", "utf32", "vacuum" )); ArrayList falseFixture = new ArrayList(Arrays.asList( - "after_nine", "cpu", "delay_key_write", "form", "host", "install", "key_block_size", "max_size", "noo_one", "particle", "quarter", "relay", "first_do", "status", "until_now", "variables" + "after_nine", "cpu", "delay_key_write", "form", "host", "install", "key_block_size", "max_size", "noo_one", "particle", "quarter", "relay", "first_do", "status", "until_now", "variables" )); - for(String trueValue : trueFixture) { + for (String trueValue : trueFixture) { Assert.assertTrue(reservedWords.contains(trueValue), "'" + trueValue + "' isn't PostgreSQL reserved word"); } - for(String falseValue : falseFixture) { + for (String falseValue : falseFixture) { Assert.assertFalse(reservedWords.contains(falseValue), "'" + falseValue + "' is PostgreSQL reserved word"); } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/postman/PostmanCollectionCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/postman/PostmanCollectionCodegenTest.java index d6471c387e4..4dab290991e 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/postman/PostmanCollectionCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/postman/PostmanCollectionCodegenTest.java @@ -11,7 +11,6 @@ import org.openapitools.codegen.languages.PostmanCollectionCodegen; import org.testng.annotations.Test; import java.io.File; - import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; @@ -673,7 +672,7 @@ public class PostmanCollectionCodegenTest { } @Test - public void testAddToList() { + public void testAddToList() { PostmanCollectionCodegen postmanCollectionCodegen = new PostmanCollectionCodegen(); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/protobuf/ProtobufSchemaCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/protobuf/ProtobufSchemaCodegenTest.java index 04a4af4f33b..595919720aa 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/protobuf/ProtobufSchemaCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/protobuf/ProtobufSchemaCodegenTest.java @@ -28,8 +28,6 @@ import org.openapitools.codegen.meta.features.WireFormatFeature; import org.testng.Assert; import org.testng.annotations.Test; -import static org.testng.Assert.*; - import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; @@ -38,6 +36,8 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; +import static org.testng.Assert.assertEquals; + public class ProtobufSchemaCodegenTest { @Test @@ -75,9 +75,9 @@ public class ProtobufSchemaCodegenTest { private void assertFileEquals(Path generatedFilePath, Path expectedFilePath) throws IOException { String generatedFile = new String(Files.readAllBytes(generatedFilePath), StandardCharsets.UTF_8) - .replace("\n", "").replace("\r", ""); + .replace("\n", "").replace("\r", ""); String expectedFile = new String(Files.readAllBytes(expectedFilePath), StandardCharsets.UTF_8) - .replace("\n", "").replace("\r", ""); + .replace("\n", "").replace("\r", ""); assertEquals(generatedFile, expectedFile); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/AbstractPythonConnexionServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/AbstractPythonConnexionServerCodegenTest.java index 9cec33bdf63..c4133bf1ccd 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/AbstractPythonConnexionServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/AbstractPythonConnexionServerCodegenTest.java @@ -1,15 +1,5 @@ package org.openapitools.codegen.python; -import static org.assertj.core.api.Assertions.assertThat; -import static org.openapitools.codegen.languages.AbstractPythonConnexionServerCodegen.MOVE_TESTS_UNDER_PYTHON_SRC_ROOT; -import static org.openapitools.codegen.languages.AbstractPythonConnexionServerCodegen.PYTHON_SRC_ROOT; -import static org.openapitools.codegen.languages.AbstractPythonConnexionServerCodegen.USE_PYTHON_SRC_ROOT_IN_IMPORTS; - -import java.io.File; -import java.util.Collections; -import java.util.Map; -import java.util.Objects; - import com.google.common.collect.ImmutableMap; import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.CodegenConstants; @@ -17,6 +7,14 @@ import org.openapitools.codegen.languages.AbstractPythonConnexionServerCodegen; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; +import java.io.File; +import java.util.Collections; +import java.util.Map; +import java.util.Objects; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.openapitools.codegen.languages.AbstractPythonConnexionServerCodegen.*; + public class AbstractPythonConnexionServerCodegenTest { /** @@ -40,78 +38,78 @@ public class AbstractPythonConnexionServerCodegenTest { @DataProvider public Object[][] data() { return new Object[][]{ - new Object[]{ - "Default setup", - Collections.emptyMap(), - "TestModel", - new ExpectedValues("from openapi_server.models.test_model import TestModel", - "openapi_server.controllers", - platformAgnosticPath("generated-code", "connexion", "openapi_server", "models"), - platformAgnosticPath("generated-code", "connexion", "openapi_server", "controllers"), - platformAgnosticPath("generated-code", "connexion", "test"), - null) - }, - new Object[]{ - "Default setup with Python src root", - ImmutableMap.of(PYTHON_SRC_ROOT, "test_root"), - "TestModel", - new ExpectedValues("from openapi_server.models.test_model import TestModel", - "openapi_server.controllers", - platformAgnosticPath("generated-code", "connexion", "test_root", "openapi_server", "models"), - platformAgnosticPath("generated-code", "connexion", "test_root", "openapi_server", "controllers"), - platformAgnosticPath("generated-code", "connexion", "test"), - "test_root") - }, - new Object[]{ - "Python src in import", - ImmutableMap.of(PYTHON_SRC_ROOT, "test_root", USE_PYTHON_SRC_ROOT_IN_IMPORTS, "true"), - "TestModel", - new ExpectedValues("from test_root.openapi_server.models.test_model import TestModel", - "test_root.openapi_server.controllers", - platformAgnosticPath("generated-code", "connexion", "test_root", "openapi_server", "models"), - platformAgnosticPath("generated-code", "connexion", "test_root", "openapi_server", "controllers"), - platformAgnosticPath("generated-code", "connexion", "test"), - null) - }, - new Object[]{ - "Python src in import and tests under python src root", - ImmutableMap.of(PYTHON_SRC_ROOT, "test_root", USE_PYTHON_SRC_ROOT_IN_IMPORTS, "true", - MOVE_TESTS_UNDER_PYTHON_SRC_ROOT, "true"), - "TestModel", - new ExpectedValues("from test_root.openapi_server.models.test_model import TestModel", - "test_root.openapi_server.controllers", - platformAgnosticPath("generated-code", "connexion", "test_root", "openapi_server", "models"), - platformAgnosticPath("generated-code", "connexion", "test_root", "openapi_server", "controllers"), - platformAgnosticPath("generated-code", "connexion", "test_root", "test"), - null) - }, - new Object[]{ - "Python src in import with specified package", - ImmutableMap.of(PYTHON_SRC_ROOT, "test_root", - USE_PYTHON_SRC_ROOT_IN_IMPORTS, "true", - CodegenConstants.PACKAGE_NAME, "test_package"), - "TestModel", - new ExpectedValues("from test_root.test_package.models.test_model import TestModel", - "test_root.test_package.controllers", - platformAgnosticPath("generated-code", "connexion", "test_root", "test_package", "models"), - platformAgnosticPath("generated-code", "connexion", "test_root", "test_package", "controllers"), - platformAgnosticPath("generated-code", "connexion", "test"), - null) - }, - new Object[]{ - "Python src in import with specified package and tests under python src root", - ImmutableMap.of(PYTHON_SRC_ROOT, "test_root", - USE_PYTHON_SRC_ROOT_IN_IMPORTS, "true", - CodegenConstants.PACKAGE_NAME, "test_package", - MOVE_TESTS_UNDER_PYTHON_SRC_ROOT, "true"), - "TestModel", - new ExpectedValues("from test_root.test_package.models.test_model import TestModel", - "test_root.test_package.controllers", - platformAgnosticPath("generated-code", "connexion", "test_root", "test_package", "models"), - platformAgnosticPath("generated-code", "connexion", "test_root", "test_package", "controllers"), - platformAgnosticPath("generated-code", "connexion", "test_root", "test"), - null) - } + new Object[]{ + "Default setup", + Collections.emptyMap(), + "TestModel", + new ExpectedValues("from openapi_server.models.test_model import TestModel", + "openapi_server.controllers", + platformAgnosticPath("generated-code", "connexion", "openapi_server", "models"), + platformAgnosticPath("generated-code", "connexion", "openapi_server", "controllers"), + platformAgnosticPath("generated-code", "connexion", "test"), + null) + }, + new Object[]{ + "Default setup with Python src root", + ImmutableMap.of(PYTHON_SRC_ROOT, "test_root"), + "TestModel", + new ExpectedValues("from openapi_server.models.test_model import TestModel", + "openapi_server.controllers", + platformAgnosticPath("generated-code", "connexion", "test_root", "openapi_server", "models"), + platformAgnosticPath("generated-code", "connexion", "test_root", "openapi_server", "controllers"), + platformAgnosticPath("generated-code", "connexion", "test"), + "test_root") + }, + new Object[]{ + "Python src in import", + ImmutableMap.of(PYTHON_SRC_ROOT, "test_root", USE_PYTHON_SRC_ROOT_IN_IMPORTS, "true"), + "TestModel", + new ExpectedValues("from test_root.openapi_server.models.test_model import TestModel", + "test_root.openapi_server.controllers", + platformAgnosticPath("generated-code", "connexion", "test_root", "openapi_server", "models"), + platformAgnosticPath("generated-code", "connexion", "test_root", "openapi_server", "controllers"), + platformAgnosticPath("generated-code", "connexion", "test"), + null) + }, + new Object[]{ + "Python src in import and tests under python src root", + ImmutableMap.of(PYTHON_SRC_ROOT, "test_root", USE_PYTHON_SRC_ROOT_IN_IMPORTS, "true", + MOVE_TESTS_UNDER_PYTHON_SRC_ROOT, "true"), + "TestModel", + new ExpectedValues("from test_root.openapi_server.models.test_model import TestModel", + "test_root.openapi_server.controllers", + platformAgnosticPath("generated-code", "connexion", "test_root", "openapi_server", "models"), + platformAgnosticPath("generated-code", "connexion", "test_root", "openapi_server", "controllers"), + platformAgnosticPath("generated-code", "connexion", "test_root", "test"), + null) + }, + new Object[]{ + "Python src in import with specified package", + ImmutableMap.of(PYTHON_SRC_ROOT, "test_root", + USE_PYTHON_SRC_ROOT_IN_IMPORTS, "true", + CodegenConstants.PACKAGE_NAME, "test_package"), + "TestModel", + new ExpectedValues("from test_root.test_package.models.test_model import TestModel", + "test_root.test_package.controllers", + platformAgnosticPath("generated-code", "connexion", "test_root", "test_package", "models"), + platformAgnosticPath("generated-code", "connexion", "test_root", "test_package", "controllers"), + platformAgnosticPath("generated-code", "connexion", "test"), + null) + }, + new Object[]{ + "Python src in import with specified package and tests under python src root", + ImmutableMap.of(PYTHON_SRC_ROOT, "test_root", + USE_PYTHON_SRC_ROOT_IN_IMPORTS, "true", + CodegenConstants.PACKAGE_NAME, "test_package", + MOVE_TESTS_UNDER_PYTHON_SRC_ROOT, "true"), + "TestModel", + new ExpectedValues("from test_root.test_package.models.test_model import TestModel", + "test_root.test_package.controllers", + platformAgnosticPath("generated-code", "connexion", "test_root", "test_package", "models"), + platformAgnosticPath("generated-code", "connexion", "test_root", "test_package", "controllers"), + platformAgnosticPath("generated-code", "connexion", "test_root", "test"), + null) + } }; } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientCodegenTest.java index e41800606fb..8444ffc7960 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientCodegenTest.java @@ -17,7 +17,6 @@ package org.openapitools.codegen.python; -import static org.junit.jupiter.api.Assertions.assertNotNull; import com.google.common.collect.Sets; import io.swagger.parser.OpenAPIParser; import io.swagger.v3.oas.models.OpenAPI; @@ -28,18 +27,14 @@ import io.swagger.v3.parser.util.SchemaTypeUtil; import org.openapitools.codegen.*; import org.openapitools.codegen.languages.PythonClientCodegen; import org.openapitools.codegen.languages.features.CXFServerFeatures; - -import static org.junit.jupiter.api.Assertions.assertNull; -import static org.openapitools.codegen.TestUtils.assertFileContains; -import static org.openapitools.codegen.TestUtils.assertFileExists; -import org.openapitools.codegen.TestUtils; import org.testng.Assert; import org.testng.annotations.Test; + import java.io.File; import java.io.IOException; import java.nio.file.Files; -import java.nio.file.Paths; import java.nio.file.Path; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -47,6 +42,11 @@ import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.openapitools.codegen.TestUtils.assertFileContains; +import static org.openapitools.codegen.TestUtils.assertFileExists; + public class PythonClientCodegenTest { @Test @@ -408,7 +408,8 @@ public class PythonClientCodegenTest { Assert.assertEquals(cm.parent, null); Assert.assertEquals(cm.imports.size(), 0); } - @Test(description ="check API example has input param(configuration) when it creates api_client") + + @Test(description = "check API example has input param(configuration) when it creates api_client") public void apiExampleDocTest() throws Exception { final DefaultCodegen codegen = new PythonClientCodegen(); final String outputPath = generateFiles(codegen, "src/test/resources/3_0/generic.yaml"); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonFastAPIServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonFastAPIServerCodegenTest.java index 52a6789ca15..5858e4fbd27 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonFastAPIServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonFastAPIServerCodegenTest.java @@ -1,14 +1,11 @@ package org.openapitools.codegen.python; -import com.google.common.collect.Sets; import io.swagger.parser.OpenAPIParser; import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.Operation; -import io.swagger.v3.oas.models.media.ArraySchema; -import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.parser.core.models.ParseOptions; -import org.openapitools.codegen.*; -import org.openapitools.codegen.languages.PythonClientCodegen; +import org.openapitools.codegen.ClientOptInput; +import org.openapitools.codegen.DefaultCodegen; +import org.openapitools.codegen.DefaultGenerator; import org.openapitools.codegen.languages.PythonFastAPIServerCodegen; import org.openapitools.codegen.languages.features.CXFServerFeatures; import org.testng.Assert; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonFastapiCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonFastapiCodegenTest.java index 458c9415ebe..2eb71268a12 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonFastapiCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonFastapiCodegenTest.java @@ -1,10 +1,10 @@ package org.openapitools.codegen.python; +import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.DefaultGenerator; import org.openapitools.codegen.TestUtils; import org.openapitools.codegen.config.CodegenConfigurator; import org.testng.annotations.Test; -import org.openapitools.codegen.CodegenConstants; import java.io.File; import java.io.IOException; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonFlaskConnexionServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonFlaskConnexionServerCodegenTest.java index 764b6bf3b17..a742c14aa04 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonFlaskConnexionServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonFlaskConnexionServerCodegenTest.java @@ -3,7 +3,9 @@ package org.openapitools.codegen.python; import io.swagger.parser.OpenAPIParser; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.parser.core.models.ParseOptions; -import org.openapitools.codegen.*; +import org.openapitools.codegen.ClientOptInput; +import org.openapitools.codegen.DefaultCodegen; +import org.openapitools.codegen.DefaultGenerator; import org.openapitools.codegen.languages.PythonFlaskConnexionServerCodegen; import org.openapitools.codegen.languages.features.CXFServerFeatures; import org.testng.Assert; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonPydanticV1ClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonPydanticV1ClientCodegenTest.java index 109112b9d99..fe22b8cc929 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonPydanticV1ClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonPydanticV1ClientCodegenTest.java @@ -27,20 +27,21 @@ import io.swagger.v3.parser.util.SchemaTypeUtil; import org.openapitools.codegen.*; import org.openapitools.codegen.languages.PythonPydanticV1ClientCodegen; import org.openapitools.codegen.languages.features.CXFServerFeatures; -import static org.openapitools.codegen.TestUtils.assertFileContains; -import static org.openapitools.codegen.TestUtils.assertFileExists; - import org.testng.Assert; import org.testng.annotations.Test; + import java.io.File; import java.io.IOException; import java.nio.file.Files; -import java.nio.file.Paths; import java.nio.file.Path; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import static org.openapitools.codegen.TestUtils.assertFileContains; +import static org.openapitools.codegen.TestUtils.assertFileExists; + public class PythonPydanticV1ClientCodegenTest { @Test @@ -402,7 +403,8 @@ public class PythonPydanticV1ClientCodegenTest { Assert.assertEquals(cm.parent, null); Assert.assertEquals(cm.imports.size(), 0); } - @Test(description ="check API example has input param(configuration) when it creates api_client") + + @Test(description = "check API example has input param(configuration) when it creates api_client") public void apiExampleDocTest() throws Exception { final DefaultCodegen codegen = new PythonPydanticV1ClientCodegen(); final String outputPath = generateFiles(codegen, "src/test/resources/3_0/generic.yaml"); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/r/RClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/r/RClientCodegenTest.java index 69adc13f1cb..b0011902ab8 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/r/RClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/r/RClientCodegenTest.java @@ -79,14 +79,14 @@ public class RClientCodegenTest { defaultGenerator.opts(clientOptInput); var petsApi = defaultGenerator.generate().stream() - .filter(file -> "pets_api.R".equals(file.getName())).findFirst(); + .filter(file -> "pets_api.R".equals(file.getName())).findFirst(); if (petsApi.isEmpty()) { Assert.fail("`pets_api.R` have not been generated"); } var isIfCondition = Pattern.compile("^\\s*(?!<#)\\s*if.*\\s%in%\\s.*").asPredicate(); var containsNullCheck = Pattern.compile("![(\\s]*is\\.null").asPredicate(); var hit = false; - for (var line: Files.readAllLines(Paths.get(petsApi.get().getAbsolutePath()))) { + for (var line : Files.readAllLines(Paths.get(petsApi.get().getAbsolutePath()))) { if (isIfCondition.test(line)) { hit = true; Assert.assertTrue(containsNullCheck.test(line), "Null check is missing in line: " + line); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/ruby/RubyClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/ruby/RubyClientCodegenTest.java index 07362649ff6..348be771a65 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/ruby/RubyClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/ruby/RubyClientCodegenTest.java @@ -450,7 +450,7 @@ public class RubyClientCodegenTest { Assert.assertNotNull(child); // to test allVars (without parent's properties) - List allVars = + List allVars = child.getAllVars().stream() .map(CodegenProperty::getName) .collect(Collectors.toList()); @@ -467,7 +467,7 @@ public class RubyClientCodegenTest { Assert.assertTrue(allVars.containsAll(allVarsExpected)); // to test vars (without parent's properties) - List vars = + List vars = child.getVars().stream() .map(CodegenProperty::getName) .collect(Collectors.toList()); @@ -479,14 +479,14 @@ public class RubyClientCodegenTest { Assert.assertTrue(vars.containsAll(varsExpected)); // to test requiredVars - List requiredVars = + List requiredVars = child.getRequiredVars().stream() .map(CodegenProperty::getName) .collect(Collectors.toList()); List requiredVarsExpected = Arrays.asList( "duplicated_required", "person_required" - ); + ); Assert.assertEquals(vars.size(), requiredVarsExpected.size()); Assert.assertTrue(requiredVars.containsAll(requiredVarsExpected)); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/AbstractScalaCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/AbstractScalaCodegenTest.java index b320251de3d..7c3b9f0c416 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/AbstractScalaCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/AbstractScalaCodegenTest.java @@ -2,12 +2,7 @@ package org.openapitools.codegen.scala; import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.media.ArraySchema; -import io.swagger.v3.oas.models.media.MapSchema; -import io.swagger.v3.oas.models.media.ObjectSchema; -import io.swagger.v3.oas.models.media.Schema; -import io.swagger.v3.oas.models.media.StringSchema; - +import io.swagger.v3.oas.models.media.*; import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.languages.AbstractScalaCodegen; import org.openapitools.codegen.utils.ModelUtils; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/ScalaGatlingCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/ScalaGatlingCodegenTest.java index 1185aae385e..42a665a7725 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/ScalaGatlingCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/ScalaGatlingCodegenTest.java @@ -1,17 +1,15 @@ package org.openapitools.codegen.scala; import com.google.common.collect.ImmutableList; - -import org.openapitools.codegen.ClientOptInput; -import org.openapitools.codegen.CodegenConstants; -import org.openapitools.codegen.CodegenModel; -import org.openapitools.codegen.CodegenType; -import org.openapitools.codegen.DefaultGenerator; -import org.openapitools.codegen.TestUtils; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.media.DateTimeSchema; +import io.swagger.v3.oas.models.media.IntegerSchema; +import io.swagger.v3.oas.models.media.Schema; +import io.swagger.v3.oas.models.media.StringSchema; +import io.swagger.v3.parser.util.SchemaTypeUtil; +import org.openapitools.codegen.*; import org.openapitools.codegen.config.CodegenConfigurator; import org.openapitools.codegen.languages.ScalaGatlingCodegen; -import static org.testng.Assert.assertEquals; - import org.testng.annotations.Test; import java.io.File; @@ -20,12 +18,7 @@ import java.nio.file.Files; import java.util.List; import java.util.stream.Collectors; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.media.DateTimeSchema; -import io.swagger.v3.oas.models.media.IntegerSchema; -import io.swagger.v3.oas.models.media.Schema; -import io.swagger.v3.oas.models.media.StringSchema; -import io.swagger.v3.parser.util.SchemaTypeUtil; +import static org.testng.Assert.assertEquals; public class ScalaGatlingCodegenTest { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/SttpBooleanPropertyTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/SttpBooleanPropertyTest.java index 010fd99f564..cc4bb2034ee 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/SttpBooleanPropertyTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/SttpBooleanPropertyTest.java @@ -1,8 +1,8 @@ package org.openapitools.codegen.scala; +import org.openapitools.codegen.languages.ScalaSttpClientCodegen; import org.testng.Assert; import org.testng.annotations.Test; -import org.openapitools.codegen.languages.ScalaSttpClientCodegen; import java.util.HashMap; import java.util.Map; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/SttpCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/SttpCodegenTest.java index 01a86c04d4c..31476423eae 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/SttpCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/SttpCodegenTest.java @@ -1,8 +1,9 @@ package org.openapitools.codegen.scala; -import static org.openapitools.codegen.TestUtils.assertFileContains; -import static org.openapitools.codegen.TestUtils.assertFileNotContains; - +import io.swagger.parser.OpenAPIParser; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.media.Schema; +import io.swagger.v3.parser.core.models.ParseOptions; import org.openapitools.codegen.ClientOptInput; import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.DefaultGenerator; @@ -17,10 +18,8 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import io.swagger.parser.OpenAPIParser; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.media.Schema; -import io.swagger.v3.parser.core.models.ParseOptions; +import static org.openapitools.codegen.TestUtils.assertFileContains; +import static org.openapitools.codegen.TestUtils.assertFileNotContains; public class SttpCodegenTest { @@ -37,12 +36,12 @@ public class SttpCodegenTest { @Test public void typeByteArray() { - final Schema schema = new Schema() - .description("Schema with byte string"); - schema.setType("string"); - schema.setFormat("byte"); - String type = codegen.getTypeDeclaration(schema); - Assert.assertEquals(type, "Array[Byte]"); + final Schema schema = new Schema() + .description("Schema with byte string"); + schema.setType("string"); + schema.setFormat("byte"); + String type = codegen.getTypeDeclaration(schema); + Assert.assertEquals(type, "Array[Byte]"); } @Test diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/SttpJsonLibraryPropertyTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/SttpJsonLibraryPropertyTest.java index 23ae32e0511..09bda7e6a38 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/SttpJsonLibraryPropertyTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/SttpJsonLibraryPropertyTest.java @@ -1,8 +1,8 @@ package org.openapitools.codegen.scala; +import org.openapitools.codegen.languages.ScalaSttpClientCodegen; import org.testng.Assert; import org.testng.annotations.Test; -import org.openapitools.codegen.languages.ScalaSttpClientCodegen; import java.util.HashMap; import java.util.Map; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/SttpPackagePropertyTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/SttpPackagePropertyTest.java index 8bbdb684f1c..7b12ef7bf48 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/SttpPackagePropertyTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/SttpPackagePropertyTest.java @@ -1,16 +1,16 @@ package org.openapitools.codegen.scala; -import org.testng.Assert; -import org.testng.annotations.Test; import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.languages.ScalaSttpClientCodegen; +import org.testng.Assert; +import org.testng.annotations.Test; import java.util.HashMap; import java.util.Map; public class SttpPackagePropertyTest { @Test - public void shouldUseDefaultPackageNameIfAdditionalPropertiesAreEmpty(){ + public void shouldUseDefaultPackageNameIfAdditionalPropertiesAreEmpty() { ScalaSttpClientCodegen.PackageProperty property = new ScalaSttpClientCodegen.PackageProperty(); Map additionalProperties = new HashMap<>(); property.updateAdditionalProperties(additionalProperties); @@ -24,7 +24,7 @@ public class SttpPackagePropertyTest { } @Test - public void shouldUseCustomMainPackageNameIfProvided(){ + public void shouldUseCustomMainPackageNameIfProvided() { ScalaSttpClientCodegen.PackageProperty property = new ScalaSttpClientCodegen.PackageProperty(); Map additionalProperties = new HashMap<>(); String customPackageName = "my.custom.pkg.name"; @@ -40,7 +40,7 @@ public class SttpPackagePropertyTest { } @Test - public void shouldAllowToMixCustomPackages(){ + public void shouldAllowToMixCustomPackages() { ScalaSttpClientCodegen.PackageProperty property = new ScalaSttpClientCodegen.PackageProperty(); Map additionalProperties = new HashMap<>(); String customPackageName = "my.custom.pkg.name"; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/SttpStringPropertyTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/SttpStringPropertyTest.java index 22be5feecc8..e6643de4eed 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/SttpStringPropertyTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/scala/SttpStringPropertyTest.java @@ -1,8 +1,8 @@ package org.openapitools.codegen.scala; +import org.openapitools.codegen.languages.ScalaSttpClientCodegen; import org.testng.Assert; import org.testng.annotations.Test; -import org.openapitools.codegen.languages.ScalaSttpClientCodegen; import java.util.HashMap; import java.util.Map; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/serializer/SerializerUtilsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/serializer/SerializerUtilsTest.java index adfcaaed03d..db995ea1fed 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/serializer/SerializerUtilsTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/serializer/SerializerUtilsTest.java @@ -24,46 +24,46 @@ public class SerializerUtilsTest { String content = SerializerUtils.toYamlString(openAPI); String expected = "openapi: 3.0.1\n" + - "info:\n" + - " description: Some description\n" + - " title: Some title\n" + - "externalDocs:\n" + - " description: a-description\n" + - " url: http://abcdef.com\n" + - "servers:\n" + - "- description: first server\n" + - " url: http://www.server1.com\n" + - "- description: second server\n" + - " url: http://www.server2.com\n" + - "security:\n" + - "- some_auth:\n" + - " - write\n" + - " - read\n" + - "tags:\n" + - "- description: some 1 description\n" + - " name: tag1\n" + - "- description: some 2 description\n" + - " name: tag2\n" + - "- description: some 3 description\n" + - " name: tag3\n" + - "paths:\n" + - " /ping/pong:\n" + - " get:\n" + - " description: Some description\n" + - " operationId: pingOp\n" + - " responses:\n" + - " \"200\":\n" + - " description: Ok\n" + - "components:\n" + - " schemas:\n" + - " SomeObject:\n" + - " description: An Obj\n" + - " properties:\n" + - " id:\n" + - " type: string\n" + - " type: object\n" + - "x-custom: value1\n" + - "x-other: value2\n"; + "info:\n" + + " description: Some description\n" + + " title: Some title\n" + + "externalDocs:\n" + + " description: a-description\n" + + " url: http://abcdef.com\n" + + "servers:\n" + + "- description: first server\n" + + " url: http://www.server1.com\n" + + "- description: second server\n" + + " url: http://www.server2.com\n" + + "security:\n" + + "- some_auth:\n" + + " - write\n" + + " - read\n" + + "tags:\n" + + "- description: some 1 description\n" + + " name: tag1\n" + + "- description: some 2 description\n" + + " name: tag2\n" + + "- description: some 3 description\n" + + " name: tag3\n" + + "paths:\n" + + " /ping/pong:\n" + + " get:\n" + + " description: Some description\n" + + " operationId: pingOp\n" + + " responses:\n" + + " \"200\":\n" + + " description: Ok\n" + + "components:\n" + + " schemas:\n" + + " SomeObject:\n" + + " description: An Obj\n" + + " properties:\n" + + " id:\n" + + " type: string\n" + + " type: object\n" + + "x-custom: value1\n" + + "x-other: value2\n"; assertEquals(content, expected); } @@ -142,15 +142,15 @@ public class SerializerUtilsTest { openAPI.setServers(Arrays.asList( new Server().url("http://www.server1.com").description("first server"), new Server().url("http://www.server2.com").description("second server") - )); + )); openAPI.setSecurity(Arrays.asList( new SecurityRequirement().addList("some_auth", Arrays.asList("write", "read")) - )); + )); openAPI.setTags(Arrays.asList( new Tag().name("tag1").description("some 1 description"), new Tag().name("tag2").description("some 2 description"), new Tag().name("tag3").description("some 3 description") - )); + )); openAPI.path("/ping/pong", new PathItem().get(new Operation() .description("Some description") .operationId("pingOp") @@ -219,7 +219,7 @@ public class SerializerUtilsTest { openAPI.setInfo(new Info().title("Some title")); openAPI.setServers(Arrays.asList( new Server().url("http://www.server1.com") - )); + )); openAPI.path("/ping/pong", new PathItem().get(new Operation() .description("Some description") .operationId("pingOp") diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/slim4/PhpSlim4ServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/slim4/PhpSlim4ServerCodegenTest.java index 9786221f083..f4244e1150a 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/slim4/PhpSlim4ServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/slim4/PhpSlim4ServerCodegenTest.java @@ -58,12 +58,12 @@ public class PhpSlim4ServerCodegenTest { @DataProvider(name = "modelFileFolderProvider") public Object[][] modelFileFolderProvider() { - return new Object[][] { - // {modelPackage, invokerPackage, expected} - {"Model", "Invoker", "generated-code/slim4/lib/Model".replace('/', File.separatorChar)}, - {"Petstore", "Petstore", "generated-code/slim4/lib".replace('/', File.separatorChar)}, - {"Package\\SubPackage\\Model", "Package\\SubPackage", "generated-code/slim4/lib/Model".replace('/', File.separatorChar)}, - {"Websupport\\InvoiceValidation\\Model", "Websupport\\InvoiceValidation", "generated-code/slim4/lib/Model".replace('/', File.separatorChar)}, + return new Object[][]{ + // {modelPackage, invokerPackage, expected} + {"Model", "Invoker", "generated-code/slim4/lib/Model".replace('/', File.separatorChar)}, + {"Petstore", "Petstore", "generated-code/slim4/lib".replace('/', File.separatorChar)}, + {"Package\\SubPackage\\Model", "Package\\SubPackage", "generated-code/slim4/lib/Model".replace('/', File.separatorChar)}, + {"Websupport\\InvoiceValidation\\Model", "Websupport\\InvoiceValidation", "generated-code/slim4/lib/Model".replace('/', File.separatorChar)}, }; } @@ -78,7 +78,7 @@ public class PhpSlim4ServerCodegenTest { @DataProvider(name = "apiFileFolderProvider") public Object[][] apiFileFolderProvider() { - return new Object[][] { + return new Object[][]{ // {apiPackage, invokerPackage, expected} {"Api", "Invoker", "generated-code/slim4/lib/Api".replace('/', File.separatorChar)}, {"Petstore", "Petstore", "generated-code/slim4/lib".replace('/', File.separatorChar)}, diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/swift5/Swift5ClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/swift5/Swift5ClientCodegenTest.java index bd4c1eda369..8ce28b3467e 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/swift5/Swift5ClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/swift5/Swift5ClientCodegenTest.java @@ -252,7 +252,7 @@ public class Swift5ClientCodegenTest { List files = generator.opts(clientOptInput).generate(); Assert.assertTrue(files.size() > 0, "No files generated"); } finally { - output.deleteOnExit(); + output.deleteOnExit(); } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/swift5/Swift5ModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/swift5/Swift5ModelTest.java index 0aa479bc38b..bff7f7018df 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/swift5/Swift5ModelTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/swift5/Swift5ModelTest.java @@ -54,7 +54,7 @@ public class Swift5ModelTest { Assert.assertEquals(cm.classname, "Sample"); Assert.assertEquals(cm.description, "a sample model"); Assert.assertEquals(cm.vars.size(), 7); - Assert.assertEquals(cm.getDiscriminatorName(),"test"); + Assert.assertEquals(cm.getDiscriminatorName(), "test"); final CodegenProperty property1 = cm.vars.get(0); Assert.assertEquals(property1.baseName, "id"); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/swift6/Swift6ClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/swift6/Swift6ClientCodegenTest.java index 25b4da37e84..4fcfe0d9728 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/swift6/Swift6ClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/swift6/Swift6ClientCodegenTest.java @@ -353,7 +353,7 @@ public class Swift6ClientCodegenTest { .filter(f -> f.getName().contains("CreateCompletionRequestPrompt")) .findFirst() .get(); - + String content = Files.readString(modelFile.toPath()); Assert.assertTrue(content.contains("case typeString(String)")); Assert.assertTrue(content.contains("case typeArrayOfInt([Int])")); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/HandlebarsEngineAdapterTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/HandlebarsEngineAdapterTest.java index f43b92c313a..4c51da9a6af 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/HandlebarsEngineAdapterTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/HandlebarsEngineAdapterTest.java @@ -61,8 +61,8 @@ public class HandlebarsEngineAdapterTest { TemplatingExecutor executorMock = Mockito.mock(TemplatingExecutor.class); Mockito.when(executorMock.getFullTemplateContents("outerTemplate.hbs")).thenReturn( "Contents: {{#propertyObj}}\n" + - " public getter: {{valueMethodAndBean}}\n" + - " public method: {{valueAndMethod}}\n" + + " public getter: {{valueMethodAndBean}}\n" + + " public method: {{valueAndMethod}}\n" + " private property: {{valueOnly}}{{/propertyObj}}"); Map bundle = Map.of("propertyObj", new PropertyObject()); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/handlebars/StringHelpersTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/handlebars/StringHelpersTest.java index 6faba5c5fc5..69dad9ad7be 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/handlebars/StringHelpersTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/handlebars/StringHelpersTest.java @@ -3,7 +3,6 @@ package org.openapitools.codegen.templating.handlebars; import com.github.jknack.handlebars.Context; import com.github.jknack.handlebars.Handlebars; import com.github.jknack.handlebars.Template; -import com.github.jknack.handlebars.context.FieldValueResolver; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/CamelCaseLambdaTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/CamelCaseLambdaTest.java index 7c01fc0762b..0a4ffd83265 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/CamelCaseLambdaTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/CamelCaseLambdaTest.java @@ -1,19 +1,19 @@ package org.openapitools.codegen.templating.mustache; -import static org.mockito.AdditionalAnswers.returnsFirstArg; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.when; - -import java.util.Arrays; -import java.util.HashSet; -import java.util.Map; - import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.openapitools.codegen.CodegenConfig; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Map; + +import static org.mockito.AdditionalAnswers.returnsFirstArg; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.when; + public class CamelCaseLambdaTest extends LambdaTest { @Mock diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/CopyPasteLambdaTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/CopyPasteLambdaTest.java index 1facb85eaf8..ce8f03f0fca 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/CopyPasteLambdaTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/CopyPasteLambdaTest.java @@ -1,20 +1,14 @@ package org.openapitools.codegen.templating.mustache; -import static org.mockito.AdditionalAnswers.returnsFirstArg; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.when; - -import java.util.Arrays; -import java.util.HashSet; -import java.util.Map; - import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.openapitools.codegen.CodegenConfig; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; import org.openapitools.codegen.templating.mustache.CopyLambda.CopyContent; import org.openapitools.codegen.templating.mustache.CopyLambda.WhiteSpaceStrategy; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import java.util.Map; public class CopyPasteLambdaTest extends LambdaTest { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/IndentedLambdaTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/IndentedLambdaTest.java index 334e270e860..859def8e1cb 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/IndentedLambdaTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/IndentedLambdaTest.java @@ -1,12 +1,11 @@ package org.openapitools.codegen.templating.mustache; -import static org.junit.jupiter.api.Assertions.assertEquals; +import com.samskivert.mustache.Mustache; +import org.testng.annotations.Test; import java.util.Map; -import org.testng.annotations.Test; - -import com.samskivert.mustache.Mustache; +import static org.junit.jupiter.api.Assertions.assertEquals; public class IndentedLambdaTest extends LambdaTest { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/LambdaTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/LambdaTest.java index fbaed952eff..4c3aebb977f 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/LambdaTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/LambdaTest.java @@ -1,19 +1,18 @@ package org.openapitools.codegen.templating.mustache; -import static org.testng.Assert.assertEquals; +import com.samskivert.mustache.Mustache; import java.util.HashMap; import java.util.Map; -import com.samskivert.mustache.Mustache; +import static org.testng.Assert.assertEquals; /** * Simple framework to test Mustache Lambdas. It avoids *
    compiler->compile->execute->assert
    * boilerplate code. - * + *

    * Inspired by Jmustache SharedTests.java - * */ public abstract class LambdaTest { @@ -29,7 +28,7 @@ public abstract class LambdaTest { test(Mustache.compiler(), expected, template, ctx); } - protected void test(Mustache.Compiler compiler, String expected,String template, Map ctx) { + protected void test(Mustache.Compiler compiler, String expected, String template, Map ctx) { assertEquals(execute(compiler, template, ctx), expected); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/LowercaseLambdaTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/LowercaseLambdaTest.java index 87ade0caa70..466cef33abe 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/LowercaseLambdaTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/LowercaseLambdaTest.java @@ -1,19 +1,19 @@ package org.openapitools.codegen.templating.mustache; -import static org.mockito.AdditionalAnswers.returnsFirstArg; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.when; - -import java.util.Arrays; -import java.util.HashSet; -import java.util.Map; - import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.openapitools.codegen.CodegenConfig; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Map; + +import static org.mockito.AdditionalAnswers.returnsFirstArg; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.when; + public class LowercaseLambdaTest extends LambdaTest { @Mock diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/OnChangeLambdaTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/OnChangeLambdaTest.java index 175524c0d28..8baa39fa09b 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/OnChangeLambdaTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/OnChangeLambdaTest.java @@ -1,10 +1,10 @@ package org.openapitools.codegen.templating.mustache; -import java.util.Map; - import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; +import java.util.Map; + public class OnChangeLambdaTest extends LambdaTest { private Map ctx; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/PascalCaseLambdaTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/PascalCaseLambdaTest.java index 8e4d980d76a..a2ae0ca59bc 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/PascalCaseLambdaTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/PascalCaseLambdaTest.java @@ -1,19 +1,19 @@ package org.openapitools.codegen.templating.mustache; -import static org.mockito.AdditionalAnswers.returnsFirstArg; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.when; - -import java.util.Arrays; -import java.util.HashSet; -import java.util.Map; - import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.openapitools.codegen.CodegenConfig; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Map; + +import static org.mockito.AdditionalAnswers.returnsFirstArg; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.when; + public class PascalCaseLambdaTest extends LambdaTest { @Mock diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/SnakecaseLambdaTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/SnakecaseLambdaTest.java index 9dc0d57a506..bfaa3c2063f 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/SnakecaseLambdaTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/SnakecaseLambdaTest.java @@ -15,10 +15,10 @@ */ package org.openapitools.codegen.templating.mustache; -import java.util.Map; - import org.testng.annotations.Test; +import java.util.Map; + public class SnakecaseLambdaTest extends LambdaTest { @Test diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/SplitStringLambdaTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/SplitStringLambdaTest.java index e0b282c26b6..ba993d919ea 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/SplitStringLambdaTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/SplitStringLambdaTest.java @@ -17,15 +17,7 @@ package org.openapitools.codegen.templating.mustache; -import static org.mockito.Mockito.when; -import static org.testng.Assert.assertEquals; - -import java.io.IOException; -import java.io.StringWriter; -import java.util.HashMap; -import java.util.Locale; -import java.util.Map; - +import com.samskivert.mustache.Template.Fragment; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; @@ -33,12 +25,20 @@ import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; -import com.samskivert.mustache.Template.Fragment; +import java.io.IOException; +import java.io.StringWriter; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; + +import static org.mockito.Mockito.when; +import static org.testng.Assert.assertEquals; public class SplitStringLambdaTest { private static final String INPUT_STRING = "1112223334"; private static final Map EXPECTED_OUTPUTS; + static { EXPECTED_OUTPUTS = new HashMap<>(); EXPECTED_OUTPUTS.put(2, diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/SpringHttpStatusLambdaTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/SpringHttpStatusLambdaTest.java index 50824c29bde..620fd475642 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/SpringHttpStatusLambdaTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/SpringHttpStatusLambdaTest.java @@ -11,96 +11,96 @@ import static org.testng.Assert.assertThrows; public class SpringHttpStatusLambdaTest extends LambdaTest { - @DataProvider(name = "springHttpStatusCodes") - public static Object[][] springHttpStatusCodes() { - return new Object[][] { - {"ACCEPTED", "202"}, - {"ALREADY_REPORTED", "208"}, - {"BAD_GATEWAY", "502"}, - {"BAD_REQUEST", "400"}, - {"BANDWIDTH_LIMIT_EXCEEDED", "509"}, - {"CONFLICT", "409"}, - {"CONTINUE", "100"}, - {"CREATED", "201"}, - {"EARLY_HINTS", "103"}, - {"EXPECTATION_FAILED", "417"}, - {"FAILED_DEPENDENCY", "424"}, - {"FORBIDDEN", "403"}, - {"FOUND", "302"}, - {"GATEWAY_TIMEOUT", "504"}, - {"GONE", "410"}, - {"HTTP_VERSION_NOT_SUPPORTED", "505"}, - {"I_AM_A_TEAPOT", "418"}, - {"IM_USED", "226"}, - {"INSUFFICIENT_STORAGE", "507"}, - {"INTERNAL_SERVER_ERROR", "500"}, - {"LENGTH_REQUIRED", "411"}, - {"LOCKED", "423"}, - {"LOOP_DETECTED", "508"}, - {"METHOD_NOT_ALLOWED", "405"}, - {"MOVED_PERMANENTLY", "301"}, - {"MULTI_STATUS", "207"}, - {"MULTIPLE_CHOICES", "300"}, - {"NETWORK_AUTHENTICATION_REQUIRED", "511"}, - {"NO_CONTENT", "204"}, - {"NON_AUTHORITATIVE_INFORMATION", "203"}, - {"NOT_ACCEPTABLE", "406"}, - {"NOT_EXTENDED", "510"}, - {"NOT_FOUND", "404"}, - {"NOT_IMPLEMENTED", "501"}, - {"NOT_MODIFIED", "304"}, - {"OK", "200"}, - {"PARTIAL_CONTENT", "206"}, - {"PAYLOAD_TOO_LARGE", "413"}, - {"PAYMENT_REQUIRED", "402"}, - {"PERMANENT_REDIRECT", "308"}, - {"PRECONDITION_FAILED", "412"}, - {"PRECONDITION_REQUIRED", "428"}, - {"PROCESSING", "102"}, - {"PROXY_AUTHENTICATION_REQUIRED", "407"}, - {"REQUEST_HEADER_FIELDS_TOO_LARGE", "431"}, - {"REQUEST_TIMEOUT", "408"}, - {"REQUESTED_RANGE_NOT_SATISFIABLE", "416"}, - {"RESET_CONTENT", "205"}, - {"SEE_OTHER", "303"}, - {"SERVICE_UNAVAILABLE", "503"}, - {"SWITCHING_PROTOCOLS", "101"}, - {"TEMPORARY_REDIRECT", "307"}, - {"TOO_EARLY", "425"}, - {"TOO_MANY_REQUESTS", "429"}, - {"UNAUTHORIZED", "401"}, - {"UNAVAILABLE_FOR_LEGAL_REASONS", "451"}, - {"UNPROCESSABLE_ENTITY", "422"}, - {"UNSUPPORTED_MEDIA_TYPE", "415"}, - {"UPGRADE_REQUIRED", "426"}, - {"URI_TOO_LONG", "414"}, - {"VARIANT_ALSO_NEGOTIATES", "506"} - }; - } + @DataProvider(name = "springHttpStatusCodes") + public static Object[][] springHttpStatusCodes() { + return new Object[][]{ + {"ACCEPTED", "202"}, + {"ALREADY_REPORTED", "208"}, + {"BAD_GATEWAY", "502"}, + {"BAD_REQUEST", "400"}, + {"BANDWIDTH_LIMIT_EXCEEDED", "509"}, + {"CONFLICT", "409"}, + {"CONTINUE", "100"}, + {"CREATED", "201"}, + {"EARLY_HINTS", "103"}, + {"EXPECTATION_FAILED", "417"}, + {"FAILED_DEPENDENCY", "424"}, + {"FORBIDDEN", "403"}, + {"FOUND", "302"}, + {"GATEWAY_TIMEOUT", "504"}, + {"GONE", "410"}, + {"HTTP_VERSION_NOT_SUPPORTED", "505"}, + {"I_AM_A_TEAPOT", "418"}, + {"IM_USED", "226"}, + {"INSUFFICIENT_STORAGE", "507"}, + {"INTERNAL_SERVER_ERROR", "500"}, + {"LENGTH_REQUIRED", "411"}, + {"LOCKED", "423"}, + {"LOOP_DETECTED", "508"}, + {"METHOD_NOT_ALLOWED", "405"}, + {"MOVED_PERMANENTLY", "301"}, + {"MULTI_STATUS", "207"}, + {"MULTIPLE_CHOICES", "300"}, + {"NETWORK_AUTHENTICATION_REQUIRED", "511"}, + {"NO_CONTENT", "204"}, + {"NON_AUTHORITATIVE_INFORMATION", "203"}, + {"NOT_ACCEPTABLE", "406"}, + {"NOT_EXTENDED", "510"}, + {"NOT_FOUND", "404"}, + {"NOT_IMPLEMENTED", "501"}, + {"NOT_MODIFIED", "304"}, + {"OK", "200"}, + {"PARTIAL_CONTENT", "206"}, + {"PAYLOAD_TOO_LARGE", "413"}, + {"PAYMENT_REQUIRED", "402"}, + {"PERMANENT_REDIRECT", "308"}, + {"PRECONDITION_FAILED", "412"}, + {"PRECONDITION_REQUIRED", "428"}, + {"PROCESSING", "102"}, + {"PROXY_AUTHENTICATION_REQUIRED", "407"}, + {"REQUEST_HEADER_FIELDS_TOO_LARGE", "431"}, + {"REQUEST_TIMEOUT", "408"}, + {"REQUESTED_RANGE_NOT_SATISFIABLE", "416"}, + {"RESET_CONTENT", "205"}, + {"SEE_OTHER", "303"}, + {"SERVICE_UNAVAILABLE", "503"}, + {"SWITCHING_PROTOCOLS", "101"}, + {"TEMPORARY_REDIRECT", "307"}, + {"TOO_EARLY", "425"}, + {"TOO_MANY_REQUESTS", "429"}, + {"UNAUTHORIZED", "401"}, + {"UNAVAILABLE_FOR_LEGAL_REASONS", "451"}, + {"UNPROCESSABLE_ENTITY", "422"}, + {"UNSUPPORTED_MEDIA_TYPE", "415"}, + {"UPGRADE_REQUIRED", "426"}, + {"URI_TOO_LONG", "414"}, + {"VARIANT_ALSO_NEGOTIATES", "506"} + }; + } - @Test(dataProvider = "springHttpStatusCodes") - public void executeShouldConvertValues(String expectedHttpStatus, String httpCode) { - Map ctx = context("springHttpStatus", new SpringHttpStatusLambda()); + @Test(dataProvider = "springHttpStatusCodes") + public void executeShouldConvertValues(String expectedHttpStatus, String httpCode) { + Map ctx = context("springHttpStatus", new SpringHttpStatusLambda()); - test( - HTTP_STATUS_PREFIX + expectedHttpStatus, - String.format(Locale.ROOT, "{{#springHttpStatus}}%s{{/springHttpStatus}}", httpCode), - ctx); - } + test( + HTTP_STATUS_PREFIX + expectedHttpStatus, + String.format(Locale.ROOT, "{{#springHttpStatus}}%s{{/springHttpStatus}}", httpCode), + ctx); + } - @Test - public void executeShouldConvertEmptyHttpStatusTo200Ok() { - Map ctx = context("springHttpStatus", new SpringHttpStatusLambda()); + @Test + public void executeShouldConvertEmptyHttpStatusTo200Ok() { + Map ctx = context("springHttpStatus", new SpringHttpStatusLambda()); - test(HTTP_STATUS_PREFIX + "OK", "{{#springHttpStatus}}{{/springHttpStatus}}", ctx); - } + test(HTTP_STATUS_PREFIX + "OK", "{{#springHttpStatus}}{{/springHttpStatus}}", ctx); + } - @Test - public void executeShouldConvertToHttpStatusNotImplementedAnyOtherStatus() { - Map ctx = context("springHttpStatus", new SpringHttpStatusLambda()); + @Test + public void executeShouldConvertToHttpStatusNotImplementedAnyOtherStatus() { + Map ctx = context("springHttpStatus", new SpringHttpStatusLambda()); - assertThrows( - IllegalArgumentException.class, - () -> execute("{{#springHttpStatus}}305{{/springHttpStatus}}", ctx)); - } + assertThrows( + IllegalArgumentException.class, + () -> execute("{{#springHttpStatus}}305{{/springHttpStatus}}", ctx)); + } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/TitlecaseLambdaTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/TitlecaseLambdaTest.java index d4c94d47026..9bca244bf88 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/TitlecaseLambdaTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/TitlecaseLambdaTest.java @@ -1,9 +1,9 @@ package org.openapitools.codegen.templating.mustache; -import java.util.Map; - import org.testng.annotations.Test; +import java.util.Map; + public class TitlecaseLambdaTest extends LambdaTest { @Test diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/TrimWhitespaceLambdaTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/TrimWhitespaceLambdaTest.java index 5d765506928..799daebb434 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/TrimWhitespaceLambdaTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/TrimWhitespaceLambdaTest.java @@ -17,12 +17,7 @@ package org.openapitools.codegen.templating.mustache; -import static org.mockito.Mockito.when; -import static org.testng.Assert.assertEquals; - -import java.io.IOException; -import java.io.StringWriter; - +import com.samskivert.mustache.Template.Fragment; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; @@ -30,7 +25,11 @@ import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; -import com.samskivert.mustache.Template.Fragment; +import java.io.IOException; +import java.io.StringWriter; + +import static org.mockito.Mockito.when; +import static org.testng.Assert.assertEquals; public class TrimWhitespaceLambdaTest { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/UncamelizeLambdaTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/UncamelizeLambdaTest.java index 7d590e319b0..741aaccb5d6 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/UncamelizeLambdaTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/UncamelizeLambdaTest.java @@ -1,4 +1,5 @@ package org.openapitools.codegen.templating.mustache; + import org.mockito.MockitoAnnotations; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/UppercaseLambdaTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/UppercaseLambdaTest.java index ebd12454ce6..b9e9fcbb9bc 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/UppercaseLambdaTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/templating/mustache/UppercaseLambdaTest.java @@ -1,9 +1,9 @@ package org.openapitools.codegen.templating.mustache; -import java.util.Map; - import org.testng.annotations.Test; +import java.util.Map; + public class UppercaseLambdaTest extends LambdaTest { @Test diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/testutils/AssertFile.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/testutils/AssertFile.java index d46798cd7f5..80d6928a9f8 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/testutils/AssertFile.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/testutils/AssertFile.java @@ -71,7 +71,7 @@ public class AssertFile { Path actualDir = absoluteActual.resolve(relativeExpectedDir); if (!Files.exists(actualDir)) { - fail(String.format(Locale.ROOT,"Directory '%s' is missing.", actualDir)); + fail(String.format(Locale.ROOT, "Directory '%s' is missing.", actualDir)); } String[] expected = expectedDir.toFile().list(); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/testutils/ConfigAssert.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/testutils/ConfigAssert.java index f692876aa54..6d2ef679cae 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/testutils/ConfigAssert.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/testutils/ConfigAssert.java @@ -3,7 +3,6 @@ package org.openapitools.codegen.testutils; import com.samskivert.mustache.MustacheEvaluator; import org.junit.jupiter.api.Assertions; - import java.util.Map; import java.util.function.Supplier; @@ -11,7 +10,7 @@ import java.util.function.Supplier; * Utility class to assert variable values in mustache. * * @See {@link org.openapitools.codegen.DefaultCodegen#useCodegenAsMustacheParentContext() useCodegenAsMustacheParentContext} - * + *

    * The values come from additionalProperties or from codegen if useCodegenAsMustacheParentContext is called */ public class ConfigAssert { @@ -35,9 +34,8 @@ public class ConfigAssert { /** * Validate that property is correctly initialized for mustache. * - * @param name mustache variable + * @param name mustache variable * @param expectedValue value to match. - * * @throws AssertionError in case of mismatch */ public void assertValue(String name, Object expectedValue) { @@ -48,10 +46,9 @@ public class ConfigAssert { /** * Validate that property is correctly initialized for mustache and in java. * - * @param name mustache variable - * @param getter value provider in java code (typically in DefaultCodegen or children of DefaultCodegen) + * @param name mustache variable + * @param getter value provider in java code (typically in DefaultCodegen or children of DefaultCodegen) * @param expectedValue value to match. - * * @throws AssertionError in case of mismatch */ public void assertValue(String name, Supplier getter, Object expectedValue) { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/testutils/IntegrationTestPathsConfig.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/testutils/IntegrationTestPathsConfig.java index 404d36e086e..227e83357fd 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/testutils/IntegrationTestPathsConfig.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/testutils/IntegrationTestPathsConfig.java @@ -22,7 +22,8 @@ import lombok.Getter; import java.nio.file.Path; import java.nio.file.Paths; -@Getter public class IntegrationTestPathsConfig { +@Getter +public class IntegrationTestPathsConfig { private static final Path INTEGRATION_TEST_PATH = Paths.get("target/test-classes/integrationtests").toAbsolutePath(); private final Path outputPath; private final Path specPath; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/SharedTypeScriptTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/SharedTypeScriptTest.java index 26feb5589d0..c21f673d7a6 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/SharedTypeScriptTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/SharedTypeScriptTest.java @@ -7,7 +7,6 @@ import org.openapitools.codegen.Generator; import org.openapitools.codegen.config.CodegenConfigurator; import org.openapitools.codegen.languages.TypeScriptAxiosClientCodegen; import org.testng.Assert; -import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; import java.io.File; @@ -15,21 +14,21 @@ import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; +import java.util.Arrays; +import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.HashMap; -import java.util.Arrays; -import static org.openapitools.codegen.typescript.TypeScriptGroups.*; +import static org.openapitools.codegen.typescript.TypeScriptGroups.TYPESCRIPT; @Test(groups = {TYPESCRIPT}) public class SharedTypeScriptTest { - + @Test public void typesInImportsAreSplitTest() throws IOException { Path output = Files.createTempDirectory("test"); output.toFile().deleteOnExit(); - + CodegenConfigurator config = new CodegenConfigurator() .setInputSpec("src/test/resources/split-import.json") @@ -43,8 +42,8 @@ public class SharedTypeScriptTest { getGenerator(config).generate(); final String apiFileContent = Files.readString(output.resolve("api/default-api.ts"), StandardCharsets.UTF_8); Assert.assertFalse(apiFileContent.contains("import { GetCustomer200Response | PersonWrapper }")); - Assert.assertEquals(StringUtils.countMatches(apiFileContent,"import type { PersonWrapper }"),1); - Assert.assertEquals(StringUtils.countMatches(apiFileContent,"import type { GetCustomer200Response }"),1); + Assert.assertEquals(StringUtils.countMatches(apiFileContent, "import type { PersonWrapper }"), 1); + Assert.assertEquals(StringUtils.countMatches(apiFileContent, "import type { GetCustomer200Response }"), 1); config.setGeneratorName("typescript-node"); checkAPIFile(getGenerator(config).generate(), "defaultApi.ts"); @@ -58,18 +57,18 @@ public class SharedTypeScriptTest { } private void checkAPIFile(List files, String apiFileName) throws IOException { - File apiFile = files.stream().filter(file->file.getName().contains(apiFileName)).findFirst().get(); + File apiFile = files.stream().filter(file -> file.getName().contains(apiFileName)).findFirst().get(); String apiFileContent = FileUtils.readFileToString(apiFile, StandardCharsets.UTF_8); Assert.assertFalse(apiFileContent.contains("import { GetCustomer200Response | PersonWrapper }")); - Assert.assertEquals(StringUtils.countMatches(apiFileContent,"import { PersonWrapper }"),1); - Assert.assertEquals(StringUtils.countMatches(apiFileContent,"import { GetCustomer200Response }"),1); + Assert.assertEquals(StringUtils.countMatches(apiFileContent, "import { PersonWrapper }"), 1); + Assert.assertEquals(StringUtils.countMatches(apiFileContent, "import { GetCustomer200Response }"), 1); } @Test public void oldImportsStillPresentTest() throws IOException { Path output = Files.createTempDirectory("test"); output.toFile().deleteOnExit(); - + CodegenConfigurator config = new CodegenConfigurator() .setInputSpec("petstore.json") @@ -81,7 +80,7 @@ public class SharedTypeScriptTest { config.setGeneratorName("typescript-angular"); final List files = getGenerator(config).generate(); - File pets = files.stream().filter(file->file.getName().contains("pet.ts")).findFirst().get(); + File pets = files.stream().filter(file -> file.getName().contains("pet.ts")).findFirst().get(); String apiFileContent = FileUtils.readFileToString(pets, StandardCharsets.UTF_8); Assert.assertTrue(apiFileContent.contains("import { Category }")); Assert.assertTrue(apiFileContent.contains("import { Tag }")); @@ -98,10 +97,10 @@ public class SharedTypeScriptTest { TypeScriptAxiosClientCodegen codegen = new TypeScriptAxiosClientCodegen(); Map types = new HashMap() {{ - put("Schema & AnotherSchema", new String[]{ "AnotherSchema", "Schema" }); - put("Schema | AnotherSchema", new String[]{ "AnotherSchema", "Schema" }); - put("Schema & object", new String[]{ "Schema" }); - put("Schema | object", new String[]{ "Schema" }); + put("Schema & AnotherSchema", new String[]{"AnotherSchema", "Schema"}); + put("Schema | AnotherSchema", new String[]{"AnotherSchema", "Schema"}); + put("Schema & object", new String[]{"Schema"}); + put("Schema | object", new String[]{"Schema"}); }}; for (Map.Entry entry : types.entrySet()) { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/TypeScriptClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/TypeScriptClientCodegenTest.java index d80a4de9e9e..564aabad2cd 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/TypeScriptClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/TypeScriptClientCodegenTest.java @@ -34,7 +34,7 @@ public class TypeScriptClientCodegenTest { // Cf. issue #4968: Array of Alias of Array Schema parentSchema = new ArraySchema().items( - new Schema().$ref("#/components/schemas/Child") + new Schema().$ref("#/components/schemas/Child") ); ModelUtils.setGenerateAliasAsModel(false); @@ -70,12 +70,12 @@ public class TypeScriptClientCodegenTest { @Test public void testArrayWithUniqueItems() { final Schema uniqueArray = new ArraySchema() - .items(new StringSchema()) - .uniqueItems(true); + .items(new StringSchema()) + .uniqueItems(true); final Schema model = new ObjectSchema() - .description("an object has an array with uniqueItems") - .addProperty("uniqueArray", uniqueArray) - .addRequiredItem("uniqueArray"); + .description("an object has an array with uniqueItems") + .addProperty("uniqueArray", uniqueArray) + .addRequiredItem("uniqueArray"); final DefaultCodegen codegen = new TypeScriptClientCodegen(); final OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("sample", model); @@ -92,7 +92,7 @@ public class TypeScriptClientCodegenTest { inner.setAdditionalProperties(true); final Schema root = new ObjectSchema() - .addProperty("inner", inner); + .addProperty("inner", inner); final DefaultCodegen codegen = new TypeScriptClientCodegen(); final OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("sample", root); @@ -165,8 +165,8 @@ public class TypeScriptClientCodegenTest { final DefaultCodegen codegen = new TypeScriptClientCodegen(); codegen.setOpenAPI(openAPI); final ArraySchema schema = (ArraySchema) openAPI.getComponents().getSchemas().get("ArrayWithNullableItemsModel") - .getProperties() - .get("foo"); + .getProperties() + .get("foo"); Assert.assertEquals(codegen.getTypeDeclaration(schema), "Array"); } @@ -190,9 +190,9 @@ public class TypeScriptClientCodegenTest { output.deleteOnExit(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("typescript") - .setInputSpec("src/test/resources/bugs/typescript_enum_var_name_all_sanitized.yaml") - .setOutputDir(output.getAbsolutePath().replace("\\", "/")); + .setGeneratorName("typescript") + .setInputSpec("src/test/resources/bugs/typescript_enum_var_name_all_sanitized.yaml") + .setOutputDir(output.getAbsolutePath().replace("\\", "/")); final ClientOptInput clientOptInput = configurator.toClientOptInput(); final DefaultGenerator generator = new DefaultGenerator(); @@ -200,14 +200,14 @@ public class TypeScriptClientCodegenTest { files.forEach(File::deleteOnExit); TestUtils.assertFileContains( - Paths.get(output + "/models/Greeting.ts"), - "export enum Greeting {\n" + - " _こんにちは = 'こんにちは',\n" + - " _你好 = '你好',\n" + - " _안녕하세요 = '안녕하세요',\n" + - " STRING = '!@#%',\n" + - " STRING2 = '^&*\uD83C\uDF63'", - "}" + Paths.get(output + "/models/Greeting.ts"), + "export enum Greeting {\n" + + " _こんにちは = 'こんにちは',\n" + + " _你好 = '你好',\n" + + " _안녕하세요 = '안녕하세요',\n" + + " STRING = '!@#%',\n" + + " STRING2 = '^&*\uD83C\uDF63'", + "}" ); } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/TypeScriptClientModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/TypeScriptClientModelTest.java index e227c2e07af..38dcddd2c75 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/TypeScriptClientModelTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/TypeScriptClientModelTest.java @@ -36,17 +36,17 @@ public class TypeScriptClientModelTest { @Test(description = "convert an any of with array oneof model") public void objectPropertyAnyOfWithArrayOneOfModelTest() { final Schema schema = new ObjectSchema().addProperty("value", - new ComposedSchema().addAnyOfItem(new StringSchema()).addAnyOfItem(new ArraySchema() - .items(new ComposedSchema() - .addOneOfItem(new StringSchema()) - .addOneOfItem(new IntegerSchema().format("int64"))))) + new ComposedSchema().addAnyOfItem(new StringSchema()).addAnyOfItem(new ArraySchema() + .items(new ComposedSchema() + .addOneOfItem(new StringSchema()) + .addOneOfItem(new IntegerSchema().format("int64"))))) .description("an any of with array oneof model"); final DefaultCodegen codegen = new TypeScriptClientCodegen(); OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("sample", schema); codegen.setOpenAPI(openAPI); final CodegenModel cm = codegen.fromModel("sample", schema); - String s = codegen.getSchemaType((Schema)schema.getProperties().get("value")); + String s = codegen.getSchemaType((Schema) schema.getProperties().get("value")); Assert.assertEquals(cm.name, "sample"); Assert.assertEquals(cm.classname, "Sample"); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/TypeScriptGroups.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/TypeScriptGroups.java index fedc1e5f942..e6ceeb26edf 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/TypeScriptGroups.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/TypeScriptGroups.java @@ -4,11 +4,11 @@ package org.openapitools.codegen.typescript; * TestNG supports grouping using Test Groups. *
    *

    - * Using groups also enables running only a subset of tests, e.g. only for the generator you are currently working on. + * Using groups also enables running only a subset of tests, e.g. only for the generator you are currently working on. *

    *

    - * This speeds up development a lot, especially if run from an IDE with support for TestNG groups - * (e.g. IntelliJ IDEA and derivatives, VS Code, and lots of others) + * This speeds up development a lot, especially if run from an IDE with support for TestNG groups + * (e.g. IntelliJ IDEA and derivatives, VS Code, and lots of others) *

    *
    *

    Suggested groups/group-names are:

    diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/axios/TypeScriptAxiosClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/axios/TypeScriptAxiosClientCodegenTest.java index 6e513a73b9e..185366b9b0d 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/axios/TypeScriptAxiosClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/axios/TypeScriptAxiosClientCodegenTest.java @@ -6,8 +6,8 @@ import org.openapitools.codegen.languages.TypeScriptAxiosClientCodegen; import org.openapitools.codegen.typescript.TypeScriptGroups; import org.testng.annotations.Test; -import static org.testng.Assert.assertEquals; import static org.assertj.core.api.Assertions.assertThat; +import static org.testng.Assert.assertEquals; @Test(groups = {TypeScriptGroups.TYPESCRIPT, TypeScriptGroups.TYPESCRIPT_AXIOS}) public class TypeScriptAxiosClientCodegenTest { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/fetch/TypeScriptFetchClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/fetch/TypeScriptFetchClientCodegenTest.java index 739d7277c81..0145f4890f4 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/fetch/TypeScriptFetchClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/fetch/TypeScriptFetchClientCodegenTest.java @@ -24,6 +24,7 @@ import java.nio.file.Paths; import java.util.HashMap; import java.util.List; import java.util.Map; + import static org.assertj.core.api.Assertions.assertThat; @Test(groups = {TypeScriptGroups.TYPESCRIPT, TypeScriptGroups.TYPESCRIPT_FETCH}) @@ -170,7 +171,7 @@ public class TypeScriptFetchClientCodegenTest { // Cf. issue #4968: Array of Alias of Array Schema parentSchema = new ArraySchema().items( - new Schema().$ref("#/components/schemas/Child") + new Schema().$ref("#/components/schemas/Child") ); ModelUtils.setGenerateAliasAsModel(false); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/typescriptangular/TypeScriptAngularClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/typescriptangular/TypeScriptAngularClientCodegenTest.java index f2ab55f490a..2cc54412479 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/typescriptangular/TypeScriptAngularClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/typescriptangular/TypeScriptAngularClientCodegenTest.java @@ -402,9 +402,9 @@ public class TypeScriptAngularClientCodegenTest { // WHEN final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("typescript-angular") - .setInputSpec(specPath) - .setOutputDir(output.getAbsolutePath().replace("\\", "/")); + .setGeneratorName("typescript-angular") + .setInputSpec(specPath) + .setOutputDir(output.getAbsolutePath().replace("\\", "/")); final ClientOptInput clientOptInput = configurator.toClientOptInput(); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/typescriptangular/TypeScriptAngularModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/typescriptangular/TypeScriptAngularModelTest.java index 29d84f2539a..68bc15bcc6f 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/typescriptangular/TypeScriptAngularModelTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/typescriptangular/TypeScriptAngularModelTest.java @@ -294,17 +294,17 @@ public class TypeScriptAngularModelTest { @Test(description = "convert an any of with array oneof model") public void objectPropertyAnyOfWithArrayOneOfModelTest() { final Schema schema = new ObjectSchema().addProperty("value", - new ComposedSchema().addAnyOfItem(new StringSchema()).addAnyOfItem(new ArraySchema() - .items(new ComposedSchema() - .addOneOfItem(new StringSchema()) - .addOneOfItem(new IntegerSchema().format("int64"))))) + new ComposedSchema().addAnyOfItem(new StringSchema()).addAnyOfItem(new ArraySchema() + .items(new ComposedSchema() + .addOneOfItem(new StringSchema()) + .addOneOfItem(new IntegerSchema().format("int64"))))) .description("an any of with array oneof model"); final DefaultCodegen codegen = new TypeScriptAngularClientCodegen(); OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("sample", schema); codegen.setOpenAPI(openAPI); final CodegenModel cm = codegen.fromModel("sample", schema); - String s = codegen.getSchemaType((Schema)schema.getProperties().get("value")); + String s = codegen.getSchemaType((Schema) schema.getProperties().get("value")); Assert.assertEquals(cm.name, "sample"); @@ -383,9 +383,9 @@ public class TypeScriptAngularModelTest { // Originally parent model "FooResponse" with inline model called "_links". The InlineModelResolver resolves // that to "FooResponse__links" (double underscore) final Schema schema = new Schema() - .description("an inline model with name previously prefixed with underscore") - .addRequiredItem("self") - .addProperty("self", new StringSchema()); + .description("an inline model with name previously prefixed with underscore") + .addRequiredItem("self") + .addProperty("self", new StringSchema()); TypeScriptAngularClientCodegen codegen = new TypeScriptAngularClientCodegen(); codegen.additionalProperties().put(TypeScriptAngularClientCodegen.FILE_NAMING, "kebab-case"); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/typescriptnode/TypeScriptNodeClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/typescriptnode/TypeScriptNodeClientCodegenTest.java index 38a0bcf2cb9..13943becb6e 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/typescriptnode/TypeScriptNodeClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/typescriptnode/TypeScriptNodeClientCodegenTest.java @@ -178,27 +178,27 @@ public class TypeScriptNodeClientCodegenTest { public void postProcessOperationsWithModelsTestWithModelNameSuffix() { final OpenAPI openAPI = TestUtils.createOpenAPI(); final Schema rootSchema = new ObjectSchema() - .addProperty("child", new Schema().$ref("Child")); + .addProperty("child", new Schema().$ref("Child")); final Schema childSchema = new ObjectSchema() - .addProperty("key", new StringSchema()); + .addProperty("key", new StringSchema()); openAPI.getComponents() - .addSchemas("Root", rootSchema) - .addSchemas("Child", childSchema); + .addSchemas("Root", rootSchema) + .addSchemas("Child", childSchema); final TypeScriptNodeClientCodegen codegen = new TypeScriptNodeClientCodegen(); codegen.setOpenAPI(openAPI); codegen.setModelNameSuffix("Suffix"); final HashMap allModels = createParameterForPostProcessAllModels( - codegen.fromModel("Root", rootSchema), - codegen.fromModel("Child", childSchema) + codegen.fromModel("Root", rootSchema), + codegen.fromModel("Child", childSchema) ); final Map results = codegen.postProcessAllModels(allModels); final List rootModelMaps = results.get("Root") - .getModels(); + .getModels(); final List> tsImports = (List>) rootModelMaps.get(0) - .get("tsImports"); + .get("tsImports"); Assert.assertEquals(tsImports.size(), 1); Assert.assertEquals(tsImports.get(0).get("filename"), "./childSuffix"); @@ -208,27 +208,27 @@ public class TypeScriptNodeClientCodegenTest { public void postProcessOperationsWithModelsTestWithModelNamePrefix() { final OpenAPI openAPI = TestUtils.createOpenAPI(); final Schema rootSchema = new ObjectSchema() - .addProperty("child", new Schema().$ref("Child")); + .addProperty("child", new Schema().$ref("Child")); final Schema childSchema = new ObjectSchema() - .addProperty("key", new StringSchema()); + .addProperty("key", new StringSchema()); openAPI.getComponents() - .addSchemas("Root", rootSchema) - .addSchemas("Child", childSchema); + .addSchemas("Root", rootSchema) + .addSchemas("Child", childSchema); final TypeScriptNodeClientCodegen codegen = new TypeScriptNodeClientCodegen(); codegen.setOpenAPI(openAPI); codegen.setModelNamePrefix("Prefix"); final HashMap allModels = createParameterForPostProcessAllModels( - codegen.fromModel("Root", rootSchema), - codegen.fromModel("Child", childSchema) + codegen.fromModel("Root", rootSchema), + codegen.fromModel("Child", childSchema) ); final Map results = codegen.postProcessAllModels(allModels); final List rootModelMaps = results.get("Root") - .getModels(); + .getModels(); final List> tsImports = (List>) rootModelMaps.get(0) - .get("tsImports"); + .get("tsImports"); Assert.assertEquals(tsImports.size(), 1); Assert.assertEquals(tsImports.get(0).get("filename"), "./prefixChild"); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/ModelUtilsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/ModelUtilsTest.java index 3405a300362..0a65c8f0879 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/ModelUtilsTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/ModelUtilsTest.java @@ -22,13 +22,15 @@ import io.swagger.v3.oas.models.media.*; import io.swagger.v3.oas.models.parameters.Parameter; import io.swagger.v3.oas.models.parameters.RequestBody; import io.swagger.v3.oas.models.responses.ApiResponse; -import org.openapitools.codegen.OpenAPINormalizer; import org.openapitools.codegen.TestUtils; import org.testng.Assert; import org.testng.annotations.Test; import java.math.BigDecimal; -import java.util.*; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/OnceLoggerTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/OnceLoggerTest.java index 40920f1fd54..356616e0112 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/OnceLoggerTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/OnceLoggerTest.java @@ -20,12 +20,12 @@ import static org.testng.Assert.*; @SuppressWarnings({"SameParameterValue", "UnstableApiUsage"}) public class OnceLoggerTest { private Logger mockLogger = Mockito.mock(Logger.class); - + // TODO if we find a replacement for FakeTicker, we can drop the guava-testlib dependency altogether private FakeTicker ticker = new FakeTicker(); @BeforeTest - public void setUp(){ + public void setUp() { OnceLogger.caffeineCache(ticker::read, 1000); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/OneOfImplementorAdditionalDataTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/OneOfImplementorAdditionalDataTest.java index c64135ced61..3132866efbf 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/OneOfImplementorAdditionalDataTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/OneOfImplementorAdditionalDataTest.java @@ -34,7 +34,9 @@ public class OneOfImplementorAdditionalDataTest { oneOfModel.interfaceModels.add(interfaceModel); List> interfaceModelImports = new ArrayList<>(); - interfaceModelImports.add(new HashMap(){{ put("import", "foo"); }}); + interfaceModelImports.add(new HashMap() {{ + put("import", "foo"); + }}); o.addFromInterfaceModel(oneOfModel, interfaceModelImports); @@ -51,8 +53,13 @@ public class OneOfImplementorAdditionalDataTest { o.addToImplementor(cc, implModel, implModelImports, false); // make sure all the additions were done correctly - Assert.assertEquals(implModel.getVendorExtensions().get("x-implements"), new ArrayList(){{add(oneOfModel.classname);}}); + Assert.assertEquals(implModel.getVendorExtensions().get("x-implements"), new ArrayList() {{ + add(oneOfModel.classname); + }}); Assert.assertEquals(implModelImports, interfaceModelImports); - Assert.assertEquals(implModel.vars, new ArrayList(){{add(cp3); add(cp1);}}); + Assert.assertEquals(implModel.vars, new ArrayList() {{ + add(cp3); + add(cp1); + }}); } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/URLPathUtilsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/URLPathUtilsTest.java index 4242b346407..b2bab48e1a4 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/URLPathUtilsTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/URLPathUtilsTest.java @@ -62,16 +62,16 @@ public class URLPathUtilsTest { @Test public void testSanitizeUrl() { String[][] testData = { - { "https://abc1.xyz:9999/some/path", "https://abc1.xyz:9999/some/path" }, - { "HTTPS://abc2.xyz:9999/some/path", "https://abc2.xyz:9999/some/path" }, - { "http://abc3.xyz:9999/some/path", "http://abc3.xyz:9999/some/path" }, - { "HTTP://abc4.xyz:9999/some/path", "http://abc4.xyz:9999/some/path" }, - { "//abc5.xyz:9999/some/path", "http://abc5.xyz:9999/some/path" }, - { "abc6.xyz:9999/some/path", "http://abc6.xyz:9999/some/path" }, - { "localhost:9000/api", "http://localhost:9000/api" }, - { "/some/path", "http://localhost/some/path" } }; + {"https://abc1.xyz:9999/some/path", "https://abc1.xyz:9999/some/path"}, + {"HTTPS://abc2.xyz:9999/some/path", "https://abc2.xyz:9999/some/path"}, + {"http://abc3.xyz:9999/some/path", "http://abc3.xyz:9999/some/path"}, + {"HTTP://abc4.xyz:9999/some/path", "http://abc4.xyz:9999/some/path"}, + {"//abc5.xyz:9999/some/path", "http://abc5.xyz:9999/some/path"}, + {"abc6.xyz:9999/some/path", "http://abc6.xyz:9999/some/path"}, + {"localhost:9000/api", "http://localhost:9000/api"}, + {"/some/path", "http://localhost/some/path"}}; - for (String[] t:testData) { + for (String[] t : testData) { OpenAPI openAPI = new OpenAPI(); openAPI.addServersItem(new Server().url(t[0])); @@ -88,10 +88,10 @@ public class URLPathUtilsTest { Assert.assertEquals(URLPathUtils.getServerURL(s2, null).toString(), "http://v1.test.me/v1"); Server s3 = new Server().url("http://localhost:{port}/{version}").variables( - new ServerVariables().addServerVariable("version", new ServerVariable()._default("v4")) + new ServerVariables().addServerVariable("version", new ServerVariable()._default("v4")) .addServerVariable("port", new ServerVariable()._default("8080")) .addServerVariable("other", new ServerVariable()._default("something")) - ); + ); Assert.assertEquals(URLPathUtils.getServerURL(s3, null).toString(), "http://localhost:8080/v4"); Server s4 = new Server().url("http://91.161.147.64/{targetEnv}").variables(new ServerVariables().addServerVariable("targetEnv", new ServerVariable().description("target environment")._enum(Arrays.asList("dev", "int", "prd"))._default("prd"))); @@ -110,18 +110,18 @@ public class URLPathUtilsTest { Assert.assertEquals(URLPathUtils.getServerURL(s8, null).toString(), "https://api.example.com/"); Server s9 = new Server().url("https://{user}.example.com/{version}").variables( - new ServerVariables().addServerVariable("version", new ServerVariable()._default("v1")) + new ServerVariables().addServerVariable("version", new ServerVariable()._default("v1")) .addServerVariable("user", new ServerVariable()._default("another-user"))); Assert.assertEquals(URLPathUtils.getServerURL(s9, null).toString(), "https://another-user.example.com/v1"); } private ServerVariables serverVariables(String... entries) { ServerVariables variables = new ServerVariables(); - for (int i = 0; i < entries.length; i+=2) { + for (int i = 0; i < entries.length; i += 2) { String key = entries[i]; String value = ""; - if (i+1 < entries.length) { - value = entries[i+1]; + if (i + 1 < entries.length) { + value = entries[i + 1]; } variables.addServerVariable(key, new ServerVariable()._default(value).description("variable for: " + key)); } @@ -133,12 +133,16 @@ public class URLPathUtilsTest { Server s1 = new Server().url("http://localhost:{port}/").variables( serverVariables("port", "8080") ); - Assert.assertEquals(URLPathUtils.getServerURL(s1, new HashMap() {{ put("port", "1234"); }}).toString(), "http://localhost:1234/"); + Assert.assertEquals(URLPathUtils.getServerURL(s1, new HashMap() {{ + put("port", "1234"); + }}).toString(), "http://localhost:1234/"); Server s2 = new Server().url("http://{version}.test.me/{version}").variables( serverVariables("version", "v1") ); - Assert.assertEquals(URLPathUtils.getServerURL(s2, new HashMap() {{ put("version", "v2" ); }}).toString(), "http://v2.test.me/v2"); + Assert.assertEquals(URLPathUtils.getServerURL(s2, new HashMap() {{ + put("version", "v2"); + }}).toString(), "http://v2.test.me/v2"); Server s3 = new Server().url("http://localhost:{port}/{version}").variables( serverVariables( @@ -147,27 +151,39 @@ public class URLPathUtilsTest { "other", "something" ) ); - Assert.assertEquals(URLPathUtils.getServerURL(s3, new HashMap() {{ put("port", "5678"); }}).toString(), "http://localhost:5678/v4"); + Assert.assertEquals(URLPathUtils.getServerURL(s3, new HashMap() {{ + put("port", "5678"); + }}).toString(), "http://localhost:5678/v4"); Server s4 = new Server().url("http://91.161.147.64/{targetEnv}").variables( new ServerVariables().addServerVariable("targetEnv", new ServerVariable().description("target environment")._enum(Arrays.asList("dev", "int", "prd"))._default("prd"))); - Assert.assertEquals(URLPathUtils.getServerURL(s4, new HashMap() {{ put("targetEnv", "int" ); }}).toString(), "http://91.161.147.64/int"); + Assert.assertEquals(URLPathUtils.getServerURL(s4, new HashMap() {{ + put("targetEnv", "int"); + }}).toString(), "http://91.161.147.64/int"); Server s5 = new Server().url("https://api.stats.com/{country1}").variables( new ServerVariables().addServerVariable("country1", new ServerVariable()._enum(Arrays.asList("france", "germany", "italy"))) ); - Assert.assertEquals(URLPathUtils.getServerURL(s5, new HashMap() {{ put("country1", "italy" ); }}).toString(), "https://api.stats.com/italy"); + Assert.assertEquals(URLPathUtils.getServerURL(s5, new HashMap() {{ + put("country1", "italy"); + }}).toString(), "https://api.stats.com/italy"); Server s6 = new Server().url("https://api.example.com/{wrong}"); - Assert.assertEquals(URLPathUtils.getServerURL(s6, new HashMap() {{ put("port", "8080" ); }}).toString(), "https://api.example.com/"); + Assert.assertEquals(URLPathUtils.getServerURL(s6, new HashMap() {{ + put("port", "8080"); + }}).toString(), "https://api.example.com/"); Server s7 = new Server().url("https://api.example.com/{wrong}").variables(new ServerVariables()); - Assert.assertEquals(URLPathUtils.getServerURL(s7, new HashMap() {{ put("", "8080" ); }}).toString(), "https://api.example.com/"); + Assert.assertEquals(URLPathUtils.getServerURL(s7, new HashMap() {{ + put("", "8080"); + }}).toString(), "https://api.example.com/"); Server s8 = new Server().url("https://api.example.com/{wrong}").variables( serverVariables("other", "something") ); - Assert.assertEquals(URLPathUtils.getServerURL(s8, new HashMap() {{ put("something", "other" ); }}).toString(), "https://api.example.com/"); + Assert.assertEquals(URLPathUtils.getServerURL(s8, new HashMap() {{ + put("something", "other"); + }}).toString(), "https://api.example.com/"); Server s9 = new Server().url("https://{user}.example.com/{version}").variables( serverVariables( @@ -176,7 +192,7 @@ public class URLPathUtilsTest { ) ); Assert.assertEquals(URLPathUtils.getServerURL(s9, new HashMap() {{ - put("version", "v2" ); + put("version", "v2"); put("user", "jim"); }}).toString(), "https://jim.example.com/v2"); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/validations/oas/OpenApiSchemaTypeTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/validations/oas/OpenApiSchemaTypeTest.java index 934da7997dd..be73edd080d 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/validations/oas/OpenApiSchemaTypeTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/validations/oas/OpenApiSchemaTypeTest.java @@ -21,7 +21,7 @@ public class OpenApiSchemaTypeTest { Assert.assertNotNull(result.getWarnings()); List warnings = result.getWarnings().stream() - .filter(invalid -> "Schema uses the 'null' type but OAS document is version 3.0." .equals(invalid.getRule().getDescription())) + .filter(invalid -> "Schema uses the 'null' type but OAS document is version 3.0.".equals(invalid.getRule().getDescription())) .collect(Collectors.toList()); Assert.assertNotNull(warnings); @@ -35,7 +35,7 @@ public class OpenApiSchemaTypeTest { @DataProvider(name = "oas31RecommendationExpectations") public Object[][] oas31RecommendationExpectations() { return new Object[][]{ - {TestUtils.parseFlattenSpec("src/test/resources/3_1/null-types.yaml"), true} + {TestUtils.parseFlattenSpec("src/test/resources/3_1/null-types.yaml"), true} }; } } \ No newline at end of file diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/validations/oas/OpenApiSchemaValidationsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/validations/oas/OpenApiSchemaValidationsTest.java index 292a61efb33..ebff8ea7e4b 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/validations/oas/OpenApiSchemaValidationsTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/validations/oas/OpenApiSchemaValidationsTest.java @@ -22,7 +22,7 @@ public class OpenApiSchemaValidationsTest { Assert.assertNotNull(result.getWarnings()); List warnings = result.getWarnings().stream() - .filter(invalid -> "Schema defines properties alongside oneOf." .equals(invalid.getRule().getDescription())) + .filter(invalid -> "Schema defines properties alongside oneOf.".equals(invalid.getRule().getDescription())) .collect(Collectors.toList()); Assert.assertNotNull(warnings); @@ -43,7 +43,7 @@ public class OpenApiSchemaValidationsTest { Assert.assertNotNull(result.getWarnings()); List warnings = result.getWarnings().stream() - .filter(invalid -> "Schema defines properties alongside oneOf." .equals(invalid.getRule().getDescription())) + .filter(invalid -> "Schema defines properties alongside oneOf.".equals(invalid.getRule().getDescription())) .collect(Collectors.toList()); Assert.assertNotNull(warnings); @@ -60,7 +60,7 @@ public class OpenApiSchemaValidationsTest { Assert.assertNotNull(result.getWarnings()); List warnings = result.getWarnings().stream() - .filter(invalid -> "Schema defines properties alongside oneOf." .equals(invalid.getRule().getDescription())) + .filter(invalid -> "Schema defines properties alongside oneOf.".equals(invalid.getRule().getDescription())) .collect(Collectors.toList()); Assert.assertNotNull(warnings); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/xojo/client/ModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/xojo/client/ModelTest.java index 32f1a317d68..b59eceee0df 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/xojo/client/ModelTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/xojo/client/ModelTest.java @@ -1,10 +1,11 @@ package org.openapitools.codegen.xojo.client; -import org.openapitools.codegen.*; +import io.swagger.models.Model; +import io.swagger.models.ModelImpl; +import io.swagger.models.properties.LongProperty; +import io.swagger.models.properties.StringProperty; +import org.openapitools.codegen.DefaultCodegen; import org.openapitools.codegen.languages.XojoClientCodegen; -import io.swagger.models.*; -import io.swagger.models.properties.*; - import org.testng.annotations.Test; @SuppressWarnings("static-method") diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/xojo/client/XojoClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/xojo/client/XojoClientCodegenTest.java index 21a779e30e5..a1ecc21dc93 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/xojo/client/XojoClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/xojo/client/XojoClientCodegenTest.java @@ -1,9 +1,11 @@ package org.openapitools.codegen.xojo.client; -import org.openapitools.codegen.*; -import org.openapitools.codegen.languages.XojoClientCodegen; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.Operation; +import org.openapitools.codegen.CodegenOperation; +import org.openapitools.codegen.DefaultCodegen; +import org.openapitools.codegen.TestUtils; +import org.openapitools.codegen.languages.XojoClientCodegen; import org.testng.Assert; import org.testng.annotations.Test;