]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/BundleResourceLoader.java
Clean up code
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / BundleResourceLoader.java
1 package org.argeo.cms;
2
3 import java.io.IOException;
4 import java.io.InputStream;
5 import java.net.URL;
6
7 import org.eclipse.rap.rwt.service.ResourceLoader;
8 import org.osgi.framework.Bundle;
9 import org.osgi.framework.BundleContext;
10
11 /** {@link ResourceLoader} implementation wrapping an {@link Bundle}. */
12 class BundleResourceLoader implements ResourceLoader {
13 private final BundleContext bundleContext;
14
15 public BundleResourceLoader(BundleContext bundleContext) {
16 this.bundleContext = bundleContext;
17 }
18
19 @Override
20 public InputStream getResourceAsStream(String resourceName)
21 throws IOException {
22 // TODO deal with other bundles
23 Bundle bundle = bundleContext.getBundle();
24 URL res = bundle.getResource(resourceName);
25 if (res == null)
26 throw new CmsException("Resource " + resourceName
27 + " not found in bundle " + bundle.getSymbolicName());
28 return bundleContext.getBundle().getResource(resourceName).openStream();
29 }
30
31 }