X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.ee%2Fsrc%2Forg%2Fargeo%2Fcms%2Fservlet%2Finternal%2FPkgServlet.java;h=ca4b6f74d70f9c27603fb7aaa9cefcc60f29bfde;hb=9e6715d360fb29bb817ecaf6d49f0c8a3cc014f5;hp=2b2ffcb10f084ff397a38df47354a72bb7dc32cd;hpb=54df376a9c2dd458a82eaa09bfbb718fe699dd0d;p=lgpl%2Fargeo-commons.git 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) {