001    /*****************************************************************************
002     * Copyright (C) PicoContainer Organization. All rights reserved.            *
003     * ------------------------------------------------------------------------- *
004     * The software in this package is published under the terms of the BSD      *
005     * style license a copy of which has been included with this distribution in *
006     * the LICENSE.txt file.                                                     *
007     *                                                                           *
008     * Original code by Paul Hammaant                                            *
009     *****************************************************************************/
010    
011    package org.picocontainer.monitors;
012    
013    import org.picocontainer.ComponentMonitor;
014    import org.picocontainer.PicoLifecycleException;
015    
016    import java.lang.reflect.Method;
017    import java.lang.reflect.Constructor;
018    import java.io.Serializable;
019    
020    public class DefaultComponentMonitor implements ComponentMonitor, Serializable {
021    
022        private static DefaultComponentMonitor instance;
023    
024        public void instantiating(Constructor constructor) {
025        }
026    
027        public void instantiated(Constructor constructor, long duration) {
028        }
029    
030        public void instantiated(Constructor constructor, Object instantiated, Object[] injected, long duration) {
031        }
032    
033        public void instantiationFailed(Constructor constructor, Exception e) {
034        }
035    
036        public void invoking(Method method, Object instance) {
037        }
038    
039        public void invoked(Method method, Object instance, long duration) {
040        }
041    
042        public void invocationFailed(Method method, Object instance, Exception e) {
043        }
044    
045        public void lifecycleInvocationFailed(Method method, Object instance, RuntimeException cause) {
046            throw new PicoLifecycleException(method, instance, cause);
047        }
048    
049        public static synchronized DefaultComponentMonitor getInstance() {
050            if (instance == null) {
051                instance = new DefaultComponentMonitor();
052            }
053            return instance;
054        }
055    
056    
057    }