]> git.argeo.org Git - lgpl/argeo-commons.git/blob - swt/rap/org.argeo.cms.swt.rap/src/org/argeo/cms/web/BundleResourceLoader.java
Merge remote-tracking branch 'origin/unstable' into testing
[lgpl/argeo-commons.git] / swt / rap / org.argeo.cms.swt.rap / src / org / argeo / cms / web / BundleResourceLoader.java
1 package org.argeo.cms.web;
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
10 /** {@link ResourceLoader} implementation wrapping an {@link Bundle}. */
11 public class BundleResourceLoader implements ResourceLoader {
12 private final Bundle bundle;
13
14 public BundleResourceLoader(Bundle bundle) {
15 this.bundle = bundle;
16 }
17
18 @Override
19 public InputStream getResourceAsStream(String resourceName) throws IOException {
20 URL res = bundle.getEntry(resourceName);
21 if (res == null) {
22 res = bundle.getResource(resourceName);
23 if (res == null)
24 throw new IllegalArgumentException(
25 "Resource " + resourceName + " not found in bundle " + bundle.getSymbolicName());
26 }
27 return res.openStream();
28 }
29
30 public Bundle getBundle() {
31 return bundle;
32 }
33
34 }