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
BeanManager
that manages Plexus components requiring lifecycle management.
-
-
Field Summary
Fields Modifier and Type Field Description private Logger
consoleLogger
private BeanManager
delegate
private java.util.Deque<Disposable>
disposableBeans
private static java.lang.Class<?>[]
LIFECYCLE_TYPES
private javax.inject.Provider<Context>
plexusContextProvider
private javax.inject.Provider<LoggerManager>
plexusLoggerManagerProvider
private javax.inject.Provider<?>
slf4jLoggerFactoryProvider
private 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 void
activate(java.lang.Object bean)
Customized activation of the given bean.void
configure(com.google.inject.Binder binder)
private void
contextualize(Contextualizable bean)
private void
dispose(Disposable bean)
(package private) Logger
getPlexusLogger(java.lang.Object bean)
(package private) java.lang.Object
getSLF4JLogger(java.lang.Object bean)
private void
initialize(Initializable bean)
boolean
manage(java.lang.Class<?> clazz)
Decides whether instances of the given bean type should be reported to this manager.boolean
manage(java.lang.Object bean)
Asks this manager to manage the given bean instance.PropertyBinding
manage(BeanProperty property)
Asks this manager to manage the given bean property.private void
start(Startable bean)
private void
stop(Startable bean)
private static <T> T
synchronizedPop(java.util.Deque<T> deque)
private static <T> void
synchronizedPush(java.util.Deque<T> deque, T element)
private static boolean
synchronizedRemove(java.util.Deque<?> deque, java.lang.Object element)
boolean
unmanage()
Asks this manager to unmanage all the bean instances it knows about.boolean
unmanage(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:
configure
in interfacecom.google.inject.Module
-
manage
public boolean manage(java.lang.Class<?> clazz)
Description copied from interface:BeanManager
Decides whether instances of the given bean type should be reported to this manager.- Specified by:
manage
in interfaceBeanManager
- Parameters:
clazz
- The bean type- Returns:
true
if instances of the bean should be reported; otherwisefalse
-
manage
public PropertyBinding manage(BeanProperty property)
Description copied from interface:BeanManager
Asks this manager to manage the given bean property.- Specified by:
manage
in 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:BeanManager
Asks this manager to manage the given bean instance.- Specified by:
manage
in interfaceBeanManager
- Parameters:
bean
- The bean instance- Returns:
true
if the bean instance was managed; otherwisefalse
-
unmanage
public boolean unmanage(java.lang.Object bean)
Description copied from interface:BeanManager
Asks this manager to unmanage the given bean instance.- Specified by:
unmanage
in interfaceBeanManager
- Parameters:
bean
- The bean instance- Returns:
true
if the bean instance was unmanaged; otherwisefalse
-
unmanage
public boolean unmanage()
Description copied from interface:BeanManager
Asks this manager to unmanage all the bean instances it knows about.- Specified by:
unmanage
in interfaceBeanManager
- Returns:
true
if any bean instances were unmanaged; otherwisefalse
-
activate
protected void activate(java.lang.Object bean)
Description copied from class:BeanScheduler
Customized activation of the given bean.- Specified by:
activate
in 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)
-
-