Inconsistent Mappings MVEL, OGNL etc
------------------------------------
Key: JBESB-1705
URL:
http://jira.jboss.com/jira/browse/JBESB-1705
Project: JBoss ESB
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Components: Web Services
Affects Versions: 4.2.1 CP1
Reporter: Jeff DeLong
The object mapping tools and conventions are not consistent between the jBPM integration
and web services integration. For example, let's say there is a PolicyPricingProcess
with a CreditCheckService. The jpdl might look like this:
<node name="CreditCheckService">
<action
class="org.jboss.soa.esb.services.jbpm.actionhandlers.EsbActionHandler">
<esbServiceName>
CreditCheckService
</esbServiceName>
<esbCategoryName>
WebServices
</esbCategoryName>
<bpmToEsbVars>
<mapping bpm="driver" esb="body.Driver" />
</bpmToEsbVars>
</action>
<transition to="PolicyPricingService"></transition>
</node>
Where the bpmToEsbVars mapping is implemented with MVEL.
If CheckCredit is a web service invoked via SOAPClient, then the SOAPClient action might
look like:
<actions>
<action name="request-mapper"
class="org.acme.insurance.RequestMapper"
process="option1">
</action>
<action name="soapui-client-action"
class="org.jboss.soa.esb.actions.soap.SOAPClient">
<property name="wsdl"
value="http://127.0.0.1:8080/CreditCheckWebService/CreditCheckWS?wsdl" />
<property name="get-payload-location"
value="creditCheckParamMap" />
<property name="responseAsOgnlMap" value="true"
/> <property name="SOAPAction"
value="checkCredit"/> </action>
</actions>
The "request-mapper" action is needed because the SOAPClient requires the
parameters to be in a map, and with the bpmToEsbVars there is no way to specify a map. If
bpmToEsbVars specifies
<mapping bpm="driver" esb="body.
creditCheckParamMap.Driver" /> an exception will result (as the
creditCheckParamMap does not exist).
Specifying <mapping bpm="driver" esb="body.
$default.Driver" /> does not work either, although $default can be used in
other actions to specify the default body location.
In general it would be helpful if there were standard ways to specify default and named
locations that was consistent across various out-of-the-box actions.
Also, some of the actions use MVEL (e.g., BPM, BRP) as an expression language for
describing object mappings, others use OGNL (e.g., SOAPClient). Do we really want to
document and have users become familiar with multiple mapping techniques? Would it be
possible to standardize on one or the other? Also, can we have more examples of the
mapping options?
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira