Firstly here is how routing works in JBI. In addition there is a page which lists the various Routing mechanisms available in ServiceMix.

So a component itself can specify a service, interface or endpoint name on a MessageExchange and the NMR can then use this to choose the correct endpoint for a service.

In the ServiceMix configuration; you can specify a destinationService, destinationInterface or destinationEndpoint name on the <component> tag which is used to auto-default these values for you.

We also support a pluggable EndpointResolver on an ActivationSpec to allow you to specify an endpoint in a pluggable stategy. Also for cases where there are multiple physical endpoints for a given resolver (e.g. multiple services offering the same interface), we support a pluggable EndpointChooser strategy, such as first choice, random and so forth to use whatever selection policy you wish.

In addition we also provide for Publish Subscribe Routing which allows JBI components to subscribe to the output of another JBI component, using Topic semantic - every applicable subscriber receives a copy of the message in addition to the more usual Queue semantics of routing defined by the JBI specification.