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 class
StatefulResolver.ResolverHookRecord
-
Field Summary
Fields Modifier and Type Field 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 Resolver
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 Summary
Constructors Constructor Description StatefulResolver(Felix felix)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method 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<BundleRevision,java.util.List<ResolverWire>> 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<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 void
indexCapabilities(BundleRevision br)
(package private) boolean
isAllowedDynamicImport(BundleRevision revision, java.lang.String pkgName)
(package private) boolean
isEffective(BundleRequirement req)
private boolean
isSelectedSingleton(BundleRevision br)
private void
markBundleResolved(BundleRevision revision)
private void
markResolvedRevisions(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.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) void
resolve(java.util.Set<BundleRevision> mandatory, java.util.Set<BundleRevision> optional)
(package private) BundleRevision
resolve(BundleRevision revision, java.lang.String pkgName)
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)
-
-
-
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:
ResolveException
BundleException
-
resolve
BundleRevision resolve(BundleRevision revision, java.lang.String pkgName) throws ResolveException, BundleException
- Throws:
ResolveException
BundleException
-
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)
-
-