public class DependencyServiceManager
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
private class |
DependencyServiceManager.DependencyServiceListener
Actual ServiceListener.
|
| Modifier and Type | Field and Description |
|---|---|
private org.osgi.framework.BundleContext |
bundleContext |
private DelegatedExecutionOsgiBundleApplicationContext |
context |
private ContextExecutorAccessor |
contextStateAccessor |
protected java.util.Map<MandatoryServiceDependency,java.lang.String> |
dependencies |
private java.util.List<OsgiServiceDependencyFactory> |
dependencyFactories
dependency factories
|
private java.lang.Runnable |
executeIfDone
Task to execute if all dependencies are met.
|
private org.osgi.framework.ServiceListener |
listener |
private static org.apache.commons.logging.Log |
log |
private java.lang.Object |
monitor |
private static java.util.Map<MandatoryServiceDependency,java.lang.String> |
UNMODIFIABLE_DEPENDENCY_MAP |
protected java.util.Map<MandatoryServiceDependency,java.lang.String> |
unsatisfiedDependencies |
private long |
waitTime
Maximum waiting time used in events when waiting for dependencies
|
| Constructor and Description |
|---|
DependencyServiceManager(ContextExecutorAccessor executor,
DelegatedExecutionOsgiBundleApplicationContext context,
java.util.List<OsgiServiceDependencyFactory> dependencyFactories,
java.lang.Runnable executeIfDone,
long maxWaitTime)
Create a dependency manager, indicating the executor bound to, the context that contains the dependencies and the
task to execute if all dependencies are met.
|
private static final java.util.Map<MandatoryServiceDependency,java.lang.String> UNMODIFIABLE_DEPENDENCY_MAP
private static final org.apache.commons.logging.Log log
private final java.lang.Object monitor
protected final java.util.Map<MandatoryServiceDependency,java.lang.String> dependencies
protected final java.util.Map<MandatoryServiceDependency,java.lang.String> unsatisfiedDependencies
private final ContextExecutorAccessor contextStateAccessor
private final org.osgi.framework.BundleContext bundleContext
private final org.osgi.framework.ServiceListener listener
private final DelegatedExecutionOsgiBundleApplicationContext context
private final java.lang.Runnable executeIfDone
private final long waitTime
private java.util.List<OsgiServiceDependencyFactory> dependencyFactories
public DependencyServiceManager(ContextExecutorAccessor executor, DelegatedExecutionOsgiBundleApplicationContext context, java.util.List<OsgiServiceDependencyFactory> dependencyFactories, java.lang.Runnable executeIfDone, long maxWaitTime)
executor - context - executeIfDone - protected void findServiceDependencies()
throws java.lang.Exception
java.lang.Exceptionprivate void doFindDependencies()
throws java.lang.Exception
java.lang.Exceptionpublic boolean isSatisfied()
public java.util.Map<MandatoryServiceDependency,java.lang.String> getUnsatisfiedDependencies()
protected void register()
private java.lang.String createDependencyFilter()
java.lang.String createUnsatisfiedDependencyFilter()
private java.lang.String createDependencyFilter(java.util.Collection<MandatoryServiceDependency> dependencies)
protected void deregister()
java.util.List<OsgiServiceDependencyEvent> getUnsatisfiedDependenciesAsEvents()
private java.util.List<OsgiServiceDependencyEvent> getUnsatisfiedDependenciesAsEvents(java.util.Collection<MandatoryServiceDependency> deps)
private void sendDependencyUnsatisfiedEvent(MandatoryServiceDependency dependency)
private void sendDependencySatisfiedEvent(MandatoryServiceDependency dependency)
private void sendInitialBootstrappingEvents(java.util.Set<MandatoryServiceDependency> deps)
private void sendBootstrappingDependenciesEvent(java.util.Set<MandatoryServiceDependency> deps)
private void publishEvent(OsgiBundleApplicationContextEvent dependencyEvent)
private java.security.AccessControlContext getAcc()
public boolean allDependenciesSatisfied()