From 056d4ea5128c92eb44d43a2609569e2c63cc5b52 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Wed, 30 Aug 2023 08:40:49 +0200 Subject: [PATCH] Add content type to package servlet --- .../org/argeo/cms/servlet/internal/PkgServlet.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/org.argeo.cms.ee/src/org/argeo/cms/servlet/internal/PkgServlet.java b/org.argeo.cms.ee/src/org/argeo/cms/servlet/internal/PkgServlet.java index 2b2ffcb10..ca4b6f74d 100644 --- a/org.argeo.cms.ee/src/org/argeo/cms/servlet/internal/PkgServlet.java +++ b/org.argeo.cms.ee/src/org/argeo/cms/servlet/internal/PkgServlet.java @@ -2,7 +2,9 @@ package org.argeo.cms.servlet.internal; import java.io.IOException; import java.io.InputStream; +import java.net.FileNameMap; import java.net.URL; +import java.net.URLConnection; import java.util.Collection; import java.util.SortedMap; import java.util.TreeMap; @@ -26,9 +28,15 @@ import org.osgi.framework.wiring.BundleWiring; import org.osgi.framework.wiring.FrameworkWiring; import org.osgi.resource.Requirement; +/** + * Publishes client-side web resources (JavaScript, HTML, CSS, images, etc.) + * from the OSGi runtime. + */ public class PkgServlet extends HttpServlet { private static final long serialVersionUID = 7660824185145214324L; + private static FileNameMap fileNameMap = URLConnection.getFileNameMap(); + private BundleContext bundleContext = FrameworkUtil.getBundle(PkgServlet.class).getBundleContext(); @Override @@ -50,6 +58,10 @@ public class PkgServlet extends HttpServlet { throw new IllegalArgumentException("Unsupported path length " + pathInfo); } + // content type + String contentType = fileNameMap.getContentTypeFor(file); + resp.setContentType(contentType); + FrameworkWiring frameworkWiring = bundleContext.getBundle(0).adapt(FrameworkWiring.class); String filter; if (versionStr == null) { -- 2.30.2