10. Events
The NMR has a rich event API that can be used to receive all sort of notifications about what's happening in the NMR.
Currently, two types of listeners are defined.
EndpointListener
public interface EndpointListener {
void endpointRegistered(InternalEndpoint endpoint);
void endpointUnregistered(InternalEndpoint endpoint);
}
You can find an example endpoint listener here.
ExchangeListener
public interface ExchangeListener {
void exchangeSent(Exchange exchange);
void exchangeDelivered(Exchange exchange);
void exchangeFailed(Exchange exchange);
}
An example exchange listener can be found here.
Registering listeners
Listeners can be registered in two ways, either directly on the NMR:
nmr.getListenerRegistry().register(listener, null);
or by registering your listener as an OSGi service. It can be done using Spring-DM using the following configuration (for an exchange listener):
<bean id="myListener" class="...">
...
</bean>
<!-- Exchange Listener -->
<osgi:service ref="myListener">
<osgi:interfaces>
<value>org.apache.servicemix.nmr.api.event.ExchangeListener</value>
<value>org.apache.servicemix.nmr.api.event.Listener</value>
</osgi:interfaces>
</osgi:service>
top