Skip to content

Commit 54d7e8c

Browse files
authored
[CLI] Initial implementation for batch generation (#3789)
* [CLI] Initial implementation for batch generation Allows for generating multiple outputs via config. Just specify multiple config files on command line. Intent for this is to reduce CI times to generate outputs as well as to reduce time for users to run ensure-up-to-date to meet PR standards. Example command: openapi-generator batch --includes-base-dir `pwd` --fail-fast -- bin/ci/* --- As part of this implementation, the batch command support a customized JSON key, `!include`. If this key's value refers to an existing file, that file's contents are "unwrapped" into the config during deserialization. This allows us to easily point to the same configs used by our sample scripts without modifying the CLI generate task's switches or assumptions. * Allow for path-relative outputs * Add batch JSON objects * Include INFO log about threads used and includes/root * Ensure GlobalSettings.reset() * Improved thread-safety of ModelUtils
1 parent 081383c commit 54d7e8c

File tree

359 files changed

+3250
-1585
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

359 files changed

+3250
-1585
lines changed

bin/ci/apex-petstore.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"generatorName": "apex",
3+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore.yaml",
4+
"outputDir": "samples/client/petstore/apex",
5+
"templateDir": "modules/openapi-generator/src/main/resources/apex"
6+
}

bin/ci/csharp-netcore-petstore-1.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"generatorName": "csharp-netcore",
3+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml",
4+
"outputDir": "samples/client/petstore/csharp-netcore/OpenAPIClientCore",
5+
"templateDir": "modules/openapi-generator/src/main/resources/csharp-netcore/",
6+
"additionalProperties": {
7+
"packageGuid": "{321C8C3F-0156-40C1-AE42-D59761FB9B6C}",
8+
"useCompareNetObjects": true,
9+
"targetFramework": "netcoreapp2.0"
10+
}
11+
}

bin/ci/csharp-netcore-petstore.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"generatorName": "csharp-netcore",
3+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml",
4+
"outputDir": "samples/client/petstore/csharp-netcore/OpenAPIClient",
5+
"templateDir": "modules/openapi-generator/src/main/resources/csharp-netcore/",
6+
"additionalProperties": {
7+
"packageGuid": "{321C8C3F-0156-40C1-AE42-D59761FB9B6C}",
8+
"useCompareNetObjects": true
9+
}
10+
}

bin/ci/csharp-petstore.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"generatorName": "csharp",
3+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml",
4+
"outputDir": "samples/client/petstore/csharp/OpenAPIClient",
5+
"additionalProperties": {
6+
"packageGuid": "{321C8C3F-0156-40C1-AE42-D59761FB9B6C}"
7+
}
8+
}

bin/ci/dart-flutter-petstore.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"generatorName": "dart",
3+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore.yaml",
4+
"outputDir": "samples/client/petstore/dart/flutter_petstore/openapi",
5+
"templateDir": "modules/openapi-generator/src/main/resources/dart",
6+
"additionalProperties": {
7+
"hideGenerationTimestamp": true,
8+
"browserClient": false,
9+
"supportDart2": false
10+
}
11+
}

bin/ci/dart-jaguar-petstore-1.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"generatorName": "dart-jaguar",
3+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore.yaml",
4+
"outputDir": "samples/client/petstore/dart-jaguar/flutter_petstore/openapi",
5+
"templateDir": "modules/openapi-generator/src/main/resources/dart-jaguar",
6+
"additionalProperties": {
7+
"hideGenerationTimestamp": true,
8+
"pubName": "openapi"
9+
}
10+
}

bin/ci/dart-jaguar-petstore-2.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"generatorName": "dart-jaguar",
3+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore-proto.yaml",
4+
"outputDir": "samples/client/petstore/dart-jaguar/flutter_proto_petstore/openapi",
5+
"templateDir": "modules/openapi-generator/src/main/resources/dart-jaguar",
6+
"additionalProperties": {
7+
"serialization": "proto",
8+
"hideGenerationTimestamp": true,
9+
"pubName": "openapi"
10+
}
11+
}

bin/ci/dart-jaguar-petstore-3.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"generatorName": "dart-jaguar",
3+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore-proto.yaml",
4+
"outputDir": "samples/client/petstore/dart-jaguar/openapi_proto",
5+
"templateDir": "modules/openapi-generator/src/main/resources/dart-jaguar",
6+
"additionalProperties": {
7+
"serialization": "proto",
8+
"hideGenerationTimestamp": true,
9+
"pubName": "openapi"
10+
}
11+
}

bin/ci/dart-jaguar-petstore.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"generatorName": "dart-jaguar",
3+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore.yaml",
4+
"outputDir": "samples/client/petstore/dart-jaguar/openapi",
5+
"templateDir": "modules/openapi-generator/src/main/resources/dart-jaguar",
6+
"additionalProperties": {
7+
"hideGenerationTimestamp": true,
8+
"pubName": "openapi"
9+
}
10+
}

bin/ci/dart-petstore-flutter.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"generatorName": "dart",
3+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore.yaml",
4+
"outputDir": "samples/client/petstore/dart/flutter_petstore/openapi",
5+
"templateDir": "modules/openapi-generator/src/main/resources/dart",
6+
"additionalProperties": {
7+
"hideGenerationTimestamp": true,
8+
"browserClient": false,
9+
"supportDart2": false
10+
}
11+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"generatorName": "dart",
3+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore.yaml",
4+
"outputDir": "samples/client/petstore/dart/openapi-browser-client",
5+
"templateDir": "modules/openapi-generator/src/main/resources/dart",
6+
"additionalProperties": {
7+
"hideGenerationTimestamp": true,
8+
"browserClient": true,
9+
"supportDart2": false
10+
}
11+
}

bin/ci/dart-petstore.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"generatorName": "dart",
3+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore.yaml",
4+
"outputDir": "samples/client/petstore/dart/openapi",
5+
"templateDir": "modules/openapi-generator/src/main/resources/dart",
6+
"additionalProperties": {
7+
"hideGenerationTimestamp": true,
8+
"browserClient": false,
9+
"supportDart2": false
10+
}
11+
}

bin/ci/dart2-petstore.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"generatorName": "dart",
3+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore.yaml",
4+
"outputDir": "samples/client/petstore/dart2/openapi",
5+
"templateDir": "modules/openapi-generator/src/main/resources/dart2",
6+
"additionalProperties": {
7+
"hideGenerationTimestamp": true
8+
}
9+
}

bin/ci/elixir-petstore.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"generatorName": "elixir",
3+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml",
4+
"outputDir": "samples/client/petstore/elixir/",
5+
"templateDir": "modules/openapi-generator/src/main/resources/elixir",
6+
"additionalProperties": {
7+
"invokerPackage": "OpenapiPetstore"
8+
}
9+
}

bin/ci/go-gin-petstore-server.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"generatorName": "go-gin-server",
3+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore.yaml",
4+
"outputDir": "samples/server/petstore/go-gin-api-server",
5+
"templateDir": "modules/openapi-generator/src/main/resources/go-gin-server",
6+
"additionalProperties": {
7+
"packageName": "petstoreserver",
8+
"hideGenerationTimestamp": true
9+
}
10+
}

bin/ci/go-petstore-withxml.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"generatorName": "go",
3+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml",
4+
"outputDir": "samples/client/petstore/go/go-petstore-withXml",
5+
"templateDir": "modules/openapi-generator/src/main/resources/go",
6+
"additionalProperties": {
7+
"packageName": "petstore",
8+
"withXml": true,
9+
"withGoCodegenComment": true
10+
}
11+
}

bin/ci/go-petstore.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"generatorName": "go",
3+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml",
4+
"outputDir": "samples/client/petstore/go/go-petstore",
5+
"templateDir": "modules/openapi-generator/src/main/resources/go",
6+
"additionalProperties": {
7+
"packageName": "petstore"
8+
}
9+
}

bin/ci/groovy-petstore.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"generatorName": "groovy",
3+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore.yaml",
4+
"outputDir": "samples/client/petstore/groovy",
5+
"templateDir": "modules/openapi-generator/src/main/resources/Groovy/",
6+
"additionalProperties": {
7+
"hideGenerationTimestamp": true
8+
}
9+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"generatorName": "haskell-http-client",
3+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml",
4+
"outputDir": "samples/client/petstore/haskell-http-client",
5+
"templateDir": "modules/openapi-generator/src/main/resources/haskell-http-client"
6+
}

bin/ci/java-feign.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"!include": "bin/java-petstore-feign-9x.json",
3+
"generatorName": "java",
4+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml",
5+
"outputDir": "samples/client/petstore/java/feign",
6+
"templateDir": "modules/openapi-generator/src/main/resources/Java/libraries/feign",
7+
"additionalProperties": {
8+
"hideGenerationTimestamp": true,
9+
"booleanGetterPrefix": "is"
10+
}
11+
}

bin/ci/java-feign10x.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"!include": "bin/java-petstore-feign-10x.json",
3+
"generatorName": "java",
4+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml",
5+
"outputDir": "samples/client/petstore/java/feign10x",
6+
"templateDir": "modules/openapi-generator/src/main/resources/Java/libraries/feign",
7+
"additionalProperties": {
8+
"hideGenerationTimestamp": true,
9+
"booleanGetterPrefix": "is"
10+
}
11+
}

bin/ci/java-google-api-client.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"!include": "bin/java-petstore-google-api-client.json",
3+
"generatorName": "java",
4+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml",
5+
"outputDir": "samples/client/petstore/java/google-api-client",
6+
"templateDir": "modules/openapi-generator/src/main/resources/Java/libraries/google-api-client",
7+
"additionalProperties": {
8+
"hideGenerationTimestamp": true
9+
}
10+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"artifactId": "cxf-annotated-basepath",
3+
"generatorName": "jaxrs-cxf",
4+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore.yaml",
5+
"outputDir": "samples/server/petstore/jaxrs-cxf-annotated-base-path",
6+
"templateDir": "modules/openapi-generator/src/main/resources/JavaJaxRS/cxf",
7+
"additionalProperties": {
8+
"hideGenerationTimestamp": true,
9+
"useAnnotatedBasePath": true,
10+
"serverPort": "8082"
11+
}
12+
}

bin/ci/java-jaxrs-cxf-cdi.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"generatorName": "jaxrs-cxf-cdi",
3+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore.yaml",
4+
"outputDir": "samples/server/petstore/jaxrs-cxf-cdi",
5+
"templateDir": "modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-cdi",
6+
"additionalProperties": {
7+
"hideGenerationTimestamp": true
8+
}
9+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"artifactId": "cxf-server-non-spring",
3+
"generatorName": "jaxrs-cxf",
4+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore.yaml",
5+
"outputDir": "samples/server/petstore/jaxrs-cxf-non-spring-app",
6+
"templateDir": "modules/openapi-generator/src/main/resources/JavaJaxRS/cxf",
7+
"additionalProperties": {
8+
"hideGenerationTimestamp": true,
9+
"generateNonSpringApplication": true,
10+
"serverPort": "8082"
11+
}
12+
}

bin/ci/java-jaxrs-cxf.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"generatorName": "jaxrs-cxf",
3+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml",
4+
"outputDir": "samples/server/petstore/jaxrs-cxf",
5+
"templateDir": "modules/openapi-generator/src/main/resources/JavaJaxRS/cxf",
6+
"additionalProperties": {
7+
"hideGenerationTimestamp": true,
8+
"serverPort": "8082"
9+
}
10+
}

bin/ci/java-jaxrs-datelib-j8.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"!include": "./bin/jaxrs-datelib-j8.json",
3+
"generatorName": "jaxrs-jersey",
4+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml",
5+
"outputDir": "samples/server/petstore/jaxrs-datelib-j8/",
6+
"templateDir": "modules/openapi-generator/src/main/resources/JavaJaxRS/",
7+
"additionalProperties": {
8+
"hideGenerationTimestamp": true,
9+
"serverPort": "8082"
10+
}
11+
}

bin/ci/java-jaxrs-jersey.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"artifactId": "openapiv3-jaxrs-jersey-petstore-server",
3+
"generatorName": "jaxrs-jersey",
4+
"inputSpec": "modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml",
5+
"outputDir": "samples/server/petstore/jaxrs-jersey",
6+
"templateDir": "modules/openapi-generator/src/main/resources/JavaJaxRS/",
7+
"additionalProperties": {
8+
"hideGenerationTimestamp": true
9+
}
10+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"artifactId": "jaxrs-jersey1-useTags",
3+
"generatorName": "jaxrs-jersey",
4+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml",
5+
"library": "jersey1",
6+
"outputDir": "samples/server/petstore/jaxrs/jersey1-useTags",
7+
"templateDir": "modules/openapi-generator/src/main/resources/JavaJaxRS",
8+
"additionalProperties": {
9+
"hideGenerationTimestamp": true,
10+
"serverPort": "8082",
11+
"useTags": true
12+
}
13+
}

bin/ci/java-jaxrs-jersey1.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"artifactId": "jaxrs-jersey1-server",
3+
"generatorName": "jaxrs-jersey",
4+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml",
5+
"library": "jersey1",
6+
"outputDir": "samples/server/petstore/jaxrs/jersey1",
7+
"templateDir": "modules/openapi-generator/src/main/resources/JavaJaxRS",
8+
"additionalProperties": {
9+
"hideGenerationTimestamp": true,
10+
"serverPort": "8082"
11+
}
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"artifactId": "jaxrs-jersey2-useTags",
3+
"generatorName": "jaxrs-jersey",
4+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml",
5+
"outputDir": "samples/server/petstore/jaxrs/jersey2-useTags",
6+
"templateDir": "modules/openapi-generator/src/main/resources/JavaJaxRS",
7+
"additionalProperties": {
8+
"hideGenerationTimestamp": true,
9+
"serverPort": "8082",
10+
"useTags": true
11+
}
12+
}

bin/ci/java-jaxrs-jersey2.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"artifactId": "jaxrs-jersey-petstore-server",
3+
"generatorName": "jaxrs-jersey",
4+
"inputSpec": "modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml",
5+
"outputDir": "samples/server/petstore/jaxrs/jersey2",
6+
"templateDir": "modules/openapi-generator/src/main/resources/JavaJaxRS",
7+
"additionalProperties": {
8+
"hideGenerationTimestamp": true,
9+
"serverPort": "8082"
10+
}
11+
}

0 commit comments

Comments
 (0)