public class PackageAdminResolver extends java.lang.Object implements DependencyResolver
PackageAdmin based dependency resolver.
This implementation uses the OSGi PackageAdmin service to determine
dependencies between bundles. Since it's highly dependent on an external
service, it might be better to use a listener based implementation for poor
performing environments.
This implementation does consider required bundles.| Modifier and Type | Field and Description |
|---|---|
private org.osgi.framework.BundleContext |
bundleContext |
private static org.apache.commons.logging.Log |
log
logger
|
| Constructor and Description |
|---|
PackageAdminResolver(org.osgi.framework.BundleContext bundleContext) |
| Modifier and Type | Method and Description |
|---|---|
private void |
addExportedPackages(java.util.Map<org.osgi.framework.Bundle,java.util.List<java.lang.String>> map,
org.osgi.framework.Bundle bundle,
org.osgi.service.packageadmin.ExportedPackage[] pkgs)
Adds the bundle exporting the given packages which are then imported by
the owning bundle.
|
private void |
addImportedBundle(java.util.Map<org.osgi.framework.Bundle,java.util.List<java.lang.String>> map,
org.osgi.service.packageadmin.ExportedPackage expPackage)
Adds the imported bundle to the map of packages.
|
ImportedBundle[] |
getImportedBundles(org.osgi.framework.Bundle bundle)
Returns the bundles imported by the given bundle.
|
private org.osgi.service.packageadmin.PackageAdmin |
getPackageAdmin() |
private static final org.apache.commons.logging.Log log
private final org.osgi.framework.BundleContext bundleContext
public PackageAdminResolver(org.osgi.framework.BundleContext bundleContext)
public ImportedBundle[] getImportedBundles(org.osgi.framework.Bundle bundle)
DependencyResolvergetImportedBundles in interface DependencyResolverbundle - OSGi bundle for which imported bundles will be determinedprivate void addImportedBundle(java.util.Map<org.osgi.framework.Bundle,java.util.List<java.lang.String>> map,
org.osgi.service.packageadmin.ExportedPackage expPackage)
map - bundle - packageName - private void addExportedPackages(java.util.Map<org.osgi.framework.Bundle,java.util.List<java.lang.String>> map,
org.osgi.framework.Bundle bundle,
org.osgi.service.packageadmin.ExportedPackage[] pkgs)
map - bundle - pkgs - private org.osgi.service.packageadmin.PackageAdmin getPackageAdmin()