-
Notifications
You must be signed in to change notification settings - Fork 6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into aspnetcore_samples
- Loading branch information
Showing
7 changed files
with
121 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 2 additions & 0 deletions
2
modules/swagger-codegen/src/main/resources/codegen/myFile.template
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
|
||
# This is a sample supporting file mustache template. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
#!/usr/bin/env bash | ||
|
||
set -euo pipefail | ||
|
||
# GEN_DIR allows to share the entrypoint between Dockerfile and run-in-docker.sh (backward compatible) | ||
GEN_DIR=${GEN_DIR:-/opt/swagger-codegen} | ||
JAVA_OPTS=${JAVA_OPTS:-"-Xmx1024M -Dlogback.configurationFile=conf/logback.xml"} | ||
|
||
cli="${GEN_DIR}" | ||
codegen2="${cli}/swagger-codegen-cli.jar" | ||
|
||
(cd "${GEN_DIR}" && exec mvn -Duser.home=$(dirname MAVEN_CONFIG) package) | ||
command=$1 | ||
shift | ||
exec java ${JAVA_OPTS} -cp "${codegen2}:${GEN_DIR}/target/*" "io.swagger.codegen.SwaggerCodegen" "${command}" "$@" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
#!/bin/sh | ||
set -euo pipefail | ||
# GEN_DIR allows to share the entrypoint between Dockerfile and run-in-docker.sh (backward compatible) | ||
GEN_DIR=${GEN_DIR:-/opt/swagger-codegen} | ||
JAVA_OPTS=${JAVA_OPTS:-"-Xmx1024M -Dlogback.configurationFile=conf/logback.xml"} | ||
|
||
codegen2="${GEN_DIR}/swagger-codegen-cli.jar" | ||
|
||
command=$1 | ||
exec java ${JAVA_OPTS} -jar "${codegen2}" "meta" "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
#!/bin/bash | ||
set -exo pipefail | ||
|
||
cd "$(dirname ${BASH_SOURCE})" | ||
|
||
docker run --rm -it \ | ||
-w /gen \ | ||
-e GEN_DIR=/gen \ | ||
-v "${PWD}:/gen" \ | ||
--entrypoint /gen/docker-stub.sh \ | ||
openjdk:8-jre-alpine "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
#!/bin/bash | ||
set -exo pipefail | ||
|
||
cd "$(dirname ${BASH_SOURCE})" | ||
|
||
maven_cache_repo="${HOME}/.m2/repository" | ||
|
||
mkdir -p "${maven_cache_repo}" | ||
|
||
docker run --rm -it \ | ||
-w /gen \ | ||
-e GEN_DIR=/gen \ | ||
-e MAVEN_CONFIG=/var/maven/.m2 \ | ||
-u "$(id -u):$(id -g)" \ | ||
-v "${PWD}:/gen" \ | ||
-v "${maven_cache_repo}:/var/maven/.m2/repository" \ | ||
--entrypoint /gen/docker-entrypoint.sh \ | ||
maven:3-jdk-8 "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
### Swagger Codegen 2.x Standalone generator development (separate project/repo) | ||
|
||
As described in [Readme](https://github.com/swagger-api/swagger-codegen/tree/master#making-your-own-codegen-modules), | ||
a new generator can be implemented by starting with a project stub generated by the `meta` command of `swagger-codegen-cli`. | ||
|
||
This can be achieved without needing to clone the `swagger-codegen` repo, by downloading and running the jar, e.g.: | ||
|
||
``` | ||
wget https://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.13/swagger-codegen-cli-2.4.13.jar -O swagger-codegen-cli.jar | ||
java -jar swagger-codegen-cli.jar meta -o output/myLibrary -n myClientCodegen -p com.my.company.codegen | ||
``` | ||
|
||
Such generator can be then made available to the CLI by adding it to the classpath, allowing to run/test it via the command line CLI, | ||
add it to the build pipeline and so on, as mentioned in [Readme](https://github.com/swagger-api/swagger-codegen/tree/master#making-your-own-codegen-modules). | ||
|
||
|
||
#### Development in docker | ||
|
||
Similar to what mentioned in Readme [development in docker section](https://github.com/swagger-api/swagger-codegen/tree/master#development-in-docker), a standalone generator can be built and run in docker, without need of a java/maven environment on the local machine. | ||
|
||
Generate the initial project: | ||
|
||
```bash | ||
|
||
# project dir | ||
TARGET_DIR=/tmp/codegen/mygenerator | ||
mkdir -p $TARGET_DIR | ||
cd $TARGET_DIR | ||
# generated code location | ||
GENERATED_CODE_DIR=generated | ||
mkdir -p $GENERATED_CODE_DIR | ||
# download desired version | ||
wget https://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.13/swagger-codegen-cli-2.4.13.jar -O swagger-codegen-cli.jar | ||
wget https://raw.githubusercontent.com/swagger-api/swagger-codegen/master/standalone-gen-dev/docker-stub.sh -O docker-stub.sh | ||
wget https://raw.githubusercontent.com/swagger-api/swagger-codegen/master/standalone-gen-dev/generator-stub-docker.sh -O generator-stub-docker.sh | ||
chmod +x *.sh | ||
# generated initial stub: -p <root package> -n <generator name> | ||
./generator-stub-docker.sh -p io.swagger.codegen.custom -n custom | ||
|
||
``` | ||
|
||
A test definition if we don't have one: | ||
|
||
```bash | ||
wget https://raw.githubusercontent.com/swagger-api/swagger-codegen/master/modules/swagger-codegen/src/test/resources/2_0/petstore.yaml -O petstore.yaml | ||
``` | ||
|
||
|
||
Build the generator and run it against a definition (first time will be slower as it needs to download deps) | ||
|
||
```bash | ||
wget https://raw.githubusercontent.com/swagger-api/swagger-codegen/master/standalone-gen-dev/run-in-docker.sh -O run-in-docker.sh | ||
wget https://raw.githubusercontent.com/swagger-api/swagger-codegen/master/standalone-gen-dev/docker-entrypoint.sh -O docker-entrypoint.sh | ||
chmod +x *.sh | ||
./run-in-docker.sh generate -i petstore.yaml -l custom -o /gen/$GENERATED_CODE_DIR | ||
``` | ||
|
||
|