[Ada] Fix GNAT project and server skeleton to avoid sending a response when an error is returned (#7574)

* Fix the GNAT project for the client and server to avoid using unecessary projects on
the client side

* Define a minimal configuration for user and application definition

* Fix the server skeleton to emit the response only when the status code is 200

* Fix the Ada petstore GNAT project
This commit is contained in:
Stephane Carrez 2018-02-05 10:47:20 +01:00 committed by William Cheng
parent dbe78e23e8
commit 9ba74f4840
6 changed files with 35 additions and 14 deletions

View File

@ -66,6 +66,7 @@ public class AdaCodegen extends AbstractAdaCodegen implements CodegenConfig {
additionalProperties.put("packageConfig", configBaseName); additionalProperties.put("packageConfig", configBaseName);
additionalProperties.put("packageDir", "client"); additionalProperties.put("packageDir", "client");
additionalProperties.put("mainName", "client"); additionalProperties.put("mainName", "client");
additionalProperties.put("isServer", false);
additionalProperties.put(CodegenConstants.PROJECT_NAME, projectName); additionalProperties.put(CodegenConstants.PROJECT_NAME, projectName);
String names[] = this.modelPackage.split("\\."); String names[] = this.modelPackage.split("\\.");

View File

@ -69,6 +69,7 @@ public class AdaServerCodegen extends AbstractAdaCodegen implements CodegenConfi
additionalProperties.put("packageConfig", configBaseName); additionalProperties.put("packageConfig", configBaseName);
additionalProperties.put("packageDir", "server"); additionalProperties.put("packageDir", "server");
additionalProperties.put("mainName", "server"); additionalProperties.put("mainName", "server");
additionalProperties.put("isServer", "true");
additionalProperties.put(CodegenConstants.PROJECT_NAME, projectName); additionalProperties.put(CodegenConstants.PROJECT_NAME, projectName);
String names[] = this.modelPackage.split("\\."); String names[] = this.modelPackage.split("\\.");

View File

@ -8,9 +8,10 @@
with "config"; with "config";
with "util"; with "util";
with "util_http"; with "util_http";
with "asf";
with "security"; with "security";
with "swagger"; with "swagger";{{#isServer}}
with "servlet";
with "swagger_server";{{/isServer}}
project {{{projectName}}} is project {{{projectName}}} is
Mains := ("{{{packageName}}}-{{{mainName}}}.adb"); Mains := ("{{{packageName}}}-{{{mainName}}}.adb");

View File

@ -1,6 +1,21 @@
swagger.dir=web swagger.dir=web
swagger.web.enable=false swagger.web.enable=false
swagger.ui.enable=true swagger.ui.enable=true
swagger.port=8080
swagger.apps=app
swagger.users=users
swagger.key=NTk4YzEyODNhMjM4IDJjMjNkOGFiNThkYSBkZWExOTQ1MTQ2YjkgZmIxNGM4NWY4OGQzCg
app.list=1
app.1.client_id=test-app
app.1.client_secret=test-app-secret
app.1.scope=none
users.list=1,2
users.1.username=admin
users.1.password=admin
users.2.username=test
users.2.password=test
# Configuration for log4j # Configuration for log4j
log4j.rootCategory=DEBUG,console,result log4j.rootCategory=DEBUG,console,result
@ -15,7 +30,7 @@ log4j.logger.log=WARN
log4j.logger.Util.Properties=DEBUG log4j.logger.Util.Properties=DEBUG
log4j.logger.Util.Log=WARN log4j.logger.Util.Log=WARN
log4j.logger.Util=DEBUG log4j.logger.Util=DEBUG
log4j.logger.ASF=DEBUG log4j.logger.Servlet=DEBUG
log4j.logger.Util.Serialize.Mappers=WARN log4j.logger.Util.Serialize.Mappers=WARN
log4j.logger.Util.Serialize.IO=INFO log4j.logger.Util.Serialize.IO=INFO

View File

@ -77,11 +77,13 @@ package body {{package}}.Skeletons is
{{/returnType}} {{/returnType}}
{{/hasParams}} {{/hasParams}}
{{#returnType}} {{#returnType}}
Stream.Start_Document;{{#vendorExtensions.x-codegen-response.isString}} if Context.Get_Status = 200 then
Swagger.Streams.Serialize (Stream, "", Result);{{/vendorExtensions.x-codegen-response.isString}}{{^vendorExtensions.x-codegen-response.isString}}{{#returnTypeIsPrimitive}} Stream.Start_Document;{{#vendorExtensions.x-codegen-response.isString}}
Swagger.Streams.Serialize (Stream, "", Result);{{/returnTypeIsPrimitive}}{{^returnTypeIsPrimitive}} Swagger.Streams.Serialize (Stream, "", Result);{{/vendorExtensions.x-codegen-response.isString}}{{^vendorExtensions.x-codegen-response.isString}}{{#returnTypeIsPrimitive}}
{{package}}.Models.Serialize (Stream, "", Result);{{/returnTypeIsPrimitive}}{{/vendorExtensions.x-codegen-response.isString}} Swagger.Streams.Serialize (Stream, "", Result);{{/returnTypeIsPrimitive}}{{^returnTypeIsPrimitive}}
Stream.End_Document;{{/returnType}} {{package}}.Models.Serialize (Stream, "", Result);{{/returnTypeIsPrimitive}}{{/vendorExtensions.x-codegen-response.isString}}
Stream.End_Document;
end if;{{/returnType}}
end {{operationId}}; end {{operationId}};
{{/operation}} {{/operation}}
{{/operations}} {{/operations}}
@ -171,11 +173,13 @@ package body {{package}}.Skeletons is
{{/returnType}} {{/returnType}}
{{/hasParams}} {{/hasParams}}
{{#returnType}} {{#returnType}}
Stream.Start_Document;{{#vendorExtensions.x-codegen-response.isString}} if Context.Get_Status = 200 then
Swagger.Streams.Serialize (Stream, "", Result);{{/vendorExtensions.x-codegen-response.isString}}{{^vendorExtensions.x-codegen-response.isString}}{{#returnTypeIsPrimitive}} Stream.Start_Document;{{#vendorExtensions.x-codegen-response.isString}}
Swagger.Streams.Serialize (Stream, "", Result);{{/returnTypeIsPrimitive}}{{^returnTypeIsPrimitive}} Swagger.Streams.Serialize (Stream, "", Result);{{/vendorExtensions.x-codegen-response.isString}}{{^vendorExtensions.x-codegen-response.isString}}{{#returnTypeIsPrimitive}}
{{package}}.Models.Serialize (Stream, "", Result);{{/returnTypeIsPrimitive}}{{/vendorExtensions.x-codegen-response.isString}} Swagger.Streams.Serialize (Stream, "", Result);{{/returnTypeIsPrimitive}}{{^returnTypeIsPrimitive}}
Stream.End_Document;{{/returnType}} {{package}}.Models.Serialize (Stream, "", Result);{{/returnTypeIsPrimitive}}{{/vendorExtensions.x-codegen-response.isString}}
Stream.End_Document;
end if;{{/returnType}}
end {{operationId}}; end {{operationId}};
package API_{{operationId}} is package API_{{operationId}} is

View File

@ -8,7 +8,6 @@
with "config"; with "config";
with "util"; with "util";
with "util_http"; with "util_http";
with "asf";
with "security"; with "security";
with "swagger"; with "swagger";
project Petstore is project Petstore is