Package org.apache.felix.framework
Class StatefulResolver
- java.lang.Object
-
- org.apache.felix.framework.StatefulResolver
-
class StatefulResolver extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classStatefulResolver.ResolverHookRecord
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<java.lang.String,CapabilitySet>m_capSetsprivate Felixm_felixprivate java.util.Set<BundleRevision>m_fragmentsprivate java.util.Set<java.lang.String>m_fwkExecEnvSetprivate java.lang.Stringm_fwkExecEnvStrprivate booleanm_isResolvingprivate Loggerm_loggerprivate Resolverm_resolverprivate java.util.Set<BundleRevision>m_revisionsprivate java.util.Set<BundleRevision>m_selectedSingletonsprivate java.util.Map<java.lang.String,java.util.List<BundleRevision>>m_singletons
-
Constructor Summary
Constructors Constructor Description StatefulResolver(Felix felix)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) voidaddRevision(BundleRevision br)private static voidaddToSingletonMap(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<BundleRevision,java.util.List<ResolverWire>> wireMap, java.util.Set<java.lang.String> pkgs, java.util.Set<BundleRevision> cycles)(package private) voidcheckNativeLibraries(BundleRevision revision)private voiddeindexCapabilities(BundleRevision br)private booleanfilteredBySecurity(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 voidfireResolvedEvents(java.util.Map<BundleRevision,java.util.List<ResolverWire>> wireMap)private java.util.Set<BundleRevision>getFragments()private java.util.Set<BundleRevision>getUnresolvedRevisions()private java.util.Map<BundleRevision,BundleWiring>getWirings()private java.util.List<BundleRevision>groupSingletons(java.util.Map<BundleCapability,java.util.Collection<BundleCapability>> allCollisions, BundleCapability target, java.util.List<BundleRevision> group)private voidindexCapabilities(BundleRevision br)(package private) booleanisAllowedDynamicImport(BundleRevision revision, java.lang.String pkgName)(package private) booleanisEffective(BundleRequirement req)private booleanisSelectedSingleton(BundleRevision br)private voidmarkBundleResolved(BundleRevision revision)private voidmarkResolvedRevisions(java.util.Map<BundleRevision,java.util.List<ResolverWire>> 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.ResolverHookRecordprepareResolverHooks(java.util.Set<BundleRevision> mandatory, java.util.Set<BundleRevision> optional)private voidreleaseResolverHooks(StatefulResolver.ResolverHookRecord record)(package private) voidremoveRevision(BundleRevision br)(package private) voidresolve(java.util.Set<BundleRevision> mandatory, java.util.Set<BundleRevision> optional)(package private) BundleRevisionresolve(BundleRevision revision, java.lang.String pkgName)private voidselectDefaultSingletons(StatefulResolver.ResolverHookRecord record)private voidselectSingleton(StatefulResolver.ResolverHookRecord record, java.util.List<BundleRevision> singletons)private voidselectSingletons(StatefulResolver.ResolverHookRecord record)private voidselectSingletonsUsingHooks(StatefulResolver.ResolverHookRecord record)
-
-
-
Field Detail
-
m_logger
private final Logger m_logger
-
m_felix
private final Felix m_felix
-
m_resolver
private final Resolver m_resolver
-
m_isResolving
private boolean m_isResolving
-
m_revisions
private final java.util.Set<BundleRevision> m_revisions
-
m_fragments
private final java.util.Set<BundleRevision> m_fragments
-
m_capSets
private final java.util.Map<java.lang.String,CapabilitySet> m_capSets
-
m_singletons
private final java.util.Map<java.lang.String,java.util.List<BundleRevision>> m_singletons
-
m_selectedSingletons
private final java.util.Set<BundleRevision> m_selectedSingletons
-
m_fwkExecEnvStr
private final java.lang.String m_fwkExecEnvStr
-
m_fwkExecEnvSet
private final java.util.Set<java.lang.String> m_fwkExecEnvSet
-
-
Constructor Detail
-
StatefulResolver
StatefulResolver(Felix felix)
-
-
Method Detail
-
addRevision
void addRevision(BundleRevision br)
-
removeRevision
void removeRevision(BundleRevision br)
-
isEffective
boolean isEffective(BundleRequirement req)
-
findProviders
java.util.List<BundleCapability> findProviders(BundleRequirement req, boolean obeyMandatory)
-
findProvidersInternal
java.util.List<BundleCapability> findProvidersInternal(StatefulResolver.ResolverHookRecord record, Requirement req, boolean obeyMandatory, boolean invokeHooksAndSecurity)
-
filteredBySecurity
private boolean filteredBySecurity(BundleRequirement req, BundleCapability cap)
-
resolve
void resolve(java.util.Set<BundleRevision> mandatory, java.util.Set<BundleRevision> optional) throws ResolveException, BundleException
- Throws:
ResolveExceptionBundleException
-
resolve
BundleRevision resolve(BundleRevision revision, java.lang.String pkgName) throws ResolveException, BundleException
- Throws:
ResolveExceptionBundleException
-
prepareResolverHooks
private StatefulResolver.ResolverHookRecord prepareResolverHooks(java.util.Set<BundleRevision> mandatory, java.util.Set<BundleRevision> optional) throws BundleException
- Throws:
BundleException
-
releaseResolverHooks
private void releaseResolverHooks(StatefulResolver.ResolverHookRecord record) throws BundleException
- Throws:
BundleException
-
isAllowedDynamicImport
boolean isAllowedDynamicImport(BundleRevision revision, java.lang.String pkgName)
-
markResolvedRevisions
private void markResolvedRevisions(java.util.Map<BundleRevision,java.util.List<ResolverWire>> wireMap) throws ResolveException
- Throws:
ResolveException
-
markBundleResolved
private void markBundleResolved(BundleRevision revision)
-
fireResolvedEvents
private void fireResolvedEvents(java.util.Map<BundleRevision,java.util.List<ResolverWire>> wireMap)
-
calculateExportedAndReexportedPackages
private static java.util.Set<java.lang.String> calculateExportedAndReexportedPackages(BundleRevision br, java.util.Map<BundleRevision,java.util.List<ResolverWire>> wireMap, java.util.Set<java.lang.String> pkgs, java.util.Set<BundleRevision> cycles)
-
indexCapabilities
private void indexCapabilities(BundleRevision br)
-
deindexCapabilities
private void deindexCapabilities(BundleRevision br)
-
isSelectedSingleton
private boolean isSelectedSingleton(BundleRevision br)
-
selectSingletons
private void selectSingletons(StatefulResolver.ResolverHookRecord record) throws BundleException
- Throws:
BundleException
-
selectDefaultSingletons
private void selectDefaultSingletons(StatefulResolver.ResolverHookRecord record)
-
selectSingletonsUsingHooks
private void selectSingletonsUsingHooks(StatefulResolver.ResolverHookRecord record) throws BundleException
- Throws:
BundleException
-
groupSingletons
private java.util.List<BundleRevision> groupSingletons(java.util.Map<BundleCapability,java.util.Collection<BundleCapability>> allCollisions, BundleCapability target, java.util.List<BundleRevision> group)
-
selectSingleton
private void selectSingleton(StatefulResolver.ResolverHookRecord record, java.util.List<BundleRevision> singletons)
-
getFragments
private java.util.Set<BundleRevision> getFragments()
-
checkNativeLibraries
void checkNativeLibraries(BundleRevision revision) throws ResolveException
- Throws:
ResolveException
-
getUnresolvedRevisions
private java.util.Set<BundleRevision> getUnresolvedRevisions()
-
getWirings
private java.util.Map<BundleRevision,BundleWiring> getWirings()
-
parseExecutionEnvironments
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'.- Parameters:
fwkExecEnvStr- Comma delimited string of provided execution environments- Returns:
- the parsed set of execution environments
-
addToSingletonMap
private static void addToSingletonMap(java.util.Map<java.lang.String,java.util.List<BundleRevision>> singletons, BundleRevision br)
-
-