public final class PlexusLifecycleManager extends BeanScheduler implements BeanManager, com.google.inject.Module
BeanManager
that manages Plexus components requiring lifecycle management.Modifier and Type | Field and 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 |
MODULE
Constructor and Description |
---|
PlexusLifecycleManager(javax.inject.Provider<Context> plexusContextProvider,
javax.inject.Provider<LoggerManager> plexusLoggerManagerProvider,
javax.inject.Provider<?> slf4jLoggerFactoryProvider,
BeanManager delegate) |
Modifier and Type | Method and 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) |
PropertyBinding |
manage(BeanProperty property)
Asks this manager to manage the given bean property.
|
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.
|
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.
|
detectCycle, schedule
private static final java.lang.Class<?>[] LIFECYCLE_TYPES
private final java.util.Deque<Startable> startableBeans
private final java.util.Deque<Disposable> disposableBeans
private final Logger consoleLogger
private final javax.inject.Provider<Context> plexusContextProvider
private final javax.inject.Provider<LoggerManager> plexusLoggerManagerProvider
private final javax.inject.Provider<?> slf4jLoggerFactoryProvider
private final BeanManager delegate
public PlexusLifecycleManager(javax.inject.Provider<Context> plexusContextProvider, javax.inject.Provider<LoggerManager> plexusLoggerManagerProvider, javax.inject.Provider<?> slf4jLoggerFactoryProvider, BeanManager delegate)
public void configure(com.google.inject.Binder binder)
configure
in interface com.google.inject.Module
public boolean manage(java.lang.Class<?> clazz)
BeanManager
manage
in interface BeanManager
clazz
- The bean typetrue
if instances of the bean should be reported; otherwise false
public PropertyBinding manage(BeanProperty property)
BeanManager
manage
in interface BeanManager
property
- The bean propertynull
public boolean manage(java.lang.Object bean)
BeanManager
manage
in interface BeanManager
bean
- The bean instancetrue
if the bean instance was managed; otherwise false
public boolean unmanage(java.lang.Object bean)
BeanManager
unmanage
in interface BeanManager
bean
- The bean instancetrue
if the bean instance was unmanaged; otherwise false
public boolean unmanage()
BeanManager
unmanage
in interface BeanManager
true
if any bean instances were unmanaged; otherwise false
protected void activate(java.lang.Object bean)
BeanScheduler
activate
in class BeanScheduler
bean
- The bean to activateLogger getPlexusLogger(java.lang.Object bean)
java.lang.Object getSLF4JLogger(java.lang.Object bean)
private static <T> void synchronizedPush(java.util.Deque<T> deque, T element)
private static boolean synchronizedRemove(java.util.Deque<?> deque, java.lang.Object element)
private static <T> T synchronizedPop(java.util.Deque<T> deque)
private void contextualize(Contextualizable bean)
private void initialize(Initializable bean)
private void start(Startable bean)
private void stop(Startable bean)
private void dispose(Disposable bean)