1 package org
.argeo
.slc
.osgi
.deploy
;
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
;
13 * Retrieves ressources from an OSGi bundle either the active one or another one
14 * referenced by its symbolic name.
16 public class OsgiResourceSet
extends DefaultResourceSet
implements
18 private BundleContext bundleContext
;
19 private Bundle bundle
= null;
20 private String bundleSymbolicName
= null;
22 private OsgiBundleResourceLoader osgiBundleResourceLoader
= null;
25 public void afterPropertiesSet() throws Exception
{
26 osgiBundleResourceLoader
= new OsgiBundleResourceLoader(getBundle());
27 if (getResourcePatternResolver() == null)
28 setResourcePatternResolver(new OsgiBundleResourcePatternResolver(
29 osgiBundleResourceLoader
));
30 super.afterPropertiesSet();
33 public Bundle
getBundle() {
36 else if (bundleSymbolicName
!= null)// do not cache
37 return OsgiBundleUtils
.findBundleBySymbolicName(bundleContext
,
41 return bundleContext
.getBundle();
44 public void setBundleContext(BundleContext bundleContext
) {
45 this.bundleContext
= bundleContext
;
49 public ResourceLoader
getResourceLoaderToUse() {
50 return osgiBundleResourceLoader
;
53 public void setBundle(Bundle bundle
) {
57 public void setBundleSymbolicName(String bundleSymbolicName
) {
58 this.bundleSymbolicName
= bundleSymbolicName
;