org.picocontainer.monitors
Class LifecycleComponentMonitor

java.lang.Object
  extended by org.picocontainer.monitors.LifecycleComponentMonitor
All Implemented Interfaces:
ComponentMonitor

public final class LifecycleComponentMonitor
extends Object
implements ComponentMonitor

A ComponentMonitor which collects lifecycle failures and rethrows them on demand after the failures.

Author:
Paul Hammant, Mauro Talevi

Nested Class Summary
 class LifecycleComponentMonitor.LifecycleFailuresException
          Subclass of PicoException that is thrown when the collected lifecycle failures need to be be collectively rethrown.
 
Field Summary
 
Fields inherited from interface org.picocontainer.ComponentMonitor
KEEP
 
Constructor Summary
LifecycleComponentMonitor()
           
LifecycleComponentMonitor(ComponentMonitor delegate)
           
 
Method Summary
<T> void
instantiated(PicoContainer container, ComponentAdapter<T> componentAdapter, Constructor<T> constructor, Object instantiated, Object[] parameters, long duration)
          Event thrown after the component has been instantiated using the given constructor.
<T> Constructor<T>
instantiating(PicoContainer container, ComponentAdapter<T> componentAdapter, Constructor<T> constructor)
          Event thrown as the component is being instantiated using the given constructor
<T> void
instantiationFailed(PicoContainer container, ComponentAdapter<T> componentAdapter, Constructor<T> constructor, Exception cause)
          Event thrown if the component instantiation failed using the given constructor
 void invocationFailed(Member member, Object instance, Exception cause)
          Event thrown if the component method invocation failed on the given instance
 void invoked(PicoContainer container, ComponentAdapter<?> componentAdapter, Member member, Object instance, long duration, Object[] args, Object retVal)
          Event thrown after the component method has been invoked on the given instance
 Object invoking(PicoContainer container, ComponentAdapter<?> componentAdapter, Member member, Object instance, Object[] args)
          Event thrown as the component method is being invoked on the given instance
 void lifecycleInvocationFailed(MutablePicoContainer container, ComponentAdapter<?> componentAdapter, Method method, Object instance, RuntimeException cause)
          Event thrown if a lifecycle method invocation - start, stop or dispose - failed on the given instance
 Behavior newBehavior(Behavior behavior)
          A mechanism to monitor or override the Behaviors being made for components.
 Injector newInjector(Injector injector)
          A mechanism to monitor or override the Injectors being made for components.
 Object noComponentFound(MutablePicoContainer container, Object componentKey)
          No Component has been found for the key in question.
 void rethrowLifecycleFailuresException()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LifecycleComponentMonitor

public LifecycleComponentMonitor(ComponentMonitor delegate)

LifecycleComponentMonitor

public LifecycleComponentMonitor()
Method Detail

instantiating

public <T> Constructor<T> instantiating(PicoContainer container,
                                        ComponentAdapter<T> componentAdapter,
                                        Constructor<T> constructor)
Description copied from interface: ComponentMonitor
Event thrown as the component is being instantiated using the given constructor

Specified by:
instantiating in interface ComponentMonitor
constructor - the Constructor used to instantiate the addComponent @return the constructor to use in instantiation (nearly always the same one as passed in)

instantiated

public <T> void instantiated(PicoContainer container,
                             ComponentAdapter<T> componentAdapter,
                             Constructor<T> constructor,
                             Object instantiated,
                             Object[] parameters,
                             long duration)
Description copied from interface: ComponentMonitor
Event thrown after the component has been instantiated using the given constructor. This should be called for both Constructor and Setter DI.

Specified by:
instantiated in interface ComponentMonitor
constructor - the Constructor used to instantiate the addComponent
instantiated - the component that was instantiated by PicoContainer
parameters - the components during instantiation.
duration - the duration in milliseconds of the instantiation

instantiationFailed

public <T> void instantiationFailed(PicoContainer container,
                                    ComponentAdapter<T> componentAdapter,
                                    Constructor<T> constructor,
                                    Exception cause)
Description copied from interface: ComponentMonitor
Event thrown if the component instantiation failed using the given constructor

Specified by:
instantiationFailed in interface ComponentMonitor
constructor - the Constructor used to instantiate the addComponent
cause - the Exception detailing the cause of the failure

invoking

public Object invoking(PicoContainer container,
                       ComponentAdapter<?> componentAdapter,
                       Member member,
                       Object instance,
                       Object[] args)
Description copied from interface: ComponentMonitor
Event thrown as the component method is being invoked on the given instance

Specified by:
invoking in interface ComponentMonitor
instance - the component instance

invoked

public void invoked(PicoContainer container,
                    ComponentAdapter<?> componentAdapter,
                    Member member,
                    Object instance,
                    long duration,
                    Object[] args,
                    Object retVal)
Description copied from interface: ComponentMonitor
Event thrown after the component method has been invoked on the given instance

Specified by:
invoked in interface ComponentMonitor
instance - the component instance

invocationFailed

public void invocationFailed(Member member,
                             Object instance,
                             Exception cause)
Description copied from interface: ComponentMonitor
Event thrown if the component method invocation failed on the given instance

Specified by:
invocationFailed in interface ComponentMonitor
instance - the component instance
cause - the Exception detailing the cause of the failure

lifecycleInvocationFailed

public void lifecycleInvocationFailed(MutablePicoContainer container,
                                      ComponentAdapter<?> componentAdapter,
                                      Method method,
                                      Object instance,
                                      RuntimeException cause)
Description copied from interface: ComponentMonitor
Event thrown if a lifecycle method invocation - start, stop or dispose - failed on the given instance

Specified by:
lifecycleInvocationFailed in interface ComponentMonitor
method - the lifecycle Method invoked on the component instance
instance - the component instance
cause - the RuntimeException detailing the cause of the failure

noComponentFound

public Object noComponentFound(MutablePicoContainer container,
                               Object componentKey)
Description copied from interface: ComponentMonitor
No Component has been found for the key in question. Implementers of this have a last chance opportunity to specify something for the need. This is only relevant to component dependencies, and not to container.getComponent() in your user code.

Specified by:
noComponentFound in interface ComponentMonitor

newInjector

public Injector newInjector(Injector injector)
Description copied from interface: ComponentMonitor
A mechanism to monitor or override the Injectors being made for components.

Specified by:
newInjector in interface ComponentMonitor
Returns:
an Injector. For most implementations, the same one as was passed in.

newBehavior

public Behavior newBehavior(Behavior behavior)
A mechanism to monitor or override the Behaviors being made for components.

Specified by:
newBehavior in interface ComponentMonitor
Returns:
an Behavior. For most implementations, the same one as was passed in.

rethrowLifecycleFailuresException

public void rethrowLifecycleFailuresException()


Copyright © 2003-2010 Codehaus. All Rights Reserved.