Mercurial > hg > thermostat-ng > web-gateway
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); } }