class StatefulResolver
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
(package private) static class |
StatefulResolver.ResolverHookRecord |
| Modifier and Type | Field and Description |
|---|---|
private java.util.Map<java.lang.String,CapabilitySet> |
m_capSets |
private Felix |
m_felix |
private java.util.Set<BundleRevision> |
m_fragments |
private java.util.Set<java.lang.String> |
m_fwkExecEnvSet |
private java.lang.String |
m_fwkExecEnvStr |
private boolean |
m_isResolving |
private Logger |
m_logger |
private ServiceRegistry |
m_registry |
private org.apache.felix.resolver.ResolverImpl |
m_resolver |
private java.util.Set<BundleRevision> |
m_revisions |
private java.util.Set<BundleRevision> |
m_selectedSingletons |
private java.util.Map<java.lang.String,java.util.List<BundleRevision>> |
m_singletons |
| Constructor and Description |
|---|
StatefulResolver(Felix felix,
ServiceRegistry registry) |
| Modifier and Type | Method and Description |
|---|---|
(package private) void |
addRevision(BundleRevision br) |
private static void |
addToSingletonMap(java.util.Map<java.lang.String,java.util.List<BundleRevision>> singletons,
BundleRevision br) |
private static java.util.Set<java.lang.String> |
calculateExportedAndReexportedPackages(BundleRevision br,
java.util.Map<Resource,java.util.List<Wire>> wireMap,
java.util.Set<java.lang.String> pkgs,
java.util.Set<BundleRevision> cycles) |
(package private) void |
checkNativeLibraries(BundleRevision revision) |
private void |
deindexCapabilities(BundleRevision br) |
private boolean |
filteredBySecurity(BundleRequirement req,
BundleCapability cap) |
(package private) java.util.List<BundleCapability> |
findProviders(BundleRequirement req,
boolean obeyMandatory) |
(package private) java.util.List<BundleCapability> |
findProvidersInternal(StatefulResolver.ResolverHookRecord record,
Requirement req,
boolean obeyMandatory,
boolean invokeHooksAndSecurity) |
private void |
fireResolvedEvents(java.util.Map<Resource,java.util.List<Wire>> wireMap) |
private java.util.Set<BundleRevision> |
getFragments() |
private java.util.Set<BundleRevision> |
getUnresolvedRevisions() |
private java.util.Map<Resource,Wiring> |
getWirings() |
private java.util.List<BundleRevision> |
groupSingletons(java.util.Map<BundleCapability,java.util.Collection<BundleCapability>> allCollisions,
BundleCapability target,
java.util.List<BundleRevision> group) |
private void |
indexCapabilities(BundleRevision br) |
(package private) boolean |
isAllowedDynamicImport(BundleRevision revision,
java.lang.String pkgName) |
(package private) boolean |
isEffective(Requirement req) |
private boolean |
isSelectedSingleton(BundleRevision br) |
private void |
markBundleResolved(BundleRevision revision) |
private void |
markResolvedRevisions(java.util.Map<Resource,java.util.List<Wire>> wireMap) |
private static java.util.Set<java.lang.String> |
parseExecutionEnvironments(java.lang.String fwkExecEnvStr)
Updates the framework wide execution environment string and a cached Set of
execution environment tokens from the comma delimited list specified by the
system variable 'org.osgi.framework.executionenvironment'.
|
private StatefulResolver.ResolverHookRecord |
prepareResolverHooks(java.util.Set<BundleRevision> mandatory,
java.util.Set<BundleRevision> optional) |
private void |
releaseResolverHooks(StatefulResolver.ResolverHookRecord record) |
(package private) void |
removeRevision(BundleRevision br) |
(package private) BundleRevision |
resolve(BundleRevision revision,
java.lang.String pkgName) |
(package private) void |
resolve(java.util.Set<BundleRevision> mandatory,
java.util.Set<BundleRevision> optional) |
private void |
selectDefaultSingletons(StatefulResolver.ResolverHookRecord record) |
private void |
selectSingleton(StatefulResolver.ResolverHookRecord record,
java.util.List<BundleRevision> singletons) |
private void |
selectSingletons(StatefulResolver.ResolverHookRecord record) |
private void |
selectSingletonsUsingHooks(StatefulResolver.ResolverHookRecord record) |
(package private) void |
start() |
private final Logger m_logger
private final Felix m_felix
private final ServiceRegistry m_registry
private final org.apache.felix.resolver.ResolverImpl m_resolver
private boolean m_isResolving
private final java.util.Set<BundleRevision> m_revisions
private final java.util.Set<BundleRevision> m_fragments
private final java.util.Map<java.lang.String,CapabilitySet> m_capSets
private final java.util.Map<java.lang.String,java.util.List<BundleRevision>> m_singletons
private final java.util.Set<BundleRevision> m_selectedSingletons
private final java.lang.String m_fwkExecEnvStr
private final java.util.Set<java.lang.String> m_fwkExecEnvSet
StatefulResolver(Felix felix, ServiceRegistry registry)
void start()
void addRevision(BundleRevision br)
void removeRevision(BundleRevision br)
boolean isEffective(Requirement req)
java.util.List<BundleCapability> findProviders(BundleRequirement req, boolean obeyMandatory)
java.util.List<BundleCapability> findProvidersInternal(StatefulResolver.ResolverHookRecord record, Requirement req, boolean obeyMandatory, boolean invokeHooksAndSecurity)
private boolean filteredBySecurity(BundleRequirement req, BundleCapability cap)
void resolve(java.util.Set<BundleRevision> mandatory, java.util.Set<BundleRevision> optional) throws org.osgi.service.resolver.ResolutionException, BundleException
org.osgi.service.resolver.ResolutionExceptionBundleExceptionBundleRevision resolve(BundleRevision revision, java.lang.String pkgName) throws org.osgi.service.resolver.ResolutionException, BundleException
org.osgi.service.resolver.ResolutionExceptionBundleExceptionprivate StatefulResolver.ResolverHookRecord prepareResolverHooks(java.util.Set<BundleRevision> mandatory, java.util.Set<BundleRevision> optional) throws BundleException, org.osgi.service.resolver.ResolutionException
BundleExceptionorg.osgi.service.resolver.ResolutionExceptionprivate void releaseResolverHooks(StatefulResolver.ResolverHookRecord record) throws BundleException
BundleExceptionboolean isAllowedDynamicImport(BundleRevision revision, java.lang.String pkgName)
private void markResolvedRevisions(java.util.Map<Resource,java.util.List<Wire>> wireMap) throws ResolveException
ResolveExceptionprivate void markBundleResolved(BundleRevision revision)
private void fireResolvedEvents(java.util.Map<Resource,java.util.List<Wire>> wireMap)
private static java.util.Set<java.lang.String> calculateExportedAndReexportedPackages(BundleRevision br, java.util.Map<Resource,java.util.List<Wire>> wireMap, java.util.Set<java.lang.String> pkgs, java.util.Set<BundleRevision> cycles)
private void indexCapabilities(BundleRevision br)
private void deindexCapabilities(BundleRevision br)
private boolean isSelectedSingleton(BundleRevision br)
private void selectSingletons(StatefulResolver.ResolverHookRecord record) throws BundleException
BundleExceptionprivate void selectDefaultSingletons(StatefulResolver.ResolverHookRecord record)
private void selectSingletonsUsingHooks(StatefulResolver.ResolverHookRecord record) throws BundleException
BundleExceptionprivate java.util.List<BundleRevision> groupSingletons(java.util.Map<BundleCapability,java.util.Collection<BundleCapability>> allCollisions, BundleCapability target, java.util.List<BundleRevision> group)
private void selectSingleton(StatefulResolver.ResolverHookRecord record, java.util.List<BundleRevision> singletons)
private java.util.Set<BundleRevision> getFragments()
void checkNativeLibraries(BundleRevision revision) throws ResolveException
ResolveExceptionprivate java.util.Set<BundleRevision> getUnresolvedRevisions()
private static java.util.Set<java.lang.String> parseExecutionEnvironments(java.lang.String fwkExecEnvStr)
fwkExecEnvStr - Comma delimited string of provided execution environmentsprivate static void addToSingletonMap(java.util.Map<java.lang.String,java.util.List<BundleRevision>> singletons, BundleRevision br)