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=722dc6b20b15014e3d963bd09617ddfd9b63a89f;hp=dd0b70afffba25c709bf39dd19be135a0e43d79b;hpb=d91553ee228ff195561e4eaff060df4a60d966ea;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 dd0b70aff..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; @@ -12,9 +14,9 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.argeo.cms.osgi.FilterRequirement; import org.argeo.cms.osgi.PublishNamespace; -import org.argeo.osgi.util.FilterRequirement; -import org.argeo.util.StreamUtils; +import org.argeo.cms.util.StreamUtils; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; import org.osgi.framework.FrameworkUtil; @@ -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) {