When configuring ServiceMix EIP patterns in a ServiceMix configuration file, there are some common elements that occur in many of the pattern schemas. This section provides a brief overview of these common elements and explains how they can be mapped to equivalent constructs in Fuse Mediation Router.
All of the patterns supported by ServiceMix EIP use the eip:exchange-target
element to specify JBI target endpoints. Table A.1
shows examples of how to map sample eip:exchange-target
elements to Fuse Mediation Router
endpoint URIs, where it is assumed that the test
prefix maps to the
http://progress.com/demos/test
namespace.
Table A.1. Mapping the Exchange Target Element
ServiceMix EIP Target | Fuse Mediation Router Endpoint URI |
---|---|
<eip:exchange-target interface="HelloWorld" /> | jbi:interface:HelloWorld |
<eip:exchange-target service="test:HelloWorldService"
/> | jbi:service:http://progress.com/demos/test/HelloWorldService |
<eip:exchange-target service="test:HelloWorldService"
endpoint="secure" /> | jbi:service:http://progress.com/demos/test/HelloWorldService/secure |
<eip:exchange-target uri="service:test:HelloWorldService"
/> | jbi:service:http://progress.com/demos/test/HelloWorldService |
The ServiceMix EIP component allows you to define predicate expressions in the XPath
language. For example, XPath predicates can appear in eip:xpath-predicate
elements or in eip:xpath-splitter
elements, where the XPath predicate is
specified using an xpath
attribute.
ServiceMix XPath predicates can easily be migrated to equivalent constructs in Fuse Mediation Router:
that is, either the xpath
element (in XML configuration) or the
xpath()
command (in Java DSL). For example, the message filter pattern in
Fuse Mediation Router can incorporate an XPath predicate as follows:
<route> <from uri="jbi:endpoint:http://progress.com/demos/test/messageFilter/endpoint"> <filter> <xpath>count(/test:world) = 1</xpath> <to uri="jbi:service:http://progress.com/demos/test/trace3"/> </filter> </route>
Where the xpath
element specifies that only messages containing the
test:world
element will pass through the filter.
![]() | Note |
---|---|
Fuse Mediation Router also supports a wide range of other scripting languages including XQuery, PHP, Python, and Ruby, which can be used to define predicates. For details of all the supported predicate languages, see ????. |
When using XPath predicates in the ServiceMix EIP configuration, it is necessary to
define a namespace context using the eip:namespace-context
element. The
namespace is then referenced using a namespaceContext
attribute.
When ServiceMix EIP configuration is migrated to Fuse Mediation Router, there is no need to define
namespace contexts, because Fuse Mediation Router allows you to define XPath predicates without
referencing a namespace context. You can simply drop the eip:namespace-context
elements when you migrate to Fuse Mediation Router.