org.mule.config.spring.util
Class SpringBeanLookup

java.lang.Object
  extended by org.mule.object.AbstractObjectFactory
      extended by org.mule.config.spring.util.SpringBeanLookup
All Implemented Interfaces:
Disposable, Initialisable, ObjectFactory, org.springframework.context.ApplicationContextAware

public class SpringBeanLookup
extends AbstractObjectFactory
implements org.springframework.context.ApplicationContextAware

This is an implementation of the ObjectFactory interface which simply delegates to the Spring ApplicationContext. Since the delegation happens each time a call to getOrCreate() is made, this will correctly handle Spring beans which are non-singletons (factory beans, etc.) Singleton usage: Non-singleton usage:


Field Summary
 
Fields inherited from class org.mule.object.AbstractObjectFactory
ATTRIBUTE_OBJECT_CLASS, ATTRIBUTE_OBJECT_CLASS_NAME, initialisationCallbacks, logger, objectClass, objectClassName, properties
 
Fields inherited from interface org.mule.api.lifecycle.Initialisable
PHASE_NAME
 
Fields inherited from interface org.mule.api.lifecycle.Disposable
PHASE_NAME
 
Constructor Summary
SpringBeanLookup()
           
 
Method Summary
 void dispose()
          A lifecycle method where implementor should free up any resources.
 String getBean()
           
 Object getInstance()
          Creates an initialized object instance based on the class and sets any properties.
 Class getObjectClass()
          Returns the class of the object to be instantiated without actually creating an instance.
 void initialise()
          Method used to perform any initialisation work.
 boolean isExternallyManagedLifecycle()
          Returns true if Mule should not manage the life-cycle the object instance returned from the ObjectFactory.
 boolean isSingleton()
          Returns true if the ObjectFactory implementation always returns the same object instance.
 void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
           
 void setBean(String bean)
           
 
Methods inherited from class org.mule.object.AbstractObjectFactory
addObjectInitialisationCallback, fireInitialisationCallbacks, getObjectClassName, getProperties, setObjectClass, setObjectClassName, setProperties
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SpringBeanLookup

public SpringBeanLookup()
Method Detail

initialise

public void initialise()
                throws InitialisationException
Description copied from interface: Initialisable
Method used to perform any initialisation work. If a fatal error occurs during initialisation an InitialisationException should be thrown, causing the Mule instance to shutdown. If the error is recoverable, say by retrying to connect, a RecoverableException should be thrown. There is no guarantee that by throwing a Recoverable exception that the Mule instance will not shut down.

Specified by:
initialise in interface Initialisable
Overrides:
initialise in class AbstractObjectFactory
Throws:
InitialisationException - if a fatal error occurs causing the Mule instance to shutdown
RecoverableException - if an error occurs that can be recovered from

dispose

public void dispose()
Description copied from interface: Disposable
A lifecycle method where implementor should free up any resources. If an exception is thrown it should just be logged and processing should continue. This method should not throw Runtime exceptions.

Specified by:
dispose in interface Disposable
Overrides:
dispose in class AbstractObjectFactory

getObjectClass

public Class getObjectClass()
Description copied from interface: ObjectFactory
Returns the class of the object to be instantiated without actually creating an instance. This may not be logical or even possible depending on the implementation.

Specified by:
getObjectClass in interface ObjectFactory
Overrides:
getObjectClass in class AbstractObjectFactory

getInstance

public Object getInstance()
                   throws Exception
Description copied from class: AbstractObjectFactory
Creates an initialized object instance based on the class and sets any properties.

Specified by:
getInstance in interface ObjectFactory
Overrides:
getInstance in class AbstractObjectFactory
Throws:
Exception

setApplicationContext

public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
                           throws org.springframework.beans.BeansException
Specified by:
setApplicationContext in interface org.springframework.context.ApplicationContextAware
Throws:
org.springframework.beans.BeansException

getBean

public String getBean()

setBean

public void setBean(String bean)

isSingleton

public boolean isSingleton()
Description copied from interface: ObjectFactory
Returns true if the ObjectFactory implementation always returns the same object instance.

Specified by:
isSingleton in interface ObjectFactory
Overrides:
isSingleton in class AbstractObjectFactory
Returns:

isExternallyManagedLifecycle

public boolean isExternallyManagedLifecycle()
Description copied from interface: ObjectFactory
Returns true if Mule should not manage the life-cycle the object instance returned from the ObjectFactory. This is normally false except when an ObjectFactory implementation obtains instance from containers (e.g. Spring) that already manages the objects lifecycle. instance.

Specified by:
isExternallyManagedLifecycle in interface ObjectFactory
Overrides:
isExternallyManagedLifecycle in class AbstractObjectFactory
Returns:


Copyright © 2003-2009 MuleSource, Inc.. All Rights Reserved.