org.apache.xbean.osgi.bundle.util
Class BundleClassFinder
java.lang.Object
org.apache.xbean.osgi.bundle.util.BundleClassFinder
- Direct Known Subclasses:
- BundleAssignableClassFinder
public class BundleClassFinder
- extends java.lang.Object
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: 942661 $ $Date: 2010-05-10 07:17:20 +0200 (Mon, 10 May 2010) $
Constructor Summary |
BundleClassFinder(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 |
protected java.lang.String |
addSlash(java.lang.String name)
|
protected BundleClassFinder |
createSubBundleClassFinder(org.osgi.service.packageadmin.PackageAdmin packageAdmin,
org.osgi.framework.Bundle bundle,
ClassDiscoveryFilter classDiscoveryFilter)
|
java.util.Set<java.lang.String> |
find()
Finds all available classes to the bundle. |
protected boolean |
isClassAcceptable(java.lang.String name,
java.io.InputStream in)
|
protected boolean |
isClassAcceptable(java.net.URL url)
|
protected org.osgi.framework.Bundle |
isWired(org.osgi.framework.Bundle bundle,
org.osgi.service.packageadmin.ExportedPackage[] exports)
|
protected org.osgi.framework.Bundle |
isWired(org.osgi.framework.Bundle bundle,
org.osgi.service.packageadmin.RequiredBundle[] requiredBundles)
|
java.util.List<java.lang.Class> |
loadClasses(java.util.Set<java.lang.String> classes)
|
protected java.lang.String |
toJavaStyleClassName(java.lang.String name)
|
protected java.lang.String |
toJavaStylePackageName(java.lang.String className)
Get the normal Java style package name from the parameter className. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
FULL_CLASS_DISCOVERY_FILTER
public static final ClassDiscoveryFilter FULL_CLASS_DISCOVERY_FILTER
IMPORTED_PACKAGE_EXCLUSIVE_FILTER
public static final ClassDiscoveryFilter IMPORTED_PACKAGE_EXCLUSIVE_FILTER
EXT
protected static final java.lang.String EXT
- See Also:
- Constant Field Values
PATTERN
protected static final java.lang.String PATTERN
- See Also:
- Constant Field Values
bundle
protected org.osgi.framework.Bundle bundle
packageAdmin
protected org.osgi.service.packageadmin.PackageAdmin packageAdmin
discoveryFilter
protected ClassDiscoveryFilter discoveryFilter
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)
loadClasses
public java.util.List<java.lang.Class> loadClasses(java.util.Set<java.lang.String> classes)
find
public java.util.Set<java.lang.String> 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
protected boolean isClassAcceptable(java.lang.String name,
java.io.InputStream in)
throws java.io.IOException
- Throws:
java.io.IOException
isClassAcceptable
protected boolean isClassAcceptable(java.net.URL url)
createSubBundleClassFinder
protected BundleClassFinder createSubBundleClassFinder(org.osgi.service.packageadmin.PackageAdmin packageAdmin,
org.osgi.framework.Bundle bundle,
ClassDiscoveryFilter classDiscoveryFilter)
toJavaStyleClassName
protected java.lang.String toJavaStyleClassName(java.lang.String name)
toJavaStylePackageName
protected java.lang.String toJavaStylePackageName(java.lang.String className)
- 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
protected java.lang.String addSlash(java.lang.String name)
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)
Copyright © 2005-2011. All Rights Reserved.