org.picocontainer
Interface ComponentMonitor

All Known Subinterfaces:
AbstractComponentMonitorTestCase.TestMonitorThatSupportsStrategy
All Known Implementing Classes:
AbstractComponentMonitor, CommonsLoggingComponentMonitor, ComponentDependencyMonitor, ConsoleComponentMonitor, DotDependencyGraphComponentMonitor, Issue0303TestCase.SwallowingComponentMonitor, LifecycleComponentMonitor, Log4JComponentMonitor, NullComponentMonitor, Slf4jComponentMonitor, WriterComponentMonitor

public interface ComponentMonitor

A component monitor is responsible for monitoring the component instantiation and method invocation.

Author:
Paul Hammant, Obie Fernandez, Aslak Hellesøy, Mauro Talevi

Method Summary
<T> void
instantiated(PicoContainer container, ComponentAdapter<T> componentAdapter, Constructor<T> constructor, Object instantiated, Object[] injected, 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, Method method, Object instance, long duration)
          Event thrown after the component method has been invoked on the given instance
 void invoking(PicoContainer container, ComponentAdapter<?> componentAdapter, Member member, Object instance)
          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
 AbstractInjector newInjectionFactory(AbstractInjector abstractInjector)
          A mechanism to monitor or override the AbstractInjectors being made for components.
 Object noComponentFound(MutablePicoContainer container, Object componentKey)
          No Component has been found for the key in question.
 

Method Detail

instantiating

<T> Constructor<T> instantiating(PicoContainer container,
                                 ComponentAdapter<T> componentAdapter,
                                 Constructor<T> constructor)
Event thrown as the component is being instantiated using the given constructor

Parameters:
container -
componentAdapter -
constructor - the Constructor used to instantiate the addComponent @return the constructor to use in instantiation (nearly always the same one as passed in)

instantiated

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

Parameters:
container -
componentAdapter -
constructor - the Constructor used to instantiate the addComponent
instantiated - the component that was instantiated by PicoContainer
injected - the components during instantiation.
duration - the duration in milliseconds of the instantiation

instantiationFailed

<T> void instantiationFailed(PicoContainer container,
                             ComponentAdapter<T> componentAdapter,
                             Constructor<T> constructor,
                             Exception cause)
Event thrown if the component instantiation failed using the given constructor

Parameters:
container -
componentAdapter -
constructor - the Constructor used to instantiate the addComponent
cause - the Exception detailing the cause of the failure

invoking

void invoking(PicoContainer container,
              ComponentAdapter<?> componentAdapter,
              Member member,
              Object instance)
Event thrown as the component method is being invoked on the given instance

Parameters:
container -
componentAdapter -
member -
instance - the component instance

invoked

void invoked(PicoContainer container,
             ComponentAdapter<?> componentAdapter,
             Method method,
             Object instance,
             long duration)
Event thrown after the component method has been invoked on the given instance

Parameters:
container -
componentAdapter -
method - the Method invoked on the component instance
instance - the component instance
duration - the duration in millis of the invocation

invocationFailed

void invocationFailed(Member member,
                      Object instance,
                      Exception cause)
Event thrown if the component method invocation failed on the given instance

Parameters:
member -
instance - the component instance
cause - the Exception detailing the cause of the failure

lifecycleInvocationFailed

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

Parameters:
container -
componentAdapter -
method - the lifecycle Method invoked on the component instance
instance - the component instance
cause - the RuntimeException detailing the cause of the failure

noComponentFound

Object noComponentFound(MutablePicoContainer container,
                        Object componentKey)
No Component has been found for the key in question. Implementors of this have a last ditch opportunity to specify something for the need.

Parameters:
container -
componentKey -

newInjectionFactory

AbstractInjector newInjectionFactory(AbstractInjector abstractInjector)
A mechanism to monitor or override the AbstractInjectors being made for components.

Parameters:
abstractInjector - the abstract injector the container intends to use for the component currently being added.
Returns:
an abstract Injector. For most implementations, the same one as was passed in.


Copyright © 2003-2010 Codehaus. All Rights Reserved.