You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2018/10/31 08:14:03 UTC

[isis] branch master updated: ISIS-2027: changes healthcheck to return http 500 if failed

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new cfb36a7  ISIS-2027: changes healthcheck to return http 500 if failed
cfb36a7 is described below

commit cfb36a75a245dc7ebd2b350c4587397e0b146dc3
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Wed Oct 31 08:13:46 2018 +0000

    ISIS-2027: changes healthcheck to return http 500 if failed
    
    rather than a 200 with 'ok': false as was previously
---
 .../server/resources/HealthResourceServerside.java         | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/HealthResourceServerside.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/HealthResourceServerside.java
index fcc010d..82c80cc 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/HealthResourceServerside.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/HealthResourceServerside.java
@@ -39,6 +39,7 @@ import org.apache.isis.viewer.restfulobjects.rendering.Caching;
 import org.apache.isis.viewer.restfulobjects.rendering.Responses;
 import org.apache.isis.viewer.restfulobjects.rendering.RestfulObjectsApplicationException;
 import org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService;
+import org.apache.isis.viewer.restfulobjects.rendering.util.JsonWriterUtil;
 
 /**
  * Implementation note: it seems to be necessary to annotate the implementation
@@ -85,14 +86,23 @@ public class HealthResourceServerside extends ResourceAbstract implements Health
             init(RepresentationType.VERSION, Where.NOWHERE, RepresentationService.Intent.NOT_APPLICABLE);
 
             final HealthReprRenderer renderer = new HealthReprRenderer(getResourceContext(), null, JsonRepresentation.newMap());
+            final Health health;
             if(healthService != null) {
-                final Health health = healthService.check();
+                health = healthService.check();
                 renderer.with(health);
+            } else {
+                health = Health.ok();
             }
             renderer.includesSelf();
 
+            final Response.ResponseBuilder responseBuilder = health.getResult()
+                    ? Responses.ofOk(renderer, Caching.NONE)
+                    : Response.serverError()
+                            .entity(JsonWriterUtil.jsonFor(renderer.render()))
+                            .cacheControl(Caching.NONE.getCacheControl());
+
             final Response[] responseHolder = (Response[]) context;
-            responseHolder[0] = Responses.ofOk(renderer, Caching.ONE_DAY).build();
+            responseHolder[0] = responseBuilder.build();
         }
 
         @Inject