Class LifecycleComponentMonitor

  • All Implemented Interfaces:
    ComponentMonitor

    public final 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
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      <T> void instantiated​(PicoContainer container, ComponentAdapter<T> componentAdapter, java.lang.reflect.Constructor<T> constructor, java.lang.Object instantiated, java.lang.Object[] parameters, long duration)
      Event thrown after the component has been instantiated using the given constructor.
      <T> java.lang.reflect.Constructor<T> instantiating​(PicoContainer container, ComponentAdapter<T> componentAdapter, java.lang.reflect.Constructor<T> constructor)
      Event thrown as the component is being instantiated using the given constructor
      <T> void instantiationFailed​(PicoContainer container, ComponentAdapter<T> componentAdapter, java.lang.reflect.Constructor<T> constructor, java.lang.Exception cause)
      Event thrown if the component instantiation failed using the given constructor
      void invocationFailed​(java.lang.reflect.Member member, java.lang.Object instance, java.lang.Exception cause)
      Event thrown if the component method invocation failed on the given instance
      void invoked​(PicoContainer container, ComponentAdapter<?> componentAdapter, java.lang.reflect.Member member, java.lang.Object instance, long duration, java.lang.Object[] args, java.lang.Object retVal)
      Event thrown after the component method has been invoked on the given instance
      java.lang.Object invoking​(PicoContainer container, ComponentAdapter<?> componentAdapter, java.lang.reflect.Member member, java.lang.Object instance, java.lang.Object[] args)
      Event thrown as the component method is being invoked on the given instance
      void lifecycleInvocationFailed​(MutablePicoContainer container, ComponentAdapter<?> componentAdapter, 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
      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.
      java.lang.Object noComponentFound​(MutablePicoContainer container, java.lang.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> java.lang.reflect.Constructor<T> instantiating​(PicoContainer container,
                                                                  ComponentAdapter<T> componentAdapter,
                                                                  java.lang.reflect.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,
                                     java.lang.reflect.Constructor<T> 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
        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,
                                            java.lang.reflect.Constructor<T> 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
        constructor - the Constructor used to instantiate the addComponent
        cause - the Exception detailing the cause of the failure
      • invoking

        public java.lang.Object invoking​(PicoContainer container,
                                         ComponentAdapter<?> componentAdapter,
                                         java.lang.reflect.Member member,
                                         java.lang.Object instance,
                                         java.lang.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,
                            java.lang.reflect.Member member,
                            java.lang.Object instance,
                            long duration,
                            java.lang.Object[] args,
                            java.lang.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​(java.lang.reflect.Member member,
                                     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
        instance - the component instance
        cause - the Exception detailing the cause of the failure
      • lifecycleInvocationFailed

        public void lifecycleInvocationFailed​(MutablePicoContainer container,
                                              ComponentAdapter<?> componentAdapter,
                                              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
        method - the lifecycle Method invoked on the component instance
        instance - the component instance
        cause - the RuntimeException detailing the cause of the failure
      • noComponentFound

        public java.lang.Object noComponentFound​(MutablePicoContainer container,
                                                 java.lang.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()