]> git.argeo.org Git - gpl/argeo-slc.git/blob - legacy/org.argeo.slc.spring/src/org/argeo/slc/osgi/deploy/OsgiResourceSet.java
Adapt to changes in Argeo Commons
[gpl/argeo-slc.git] / legacy / org.argeo.slc.spring / src / 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.eclipse.gemini.blueprint.context.BundleContextAware;
5 import org.eclipse.gemini.blueprint.io.OsgiBundleResourceLoader;
6 import org.eclipse.gemini.blueprint.io.OsgiBundleResourcePatternResolver;
7 import org.eclipse.gemini.blueprint.util.OsgiBundleUtils;
8 import org.osgi.framework.Bundle;
9 import org.osgi.framework.BundleContext;
10 import org.springframework.core.io.ResourceLoader;
11
12 /**
13 * Retrieves ressources from an OSGi bundle either the active one or another one
14 * referenced by its symbolic name.
15 */
16 public class OsgiResourceSet extends DefaultResourceSet implements
17 BundleContextAware {
18 private BundleContext bundleContext;
19 private Bundle bundle = null;
20 private String bundleSymbolicName = null;
21
22 private OsgiBundleResourceLoader osgiBundleResourceLoader = null;
23
24 @Override
25 public void afterPropertiesSet() throws Exception {
26 osgiBundleResourceLoader = new OsgiBundleResourceLoader(getBundle());
27 if (getResourcePatternResolver() == null)
28 setResourcePatternResolver(new OsgiBundleResourcePatternResolver(
29 osgiBundleResourceLoader));
30 super.afterPropertiesSet();
31 }
32
33 public Bundle getBundle() {
34 if (bundle != null)
35 return bundle;
36 else if (bundleSymbolicName != null)// do not cache
37 return OsgiBundleUtils.findBundleBySymbolicName(bundleContext,
38 bundleSymbolicName);
39 else
40 // containing bundle
41 return bundleContext.getBundle();
42 }
43
44 public void setBundleContext(BundleContext bundleContext) {
45 this.bundleContext = bundleContext;
46 }
47
48 @Override
49 public ResourceLoader getResourceLoaderToUse() {
50 return osgiBundleResourceLoader;
51 }
52
53 public void setBundle(Bundle bundle) {
54 this.bundle = bundle;
55 }
56
57 public void setBundleSymbolicName(String bundleSymbolicName) {
58 this.bundleSymbolicName = bundleSymbolicName;
59 }
60
61 }