Minor improvements to plantuml doc generator (#6298)

* minor improvements to plantuml doc generator

* various improvements

* fix windows batch file
This commit is contained in:
William Cheng 2020-05-15 09:16:19 +08:00 committed by GitHub
parent 00a706b760
commit 62d103d501
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 49 additions and 21 deletions

View File

@ -885,6 +885,7 @@ Here is a list of template creators:
* AsciiDoc: @man-at-home
* HTML Doc 2: @jhitchcock
* Confluence Wiki: @jhitchcock
* PlantUML: @pburls
* Configuration
* Apache2: @stkrwork
* k6: @mostafa

2
bin/plantuml-documentation-petstore.sh Normal file → Executable file
View File

@ -26,6 +26,6 @@ fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="$@ generate -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g plantuml -o samples/documentation/petstore/plantuml"
ags="$@ generate -t modules/openapi-generator/src/main/resources/plantuml -i modules/openapi-generator/src/test/resources/3_0/petstore.yaml -g plantuml -o samples/documentation/petstore/plantuml"
java ${JAVA_OPTS} -jar ${executable} ${ags}

View File

@ -5,6 +5,6 @@ If Not Exist %executable% (
)
REM set JAVA_OPTS=%JAVA_OPTS% -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate --artifact-id "plantuml-petstore-documentation" -i modules\openapi-generator\src\test\resources\2_0\petstore.yaml -g plantuml -o samples\documentation\petstore\plantuml
set ags=generate -t modules\openapi-generator\src\main\resources\plantuml -i modules\openapi-generator\src\test\resources\3_0\petstore.yaml -g plantuml -o samples\documentation\petstore\plantuml
java %JAVA_OPTS% -jar %executable% %ags%

View File

@ -136,7 +136,7 @@ The following generators are available:
* [markdown (beta)](generators/markdown.md)
* [openapi](generators/openapi.md)
* [openapi-yaml](generators/openapi-yaml.md)
* [plantuml](generators/plantuml.md)
* [plantuml (beta)](generators/plantuml.md)
## SCHEMA generators

View File

@ -1,14 +1,31 @@
/*
* Copyright 2018 OpenAPI-Generator Contributors (https://openapi-generator.tech)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.openapitools.codegen.languages;
import org.openapitools.codegen.*;
import org.openapitools.codegen.meta.GeneratorMetadata;
import org.openapitools.codegen.meta.Stability;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.util.*;
import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class PlantumlDocumentationCodegen extends DefaultCodegen implements CodegenConfig {
public static final String ALL_OF_SUFFIX = "AllOf";
@ -29,8 +46,12 @@ public class PlantumlDocumentationCodegen extends DefaultCodegen implements Code
public PlantumlDocumentationCodegen() {
super();
generatorMetadata = GeneratorMetadata.newBuilder(generatorMetadata)
.stability(Stability.BETA)
.build();
outputFolder = "generated-code" + File.separator + "plantuml";
embeddedTemplateDir = templateDir = "plantuml-documentation";
embeddedTemplateDir = templateDir = "plantuml";
supportingFiles.add(new SupportingFile("schemas.mustache", "", "schemas.plantuml"));
}
@ -41,7 +62,7 @@ public class PlantumlDocumentationCodegen extends DefaultCodegen implements Code
List<Object> modelsList = (List<Object>) models;
List<CodegenModel> codegenModelList = modelsList.stream()
.filter(listItem -> listItem instanceof HashMap<?, ?>)
.map(listItem -> (CodegenModel)((HashMap<?, ?>)listItem).get("model"))
.map(listItem -> (CodegenModel) ((HashMap<?, ?>) listItem).get("model"))
.collect(Collectors.toList());
List<CodegenModel> inlineAllOfCodegenModelList = codegenModelList.stream()
@ -118,8 +139,8 @@ public class PlantumlDocumentationCodegen extends DefaultCodegen implements Code
@SuppressWarnings("unchecked")
private List<Map<String, Object>> calculateCompositionRelationshipsFrom(List<Map<String, Object>> entities) {
Map<String, List<Map<String, Object>>> entityFieldsMap = entities.stream()
.collect(Collectors.toMap(entity -> (String)entity.get("name"), entity -> (List<Map<String, Object>>)entity.get("fields")));
Map<String, List<Map<String, Object>>> entityFieldsMap = entities.stream()
.collect(Collectors.toMap(entity -> (String) entity.get("name"), entity -> (List<Map<String, Object>>) entity.get("fields")));
return entityFieldsMap.entrySet().stream()
.map(entry -> createRelationshipsFor(entry.getKey(), entry.getValue()))

View File

@ -3,6 +3,7 @@ org.openapitools.codegen.languages.AdaServerCodegen
org.openapitools.codegen.languages.AndroidClientCodegen
org.openapitools.codegen.languages.Apache2ConfigCodegen
org.openapitools.codegen.languages.ApexClientCodegen
org.openapitools.codegen.languages.AsciidocDocumentationCodegen
org.openapitools.codegen.languages.AspNetCoreServerCodegen
org.openapitools.codegen.languages.AvroSchemaCodegen
org.openapitools.codegen.languages.BashClientCodegen
@ -29,6 +30,7 @@ org.openapitools.codegen.languages.ErlangClientCodegen
org.openapitools.codegen.languages.ErlangProperCodegen
org.openapitools.codegen.languages.ErlangServerCodegen
org.openapitools.codegen.languages.FlashClientCodegen
org.openapitools.codegen.languages.FsharpFunctionsServerCodegen
org.openapitools.codegen.languages.FsharpGiraffeServerCodegen
org.openapitools.codegen.languages.GoClientCodegen
org.openapitools.codegen.languages.GoClientExperimentalCodegen
@ -66,6 +68,7 @@ org.openapitools.codegen.languages.JavascriptClosureAngularClientCodegen
org.openapitools.codegen.languages.JMeterClientCodegen
org.openapitools.codegen.languages.K6ClientCodegen
org.openapitools.codegen.languages.LuaClientCodegen
org.openapitools.codegen.languages.MarkdownDocumentationCodegen
org.openapitools.codegen.languages.MysqlSchemaCodegen
org.openapitools.codegen.languages.NimClientCodegen
org.openapitools.codegen.languages.NodeJSServerCodegen
@ -74,6 +77,7 @@ org.openapitools.codegen.languages.ObjcClientCodegen
org.openapitools.codegen.languages.OCamlClientCodegen
org.openapitools.codegen.languages.OpenAPIGenerator
org.openapitools.codegen.languages.OpenAPIYamlGenerator
org.openapitools.codegen.languages.PlantumlDocumentationCodegen
org.openapitools.codegen.languages.PerlClientCodegen
org.openapitools.codegen.languages.PhpClientCodegen
org.openapitools.codegen.languages.PhpLaravelServerCodegen
@ -98,11 +102,13 @@ org.openapitools.codegen.languages.RustClientCodegen
org.openapitools.codegen.languages.RustServerCodegen
org.openapitools.codegen.languages.ScalatraServerCodegen
org.openapitools.codegen.languages.ScalaAkkaClientCodegen
org.openapitools.codegen.languages.ScalaAkkaHttpServerCodegen
org.openapitools.codegen.languages.ScalaFinchServerCodegen
org.openapitools.codegen.languages.ScalaHttpClientCodegen
org.openapitools.codegen.languages.ScalaGatlingCodegen
org.openapitools.codegen.languages.ScalaLagomServerCodegen
org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen
org.openapitools.codegen.languages.ScalaSttpClientCodegen
org.openapitools.codegen.languages.ScalazClientCodegen
org.openapitools.codegen.languages.SpringCodegen
org.openapitools.codegen.languages.StaticDocCodegen
@ -121,14 +127,4 @@ org.openapitools.codegen.languages.TypeScriptInversifyClientCodegen
org.openapitools.codegen.languages.TypeScriptJqueryClientCodegen
org.openapitools.codegen.languages.TypeScriptNodeClientCodegen
org.openapitools.codegen.languages.TypeScriptReduxQueryClientCodegen
org.openapitools.codegen.languages.TypeScriptRxjsClientCodegen
org.openapitools.codegen.languages.FsharpGiraffeServerCodegen
org.openapitools.codegen.languages.AsciidocDocumentationCodegen
org.openapitools.codegen.languages.FsharpFunctionsServerCodegen
org.openapitools.codegen.languages.MarkdownDocumentationCodegen
org.openapitools.codegen.languages.ScalaSttpClientCodegen
org.openapitools.codegen.languages.ScalaAkkaHttpServerCodegen
org.openapitools.codegen.languages.PlantumlDocumentationCodegen
org.openapitools.codegen.languages.TypeScriptRxjsClientCodegen

View File

@ -13,6 +13,16 @@ entity Category {
name: String
}
entity InlineObject {
name: String
status: String
}
entity InlineObject1 {
additionalMetadata: String
file: File
}
entity Order {
id: Long
petId: Long