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 Apache Camel.
All of the patterns supported by ServiceMix EIP use the
eip:exchange-target element to specify JBI
target endpoints. Table 27 shows examples
of how to map sample eip:exchange-target elements
to Apache Camel endpoint URIs, where it is assumed that the
test prefix maps to the
http://progress.com/demos/test
namespace.
Table 27. Mapping the Exchange Target Element
| ServiceMix EIP Target | Apache Camel 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 Apache Camel: that is, either the
xpath element (in XML configuration) or the
xpath() command (in Java DSL). For example, the
message filter pattern in Apache Camel 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 |
|---|---|
Apache Camel 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 Expression and Predicate Languages. |
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 Apache Camel,
there is no need to define namespace contexts, because Apache Camel
allows you to define XPath predicates without referencing a
namespace context. You can simply drop the
eip:namespace-context elements when you migrate
to Apache Camel.






![[Note]](imagesdb/note.gif)


