Apache ServiceMix NMR #usernavbar() #printableicon() #pdficon() #feedicon()  
When you contribute content to this Wiki, you grant a license to the ASF for inclusion in ASF works (as per the Apache Software License).
  10. Events

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0
Wiki Markup
{scrollbar}

Anchor
top
top

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

Code Block
public interface EndpointListener {
    void endpointRegistered(InternalEndpoint endpoint);
    void endpointUnregistered(InternalEndpoint endpoint);
}

You can find an example endpoint listener here.

ExchangeListener

Code Block
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:

Code Block
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):

Code Block
<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

Wiki Markup
{scrollbar}