Skip to content

Commit

Permalink
Merge branch '3.3.x' into 4.0.x
Browse files Browse the repository at this point in the history
  • Loading branch information
stkrwork committed Aug 7, 2018
2 parents 3746fae + 546b54b commit aed8e38
Show file tree
Hide file tree
Showing 162 changed files with 929 additions and 257 deletions.
5 changes: 3 additions & 2 deletions README.md
Expand Up @@ -83,11 +83,12 @@ The OpenAPI Specification has undergone 3 revisions since initial creation in 20
OpenAPI Generator Version | Release Date | OpenAPI Spec compatibility | Notes
---------------------------- | ------------ | -------------------------- | -----
4.0.0 (upcoming major release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/4.0.0-SNAPSHOT/)| TBD | 1.0, 1.1, 1.2, 2.0, 3.0 | Major release with breaking changes (no fallback)
3.2.1 (current master, upcoming minor release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/3.2.1-SNAPSHOT/)| TBD | 1.0, 1.1, 1.2, 2.0, 3.0 | Minor release with breaking changes (with fallbacks)
3.3.0 (upcoming minor release)| TBD | 1.0, 1.1, 1.2, 2.0, 3.0 | Minor release (breaking changes with fallbacks)
3.2.1 (current master, upcoming patch release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/3.2.1-SNAPSHOT/)| TBD | 1.0, 1.1, 1.2, 2.0, 3.0 | Bugfix release
[3.2.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v3.2.0) | 06.08.2018 | 1.0, 1.1, 1.2, 2.0, 3.0 | Bugfix release
[3.1.2](https://github.com/OpenAPITools/openapi-generator/releases/tag/v3.1.2) | 25.07.2018 | 1.0, 1.1, 1.2, 2.0, 3.0 | Bugfix release
[3.1.1](https://github.com/OpenAPITools/openapi-generator/releases/tag/v3.1.1) | 18.07.2018 | 1.0, 1.1, 1.2, 2.0, 3.0 | Bugfix release
[3.1.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v3.1.0) | 06.07.2018 | 1.0, 1.1, 1.2, 2.0, 3.0 | Minor release with breaking changes (with fallbacks)
[3.1.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v3.1.0) | 06.07.2018 | 1.0, 1.1, 1.2, 2.0, 3.0 | Minor release (breaking changes with fallbacks)
[3.0.3](https://github.com/OpenAPITools/openapi-generator/releases/tag/v3.0.3) | 27.06.2018 | 1.0, 1.1, 1.2, 2.0, 3.0 | Bugfix release
[3.0.2](https://github.com/OpenAPITools/openapi-generator/releases/tag/v3.0.2) | 18.06.2018 | 1.0, 1.1, 1.2, 2.0, 3.0 | Bugfix release
[3.0.1](https://github.com/OpenAPITools/openapi-generator/releases/tag/v3.0.1) | 11.06.2018 | 1.0, 1.1, 1.2, 2.0, 3.0 | Bugfix release
Expand Down
Expand Up @@ -168,7 +168,7 @@ public String toVarName(String name) {
return sanitizeName(name);
}

if (isReservedWord(name)) {
if (isReservedWord(name) || name.matches("^\\d.*")) {
return escapeReservedWord(name);
}

Expand Down Expand Up @@ -205,6 +205,10 @@ public String toOperationId(String operationId) {

@Override
public String toParamName(String name) {
if (isReservedWord(name) || name.matches("^\\d.*")) {
return escapeReservedWord(name);
}

return sanitizeName(super.toParamName(name));
}

Expand All @@ -217,6 +221,9 @@ public CodegenProperty fromProperty(String name, Schema p) {
} else {
nameInCamelCase = sanitizeName(nameInCamelCase);
}
if (isReservedWord(nameInCamelCase) || nameInCamelCase.matches("^\\d.*")) {
nameInCamelCase = escapeReservedWord(nameInCamelCase);
}
property.nameInCamelCase = nameInCamelCase;
return property;
}
Expand Down
Expand Up @@ -46,6 +46,8 @@ public class CppPistacheServerCodegen extends AbstractCppCodegen {
protected boolean isAddExternalLibs = true;
public static final String OPTIONAL_EXTERNAL_LIB = "addExternalLibs";
public static final String OPTIONAL_EXTERNAL_LIB_DESC = "Add the Possibility to fetch and compile external Libraries needed by this Framework.";
protected final String PREFIX = "";

@Override
public CodegenType getTag() {
return CodegenType.SERVER;
Expand All @@ -63,6 +65,9 @@ public String getHelp() {

public CppPistacheServerCodegen() {
super();
if (StringUtils.isEmpty(modelNamePrefix)) {
modelNamePrefix = PREFIX;
}

apiPackage = "org.openapitools.server.api";
modelPackage = "org.openapitools.server.model";
Expand All @@ -83,8 +88,8 @@ public CppPistacheServerCodegen() {

reservedWords = new HashSet<>();

supportingFiles.add(new SupportingFile("modelbase-header.mustache", "model", "ModelBase.h"));
supportingFiles.add(new SupportingFile("modelbase-source.mustache", "model", "ModelBase.cpp"));
supportingFiles.add(new SupportingFile("modelbase-header.mustache", "model", modelNamePrefix + "ModelBase.h"));
supportingFiles.add(new SupportingFile("modelbase-source.mustache", "model", modelNamePrefix + "ModelBase.cpp"));
supportingFiles.add(new SupportingFile("cmake.mustache", "", "CMakeLists.txt"));
supportingFiles.add(new SupportingFile("README.mustache", "", "README.md"));

Expand Down Expand Up @@ -117,7 +122,14 @@ public CppPistacheServerCodegen() {
@Override
public void processOpts() {
super.processOpts();

if (additionalProperties.containsKey("modelNamePrefix")) {
additionalProperties().put("prefix", modelNamePrefix);
supportingFiles.clear();
supportingFiles.add(new SupportingFile("modelbase-header.mustache", "model", modelNamePrefix + "ModelBase.h"));
supportingFiles.add(new SupportingFile("modelbase-source.mustache", "model", modelNamePrefix + "ModelBase.cpp"));
supportingFiles.add(new SupportingFile("cmake.mustache", "", "CMakeLists.txt"));
supportingFiles.add(new SupportingFile("README.mustache", "", "README.md"));
}
additionalProperties.put("modelNamespaceDeclarations", modelPackage.split("\\."));
additionalProperties.put("modelNamespace", modelPackage.replaceAll("\\.", "::"));
additionalProperties.put("apiNamespaceDeclarations", apiPackage.split("\\."));
Expand All @@ -138,6 +150,7 @@ public String toModelImport(String name) {
}
}


@Override
public CodegenModel fromModel(String name, Schema model, Map<String, Schema> allDefinitions) {
CodegenModel codegenModel = super.fromModel(name, model, allDefinitions);
Expand Down Expand Up @@ -233,14 +246,20 @@ public Map<String, Object> postProcessOperationsWithModels(Map<String, Object> o
}
op.vendorExtensions.put("x-codegen-pistache-consumesJson", consumeJson);
op.vendorExtensions.put("x-codegen-pistache-isParsingSupported", isParsingSupported);
for(String hdr : op.imports) {
if(importMapping.containsKey(hdr)) {
continue;
}
additionalProperties.put("hasModelImport", true);
}
}

return objs;
}

@Override
public String toModelFilename(String name) {
return initialCaps(name);
return initialCaps(toModelName(name));
}

@Override
Expand All @@ -265,7 +284,7 @@ public String apiFilename(String templateName, String tag) {

@Override
public String toApiFilename(String name) {
return initialCaps(name) + "Api";
return modelNamePrefix + initialCaps(name) + "Api";
}

/**
Expand Down Expand Up @@ -322,7 +341,7 @@ public String toDefaultValue(Schema p) {
return "0";
}
else if (ModelUtils.isByteArraySchema(p)) {
return "";
return "\"\"";
} else if (ModelUtils.isMapSchema(p)) {
String inner = getSchemaType((Schema) p.getAdditionalProperties());
return "std::map<std::string, " + inner + ">()";
Expand Down
Expand Up @@ -90,6 +90,7 @@ public CppRestbedServerCodegen() {
typeMapping.put("binary", "restbed::Bytes");
typeMapping.put("number", "double");
typeMapping.put("UUID", "std::string");
typeMapping.put("ByteArray", "std::string");

super.importMapping = new HashMap<String, String>();
importMapping.put("std::vector", "#include <vector>");
Expand Down Expand Up @@ -271,6 +272,8 @@ public String getTypeDeclaration(Schema p) {
} else if (ModelUtils.isMapSchema(p)) {
Schema inner = (Schema) p.getAdditionalProperties();
return getSchemaType(p) + "<std::string, " + getTypeDeclaration(inner) + ">";
} else if (ModelUtils.isByteArraySchema(p)) {
return "std::string";
} else if (ModelUtils.isStringSchema(p)
|| ModelUtils.isDateSchema(p)
|| ModelUtils.isDateTimeSchema(p) || ModelUtils.isFileSchema(p)
Expand Down Expand Up @@ -301,6 +304,8 @@ public String toDefaultValue(Schema p) {
return "0L";
}
return "0";
} else if (ModelUtils.isByteArraySchema(p)) {
return "\"\"";
} else if (ModelUtils.isMapSchema(p)) {
String inner = getSchemaType((Schema) p.getAdditionalProperties());
return "std::map<std::string, " + inner + ">()";
Expand Down
Expand Up @@ -8,6 +8,7 @@ import javax.ws.rs.core.Response;

import io.swagger.annotations.*;

import java.io.InputStream;
import java.util.Map;
import java.util.List;
{{#useBeanValidation}}import javax.validation.constraints.*;
Expand Down
Expand Up @@ -11,7 +11,7 @@ public enum {{datatypeWithEnum}} {
value = v;
}

public String value() {
public {{dataType}} value() {
return value;
}

Expand Down
@@ -1,2 +1 @@
{{#isFormParam}}{{^isFile}}@FormParam(value = "{{baseName}}") {{{dataType}}} {{paramName}}{{/isFile}}{{#isFile}} @FormParam(value = "{{baseName}}") InputStream {{paramName}}InputStream,
@FormParam(value = "{{baseName}}") Attachment {{paramName}}Detail{{/isFile}}{{/isFormParam}}
{{#isFormParam}}{{^isFile}}@FormParam(value = "{{baseName}}") {{{dataType}}} {{paramName}}{{/isFile}}{{#isFile}} @FormParam(value = "{{baseName}}") InputStream {{paramName}}InputStream{{/isFile}}{{/isFormParam}}
Expand Up @@ -11,10 +11,7 @@ import javax.validation.Valid;
{{/useBeanValidation}}

{{#models}}
{{#model}}{{#description}}
/**
* {{description}}
**/{{/description}}
{{#model}}
{{#isEnum}}
{{>enumOuterClass}}
{{/isEnum}}
Expand Down
@@ -1,8 +1,14 @@
import io.swagger.annotations.*;
import java.util.Objects;
import com.fasterxml.jackson.annotation.JsonProperty;
{{#description}}@ApiModel(description = "{{{description}}}"){{/description}}
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;

{{#description}}
/**
* {{description}}
**/{{/description}}
{{#description}}@ApiModel(description = "{{{description}}}"){{/description}}
public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {{#serializableModel}}implements Serializable{{/serializableModel}} {
{{#vars}}{{#isEnum}}{{^isContainer}}

Expand Down
Expand Up @@ -23,7 +23,8 @@
namespace {{this}} {
{{/apiNamespaceDeclarations}}

using namespace {{modelNamespace}};
{{#hasModelImport}}
using namespace {{modelNamespace}};{{/hasModelImport}}

class {{declspec}} {{classname}} {
public:
Expand Down
Expand Up @@ -26,7 +26,8 @@
namespace {{this}} {
{{/apiNamespaceDeclarations}}

using namespace {{modelNamespace}};
{{#hasModelImport}}
using namespace {{modelNamespace}};{{/hasModelImport}}

class {{classname}}Impl : public {{apiNamespace}}::{{classname}} {
public:
Expand Down
Expand Up @@ -7,7 +7,8 @@
namespace {{this}} {
{{/apiNamespaceDeclarations}}

using namespace {{modelNamespace}};
{{#hasModelImport}}
using namespace {{modelNamespace}};{{/hasModelImport}}

{{classname}}Impl::{{classname}}Impl(Pistache::Address addr)
: {{classname}}(addr)
Expand Down
Expand Up @@ -7,7 +7,8 @@
namespace {{this}} {
{{/apiNamespaceDeclarations}}

using namespace {{modelNamespace}};
{{#hasModelImport}}
using namespace {{modelNamespace}};{{/hasModelImport}}

{{classname}}::{{classname}}(Pistache::Address addr)
: httpEndpoint(addr)
Expand Down Expand Up @@ -76,7 +77,7 @@ void {{classname}}::{{operationIdSnakeCase}}_handler(const Pistache::Rest::Reque
nlohmann::json request_body = nlohmann::json::parse(request.body());
{{^isPrimitiveType}}{{^isContainer}}
{{paramName}}.fromJson(request_body);
{{/isContainer}}{{/isPrimitiveType}}{{#isContainer}} {{paramName}} = {{#isListContainer}} ModelArrayHelper{{/isListContainer}}{{#isMapContainer}} ModelMapHelper{{/isMapContainer}}::fromJson<{{items.baseType}}>(request_body);{{/isContainer}}
{{/isContainer}}{{/isPrimitiveType}}{{#isContainer}} {{paramName}} = {{#isListContainer}} {{prefix}}ModelArrayHelper{{/isListContainer}}{{#isMapContainer}} {{prefix}}ModelMapHelper{{/isMapContainer}}::fromJson<{{items.baseType}}>(request_body);{{/isContainer}}
{{#isPrimitiveType}}
// The conversion is done automatically by the json library
{{paramName}} = request_body;
Expand Down
Expand Up @@ -9,7 +9,7 @@
#define {{classname}}_H_

{{{defaultInclude}}}
#include "ModelBase.h"
#include "{{prefix}}ModelBase.h"

{{#imports}}{{{this}}}
{{/imports}}
Expand All @@ -22,14 +22,14 @@ namespace {{this}} {
/// {{description}}
/// </summary>
class {{declspec}} {{classname}}
: public ModelBase
: public {{prefix}}ModelBase
{
public:
{{classname}}();
virtual ~{{classname}}();

/////////////////////////////////////////////
/// ModelBase overrides
/// {{prefix}}ModelBase overrides

void validate() override;

Expand Down
Expand Up @@ -38,7 +38,7 @@ nlohmann::json {{classname}}::toJson() const
nlohmann::json jsonArray;
for( auto& item : m_{{name}} )
{
jsonArray.push_back(ModelBase::toJson(item));
jsonArray.push_back({{prefix}}ModelBase::toJson(item));
}
{{#required}}val["{{baseName}}"] = jsonArray;
{{/required}}{{^required}}
Expand All @@ -50,9 +50,9 @@ nlohmann::json {{classname}}::toJson() const
}
{{/isListContainer}}{{^isListContainer}}{{^isPrimitiveType}}{{^required}}if(m_{{name}}IsSet)
{
val["{{baseName}}"] = ModelBase::toJson(m_{{name}});
val["{{baseName}}"] = {{prefix}}ModelBase::toJson(m_{{name}});
}
{{/required}}{{#required}}val["{{baseName}}"] = ModelBase::toJson(m_{{name}});
{{/required}}{{#required}}val["{{baseName}}"] = {{prefix}}ModelBase::toJson(m_{{name}});
{{/required}}{{/isPrimitiveType}}{{/isListContainer}}{{/vars}}

return val;
Expand Down

0 comments on commit aed8e38

Please sign in to comment.