[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("packageDir", "client");
additionalProperties.put("mainName", "client");
additionalProperties.put("isServer", false);
additionalProperties.put(CodegenConstants.PROJECT_NAME, projectName);
String names[] = this.modelPackage.split("\\.");

View File

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

View File

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

View File

@ -1,6 +1,21 @@
swagger.dir=web
swagger.web.enable=false
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
log4j.rootCategory=DEBUG,console,result
@ -15,7 +30,7 @@ log4j.logger.log=WARN
log4j.logger.Util.Properties=DEBUG
log4j.logger.Util.Log=WARN
log4j.logger.Util=DEBUG
log4j.logger.ASF=DEBUG
log4j.logger.Servlet=DEBUG
log4j.logger.Util.Serialize.Mappers=WARN
log4j.logger.Util.Serialize.IO=INFO

View File

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

View File

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