Package org.eclipse.sisu.plexus
Class PlexusLifecycleManager
- java.lang.Object
-
- org.eclipse.sisu.bean.BeanScheduler
-
- org.eclipse.sisu.plexus.PlexusLifecycleManager
-
- All Implemented Interfaces:
com.google.inject.Module,BeanManager
public final class PlexusLifecycleManager extends BeanScheduler implements BeanManager, com.google.inject.Module
BeanManagerthat manages Plexus components requiring lifecycle management.
-
-
Field Summary
Fields Modifier and Type Field Description private LoggerconsoleLoggerprivate BeanManagerdelegateprivate java.util.Deque<Disposable>disposableBeansprivate static java.lang.Class<?>[]LIFECYCLE_TYPESprivate javax.inject.Provider<Context>plexusContextProviderprivate javax.inject.Provider<LoggerManager>plexusLoggerManagerProviderprivate javax.inject.Provider<?>slf4jLoggerFactoryProviderprivate java.util.Deque<Startable>startableBeans-
Fields inherited from class org.eclipse.sisu.bean.BeanScheduler
MODULE
-
-
Constructor Summary
Constructors Constructor Description PlexusLifecycleManager(javax.inject.Provider<Context> plexusContextProvider, javax.inject.Provider<LoggerManager> plexusLoggerManagerProvider, javax.inject.Provider<?> slf4jLoggerFactoryProvider, BeanManager delegate)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidactivate(java.lang.Object bean)Customized activation of the given bean.voidconfigure(com.google.inject.Binder binder)private voidcontextualize(Contextualizable bean)private voiddispose(Disposable bean)(package private) LoggergetPlexusLogger(java.lang.Object bean)(package private) java.lang.ObjectgetSLF4JLogger(java.lang.Object bean)private voidinitialize(Initializable bean)booleanmanage(java.lang.Class<?> clazz)Decides whether instances of the given bean type should be reported to this manager.booleanmanage(java.lang.Object bean)Asks this manager to manage the given bean instance.PropertyBindingmanage(BeanProperty property)Asks this manager to manage the given bean property.private voidstart(Startable bean)private voidstop(Startable bean)private static <T> TsynchronizedPop(java.util.Deque<T> deque)private static <T> voidsynchronizedPush(java.util.Deque<T> deque, T element)private static booleansynchronizedRemove(java.util.Deque<?> deque, java.lang.Object element)booleanunmanage()Asks this manager to unmanage all the bean instances it knows about.booleanunmanage(java.lang.Object bean)Asks this manager to unmanage the given bean instance.-
Methods inherited from class org.eclipse.sisu.bean.BeanScheduler
detectCycle, schedule
-
-
-
-
Field Detail
-
LIFECYCLE_TYPES
private static final java.lang.Class<?>[] LIFECYCLE_TYPES
-
startableBeans
private final java.util.Deque<Startable> startableBeans
-
disposableBeans
private final java.util.Deque<Disposable> disposableBeans
-
consoleLogger
private final Logger consoleLogger
-
plexusContextProvider
private final javax.inject.Provider<Context> plexusContextProvider
-
plexusLoggerManagerProvider
private final javax.inject.Provider<LoggerManager> plexusLoggerManagerProvider
-
slf4jLoggerFactoryProvider
private final javax.inject.Provider<?> slf4jLoggerFactoryProvider
-
delegate
private final BeanManager delegate
-
-
Constructor Detail
-
PlexusLifecycleManager
public PlexusLifecycleManager(javax.inject.Provider<Context> plexusContextProvider, javax.inject.Provider<LoggerManager> plexusLoggerManagerProvider, javax.inject.Provider<?> slf4jLoggerFactoryProvider, BeanManager delegate)
-
-
Method Detail
-
configure
public void configure(com.google.inject.Binder binder)
- Specified by:
configurein interfacecom.google.inject.Module
-
manage
public boolean manage(java.lang.Class<?> clazz)
Description copied from interface:BeanManagerDecides whether instances of the given bean type should be reported to this manager.- Specified by:
managein interfaceBeanManager- Parameters:
clazz- The bean type- Returns:
trueif instances of the bean should be reported; otherwisefalse
-
manage
public PropertyBinding manage(BeanProperty property)
Description copied from interface:BeanManagerAsks this manager to manage the given bean property.- Specified by:
managein interfaceBeanManager- Parameters:
property- The bean property- Returns:
- Non-null binding if the bean property was managed; otherwise
null
-
manage
public boolean manage(java.lang.Object bean)
Description copied from interface:BeanManagerAsks this manager to manage the given bean instance.- Specified by:
managein interfaceBeanManager- Parameters:
bean- The bean instance- Returns:
trueif the bean instance was managed; otherwisefalse
-
unmanage
public boolean unmanage(java.lang.Object bean)
Description copied from interface:BeanManagerAsks this manager to unmanage the given bean instance.- Specified by:
unmanagein interfaceBeanManager- Parameters:
bean- The bean instance- Returns:
trueif the bean instance was unmanaged; otherwisefalse
-
unmanage
public boolean unmanage()
Description copied from interface:BeanManagerAsks this manager to unmanage all the bean instances it knows about.- Specified by:
unmanagein interfaceBeanManager- Returns:
trueif any bean instances were unmanaged; otherwisefalse
-
activate
protected void activate(java.lang.Object bean)
Description copied from class:BeanSchedulerCustomized activation of the given bean.- Specified by:
activatein classBeanScheduler- Parameters:
bean- The bean to activate
-
getPlexusLogger
Logger getPlexusLogger(java.lang.Object bean)
-
getSLF4JLogger
java.lang.Object getSLF4JLogger(java.lang.Object bean)
-
synchronizedPush
private static <T> void synchronizedPush(java.util.Deque<T> deque, T element)
-
synchronizedRemove
private static boolean synchronizedRemove(java.util.Deque<?> deque, java.lang.Object element)
-
synchronizedPop
private static <T> T synchronizedPop(java.util.Deque<T> deque)
-
contextualize
private void contextualize(Contextualizable bean)
-
initialize
private void initialize(Initializable bean)
-
start
private void start(Startable bean)
-
stop
private void stop(Startable bean)
-
dispose
private void dispose(Disposable bean)
-
-