org.picocontainer.monitors
Class LifecycleComponentMonitor

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

public class LifecycleComponentMonitor
extends java.lang.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
private  ComponentMonitor delegate
           
private  java.util.List lifecycleFailures
           
 
Constructor Summary
LifecycleComponentMonitor()
           
LifecycleComponentMonitor(ComponentMonitor delegate)
           
 
Method Summary
 void instantiated(java.lang.reflect.Constructor constructor, long duration)
          Event thrown after the component has been instantiated using the given constructor
 void instantiated(java.lang.reflect.Constructor constructor, java.lang.Object instantiated, java.lang.Object[] parameters, long duration)
          Event thrown after the component has been instantiated using the given constructor.
 void instantiating(java.lang.reflect.Constructor constructor)
          Event thrown as the component is being instantiated using the given constructor
 void instantiationFailed(java.lang.reflect.Constructor constructor, java.lang.Exception cause)
          Event thrown if the component instantiation failed using the given constructor
 void invocationFailed(java.lang.reflect.Method method, java.lang.Object instance, java.lang.Exception cause)
          Event thrown if the component method invocation failed on the given instance
 void invoked(java.lang.reflect.Method method, java.lang.Object instance, long duration)
          Event thrown after the component method has been invoked on the given instance
 void invoking(java.lang.reflect.Method method, java.lang.Object instance)
          Event thrown as the component method is being invoked on the given instance
 void lifecycleInvocationFailed(java.lang.reflect.Method method, java.lang.Object instance, java.lang.RuntimeException cause)
          Event thrown if a lifecycle method invocation - start, stop or dispose - failed on the given instance
 void rethrowLifecycleFailuresException()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

delegate

private final ComponentMonitor delegate

lifecycleFailures

private final java.util.List lifecycleFailures
Constructor Detail

LifecycleComponentMonitor

public LifecycleComponentMonitor(ComponentMonitor delegate)

LifecycleComponentMonitor

public LifecycleComponentMonitor()
Method Detail

instantiating

public void instantiating(java.lang.reflect.Constructor constructor)
Description copied from interface: ComponentMonitor
Event thrown as the component is being instantiated using the given constructor

Specified by:
instantiating in interface ComponentMonitor
Parameters:
constructor - the Constructor used to instantiate the component

instantiated

public void instantiated(java.lang.reflect.Constructor constructor,
                         long duration)
Description copied from interface: ComponentMonitor
Event thrown after the component has been instantiated using the given constructor

Specified by:
instantiated in interface ComponentMonitor
Parameters:
constructor - the Constructor used to instantiate the component
duration - the duration in millis of the instantiation

instantiated

public void instantiated(java.lang.reflect.Constructor constructor,
                         java.lang.Object instantiated,
                         java.lang.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
Parameters:
constructor - the Constructor used to instantiate the component
instantiated - the component that was instantiated by PicoContainer
parameters - the components during instantiation.
duration - the duration in millis of the instantiation

instantiationFailed

public void instantiationFailed(java.lang.reflect.Constructor constructor,
                                java.lang.Exception cause)
Description copied from interface: ComponentMonitor
Event thrown if the component instantiation failed using the given constructor

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

invoking

public void invoking(java.lang.reflect.Method method,
                     java.lang.Object instance)
Description copied from interface: ComponentMonitor
Event thrown as the component method is being invoked on the given instance

Specified by:
invoking in interface ComponentMonitor
Parameters:
method - the Method invoked on the component instance
instance - the component instance

invoked

public void invoked(java.lang.reflect.Method method,
                    java.lang.Object instance,
                    long duration)
Description copied from interface: ComponentMonitor
Event thrown after the component method has been invoked on the given instance

Specified by:
invoked in interface ComponentMonitor
Parameters:
method - the Method invoked on the component instance
instance - the component instance
duration - the duration in millis of the invocation

invocationFailed

public void invocationFailed(java.lang.reflect.Method method,
                             java.lang.Object instance,
                             java.lang.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
Parameters:
method - the Method invoked on the component instance
instance - the component instance
cause - the Exception detailing the cause of the failure

lifecycleInvocationFailed

public void lifecycleInvocationFailed(java.lang.reflect.Method method,
                                      java.lang.Object instance,
                                      java.lang.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
Parameters:
method - the lifecycle Method invoked on the component instance
instance - the component instance
cause - the RuntimeException detailing the cause of the failure

rethrowLifecycleFailuresException

public void rethrowLifecycleFailuresException()