X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.ui%2Fsrc%2Forg%2Fargeo%2Fcms%2Futil%2FBundleResourceLoader.java;h=7342e10521c2876edf396c7f89ec47a6aa33aac7;hb=e54c6091d38b6859dec42f36e7334da19e2a0227;hp=cda00efcdeac88f239ca33f2b933e038fe1efef9;hpb=972528f4de2d00690362c01d3ce843ca9cd10250;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.ui/src/org/argeo/cms/util/BundleResourceLoader.java b/org.argeo.cms.ui/src/org/argeo/cms/util/BundleResourceLoader.java index cda00efcd..7342e1052 100644 --- a/org.argeo.cms.ui/src/org/argeo/cms/util/BundleResourceLoader.java +++ b/org.argeo.cms.ui/src/org/argeo/cms/util/BundleResourceLoader.java @@ -7,41 +7,28 @@ import java.net.URL; import org.argeo.cms.CmsException; import org.eclipse.rap.rwt.service.ResourceLoader; import org.osgi.framework.Bundle; -import org.osgi.framework.BundleContext; /** {@link ResourceLoader} implementation wrapping an {@link Bundle}. */ public class BundleResourceLoader implements ResourceLoader { - private final BundleContext bundleContext; + private final Bundle bundle; - public BundleResourceLoader(BundleContext bundleContext) { - this.bundleContext = bundleContext; + public BundleResourceLoader(Bundle bundle) { + this.bundle = bundle; } @Override - public InputStream getResourceAsStream(String resourceName) - throws IOException { - // TODO deal with other bundles - Bundle bundle = bundleContext.getBundle(); - // String location = - // bundle.getLocation().substring("initial@reference:".length()); - // if (location.startsWith("file:")) { - // Path path = null; - // try { - // path = Paths.get(new URI(location)); - // } catch (URISyntaxException e) { - // e.printStackTrace(); - // } - // if (path != null) { - // Path resourcePath = path.resolve(resourceName); - // if (Files.exists(resourcePath)) - // return Files.newInputStream(resourcePath); - // } - // } - URL res = bundle.getResource(resourceName); - if (res == null) - throw new CmsException("Resource " + resourceName - + " not found in bundle " + bundle.getSymbolicName()); + public InputStream getResourceAsStream(String resourceName) throws IOException { + URL res = bundle.getEntry(resourceName); + if (res == null) { + res = bundle.getResource(resourceName); + if (res == null) + throw new CmsException("Resource " + resourceName + " not found in bundle " + bundle.getSymbolicName()); + } return res.openStream(); } + public Bundle getBundle() { + return bundle; + } + }