- All Implemented Interfaces:
- ResourceLoader, ResourcePatternResolver
public class OsgiBundleResourcePatternResolver
- extends PathMatchingResourcePatternResolver
OSGi-aware ClassPath support
As mentioned by
Can find resources in the bundle jar and bundle space.
OsgiBundleResource for more information.
pattern matching needs to resolve the class-path structure to a file-system
location (be it an actual folder or a jar). Inside the OSGi environment this
is problematic as the bundles can be loaded in memory directly from input
streams. To avoid relying on each platform bundle storage structure, this
implementation tries to determine the bundles that assemble the given bundle
class-path and analyze each of them individually. This involves the bundle
archive (including special handling of the
it is computed at runtime), the bundle required packages and its attached
Depending on the configuration of running environment, this might cause
significant IO activity which can affect performance.
Note: Currently, static imports as well as
are supported. Support for
DynamicPackage-Import depends on
how/when the underlying platform does the wiring between the dynamically
imported bundle and the given bundle.
Portability Note: Since it relies only on the OSGi API, this
implementation depends heavily on how closely the platform implements the
OSGi spec. While significant tests have been made to ensure compatibility,
one might experience different behaviour especially when dealing
with jars with missing folder entries or boot-path delegation. It is strongly
recommended that wildcard resolution be thoroughly tested before switching to
a different platform before you rely on it.
- Costin Leau
- See Also:
|Methods inherited from class org.springframework.core.io.support.PathMatchingResourcePatternResolver
convertClassLoaderURL, determineRootDir, doFindMatchingFileSystemResources, doFindPathMatchingFileResources, doFindPathMatchingJarResources, doRetrieveMatchingFiles, findAllClassPathResources, findPathMatchingResources, getClassLoader, getJarFile, getPathMatcher, getResource, getResourceLoader, resolveRootDirResource, retrieveMatchingFiles, setPathMatcher
|Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
public OsgiBundleResourcePatternResolver(Bundle bundle)
public OsgiBundleResourcePatternResolver(ResourceLoader resourceLoader)
protected Resource findResources(String locationPattern)
- Finds existing resources. This method returns the actual resources found
w/o adding any extra decoration (such as non-existing resources).
locationPattern - location pattern
- found resources (w/o any decoration)
IOException - in case of I/O errors
public Resource getResources(String locationPattern)
- Specified by:
getResources in interface
getResources in class
protected boolean isJarResource(Resource resource)
Overrides the default check up since computing the URL can be fairly
expensive operation as there is no caching (due to the framework dynamic
isJarResource in class
Copyright © 2006-2009 Spring Framework. All Rights Reserved.