1010import io .swagger .models .Swagger ;
1111import io .swagger .models .auth .AuthorizationValue ;
1212import io .swagger .parser .SwaggerParser ;
13+ import io .swagger .parser .util .ParseOptions ;
1314import io .swagger .util .Json ;
1415import org .slf4j .Logger ;
1516import org .slf4j .LoggerFactory ;
@@ -72,7 +73,19 @@ private static String generate(String language, GeneratorInput opts, Type type)
7273 LOGGER .debug ("ignoring empty spec" );
7374 node = null ;
7475 }
76+ CodegenConfig codegenConfig = null ;
77+ try {
78+ codegenConfig = CodegenConfigLoader .forName (language );
79+ } catch (RuntimeException e ) {
80+ throw new BadRequestException ("Unsupported target " + language + " supplied" );
81+ }
82+
7583 Swagger swagger ;
84+ ParseOptions parseOptions = new ParseOptions ();
85+ parseOptions .setResolve (true );
86+ if (codegenConfig .isUsingFlattenSpec () && !Boolean .FALSE .equals (opts .isUsingFlattenSpec ())) {
87+ parseOptions .setFlatten (true );
88+ }
7689 if (node == null ) {
7790 if (opts .getSwaggerUrl () != null ) {
7891 if (opts .getAuthorizationValue () != null ) {
@@ -82,19 +95,19 @@ private static String generate(String language, GeneratorInput opts, Type type)
8295
8396 swagger =
8497 new SwaggerParser ().read (opts .getSwaggerUrl (), authorizationValues ,
85- true );
98+ parseOptions );
8699 } else {
87- swagger = new SwaggerParser ().read (opts .getSwaggerUrl ());
100+ swagger = new SwaggerParser ().read (opts .getSwaggerUrl (), null , parseOptions );
88101 }
89102 } else {
90103 throw new BadRequestException ("No swagger specification was supplied" );
91104 }
92105 } else if (opts .getAuthorizationValue () != null ) {
93106 List <AuthorizationValue > authorizationValues = new ArrayList <AuthorizationValue >();
94107 authorizationValues .add (opts .getAuthorizationValue ());
95- swagger = new SwaggerParser ().read (node , authorizationValues , true );
108+ swagger = new SwaggerParser ().read (node , authorizationValues , parseOptions );
96109 } else {
97- swagger = new SwaggerParser ().read (node , true );
110+ swagger = new SwaggerParser ().read (node , null , parseOptions );
98111 }
99112 if (swagger == null ) {
100113 throw new BadRequestException ("The swagger specification supplied was not valid" );
@@ -116,12 +129,6 @@ private static String generate(String language, GeneratorInput opts, Type type)
116129
117130 clientOptInput .opts (clientOpts ).swagger (swagger );
118131
119- CodegenConfig codegenConfig = null ;
120- try {
121- codegenConfig = CodegenConfigLoader .forName (language );
122- } catch (RuntimeException e ) {
123- throw new BadRequestException ("Unsupported target " + language + " supplied" );
124- }
125132
126133 if (opts .getOptions () != null ) {
127134 codegenConfig .additionalProperties ().putAll (opts .getOptions ());
0 commit comments