|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.mule.module.spring.events.MuleEventMulticaster
public class MuleEventMulticaster
MuleEventMulticaster
is an implementation of a Spring
ApplicationeventMulticaster. This implementation allows Mule event to be sent and
received through the Spring ApplicationContext. This allows any Spring bean to
receive and send events from any transport that Mule supports such as Jms, Http,
Tcp, Pop3, Smtp, File, etc. All a bean needs to do to receive and send events is
to implement MuleEventListener. Beans can also have subscriptions to certain
events by implementing MuleSubscriptionEventListener, where the bean can provide a
list of endpoints on which to receive events i.e.
<bean id="myListener" class="com.foo.MyListener">
<property name="subscriptions">
<list>
<value>jms://customer.support</value>
<value>pop3://support:123456@mail.mycompany.com</value>
</list>
</property>
</bean>
<bean id="applicationEventMulticaster" class="org.mule.module.spring.events.MuleEventMulticaster">
<property name="subscriptions">
<list>
<value>jms://orders.queue</value>
<value>jms://another.orders.queue</value>
</list>
</property>
</bean>
<bean id="myListener" class="com.foo.MyListener">
<property name="subscriptions">
<list>
<value>jms://*.orders.*.</value>
</list>
</property>
</bean>
MuleEventListener
,
MuleSubscriptionEventListener
,
ApplicationEventMulticaster
Field Summary | |
---|---|
protected org.springframework.context.ApplicationContext |
applicationContext
The Spring acpplication context |
protected boolean |
asynchronous
Determines whether events will be processed asynchronously |
protected edu.emory.mathcs.backport.java.util.concurrent.ExecutorService |
asyncPool
An ExecutorService for handling asynchronous events |
static String |
EVENT_MULTICASTER_DESCRIPTOR_NAME
|
protected ExceptionListener |
exceptionListener
Used to store parsed endpoints |
protected Set |
listeners
The set of listeners for this Multicaster |
protected static Log |
logger
logger used by this class |
protected MuleContext |
muleContext
|
protected Service |
service
The mule instance compoennt for the Multicaster |
protected Class |
subscriptionFilter
The filter used to match subscriptions |
protected String[] |
subscriptions
A list of endpoints the eventMulticaster will receive events on Note that if this eventMulticaster has a Mule Descriptor associated with it, these endpoints are ignored and the ones on the Mule Descriptor are used. |
Fields inherited from interface org.mule.api.lifecycle.Initialisable |
---|
PHASE_NAME |
Constructor Summary | |
---|---|
MuleEventMulticaster()
|
Method Summary | |
---|---|
void |
addApplicationListener(org.springframework.context.ApplicationListener listener)
Adds a listener to the the Multicaster. |
protected ObjectFilter |
createFilter(String pattern)
|
protected void |
dispatchEvent(MuleApplicationEvent applicationEvent)
Will dispatch an application event through Mule |
protected Service |
getDefaultService()
|
Class |
getSubscriptionFilter()
the type of filter used to filter subscriptions |
String[] |
getSubscriptions()
A list of endpoints the eventMulticaster will receive events on Note that if this eventMulticaster has a Mule Descriptor associated with it, these endpoints are ignored and the ones on the Mule Descriptor are used. |
void |
initialise()
Method used to perform any initialisation work. |
boolean |
isAsynchronous()
Determines whether events will be processed asynchronously |
void |
multicastEvent(org.springframework.context.ApplicationEvent e)
Method is used to dispatch events to listeners registered with the EventManager or dispatches events to Mule depending on the type and state of the event received. |
Object |
onCall(MuleEventContext context)
This is the callback method used by Mule to give Mule events to this Multicaster |
protected void |
registerConnectors()
|
protected void |
registerMulticasterComponent()
|
protected void |
registerTransformers()
|
void |
removeAllListeners()
Removes all the listeners from the multicaster |
void |
removeApplicationListener(org.springframework.context.ApplicationListener listener)
Removes a listener from the multicaster |
void |
setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
Set the current Spring application context |
void |
setAsynchronous(boolean asynchronous)
Determines whether events will be processed asynchronously |
protected void |
setExceptionListener(ExceptionListener listener)
|
void |
setMuleContext(MuleContext context)
|
void |
setSubscriptionFilter(Class subscriptionFilter)
sets the type of filter used to filter subscriptions |
void |
setSubscriptions(String[] subscriptions)
A list of endpoints the eventMulticaster will receive events on Note that if this eventMulticaster has a Mule Descriptor associated with it, these endpoints are ignored and the ones on the Mule Descriptor are used. |
protected void |
setSubscriptionsOnService(Service service)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final String EVENT_MULTICASTER_DESCRIPTOR_NAME
protected static final Log logger
protected final Set listeners
protected boolean asynchronous
protected edu.emory.mathcs.backport.java.util.concurrent.ExecutorService asyncPool
protected String[] subscriptions
protected org.springframework.context.ApplicationContext applicationContext
protected Service service
protected Class subscriptionFilter
protected ExceptionListener exceptionListener
protected MuleContext muleContext
Constructor Detail |
---|
public MuleEventMulticaster()
Method Detail |
---|
public void setMuleContext(MuleContext context)
setMuleContext
in interface MuleContextAware
public void initialise() throws InitialisationException
Initialisable
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.
initialise
in interface Initialisable
InitialisationException
- if a fatal error occurs causing the Mule instance to shutdown
RecoverableException
- if an error occurs that can be recovered frompublic void addApplicationListener(org.springframework.context.ApplicationListener listener)
AsynchronousMessageListener
is used to wrap the listener. This
listener will be initialised with a threadpool. The configuration for the
threadpool can be set on this multicaster or inherited from the MuleManager
configuration, which is good for most cases.
addApplicationListener
in interface org.springframework.context.event.ApplicationEventMulticaster
listener
- the ApplicationListener to register with this MulticasterAsynchronousEventListener
,
ThreadingProfile
public void removeApplicationListener(org.springframework.context.ApplicationListener listener)
removeApplicationListener
in interface org.springframework.context.event.ApplicationEventMulticaster
listener
- the listener to removepublic void removeAllListeners()
removeAllListeners
in interface org.springframework.context.event.ApplicationEventMulticaster
public void multicastEvent(org.springframework.context.ApplicationEvent e)
multicastEvent
in interface org.springframework.context.event.ApplicationEventMulticaster
e
- the application event received by the contextpublic boolean isAsynchronous()
public void setAsynchronous(boolean asynchronous)
asynchronous
- true if aysnchronouspublic Object onCall(MuleEventContext context) throws TransformerException, MalformedEndpointException
onCall
in interface Callable
context
- the context received by Mule
LifecycleAdapter
for the service receives this
object it will first see if the Object is an MuleMessage
if not and the Object is not null a new message will be created using
the returned object as the payload. This new event will then get
published via the configured outbound router if-
setStopFurtherProcessing(true)
wasn't called
on the event context event.TransformerException
MalformedEndpointException
protected void dispatchEvent(MuleApplicationEvent applicationEvent) throws ApplicationEventException
applicationEvent
- the Spring event to be dispatched
ApplicationEventException
- if the event cannot be dispatched i.e. if
the underlying transport throws an exceptionpublic void setApplicationContext(org.springframework.context.ApplicationContext applicationContext) throws org.springframework.beans.BeansException
setApplicationContext
in interface org.springframework.context.ApplicationContextAware
applicationContext
- application context
org.springframework.beans.BeansException
protected void registerMulticasterComponent() throws MuleException
MuleException
protected void setSubscriptionsOnService(Service service) throws MuleException
MuleException
protected void registerConnectors() throws MuleException
MuleException
protected void registerTransformers() throws MuleException
MuleException
protected Service getDefaultService() throws MuleException
MuleException
protected ObjectFilter createFilter(String pattern)
public Class getSubscriptionFilter()
WildcardFilter
public void setSubscriptionFilter(Class subscriptionFilter)
subscriptionFilter
- the class of the filter to use.public String[] getSubscriptions()
public void setSubscriptions(String[] subscriptions)
subscriptions
- a list of enpoints to listen onprotected void setExceptionListener(ExceptionListener listener)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |