]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.support.osgi/src/main/java/org/argeo/slc/osgi/deploy/OsgiResourceSet.java
resolution of Bug 242: ExecutionFlowGenerator implements Ordered instead of PriorityO...
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.osgi / src / main / java / org / argeo / slc / osgi / deploy / OsgiResourceSet.java
1 package org.argeo.slc.osgi.deploy;
2
3 import org.argeo.slc.core.deploy.DefaultResourceSet;
4 import org.osgi.framework.Bundle;
5 import org.osgi.framework.BundleContext;
6 import org.springframework.core.io.ResourceLoader;
7 import org.springframework.osgi.context.BundleContextAware;
8 import org.springframework.osgi.io.OsgiBundleResourceLoader;
9 import org.springframework.osgi.io.OsgiBundleResourcePatternResolver;
10 import org.springframework.osgi.util.OsgiBundleUtils;
11
12 public class OsgiResourceSet extends DefaultResourceSet implements
13 BundleContextAware {
14 private BundleContext bundleContext;
15 private Bundle bundle = null;
16 private String bundleSymbolicName = null;
17
18 private OsgiBundleResourceLoader osgiBundleResourceLoader = null;
19
20 @Override
21 public void afterPropertiesSet() throws Exception {
22 osgiBundleResourceLoader = new OsgiBundleResourceLoader(getBundle());
23 if (getResourcePatternResolver() == null)
24 setResourcePatternResolver(new OsgiBundleResourcePatternResolver(
25 osgiBundleResourceLoader));
26 super.afterPropertiesSet();
27 }
28
29 public Bundle getBundle() {
30 if (bundle != null)
31 return bundle;
32 else if (bundleSymbolicName != null)// do not cache
33 return OsgiBundleUtils.findBundleBySymbolicName(bundleContext,
34 bundleSymbolicName);
35 else
36 // containing bundle
37 return bundleContext.getBundle();
38 }
39
40 public void setBundleContext(BundleContext bundleContext) {
41 this.bundleContext = bundleContext;
42 }
43
44 @Override
45 public ResourceLoader getResourceLoaderToUse() {
46 return osgiBundleResourceLoader;
47 }
48
49 public void setBundle(Bundle bundle) {
50 this.bundle = bundle;
51 }
52
53 public void setBundleSymbolicName(String bundleSymbolicName) {
54 this.bundleSymbolicName = bundleSymbolicName;
55 }
56
57 }