Class BundleClassFinder
java.lang.Object
org.apache.xbean.osgi.bundle.util.BundleClassFinder
- Direct Known Subclasses:
BundleAssignableClassFinder
Finds all available classes to a bundle by scanning Bundle-ClassPath,
Import-Package, and Require-Bundle headers of the given bundle and its fragments.
DynamicImport-Package header is not considered during scanning.
- Version:
- $Rev: 1160131 $ $Date: 2011-08-22 09:07:20 +0200 (Mon, 22 Aug 2011) $
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic class -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.osgi.framework.Bundleprotected ClassDiscoveryFilterprotected static final Stringstatic final ClassDiscoveryFilterstatic final ClassDiscoveryFilterprotected org.osgi.service.packageadmin.PackageAdminprotected static final String -
Constructor Summary
ConstructorsConstructorDescriptionBundleClassFinder(org.osgi.service.packageadmin.PackageAdmin packageAdmin, org.osgi.framework.Bundle bundle) BundleClassFinder(org.osgi.service.packageadmin.PackageAdmin packageAdmin, org.osgi.framework.Bundle bundle, ClassDiscoveryFilter discoveryFilter) -
Method Summary
Modifier and TypeMethodDescriptionprotected Stringprotected BundleClassFindercreateSubBundleClassFinder(org.osgi.service.packageadmin.PackageAdmin packageAdmin, org.osgi.framework.Bundle bundle, ClassDiscoveryFilter classDiscoveryFilter) find()Finds all available classes to the bundle.protected booleanisClassAcceptable(String name, InputStream in) protected booleanisClassAcceptable(URL url) protected org.osgi.framework.BundleisWired(org.osgi.framework.Bundle bundle, org.osgi.service.packageadmin.ExportedPackage[] exports) protected org.osgi.framework.BundleisWired(org.osgi.framework.Bundle bundle, org.osgi.service.packageadmin.RequiredBundle[] requiredBundles) loadClasses(Set<String> classes) protected StringtoJavaStyleClassName(String name) protected StringtoJavaStylePackageName(String className) Get the normal Java style package name from the parameter className.
-
Field Details
-
FULL_CLASS_DISCOVERY_FILTER
-
IMPORTED_PACKAGE_EXCLUSIVE_FILTER
-
EXT
- See Also:
-
PATTERN
- See Also:
-
bundle
protected org.osgi.framework.Bundle bundle -
packageAdmin
protected org.osgi.service.packageadmin.PackageAdmin packageAdmin -
discoveryFilter
-
-
Constructor Details
-
BundleClassFinder
public BundleClassFinder(org.osgi.service.packageadmin.PackageAdmin packageAdmin, org.osgi.framework.Bundle bundle) -
BundleClassFinder
public BundleClassFinder(org.osgi.service.packageadmin.PackageAdmin packageAdmin, org.osgi.framework.Bundle bundle, ClassDiscoveryFilter discoveryFilter)
-
-
Method Details
-
loadClasses
-
find
Finds all available classes to the bundle. Some of the classes in the returned set might not be loadable.- Returns:
- classes visible to the bundle. Not all classes returned might be loadable.
-
isClassAcceptable
- Throws:
IOException
-
isClassAcceptable
-
createSubBundleClassFinder
protected BundleClassFinder createSubBundleClassFinder(org.osgi.service.packageadmin.PackageAdmin packageAdmin, org.osgi.framework.Bundle bundle, ClassDiscoveryFilter classDiscoveryFilter) -
toJavaStyleClassName
-
toJavaStylePackageName
Get the normal Java style package name from the parameter className. If the className is ended with .class extension, e.g. /org/apache/geronimo/TestCass.class or org.apache.geronimo.TestClass.class, then org/apache/geronimo is returned If the className is not ended with .class extension, e.g. /org/apache/geronimo/TestCass or org.apache.geronimo.TestClass, then org/apache/geronimo is returned- Returns:
- Normal Java style package name, should be like org.apache.geronimo
-
addSlash
-
isWired
protected org.osgi.framework.Bundle isWired(org.osgi.framework.Bundle bundle, org.osgi.service.packageadmin.ExportedPackage[] exports) -
isWired
protected org.osgi.framework.Bundle isWired(org.osgi.framework.Bundle bundle, org.osgi.service.packageadmin.RequiredBundle[] requiredBundles)
-