]
Mark Little closed JBESB-802.
-----------------------------
Resolution: Out of Date
ServiceInvoker should hide EPRs
-------------------------------
Key: JBESB-802
URL:
https://issues.jboss.org/browse/JBESB-802
Project: JBoss ESB
Issue Type: Feature Request
Components: Rosetta
Affects Versions: 4.2 Milestone Release 3
Reporter: Mark Little
Assignee: Mark Little
EPRs were never intended to be used by the majority of developers. They are the
"physical" address of individual services. The "logical" name is the
service name, that might map down to one or more EPRs. But most of the time developers
would be using the logical name. At least that was the approach in the original
pre-Rosetta days. By the time you get down to working with EPRs and headers (Call)
you're really working at the lowest level and talking about a specific Message going
to a specific service instance.
The higher level abstraction should be working only in terms of the message payload
(Body, Attachments, etc.) and service names. FaultTo, To, ReplyTo etc. would be abstracted
to service names by the API. The implementation would hide the mapping of service name to
specific EPRs when necessary to ultimately deliver a message.
Shouldn't ServiceInvoker work in the same way? On the one hand it seems to be one SI
instance per client per service (you create the instance and pass in the servicename
[equivalent of defining To]). However, because the deliverSync and deliverAsync work in
terms of Messages, it's then entirely possible for that information to be ignored by
the user, i.e., you can use any SI instance to deliver a message to any service as long as
you define the To field correctly.