X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.ui%2Fsrc%2Forg%2Fargeo%2Fcms%2Futil%2FStyleSheetResourceLoader.java;h=face42b0fe780d359399ead8cde83313b51caa27;hb=b837ab75edc9c3ce9bf0ce63ea44b0f41d6e1049;hp=a7e3b6e846ef6a93e85114aae26ee62f316205f8;hpb=972528f4de2d00690362c01d3ce843ca9cd10250;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.ui/src/org/argeo/cms/util/StyleSheetResourceLoader.java b/org.argeo.cms.ui/src/org/argeo/cms/util/StyleSheetResourceLoader.java index a7e3b6e84..face42b0f 100644 --- a/org.argeo.cms.ui/src/org/argeo/cms/util/StyleSheetResourceLoader.java +++ b/org.argeo.cms.ui/src/org/argeo/cms/util/StyleSheetResourceLoader.java @@ -12,24 +12,21 @@ import org.apache.commons.io.IOUtils; import org.argeo.cms.CmsException; import org.eclipse.rap.rwt.service.ResourceLoader; import org.osgi.framework.Bundle; -import org.osgi.framework.BundleContext; /** {@link ResourceLoader} caching stylesheets. */ public class StyleSheetResourceLoader implements ResourceLoader { - private final BundleContext bundleContext; - + private Bundle themeBundle; private Map stylesheets = new LinkedHashMap(); - public StyleSheetResourceLoader(BundleContext bundleContext) { - this.bundleContext = bundleContext; + public StyleSheetResourceLoader(Bundle themeBundle) { + this.themeBundle = themeBundle; } @Override - public InputStream getResourceAsStream(String resourceName) - throws IOException { + public InputStream getResourceAsStream(String resourceName) throws IOException { if (!stylesheets.containsKey(resourceName)) { // TODO deal with other bundles - Bundle bundle = bundleContext.getBundle(); + // Bundle bundle = bundleContext.getBundle(); // String location = // bundle.getLocation().substring("initial@reference:".length()); // if (location.startsWith("file:")) { @@ -45,10 +42,11 @@ public class StyleSheetResourceLoader implements ResourceLoader { // return Files.newInputStream(resourcePath); // } // } - URL res = bundle.getResource(resourceName); + + URL res = themeBundle.getEntry(resourceName); if (res == null) - throw new CmsException("Resource " + resourceName - + " not found in bundle " + bundle.getSymbolicName()); + throw new CmsException( + "Entry " + resourceName + " not found in bundle " + themeBundle.getSymbolicName()); ByteArrayOutputStream out = new ByteArrayOutputStream(); IOUtils.copy(res.openStream(), out); stylesheets.put(resourceName, new StyleSheet(out.toByteArray()));