changeset 265:7b76693bf27d

Return static resources with appropriate type. Reviewed-by: neugens Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2017-September/025178.html
author Severin Gehwolf <sgehwolf@redhat.com>
date Mon, 25 Sep 2017 16:40:59 +0200
parents 6cabe315cb1f
children 3055303a670f
files common/core/src/main/java/com/redhat/thermostat/gateway/common/core/servlet/BasicResourceHandler.java services/commands/src/main/java/com/redhat/thermostat/gateway/service/commands/http/handlers/StaticResourcesHandler.java
diffstat 2 files changed, 13 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/common/core/src/main/java/com/redhat/thermostat/gateway/common/core/servlet/BasicResourceHandler.java	Fri Sep 22 10:09:13 2017 -0400
+++ b/common/core/src/main/java/com/redhat/thermostat/gateway/common/core/servlet/BasicResourceHandler.java	Mon Sep 25 16:40:59 2017 +0200
@@ -42,6 +42,7 @@
 import java.io.InputStreamReader;
 import java.nio.charset.StandardCharsets;
 
+import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
 /**
@@ -51,9 +52,13 @@
 public class BasicResourceHandler {
 
     protected Response getFileAsResponse(ClassLoader loader, String fileName) throws IOException {
+        return getFileAsResponse(loader, fileName, MediaType.TEXT_PLAIN_TYPE);
+    }
+
+    protected Response getFileAsResponse(ClassLoader loader, String fileName, MediaType type) throws IOException {
         try (InputStream stream = loader.getResourceAsStream(fileName);) {
             String responseContent = read(stream);
-            return Response.ok(responseContent).build();
+            return Response.ok(responseContent, type).build();
         }
     }
 
--- a/services/commands/src/main/java/com/redhat/thermostat/gateway/service/commands/http/handlers/StaticResourcesHandler.java	Fri Sep 22 10:09:13 2017 -0400
+++ b/services/commands/src/main/java/com/redhat/thermostat/gateway/service/commands/http/handlers/StaticResourcesHandler.java	Mon Sep 25 16:40:59 2017 +0200
@@ -48,11 +48,15 @@
 import com.redhat.thermostat.gateway.common.core.servlet.BasicResourceHandler;
 
 @Path("{fileName: .+(\\.(yaml|html))}")
-@Produces(MediaType.TEXT_PLAIN)
+@Produces({MediaType.TEXT_PLAIN, MediaType.TEXT_HTML})
 public class StaticResourcesHandler extends BasicResourceHandler {
 
     @GET
-    public Response getFileAsPlainText(@PathParam("fileName") String fileName) throws IOException {
-        return getFileAsResponse(StaticResourcesHandler.class.getClassLoader(), fileName);
+    public Response getFileAsTextOrHtml(@PathParam("fileName") String fileName) throws IOException {
+        MediaType type = MediaType.TEXT_PLAIN_TYPE;
+        if (fileName.endsWith(".html")) {
+            type = MediaType.TEXT_HTML_TYPE;
+        }
+        return getFileAsResponse(StaticResourcesHandler.class.getClassLoader(), fileName, type);
     }
 }