org.picocontainer.gems.containers
Class Log4jTracingContainerDecorator

java.lang.Object
  extended byorg.picocontainer.gems.containers.Log4jTracingContainerDecorator
All Implemented Interfaces:
org.picocontainer.Disposable, org.picocontainer.MutablePicoContainer, org.picocontainer.PicoContainer, Serializable, org.picocontainer.Startable

public class Log4jTracingContainerDecorator
extends Object
implements org.picocontainer.MutablePicoContainer, Serializable

Decorates a MutablePicoContainer to provide extensive tracing capabilities for all function calls into the Picocontainers.

By default, this class uses org.picocontainer.PicoContainer as its logging category, however, this may be changed by providing the logger in its alternate constructor.

Start and Stop events are logged under info priority, as are all conditions where querying for an object returns a null object (e.g., getComponentAdapter(Object) returns null). All other functions use debug priority.

If used in nanocontainer, you can add wrap your PicoContainer with the Log4jTracingContainerDecorator: (Groovy Example)

 		pico = builder.container(parent: parent) {
 			//component(.....)
 			//And others.
 		}
 
 		//Wrap the underlying NanoContainer with a Decorated Pico.
 		pico = new org.picocontainer.gems.containers.Log4jTracingContainerDecorator (pico.getPico())
 

Since:
Version 1.3
Author:
Michael Rimov
See Also:
Serialized Form

Constructor Summary
Log4jTracingContainerDecorator(org.picocontainer.MutablePicoContainer delegate)
          Default typical wrapper that wraps another MutablePicoContainer.
Log4jTracingContainerDecorator(org.picocontainer.MutablePicoContainer delegate, org.apache.log4j.Logger logger)
          Alternate constructor that allows specification of the Logger to use.
 
Method Summary
 void accept(org.picocontainer.PicoVisitor visitor)
          
 boolean addChildContainer(org.picocontainer.PicoContainer child)
          
 void dispose()
          
 org.picocontainer.ComponentAdapter getComponentAdapter(Object componentKey)
          
 org.picocontainer.ComponentAdapter getComponentAdapterOfType(Class componentType)
          
 Collection getComponentAdapters()
          
 List getComponentAdaptersOfType(Class componentType)
          
 Object getComponentInstance(Object componentKey)
          
 Object getComponentInstanceOfType(Class componentType)
          
 List getComponentInstances()
          
 List getComponentInstancesOfType(Class componentType)
          
 org.apache.log4j.Logger getLoggerUsed()
          Retrieves the logger instance used by this decorator.
 org.picocontainer.PicoContainer getParent()
          
 org.picocontainer.MutablePicoContainer makeChildContainer()
          
protected  void onKeyDoesntExistInContainer(Object componentKey, org.apache.log4j.Logger target)
          Standard message handling for cases when a null object is returned for a given key.
 org.picocontainer.ComponentAdapter registerComponent(org.picocontainer.ComponentAdapter componentAdapter)
          
 org.picocontainer.ComponentAdapter registerComponentImplementation(Class componentImplementation)
          
 org.picocontainer.ComponentAdapter registerComponentImplementation(Object componentKey, Class componentImplementation)
          
 org.picocontainer.ComponentAdapter registerComponentImplementation(Object componentKey, Class componentImplementation, org.picocontainer.Parameter[] parameters)
          
 org.picocontainer.ComponentAdapter registerComponentInstance(Object componentInstance)
          
 org.picocontainer.ComponentAdapter registerComponentInstance(Object componentKey, Object componentInstance)
          
 boolean removeChildContainer(org.picocontainer.PicoContainer child)
          
 void start()
          
 void stop()
          
 org.picocontainer.ComponentAdapter unregisterComponent(Object componentKey)
          
 org.picocontainer.ComponentAdapter unregisterComponentByInstance(Object componentInstance)
          
 void verify()
          Deprecated.  
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Log4jTracingContainerDecorator

public Log4jTracingContainerDecorator(org.picocontainer.MutablePicoContainer delegate)
Default typical wrapper that wraps another MutablePicoContainer.

Parameters:
delegate - Container to be decorated.
Throws:
NullPointerException - if delegate is null.

Log4jTracingContainerDecorator

public Log4jTracingContainerDecorator(org.picocontainer.MutablePicoContainer delegate,
                                      org.apache.log4j.Logger logger)
Alternate constructor that allows specification of the Logger to use.

Parameters:
delegate - Container to be decorated.
logger - specific Log4j Logger to use.
Throws:
NullPointerException - if delegate or logger is null.
Method Detail

onKeyDoesntExistInContainer

protected void onKeyDoesntExistInContainer(Object componentKey,
                                           org.apache.log4j.Logger target)
Standard message handling for cases when a null object is returned for a given key.

Parameters:
componentKey -
target -

accept

public void accept(org.picocontainer.PicoVisitor visitor)

Specified by:
accept in interface org.picocontainer.PicoContainer
Parameters:
visitor -
See Also:
PicoContainer.accept(org.picocontainer.PicoVisitor)

addChildContainer

public boolean addChildContainer(org.picocontainer.PicoContainer child)

Specified by:
addChildContainer in interface org.picocontainer.MutablePicoContainer
Parameters:
child -
Returns:
See Also:
MutablePicoContainer.addChildContainer(org.picocontainer.PicoContainer)

dispose

public void dispose()

Specified by:
dispose in interface org.picocontainer.Disposable
See Also:
Disposable.dispose()

getComponentAdapter

public org.picocontainer.ComponentAdapter getComponentAdapter(Object componentKey)

Specified by:
getComponentAdapter in interface org.picocontainer.PicoContainer
Parameters:
componentKey -
Returns:
See Also:
PicoContainer.getComponentAdapter(java.lang.Object)

getComponentAdapterOfType

public org.picocontainer.ComponentAdapter getComponentAdapterOfType(Class componentType)

Specified by:
getComponentAdapterOfType in interface org.picocontainer.PicoContainer
Parameters:
componentType -
Returns:
ComponentAdapter or null.
See Also:
PicoContainer.getComponentAdapterOfType(java.lang.Class)

getComponentAdapters

public Collection getComponentAdapters()

Specified by:
getComponentAdapters in interface org.picocontainer.PicoContainer
Returns:
Collection or null.
See Also:
PicoContainer.getComponentAdapters()

getComponentAdaptersOfType

public List getComponentAdaptersOfType(Class componentType)

Specified by:
getComponentAdaptersOfType in interface org.picocontainer.PicoContainer
Parameters:
componentType -
Returns:
List of ComponentAdapters
See Also:
PicoContainer.getComponentAdaptersOfType(java.lang.Class)

getComponentInstance

public Object getComponentInstance(Object componentKey)

Specified by:
getComponentInstance in interface org.picocontainer.PicoContainer
Parameters:
componentKey -
Returns:
See Also:
PicoContainer.getComponentInstance(java.lang.Object)

getComponentInstanceOfType

public Object getComponentInstanceOfType(Class componentType)

Specified by:
getComponentInstanceOfType in interface org.picocontainer.PicoContainer
Parameters:
componentType -
Returns:
See Also:
PicoContainer.getComponentInstanceOfType(java.lang.Class)

getComponentInstances

public List getComponentInstances()

Specified by:
getComponentInstances in interface org.picocontainer.PicoContainer
Returns:
See Also:
PicoContainer.getComponentInstances()

getComponentInstancesOfType

public List getComponentInstancesOfType(Class componentType)

Specified by:
getComponentInstancesOfType in interface org.picocontainer.PicoContainer
Parameters:
componentType -
Returns:
See Also:
PicoContainer.getComponentInstancesOfType(java.lang.Class)

getParent

public org.picocontainer.PicoContainer getParent()

Specified by:
getParent in interface org.picocontainer.PicoContainer
Returns:
See Also:
PicoContainer.getParent()

makeChildContainer

public org.picocontainer.MutablePicoContainer makeChildContainer()

Specified by:
makeChildContainer in interface org.picocontainer.MutablePicoContainer
Returns:
See Also:
MutablePicoContainer.makeChildContainer()

registerComponent

public org.picocontainer.ComponentAdapter registerComponent(org.picocontainer.ComponentAdapter componentAdapter)

Specified by:
registerComponent in interface org.picocontainer.MutablePicoContainer
Parameters:
componentAdapter -
Returns:
See Also:
MutablePicoContainer.registerComponent(org.picocontainer.ComponentAdapter)

registerComponentImplementation

public org.picocontainer.ComponentAdapter registerComponentImplementation(Class componentImplementation)

Specified by:
registerComponentImplementation in interface org.picocontainer.MutablePicoContainer
Parameters:
componentImplementation -
Returns:
See Also:
MutablePicoContainer.registerComponentImplementation(java.lang.Class)

registerComponentImplementation

public org.picocontainer.ComponentAdapter registerComponentImplementation(Object componentKey,
                                                                          Class componentImplementation,
                                                                          org.picocontainer.Parameter[] parameters)

Specified by:
registerComponentImplementation in interface org.picocontainer.MutablePicoContainer
Parameters:
componentKey -
componentImplementation -
parameters -
Returns:
See Also:
MutablePicoContainer.registerComponentImplementation(java.lang.Object, java.lang.Class, org.picocontainer.Parameter[])

registerComponentImplementation

public org.picocontainer.ComponentAdapter registerComponentImplementation(Object componentKey,
                                                                          Class componentImplementation)

Specified by:
registerComponentImplementation in interface org.picocontainer.MutablePicoContainer
Parameters:
componentKey -
componentImplementation -
Returns:
See Also:
MutablePicoContainer.registerComponentImplementation(java.lang.Object, java.lang.Class)

registerComponentInstance

public org.picocontainer.ComponentAdapter registerComponentInstance(Object componentKey,
                                                                    Object componentInstance)

Specified by:
registerComponentInstance in interface org.picocontainer.MutablePicoContainer
Parameters:
componentKey -
componentInstance -
Returns:
See Also:
MutablePicoContainer.registerComponentInstance(java.lang.Object, java.lang.Object)

registerComponentInstance

public org.picocontainer.ComponentAdapter registerComponentInstance(Object componentInstance)

Specified by:
registerComponentInstance in interface org.picocontainer.MutablePicoContainer
Parameters:
componentInstance -
Returns:
See Also:
MutablePicoContainer.registerComponentInstance(java.lang.Object)

removeChildContainer

public boolean removeChildContainer(org.picocontainer.PicoContainer child)

Specified by:
removeChildContainer in interface org.picocontainer.MutablePicoContainer
Parameters:
child -
Returns:
See Also:
MutablePicoContainer.removeChildContainer(org.picocontainer.PicoContainer)

start

public void start()

Specified by:
start in interface org.picocontainer.Startable
See Also:
Startable.start()

stop

public void stop()

Specified by:
stop in interface org.picocontainer.Startable
See Also:
Startable.stop()

unregisterComponent

public org.picocontainer.ComponentAdapter unregisterComponent(Object componentKey)

Specified by:
unregisterComponent in interface org.picocontainer.MutablePicoContainer
Parameters:
componentKey -
Returns:
See Also:
MutablePicoContainer.unregisterComponent(java.lang.Object)

unregisterComponentByInstance

public org.picocontainer.ComponentAdapter unregisterComponentByInstance(Object componentInstance)

Specified by:
unregisterComponentByInstance in interface org.picocontainer.MutablePicoContainer
Parameters:
componentInstance -
Returns:
See Also:
MutablePicoContainer.unregisterComponentByInstance(java.lang.Object)

verify

public void verify()
            throws org.picocontainer.PicoVerificationException
Deprecated.  

Specified by:
verify in interface org.picocontainer.PicoContainer
Throws:
org.picocontainer.PicoVerificationException
See Also:
PicoContainer.verify()

getLoggerUsed

public org.apache.log4j.Logger getLoggerUsed()
Retrieves the logger instance used by this decorator.

Returns:
Logger instance.


Copyright © 2003-2007 Codehaus. All Rights Reserved.