Author: rr
Date: Wed Jun 30 22:36:05 2010
New Revision: 959465

URL: http://svn.apache.org/viewvc?rev=959465&view=rev
Log:
Correlation headers (test + fix)

Added:
    ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/
    ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/deploy.xml
    
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/testRequest1.soap
    
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/testRequest2.soap
    
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithHeader-Process.bpel
    
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithHeader-Process.wsdl
    
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithHeader.svg
    
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithHeader.wsdl
    
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithheaders.wsdl
Modified:
    
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
    
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/PropertyAlias.java
    ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OProcess.java
    
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java
    
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
    
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkMyRoleImpl.java
    
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/PropertyAliasEvaluationContext.java

Added: ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/deploy.xml
URL: 
http://svn.apache.org/viewvc/ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/deploy.xml?rev=959465&view=auto
==============================================================================
--- ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/deploy.xml 
(added)
+++ ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/deploy.xml Wed 
Jun 30 22:36:05 2010
@@ -0,0 +1,11 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<dd:deploy xmlns:dd="http://www.apache.org/ode/schemas/dd/2007/03";><dd:process 
xmlns:dd="http://www.apache.org/ode/schemas/dd/2007/03"; 
xmlns:tns="http://www.example.org/wsdlwithheader/"; 
xmlns:initiator="http://example.com/wsdlWithHeader/initiator"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:diag="http://example.com/wsdlWithHeader"; 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
xmlns:this="http://example.com/wsdlWithHeader/Process"; name="this:Process" 
fileName="wsdlWithHeader-Process.bpel">
+  <dd:property name="PATH">wsdlWithHeader</dd:property>
+  <dd:property name="SVG">wsdlWithHeader.svg</dd:property>
+  <dd:provide partnerLink="processAndInitiatorPlkVar">
+    <dd:service name="this:CanonicServiceForinitiator" 
port="canonicPort"></dd:service>
+  </dd:provide>
+  <dd:provide 
partnerLink="processAndInitiatorForPortWsdl-with-headerSOAPPlkVar">
+    <dd:service name="tns:wsdl-with-header" 
port="wsdl-with-headerSOAP"></dd:service>
+  </dd:provide>
+</dd:process></dd:deploy>
\ No newline at end of file

Added: 
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/testRequest1.soap
URL: 
http://svn.apache.org/viewvc/ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/testRequest1.soap?rev=959465&view=auto
==============================================================================
--- 
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/testRequest1.soap 
(added)
+++ 
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/testRequest1.soap 
Wed Jun 30 22:36:05 2010
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~
+  ~    http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied.  See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:proc="http://example.com/wsdlWithHeader/Process";>
+   <soapenv:Header/>
+   <soapenv:Body>
+      
<proc:Recevie_first_messageRequest>start</proc:Recevie_first_messageRequest>
+   </soapenv:Body>
+</soapenv:Envelope>
+

Added: 
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/testRequest2.soap
URL: 
http://svn.apache.org/viewvc/ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/testRequest2.soap?rev=959465&view=auto
==============================================================================
--- 
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/testRequest2.soap 
(added)
+++ 
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/testRequest2.soap 
Wed Jun 30 22:36:05 2010
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~
+  ~    http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied.  See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:wsd="http://www.example.org/wsdlwithheader/";>
+   <soapenv:Header>
+      <wsd:request>
+         <in>11234</in>
+      </wsd:request>
+   </soapenv:Header>
+   <soapenv:Body>
+      <wsd:request>
+         <in>?</in>
+      </wsd:request>
+   </soapenv:Body>
+</soapenv:Envelope>
+

Added: 
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithHeader-Process.bpel
URL: 
http://svn.apache.org/viewvc/ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithHeader-Process.bpel?rev=959465&view=auto
==============================================================================
--- 
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithHeader-Process.bpel
 (added)
+++ 
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithHeader-Process.bpel
 Wed Jun 30 22:36:05 2010
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpel:process 
xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"; 
xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"; 
xmlns:pnlk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"; 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:ode="http://www.apache.org/ode/type/extension"; 
xmlns:this="http://example.com/wsdlWithHeader/Process"; 
xmlns:xml="http://www.w3.org/XML/1998/namespace"; 
xmlns:tns="http://www.example.org/wsdlwithheader/"; 
xmlns:diag="http://example.com/wsdlWithHeader"; 
xmlns:initiator="http://example.com/wsdlWithHeader/initiator"; 
xmlns:bpmn="http://www.intalio.com/bpms"; 
xmlns:atomic="http://ode.apache.org/atomicScope"; 
queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0" 
expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0" 
bpmn:label="Process" name="Process" bpmn:id="_McZpcDJ2Ed6Mu8Tm6kQxHA" 
targetNamespace="http://example.c
 om/wsdlWithHeader/Process">
+  <bpel:import namespace="http://example.com/wsdlWithHeader"; 
location="wsdlWithHeader.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
+  <bpel:import namespace="http://example.com/wsdlWithHeader/Process"; 
location="wsdlWithHeader-Process.wsdl" 
importType="http://schemas.xmlsoap.org/wsdl/"/>
+  <bpel:import namespace="http://www.example.org/wsdlwithheader/"; 
location="wsdlWithheaders.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
+  <bpel:partnerLinks>
+    <bpel:partnerLink name="processAndInitiatorPlkVar" 
partnerLinkType="diag:ProcessAndInitiator" myRole="Process_for_initiator"/>
+    <bpel:partnerLink 
name="processAndInitiatorForPortWsdl-with-headerSOAPPlkVar" 
partnerLinkType="diag:ProcessAndInitiatorForPortWsdl-with-headerSOAPPlk" 
myRole="Process_for_initiator"/>
+  </bpel:partnerLinks>
+  <bpel:correlationSets>
+    <bpel:correlationSet name="set1" properties="this:instanceId"/>
+  </bpel:correlationSets>
+  <bpel:variables>
+    <bpel:variable name="thisRecevie_first_messageRequest" 
messageType="this:Recevie_first_messageRequest"/>
+    <bpel:variable name="thisRecevie_first_messageResponse" 
messageType="this:Recevie_first_messageResponse"/>
+    <bpel:variable name="tnsCorrelattionWithHeadersRequestMsg" 
messageType="tns:correlattionWithHeadersRequest"/>
+    <bpel:variable name="tnsCorrelattionWithHeadersResponseMsg" 
messageType="tns:correlattionWithHeadersResponse"/>
+  </bpel:variables>
+  <bpel:sequence>
+    <bpel:receive partnerLink="processAndInitiatorPlkVar" 
portType="this:Forinitiator" operation="Recevie_first_message" 
variable="thisRecevie_first_messageRequest" createInstance="yes" 
bpmn:label="Recevie first message" name="Recevie_first_message" 
bpmn:id="_Of-qwDJ2Ed6Mu8Tm6kQxHA"></bpel:receive>
+    <bpel:assign name="init-variables-Process" 
bpmn:id="_Of-qwDJ2Ed6Mu8Tm6kQxHA">
+      <bpel:copy bpmn:label="$thisRecevie_first_messageResponse">
+        <bpel:from>
+          <bpel:literal>
+<this:Recevie_first_messageResponse></this:Recevie_first_messageResponse></bpel:literal>
+        </bpel:from>
+        <bpel:to>$thisRecevie_first_messageResponse.body</bpel:to>
+      </bpel:copy>
+      <bpel:copy bpmn:label="$tnsCorrelattionWithHeadersResponseMsg">
+        <bpel:from>
+          <bpel:literal>
+<tns:response>
+  <out></out>
+</tns:response></bpel:literal>
+        </bpel:from>
+        <bpel:to>$tnsCorrelattionWithHeadersResponseMsg.parameters</bpel:to>
+      </bpel:copy>
+    </bpel:assign>
+    <bpel:assign bpmn:label="Recevie first message" 
name="Recevie_first_message-1" bpmn:id="_Of-qwDJ2Ed6Mu8Tm6kQxHA">
+      <bpel:copy>
+          <bpel:from>'11234'</bpel:from>
+        <bpel:to>$thisRecevie_first_messageResponse.body</bpel:to>
+      </bpel:copy>
+    </bpel:assign>
+    <bpel:reply partnerLink="processAndInitiatorPlkVar" 
portType="this:Forinitiator" operation="Recevie_first_message" 
variable="thisRecevie_first_messageResponse" bpmn:label="Recevie first message" 
name="Recevie_first_message-2" bpmn:id="_Of-qwDJ2Ed6Mu8Tm6kQxHA">
+      <bpel:correlations>
+        <bpel:correlation set="set1" initiate="join"/>
+      </bpel:correlations>
+    </bpel:reply>
+    <bpel:receive 
partnerLink="processAndInitiatorForPortWsdl-with-headerSOAPPlkVar" 
portType="tns:wsdl-with-header" operation="correlattionWithHeaders" 
variable="tnsCorrelattionWithHeadersRequestMsg" 
bpmn:label="correlattionWithHeaders" name="correlattionWithHeaders" 
bpmn:id="_kzEgGDJ7Ed6WJp7-9Y3qBw">
+      <bpel:correlations>
+        <bpel:correlation set="set1" initiate="no"/>
+      </bpel:correlations>
+    </bpel:receive>
+    <bpel:reply 
partnerLink="processAndInitiatorForPortWsdl-with-headerSOAPPlkVar" 
portType="tns:wsdl-with-header" operation="correlattionWithHeaders" 
variable="tnsCorrelattionWithHeadersResponseMsg" 
bpmn:label="correlattionWithHeaders" name="correlattionWithHeaders-1" 
bpmn:id="_kzEgGDJ7Ed6WJp7-9Y3qBw"></bpel:reply>
+  </bpel:sequence>
+</bpel:process>

Added: 
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithHeader-Process.wsdl
URL: 
http://svn.apache.org/viewvc/ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithHeader-Process.wsdl?rev=959465&view=auto
==============================================================================
--- 
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithHeader-Process.wsdl
 (added)
+++ 
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithHeader-Process.wsdl
 Wed Jun 30 22:36:05 2010
@@ -0,0 +1,46 @@
+<?xml version='1.0' encoding='utf-8'?>
+<wsdl:definitions xmlns:tns="http://www.example.org/wsdlwithheader/"; 
xmlns:initiator="http://example.com/wsdlWithHeader/initiator"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"; 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:xml="http://www.w3.org/XML/1998/namespace"; 
xmlns:wsdlWithheaders="http://www.example.org/wsdlwithheader/"; 
xmlns:diag="http://example.com/wsdlWithHeader"; 
xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"; 
xmlns:pnlk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"; 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:this="http://example.com/wsdlWithHeader/Process"; 
targetNamespace="http://example.com/wsdlWithHeader/Process";>
+    <wsdl:types>
+        <xs:schema elementFormDefault="qualified" 
targetNamespace="http://example.com/wsdlWithHeader/Process";>
+            <xs:element name="Recevie_first_messageRequest" type="xs:string"/>
+            <xs:element name="Recevie_first_messageResponse" type="xs:string"/>
+        </xs:schema>
+    </wsdl:types>
+    <wsdl:import namespace="http://www.example.org/wsdlwithheader/"; 
location="wsdlWithheaders.wsdl"/>
+    <wsdl:message name="Recevie_first_messageRequest">
+        <wsdl:part name="body" element="this:Recevie_first_messageRequest"/>
+    </wsdl:message>
+    <wsdl:message name="Recevie_first_messageResponse">
+        <wsdl:part name="body" element="this:Recevie_first_messageResponse"/>
+    </wsdl:message>
+    <wsdl:portType name="Forinitiator">
+        <wsdl:operation name="Recevie_first_message">
+            <wsdl:input message="this:Recevie_first_messageRequest" 
name="Recevie_first_message"/>
+            <wsdl:output message="this:Recevie_first_messageResponse" 
name="Recevie_first_messageResponse"/>
+        </wsdl:operation>
+    </wsdl:portType>
+    <wsdl:binding name="CanonicBindingForinitiator" type="this:Forinitiator">
+        <soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>
+        <wsdl:operation name="Recevie_first_message">
+            <soap:operation style="document" 
soapAction="http://example.com/wsdlWithHeader/Process/Forinitiator/Recevie_first_message"/>
+            <wsdl:input name="Recevie_first_message">
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output name="Recevie_first_messageResponse">
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+    </wsdl:binding>
+    <wsdl:service name="CanonicServiceForinitiator">
+        <wsdl:port name="canonicPort" 
binding="this:CanonicBindingForinitiator">
+            <soap:address 
location="http://localhost:8080/ode/processes/Correlation-Header/wsdlWithHeader/Process/initiator"/>
+        </wsdl:port>
+    </wsdl:service>
+    <vprop:property name="instanceId" type="xs:string"/>
+    <vprop:propertyAlias propertyName="this:instanceId" 
messageType="this:Recevie_first_messageResponse" part="body">
+        <vprop:query>text()</vprop:query>
+    </vprop:propertyAlias>
+    <vprop:propertyAlias propertyName="this:instanceId" 
messageType="tns:correlattionWithHeadersRequest" header="header">
+        <vprop:query>in/text()</vprop:query>
+    </vprop:propertyAlias>
+</wsdl:definitions>

Added: 
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithHeader.svg
URL: 
http://svn.apache.org/viewvc/ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithHeader.svg?rev=959465&view=auto
==============================================================================
--- 
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithHeader.svg 
(added)
+++ 
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithHeader.svg 
Wed Jun 30 22:36:05 2010
@@ -0,0 +1,186 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<svg xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink"; stroke-dasharray="none" 
shape-rendering="auto" font-family="'Dialog'" width="1549" 
text-rendering="auto" fill-opacity="1" contentScriptType="text/ecmascript" 
color-rendering="auto" color-interpolation="auto" preserveAspectRatio="xMidYMid 
meet" font-size="12" viewBox="0 0 1549 472" fill="black" stroke="black" 
image-rendering="auto" stroke-miterlimit="10" zoomAndPan="magnify" 
version="1.0" stroke-linecap="square" stroke-linejoin="miter" 
contentStyleType="text/css" font-style="normal" height="472" stroke-width="1" 
stroke-dashoffset="0" font-weight="normal" stroke-opacity="1" 
xmlns:bpmn="http://www.intalio.com/bpms";>
+<!--Generated by the Batik Graphics2D SVG Generator-->
+<defs id="genericDefs"/>
+<g>
+<defs id="defs1">
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
+<path d="M38 38 L1540 38 L1540 241 L38 241 L38 38 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
+<path d="M44 116 L66 116 L66 162 L44 162 L44 116 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
+<path d="M125 114 L238 114 L238 177 L125 177 L125 114 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
+<path d="M160 135 L198 135 L198 151 L160 151 L160 135 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
+<path d="M313 120 L441 120 L441 183 L313 183 L313 120 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
+<path d="M313 141 L437 141 L437 157 L313 157 L313 141 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath7">
+<path d="M64 39 L1539 39 L1539 240 L64 240 L64 39 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath8">
+<path d="M38 261 L1540 261 L1540 463 L38 463 L38 261 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath9">
+<path d="M44 337 L66 337 L66 387 L44 387 L44 337 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath10">
+<path d="M123 337 L249 337 L249 400 L123 400 L123 337 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath11">
+<path d="M123 358 L245 358 L245 374 L123 374 L123 358 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath12">
+<path d="M312 339 L450 339 L450 402 L312 402 L312 339 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath13">
+<path d="M312 360 L446 360 L446 376 L312 376 L312 360 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath14">
+<path d="M64 262 L1539 262 L1539 462 L64 462 L64 262 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath15">
+<path d="M314 341 L332 341 L332 359 L314 359 L314 341 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath16">
+<path d="M-1 -1 L1550 -1 L1550 473 L-1 473 L-1 -1 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath17">
+<path d="M305 363 L315 363 L315 372 L305 372 L305 363 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath18">
+<path d="M157 167 L167 167 L167 177 L157 177 L157 167 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath19">
+<path d="M157 331 L168 331 L168 340 L157 340 L157 331 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath20">
+<path d="M199 333 L209 333 L209 343 L199 343 L199 333 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath21">
+<path d="M191 171 L202 171 L202 180 L191 180 L191 171 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath22">
+<path d="M350 173 L360 173 L360 183 L350 183 L350 173 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath23">
+<path d="M350 333 L361 333 L361 342 L350 342 L350 333 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath24">
+<path d="M346 258 L364 258 L364 276 L346 276 L346 258 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath25">
+<path d="M396 335 L406 335 L406 345 L396 345 L396 335 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath26">
+<path d="M389 177 L400 177 L400 186 L389 186 L389 177 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath27">
+<path d="M385 245 L403 245 L403 263 L385 263 L385 245 Z"/>
+</clipPath>
+</defs>
+<g font-size="16" fill="rgb(139,139,153)" font-family="'Arial'" 
stroke-linejoin="round" stroke="rgb(139,139,153)" stroke-miterlimit="0">
+<rect x="39" y="39" clip-path="url(#clipPath1)" width="26" height="201" 
stroke="none" bpmn:process-id="_LF04FjJ2Ed6Mu8Tm6kQxHA" 
bpmn:process-name="initiator"/>
+<rect x="65" y="39" clip-path="url(#clipPath1)" fill="rgb(232,232,255)" 
width="1474" height="201" stroke="none"/>
+<rect x="39" y="39" clip-path="url(#clipPath1)" fill="none" width="1500" 
height="201" stroke="black" bpmn:process-id="_LF04FjJ2Ed6Mu8Tm6kQxHA" 
bpmn:process-name="initiator"/>
+<image stroke="black" width="14" xlink:show="embed" xlink:type="simple" 
fill="black" clip-path="url(#clipPath2)" preserveAspectRatio="none" height="40" 
x="45" y="117" 
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAoCAYAAADOvcv6AAADCUlEQVR42s1VbUhT&#xa;URh+7t2u+YmbyzVLq6nLgUpq9C8hSyoLszRspCJa2I9Ailph+SP6MQUD6U+ZkJE/&#xa;SvsApQ8RUSMqC6IvtfKL+uFsfuLXdJt3u51ddTbZdlcQdOC957zvOQ/3fd/zvOel&#xa;Kipuclg1Sq5UQ1daCIoWw91wuRPt9xWtwzao1wIiasUeJhYADrNR0Ffq8DYkFqAZ&#xa;h/3S+UOegdpjEvK1i3lJvHRVvCkX/SYO3aMsaOKqWiaGyo8SBnboTWipqUcM941o&#xa;FO5y0dhdoEHyRn/PwOcP76H4gBnSuEJen+xuw42GOiQXFzrO0C4DMPZAmnQC8FHx&#xa;Ikk8Ds7Y53TEJdCP3GzXNIUFsrZL1zQNX6tNOMbDO6Jw51otmPgUXrd0tiM/OVIY&#xa;OJWggXZdHUa6qnhdfiQKryUaKN0Bu4wc79rjmgdILyIxRliWCMGguVyH1LJS10BD&#xa;/S30fp/ArGkAHeVjK4ngWGQox927mpq3F6kLo3j/aApJWakrGxS5fJ/1HmJkInhJ&#xa;yFFilJOCXaobez4nzRxi/QWS09ANfGhuhpmdRyD52YzVilCLAbGXT3kGfmyowrn9&#xa;Pmh8pUfKTjWMvQP4HBDvBQHocQRvO4OwyCSMMbugzizFz4ExYaCYXoNBMwW5TI4+&#xa;/RDmqCDMzM0KA9PiQ9FY8xTqLZvR/
 
+Ilym9/QiQ9JcycuLR8xAy1g5GpcDonHBM9&#xa;dVAczHAPHCS0URCLwSYli8xFhkfmEWFhAINwd8Daq/dxsigNtdVNLqvtYkm2a6A2&#xa;1wZxMIc96Sy2BjuH32pg3bvaE3IUC+RtetZigqiowGG3EAq1Xtdh33b8LyQfRAQU&#xa;fhGQZysxSEudM0OYHi4SzGrL32XVPgsNsXM5avhZROYJK3n8V/WxDUKUe/JlGu+a&#xa;OuDLzuL3h7/kQpZnYCepR20aA1+ZYjGj3jYdSdA8ghK1fN/4o8YqCwhAG6GYSsbw&#xa;3coRo1Bj/TESiL7KMryRqEk7F3kf49mc5cZqWxIBV5frcVihcXn439WjN8z5BYqO&#xa;GC5NAxT3AAAAAElFTkSuQmCC"
 xlink:actuate="onLoad"/>
+<rect x="129" y="118" clip-path="url(#clipPath3)" fill="black" width="107" 
rx="3.5" opacity="0.2745" ry="3.5" height="57" stroke="none"/>
+<rect x="126" y="115" clip-path="url(#clipPath3)" fill="white" width="107" 
rx="4.5" ry="4.5" height="57" stroke="none"/>
+<rect x="126" y="115" clip-path="url(#clipPath3)" fill="none" width="106" 
rx="4" ry="4" height="56" stroke="black"/>
+<text x="161" y="151" clip-path="url(#clipPath4)" fill="black" stroke="none" 
xml:space="preserve">Initiate</text>
+<rect x="317" y="124" clip-path="url(#clipPath5)" fill="black" width="122" 
rx="3.5" opacity="0.2745" ry="3.5" height="57" stroke="none"/>
+<rect x="314" y="121" clip-path="url(#clipPath5)" fill="white" width="122" 
rx="4.5" ry="4.5" height="57" stroke="none"/>
+<rect x="314" y="121" clip-path="url(#clipPath5)" fill="none" width="121" 
rx="4" ry="4" height="56" stroke="black"/>
+<text x="314" y="157" clip-path="url(#clipPath6)" fill="black" stroke="none" 
xml:space="preserve">Send secondmessage</text>
+<line clip-path="url(#clipPath7)" fill="none" x1="65" x2="65" y1="40" y2="238" 
stroke="rgb(169,169,169)"/>
+<rect x="39" y="39" clip-path="url(#clipPath1)" fill="none" width="1500" 
height="201" stroke="rgb(169,169,169)" 
bpmn:process-id="_LF04FjJ2Ed6Mu8Tm6kQxHA" bpmn:process-name="initiator"/>
+<rect x="39" y="262" clip-path="url(#clipPath8)" fill="rgb(232,232,255)" 
width="1500" height="200" stroke="none" 
bpmn:process-id="_McZpcDJ2Ed6Mu8Tm6kQxHA" bpmn:process-name="Process"/>
+<rect x="39" y="262" clip-path="url(#clipPath8)" fill="none" width="1500" 
height="200" stroke="black" bpmn:process-id="_McZpcDJ2Ed6Mu8Tm6kQxHA" 
bpmn:process-name="Process"/>
+<image stroke="black" width="14" xlink:show="embed" xlink:type="simple" 
fill="black" clip-path="url(#clipPath9)" preserveAspectRatio="none" height="44" 
x="45" y="338" 
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAsCAYAAABVLInsAAADiUlEQVR42t2Vf0zU&#xa;ZRzHX/cFDk/oQKwGO12FwyPNbDaU7vQEr83S2SIarY41gk7hgJM/TmnUKNlcYbZm&#xa;ICLDWztirfIXq+CavyCw1RDXxpaDIjbDuJtxlBMh5L7X985int31+Hef7bN9Ps+e&#xa;1/N8Pu/n2fOoPJ5AgDtsdBb6xmZ5MV3N9i+8/PSjj31FerIXSfNzJCJY+Wsubrxf&#xa;xrlLEwxXrmTXhQ3srtwbNicieLX7TXbU2zn95VGee8HAtrYf+HPoiBgkVsKnWc2p&#xa;c25yc7byW+B+ZuYkMZj/kBrjS8fQDblZvXEL2+wdWPSx4WtHAncdaqSwo5p7a2sJ&#xa;aJbSqn+ezMJmMXg50Uzfxl5FVQ3WoKr+FvapVpEtKvWWqhW3qWr+X6sqKaq6FFXT&#xa;70ZVVYqZkfxvOemVeVWG8aKvWaaNF5fa3O+jxlRE4zMmJj1XKTVaOfidTwx+WFNK&#xa;1+E0ku65QlqqhjN112l1FN+Fqtf60a6rV2pWKzMSSc37hJgb/eIeFxPgm99BDq6h&#xa;+KfDN0mRZTH4ri2H4q0Ofvl1iqxiN3E9b+OqzhWDj7zcwAm9gwl3PNNzO0g5kkOG&#xa;6YC4x46xeAra83j0rSEWl/TybJOZTk+CGKwrraIlo06JFrAsNYZjpg/YY6sWg6rx&#xa;k6ysPH0r1ujIrOhFHvtMDC6SYukYj
 
2NKiYPe6Y1DKyMWp95qpGSzhTfWlylbQsz5&#xa;Vpw2gxhcYz1E32PVXO4uRfYHeKB5A4nr3hODspTMxYebcav/QFKaMT+YhElShfUV&#xa;EXQNXmN/4U42Bc4G5aFcXk+VqxHrmuT/Bhsdlbhrr7Pk6bZQfuWrBvJqKrC6PxJc&#xa;8omzLMn/GBaaQq7Layfg6xUfR5IifZdHxYwSB73LK5F40y8W5x2rgVeeKmHBlopQ&#xa;Pt15EKc1WwxOFjTRs7ycn7vyQ3nGfgPJm1rEoDW3jNGLbWSZ/ylPE1JXCBq1pzgw&#xa;7MecvjD4xM7bCrUAHJ41MvhkFm1LN6OK1cyPD5zfGx0M/utnmnSo0f19xaciP/a3&#xa;J945eL17kkuDVTy+VkfdE1qSI590OGiv72TOaWGnfgZXg5bdjuO02IxisMdpZ+Tz&#xa;PSRkFpB7wcna7XawDUQEwwuZGiFhhXLoUir3ZTmY9nxPNJOiDgUfY+So4L9UbR/3&#xa;R80taTGRwVXBf8OQHTW3jPZHBt0DTXfsXxy11L8An3ZIkwNzqTgAAAAASUVORK5C&#xa;YII="
 xlink:actuate="onLoad"/>
+<rect x="127" y="341" clip-path="url(#clipPath10)" fill="black" width="120" 
rx="3.5" opacity="0.2745" ry="3.5" height="57" stroke="none"/>
+<rect x="124" y="338" clip-path="url(#clipPath10)" fill="white" width="120" 
rx="4.5" ry="4.5" height="57" stroke="none" 
bpmn:process-id="_McZpcDJ2Ed6Mu8Tm6kQxHA" 
bpmn:activity-id="_Of-qwDJ2Ed6Mu8Tm6kQxHA" bpmn:activity-label="Recevie first 
message"/>
+<rect x="124" y="338" clip-path="url(#clipPath10)" fill="none" width="119" 
rx="4" ry="4" height="56" stroke="black" 
bpmn:process-id="_McZpcDJ2Ed6Mu8Tm6kQxHA" 
bpmn:activity-id="_Of-qwDJ2Ed6Mu8Tm6kQxHA" bpmn:activity-label="Recevie first 
message"/>
+<text x="124" y="374" clip-path="url(#clipPath11)" fill="black" stroke="none" 
xml:space="preserve">Recevie first message</text>
+<rect x="316" y="343" clip-path="url(#clipPath12)" fill="black" width="132" 
rx="3.5" opacity="0.2745" ry="3.5" height="57" stroke="none"/>
+<rect x="313" y="340" clip-path="url(#clipPath12)" fill="white" width="132" 
rx="4.5" ry="4.5" height="57" stroke="none" 
bpmn:process-id="_McZpcDJ2Ed6Mu8Tm6kQxHA" 
bpmn:activity-id="_kzEgGDJ7Ed6WJp7-9Y3qBw" 
bpmn:activity-label="correlattionWithHeaders"/>
+<rect x="313" y="340" clip-path="url(#clipPath12)" fill="none" width="131" 
rx="4" ry="4" height="56" stroke="black" 
bpmn:process-id="_McZpcDJ2Ed6Mu8Tm6kQxHA" 
bpmn:activity-id="_kzEgGDJ7Ed6WJp7-9Y3qBw" 
bpmn:activity-label="correlattionWithHeaders"/>
+<text x="313" y="376" clip-path="url(#clipPath13)" fill="black" stroke="none" 
xml:space="preserve">correlattionWithHeaders</text>
+<line clip-path="url(#clipPath14)" fill="none" x1="65" x2="65" y1="263" 
y2="460" stroke="rgb(169,169,169)"/>
+<rect x="39" y="262" clip-path="url(#clipPath8)" fill="none" width="1500" 
height="200" stroke="rgb(169,169,169)" 
bpmn:process-id="_McZpcDJ2Ed6Mu8Tm6kQxHA" bpmn:process-name="Process"/>
+</g>
+<g fill="rgb(169,169,169)" font-size="18" stroke-miterlimit="0" 
stroke-linejoin="round" stroke="rgb(169,169,169)">
+<image x="315" y="342" clip-path="url(#clipPath15)" width="16" 
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADVklEQVR42mP8//8/&#xa;Az5w7949661bt6afPXtWkp+f/5eZmdktBweH6dLS0rdA8ix49LJMmzZtZk1NjT83&#xa;N/cPLS2tJ0DD2JYtW2YK5IdNmTKlxsfHZz5WAxzckvhjwu1n5OfnBzU0NOysrq6O&#xa;BwrLAfHzv3//mmdmZjZHRERM2rZt21esBmjraPT19vZGpGfkvQEaUgVUvB2oWMvC&#xa;wuLjmTNn+GfOnLnk+vXrjEAXFrJAbeRh4eBew/j/34zfP78f83S3tb196xpDTEL+&#xa;tzlz5zetXbvWsKNryttLF098ff9+t8ynT59+ODk53V6zZo0B2AAmNs6JfNKq7ix/&#xa;f5oy/v39lZOLQ1ZMTJJBVFRF7siBpVIqKuqM2sqWkqwsrH8WLVwAduXjx48F2NnZ&#xa;fzKBOP9+fS//8e75DX4hcSEpOWVZXgEphtevXzII8LIzONi7sDx8eJ/52evr3y6c&#xa;P/oTpP7p06e+69ev1/fz87vGBPX2R0ZGhn/MTEwMIHzz5r03KipqPw8fWvtLWFiF&#xa;ISkxnaG0LIfz4cOHPKysrL+mT58umJKSchoYwEmMDj45y1nZOVVEJOUNBPgFWP59&#xa;//z14Z2r0dmp7lYhISF5paV1jA7WAew83OwM2/fuuWRiqvb/9auHvxITE6yAFv9h&#xa;VtKx7xaQUtLm4uRi4mBlZfjw+umj929fFbY1l+6RkZGR6+3rNtq1ex3T3XvXGB49&#xa;vC4+dWq/xP0H95nDwkIPAsPgKbOCkgHbry/vPrGzc8jy8vCx8/Px8X/88EZ89tzV
 
&#xa;B+/cfyefk1Fk6+bsxAb0IgMnD8+7gMDwm7oGVo52tqbXwalt35ap3SCGb0TFWUkJ&#xa;aSMeTj5mcwv7tFfPHnupKilLCPOLs/JycjDcYnn98NL1u6aTJna9RkmuIMLFN9tL&#xa;TFpJDhSATEDMy8nLKKVnKMsD1AgWA4Xwv///uTg5+YDKUQwAxwIzM4sTOwcnz/2b&#xa;l25euXjy5If3b7+CNL558+rHnkP7Lx07e+qRjampgiA/fyt6qgUbsHPDxJJn9641&#xa;vH75xGrVomaLB/dvnwG55MTZkzvPX7lkcPzsWY8Fq1etevriRQpGjoMxdm6a0glj&#xa;f/v+7dqZ86dkfv78efHArnmg/A4KsHBs+QYAfFRVkxXNPjQAAAAASUVORK5CYII="
 xlink:type="simple" xlink:actuate="onLoad" height="16" 
preserveAspectRatio="none" xlink:show="embed"/>
+</g>
+<g stroke-miterlimit="0" font-size="16" font-family="'Arial'" 
stroke-linejoin="round">
+<line clip-path="url(#clipPath16)" fill="none" x1="244" x2="313" y1="367" 
y2="367" opacity="0.6667"/>
+<polygon clip-path="url(#clipPath17)" points=" 306 370 313 367 306 364" 
opacity="0.6667" stroke="none"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="306" x2="313" y1="370" 
y2="367" opacity="0.6667"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="313" x2="306" y1="367" 
y2="364" opacity="0.6667"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="162" x2="162" y1="172" 
y2="338" stroke-dasharray="7,5" opacity="0.5882"/>
+<circle clip-path="url(#clipPath18)" fill="white" r="3.5" cx="161.5" 
cy="171.5" stroke="none"/>
+<circle clip-path="url(#clipPath18)" fill="none" r="3.5" cx="161.5" cy="171.5" 
opacity="0.5882"/>
+<polygon fill="white" clip-path="url(#clipPath19)" points=" 158 332 162 338 
166 332 158 332" stroke="none"/>
+<line clip-path="url(#clipPath19)" fill="none" x1="158" x2="162" y1="332" 
y2="338" opacity="0.5882"/>
+<line clip-path="url(#clipPath19)" fill="none" x1="162" x2="166" y1="338" 
y2="332" opacity="0.5882"/>
+<line clip-path="url(#clipPath19)" fill="none" x1="166" x2="158" y1="332" 
y2="332" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="204" x2="204" y1="338" 
y2="259" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="204" x2="203" y1="259" 
y2="257" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="203" x2="203" y1="257" 
y2="256" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="203" x2="202" y1="256" 
y2="255" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="202" x2="201" y1="255" 
y2="255" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="201" x2="200" y1="255" 
y2="255" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="200" x2="200" y1="255" 
y2="255" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="200" x2="198" y1="255" 
y2="254" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="198" x2="197" y1="254" 
y2="254" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="197" x2="196" y1="254" 
y2="253" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="196" x2="196" y1="253" 
y2="252" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="196" x2="196" y1="252" 
y2="251" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="196" x2="196" y1="251" 
y2="172" stroke-dasharray="7,5" opacity="0.5882"/>
+<circle clip-path="url(#clipPath20)" fill="white" r="3.5" cx="203.5" 
cy="337.5" stroke="none"/>
+<circle clip-path="url(#clipPath20)" fill="none" r="3.5" cx="203.5" cy="337.5" 
opacity="0.5882"/>
+<polygon fill="white" clip-path="url(#clipPath21)" points=" 200 178 196 172 
192 178 200 178" stroke="none"/>
+<line clip-path="url(#clipPath21)" fill="none" x1="200" x2="196" y1="178" 
y2="172" opacity="0.5882"/>
+<line clip-path="url(#clipPath21)" fill="none" x1="196" x2="192" y1="172" 
y2="178" opacity="0.5882"/>
+<line clip-path="url(#clipPath21)" fill="none" x1="192" x2="200" y1="178" 
y2="178" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="244" x2="313" y1="367" 
y2="367" opacity="0.6667"/>
+<polygon clip-path="url(#clipPath17)" points=" 306 370 313 367 306 364" 
opacity="0.6667" stroke="none"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="306" x2="313" y1="370" 
y2="367" opacity="0.6667"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="313" x2="306" y1="367" 
y2="364" opacity="0.6667"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="355" x2="355" y1="178" 
y2="340" stroke-dasharray="7,5" opacity="0.5882"/>
+<circle clip-path="url(#clipPath22)" fill="white" r="3.5" cx="354.5" 
cy="177.5" stroke="none"/>
+<circle clip-path="url(#clipPath22)" fill="none" r="3.5" cx="354.5" cy="177.5" 
opacity="0.5882"/>
+<polygon fill="white" clip-path="url(#clipPath23)" points=" 351 334 355 340 
359 334 351 334" stroke="none"/>
+<line clip-path="url(#clipPath23)" fill="none" x1="351" x2="355" y1="334" 
y2="340" opacity="0.5882"/>
+<line clip-path="url(#clipPath23)" fill="none" x1="355" x2="359" y1="340" 
y2="334" opacity="0.5882"/>
+<line clip-path="url(#clipPath23)" fill="none" x1="359" x2="351" y1="334" 
y2="334" opacity="0.5882"/>
+<image width="16" xlink:show="embed" xlink:type="simple" 
clip-path="url(#clipPath24)" preserveAspectRatio="none" height="16" 
font-family="'Dialog'" x="347" y="259" font-size="18" 
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADTElEQVR42n1Se0hT&#xa;URg/556pu1NcGUunuVlYjMReaErNWiUpgSaalWGUaWEvemkFlSwlDdMaKyztj1CK&#xa;lFpaUeZMoxwzCVpksUqzUc50mdbysc1z7+leS2kR/eDj+87j9/sefJAQAng0NDQc&#xa;1Gq1SZ2dnQECgYCEhoZ+Tk1NfZKenp4H/gMBZygvL+/uBa0mbo0qmspIiAEMywJz&#xa;l3XO7uwdy9sN9SfghxaAXU53JgVKS5r6cgQ6na6ouLg4Jn/XBsbV3c7QftFPgkNm&#xa;vQ9SjEiSN2VM35q5Pbzo5LHblrpzJb9T7iEsXEdY4sMfkcVi0cTFxb31+/HOv/JZ&#xa;P9P0uGX2PX3znJqbtYroJUuNUqn0W/Njg7y6xVygryqJhQDshxS5xnHx6q25D6iO&#xa;jg5/pVL51CMo3Kujy0Kf2rXuafHh7K8YYyGfQSaT9dlsNvEhlXQFIKCMpUASIHBw&#xa;shOGYZBYLB50YhZACNmIhC1qPPJtvDxumJ5tbW2hM+XBDgiJjgCSVdrUZ3Qbolwu&#xa;72ltbVVJhz66vEUisnFz1kWGwRRCFCg7r0n58qUfHk2PxT3t5ETpI9sNnuQl8kF8&#xa;+5wJUWFh4eL8/Px4VUQY2nfgwCGM6GkJCYnvQ2TBw9FRUd83rF1WVPeuvqqq7lPF&#xa;RNYZy+IfNgx3R1n7r
 
cepzMzMnWlpaa8KrtTTtXrD5sjISJPQR2jBgODKq9eDzB5D&#xa;Mz770dcW5IapJwS8hd7A4XKA8ruXAFKr1TgxMfEqPdR9pNH43FVdXaNsbNKvHIEj&#xa;gbFZKtBs18+1L+6lucFFVOguKyvulN/KSc49hhkMDe0t44vEw/nJqBtdSjNJrbZ+&#xa;e/zpVc/erG4LrAVm/l3Ef8CBo75eb3xjadNUk+27zW0Tf4GAYQDR/ZwV/q6BRVMl&#xa;/1pbp8LuxUxxKdafTQEZyu3uAqwHjEEYyvh4DFE1nJv+twBkIBCafYdDJLKhQftX&#xa;K0vY+ZMCZxt7uzjHG5h/JAx7WEWTRCxxADhGAR99wAA1igoqS65r5mYosrknjeBf&#xa;pUIWnBIZJOHj8RgMYSTOldSg5wDlQCkm7UsjR+bVF7nP4A+8OPO6bCJeuHdeJBrw&#xa;FEMHSjadf9n7+5oX38bZo587QV0mB98ZbwAAAABJRU5ErkJggg=="
 xlink:actuate="onLoad"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="401" x2="401" y1="340" 
y2="262" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="401" x2="400" y1="262" 
y2="261" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="400" x2="400" y1="261" 
y2="260" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="400" x2="399" y1="260" 
y2="259" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="399" x2="398" y1="259" 
y2="259" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="398" x2="397" y1="259" 
y2="259" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="397" x2="397" y1="259" 
y2="259" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="397" x2="396" y1="259" 
y2="258" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="396" x2="395" y1="258" 
y2="258" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="395" x2="394" y1="258" 
y2="257" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="394" x2="394" y1="257" 
y2="256" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="394" x2="394" y1="256" 
y2="255" stroke-dasharray="7,5" opacity="0.5882"/>
+<line clip-path="url(#clipPath16)" fill="none" x1="394" x2="394" y1="255" 
y2="178" stroke-dasharray="7,5" opacity="0.5882"/>
+<circle clip-path="url(#clipPath25)" fill="white" r="3.5" cx="400.5" 
cy="339.5" stroke="none"/>
+<circle clip-path="url(#clipPath25)" fill="none" r="3.5" cx="400.5" cy="339.5" 
opacity="0.5882"/>
+<polygon fill="white" clip-path="url(#clipPath26)" points=" 398 184 394 178 
390 184 398 184" stroke="none"/>
+<line clip-path="url(#clipPath26)" fill="none" x1="398" x2="394" y1="184" 
y2="178" opacity="0.5882"/>
+<line clip-path="url(#clipPath26)" fill="none" x1="394" x2="390" y1="178" 
y2="184" opacity="0.5882"/>
+<line clip-path="url(#clipPath26)" fill="none" x1="390" x2="398" y1="184" 
y2="184" opacity="0.5882"/>
+<image width="16" xlink:show="embed" xlink:type="simple" 
clip-path="url(#clipPath27)" preserveAspectRatio="none" height="16" 
font-family="'Dialog'" x="386" y="246" font-size="18" 
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADUElEQVR42n1TfUhT&#xa;URS/971N95a0ymotc0tbJqQkZLl00krLDJRhShFGSRp9CGUZfcsyNBKlaVHRf5WC&#xa;UsNWOj/CryYuMStSstJ0buZyLtTS9tzee7f3NCP7+sEPzuWe3zn3nHsORAgBDjU1&#xa;NceLiorUPT09S3g8HpLL5bakpKSnycnJWeA/4LHEs7KyHl8v0sZsVymwlLhIQDMM&#xa;6Or9GHDk4IGNHc1VF2CfEVCuydlKDBTk1w1l8nQ63eW8vLzI7MM7addAB014K576&#xa;yvw/+AR+W5SwO2Xxvv1pwZcvntObH17N/5EyHTEwETHIizviZrNZGxMT827B1/fi&#xa;O20Ouq7RuLKytj6g7EF5oCI8okUikYzWNzXLSo1dl2rv5kdDAI5BDJWwWmrrvpPV&#xa;WHd3t1ipVD7j+wR7dveaiZzDic+unDo4TFGUgMsglUqH7Ha76IRKsgkgcIPBgBog&#xa;OPKzEpqmcZFINDJJMQBCyITG7dXQE6Nzp17L43m0trbK/WS+JIRIhwBKLagbapnV&#xa;RJlMNmgymVSScYtrjlCIdu1JvUnTFIbjGLhxTbtjeNgBTydHU4Md6EJBg/0+J/IU&#xa;euFc+SwFeG5u7vrs7OxtqtDV+NGMjBMUTnjHxcV/WC71nVCEhY2lJGzRFJbB9hdj&#xa;UU0Z6ZFWLoCXfHtF9
 
esVEVbryHlcr9fX9PX1xd4qLvfjzxHND1OEmwiC+GyxDoh1&#xa;5Q9XkIQavrGgNOhyeRdqGzBtYWNQSIhPwstXgzz9ow6AazQaKj4+vpgYHzj1pOWF&#xa;q7S0TGkwGNaRJIlHx6ajapsoeFS1WYgEAn/3smVqt89SdXtFu+eh1A2wvuH91CBx&#xa;mLS26JwRBK022R1fikvaFp7NqSu598lfTIYGTf2GM2SNYKZx/IFe9OskTgOBCQBx&#xa;Q+YmscvgSPFzhm/jk6sC4T8mGP4RgOHDSJyCUs5eiA8qJ563ZbrFEhE9T/SH2uWm&#xa;Jm2fRjtZcy2cWabfsdxfE8wIhVXjUVFLqSViyDf3s2mnfYXG5jGMJE+z5k2uiX8N&#xa;cOyoyl6Y/6SYb7XG8m22BYLOTqOHxXrHo9/SBBmmkmUY67YG+9+qmns1dszpDMUd&#xa;nysAht3u7zqj4Qjd7rfs9R6WTd8BxPJuZ+6cMIcAAAAASUVORK5CYII="
 xlink:actuate="onLoad"/>
+</g>
+</g>
+</svg>
\ No newline at end of file

Added: 
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithHeader.wsdl
URL: 
http://svn.apache.org/viewvc/ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithHeader.wsdl?rev=959465&view=auto
==============================================================================
--- 
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithHeader.wsdl
 (added)
+++ 
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithHeader.wsdl
 Wed Jun 30 22:36:05 2010
@@ -0,0 +1,11 @@
+<?xml version='1.0' encoding='utf-8'?>
+<wsdl:definitions xmlns:tns="http://www.example.org/wsdlwithheader/"; 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:Process="http://example.com/wsdlWithHeader/Process"; 
xmlns:diag="http://example.com/wsdlWithHeader"; 
xmlns:initiator="http://example.com/wsdlWithHeader/initiator"; 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:pnlk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"; 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"; 
xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"; 
xmlns:bpdm="http://www.intalio/designer/business-process-data-modeling"; 
targetNamespace="http://example.com/wsdlWithHeader";>
+    <wsdl:import namespace="http://example.com/wsdlWithHeader/Process"; 
location="wsdlWithHeader-Process.wsdl"/>
+    <wsdl:import namespace="http://www.example.org/wsdlwithheader/"; 
location="wsdlWithheaders.wsdl"/>
+    <pnlk:partnerLinkType name="ProcessAndInitiator">
+        <pnlk:role name="Process_for_initiator" 
portType="Process:Forinitiator"/>
+    </pnlk:partnerLinkType>
+    <pnlk:partnerLinkType 
name="ProcessAndInitiatorForPortWsdl-with-headerSOAPPlk">
+        <pnlk:role name="Process_for_initiator" 
portType="tns:wsdl-with-header"/>
+    </pnlk:partnerLinkType>
+</wsdl:definitions>
\ No newline at end of file

Added: 
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithheaders.wsdl
URL: 
http://svn.apache.org/viewvc/ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithheaders.wsdl?rev=959465&view=auto
==============================================================================
--- 
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithheaders.wsdl
 (added)
+++ 
ode/trunk/axis2-war/src/test/resources/TestCorrelationHeader/wsdlWithheaders.wsdl
 Wed Jun 30 22:36:05 2010
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<wsdl:definitions xmlns:pnlk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"; 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:tns="http://www.example.org/wsdlwithheader/"; 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; name="wsdlwithheader" 
targetNamespace="http://www.example.org/wsdlwithheader/";>
+  <wsdl:types>
+    <xsd:schema targetNamespace="http://www.example.org/wsdlwithheader/";>
+      <xsd:element name="request">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="in" type="xsd:string"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="response">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="out" type="xsd:string"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+    </xsd:schema>
+  </wsdl:types>
+  <wsdl:message name="correlattionWithHeadersRequest">
+    <wsdl:part element="tns:request" name="parameters"/>
+  </wsdl:message>
+  <wsdl:message name="correlattionWithHeadersRequest2">
+    <wsdl:part element="tns:request" name="header"/>
+  </wsdl:message>
+  <wsdl:message name="correlattionWithHeadersResponse">
+    <wsdl:part element="tns:response" name="parameters"/>
+  </wsdl:message>
+  <wsdl:portType name="wsdl-with-header">
+    <wsdl:operation name="correlattionWithHeaders">
+      <wsdl:input message="tns:correlattionWithHeadersRequest"/>
+      <wsdl:output message="tns:correlattionWithHeadersResponse"/>
+    </wsdl:operation>
+  </wsdl:portType>
+  <wsdl:binding name="wsdl-with-headerSOAP" type="tns:wsdl-with-header">
+    <soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="correlattionWithHeaders">
+      <soap:operation 
soapAction="http://www.example.org/wsdl-with-header/correlattionWithHeaders"/>
+      <wsdl:input>
+        <soap:body use="literal" parts="parameters"/>
+        <soap:header use="literal"  
message="tns:correlattionWithHeadersRequest2" part="header"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+  </wsdl:binding>
+  <wsdl:service name="wsdl-with-header">
+    <wsdl:port binding="tns:wsdl-with-headerSOAP" name="wsdl-with-headerSOAP">
+      <soap:address 
location="http://localhost:8080/ode/processes/correlationWithHeaders"/>
+    </wsdl:port>
+  </wsdl:service>
+ 
+</wsdl:definitions>

Modified: 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java?rev=959465&r1=959464&r2=959465&view=diff
==============================================================================
--- 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
 (original)
+++ 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
 Wed Jun 30 22:36:05 2010
@@ -1025,6 +1025,9 @@ public abstract class BpelCompiler imple
                 throw new 
CompilationException(__cmsgs.errUnknownPartInAlias(src.getPart(),
                         messageType.messageType.toString()));
             rootNodeType = alias.part.type;
+        } else if (src.getHeader() != null) {
+            alias.header = src.getHeader();
+            rootNodeType = new OElementVarType(_oprocess, 
QName.valueOf("{http://www.w3.org/2001/XMLSchema}any";));
         }
         if (src.getQuery() != null)
             alias.location = compileExpr(src.getQuery(), rootNodeType, null, 
new Object[1]);

Modified: 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/PropertyAlias.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/PropertyAlias.java?rev=959465&r1=959464&r2=959465&view=diff
==============================================================================
--- 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/PropertyAlias.java
 (original)
+++ 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/PropertyAlias.java
 Wed Jun 30 22:36:05 2010
@@ -60,6 +60,10 @@ public class PropertyAlias extends BpelO
     public String getPart() {
         return getAttribute("part");
     }
+    
+    public String getHeader() {
+        return getAttribute("header");
+    }
 
     /**
      * Get the <code>QName</code> of the property that this alias applies to.

Modified: ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OProcess.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OProcess.java?rev=959465&r1=959464&r2=959465&view=diff
==============================================================================
--- ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OProcess.java 
(original)
+++ ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OProcess.java Wed 
Jun 30 22:36:05 2010
@@ -169,6 +169,7 @@ public class OProcess extends OBase {
 
         /** For BPEL 1.1 */
         public OMessageVarType.Part part;
+        public String header;
 
         public OExpression location;
 
@@ -182,6 +183,7 @@ public class OProcess extends OBase {
             StringBuffer buf = new StringBuffer(varType.toString());
             buf.append('[');
             buf.append(part != null ? part.name : "");
+            buf.append(header != null ? "header: " + header : "");
             if (location != null) {
                 buf.append("][");
                 buf.append(location.toString());

Modified: 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java?rev=959465&r1=959464&r2=959465&view=diff
==============================================================================
--- 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java
 (original)
+++ 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java
 Wed Jun 30 22:36:05 2010
@@ -340,9 +340,9 @@ public class BpelProcess {
      * @return value of the property
      * @throws FaultException
      */
-    String extractProperty(Element msgData, OProcess.OPropertyAlias alias, 
String target) throws FaultException {
+    String extractProperty(Element msgData, Map<String, Node> headerParts, 
OProcess.OPropertyAlias alias, String target) throws FaultException {
         markused();
-        PropertyAliasEvaluationContext ectx = new 
PropertyAliasEvaluationContext(msgData, alias);
+        PropertyAliasEvaluationContext ectx = new 
PropertyAliasEvaluationContext(msgData, headerParts, alias);
         Node lValue = ectx.getRootNode();
 
         if (alias.location != null) {

Modified: 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java?rev=959465&r1=959464&r2=959465&view=diff
==============================================================================
--- 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
 (original)
+++ 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
 Wed Jun 30 22:36:05 2010
@@ -24,6 +24,7 @@ import java.net.URI;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.Date;
 import java.util.HashSet;
 import java.util.List;
@@ -464,7 +465,7 @@ public class BpelRuntimeContextImpl impl
         Node varData = readVariable(variable.scopeInstance, 
variable.declaration.name, false);
 
         OProcess.OPropertyAlias alias = 
property.getAlias(variable.declaration.type);
-        String val = _bpelProcess.extractProperty((Element) varData, alias, 
variable.declaration.getDescription());
+        String val = _bpelProcess.extractProperty((Element) varData, 
Collections.EMPTY_MAP, alias, variable.declaration.getDescription());
 
         if (BpelProcess.__log.isTraceEnabled()) {
             BpelProcess.__log.trace("readPropertyAlias(variable=" + variable + 
", alias=" + alias + ") = "
@@ -1175,7 +1176,7 @@ public class BpelRuntimeContextImpl impl
                 OProcess.OPropertyAlias alias = 
property.getAlias(variable.declaration.type);
                 if (alias != null) {
                     try {
-                        String val = _bpelProcess.extractProperty((Element) 
value, alias, variable.declaration
+                        String val = _bpelProcess.extractProperty((Element) 
value, Collections.EMPTY_MAP, alias, variable.declaration
                                 .getDescription());
                         if (val != null) {
                             dao.setProperty(property.name.toString(), val);

Modified: 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkMyRoleImpl.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkMyRoleImpl.java?rev=959465&r1=959464&r2=959465&view=diff
==============================================================================
--- 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkMyRoleImpl.java
 (original)
+++ 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkMyRoleImpl.java
 Wed Jun 30 22:36:05 2010
@@ -21,6 +21,7 @@ package org.apache.ode.bpel.engine;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 import javax.wsdl.Operation;
@@ -57,6 +58,7 @@ import org.apache.ode.bpel.runtime.PROCE
 import org.apache.ode.utils.ObjectPrinter;
 import org.apache.ode.utils.msg.MessageBundle;
 import org.w3c.dom.Element;
+import org.w3c.dom.Node;
 
 /**
  * @author Matthieu Riou <mriou at apache dot org>
@@ -309,19 +311,20 @@ public class PartnerLinkMyRoleImpl exten
 
         Operation operation = mex.getOperation();
         Element msg = mex.getRequest().getMessage();
+        Map<String, Node> headerParts = mex.getRequest().getHeaderParts();
         javax.wsdl.Message msgDescription = operation.getInput().getMessage();
 
         Set<OScope.CorrelationSet> csets = 
_plinkDef.getNonInitiatingCorrelationSetsForOperation(operation);
         for (OScope.CorrelationSet cset : csets) {
             CorrelationKey key = computeCorrelationKey(cset,
-                    
_process.getOProcess().messageTypes.get(msgDescription.getQName()), msg);
+                    
_process.getOProcess().messageTypes.get(msgDescription.getQName()), msg, 
headerParts);
             keySet.add(key);
         }
 
         csets = _plinkDef.getJoinningCorrelationSetsForOperation(operation);
         for (OScope.CorrelationSet cset : csets) {
             CorrelationKey key = computeCorrelationKey(cset,
-                    
_process.getOProcess().messageTypes.get(msgDescription.getQName()), msg);
+                    
_process.getOProcess().messageTypes.get(msgDescription.getQName()), msg, 
headerParts);
             keySet.add(key);
         }
 
@@ -335,9 +338,9 @@ public class PartnerLinkMyRoleImpl exten
 
     @SuppressWarnings("unchecked")
     private CorrelationKey computeCorrelationKey(OScope.CorrelationSet cset, 
OMessageVarType messagetype,
-            Element msg) {
-        CorrelationKey key = null;
-
+            Element msg, Map<String, Node> headerParts) {
+       CorrelationKey key = null;
+       
         String[] values = new String[cset.properties.size()];
 
         int jIdx = 0;
@@ -354,7 +357,7 @@ public class PartnerLinkMyRoleImpl exten
 
             String value;
             try {
-                value = _process.extractProperty(msg, alias, msg.toString());
+                value = _process.extractProperty(msg, headerParts, alias, 
msg.toString());
             } catch (FaultException fe) {
                 String emsg = 
__msgs.msgPropertyAliasDerefFailedOnMessage(alias.getDescription(), 
fe.getMessage());
                 __log.error(emsg, fe);

Modified: 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/PropertyAliasEvaluationContext.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/PropertyAliasEvaluationContext.java?rev=959465&r1=959464&r2=959465&view=diff
==============================================================================
--- 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/PropertyAliasEvaluationContext.java
 (original)
+++ 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/PropertyAliasEvaluationContext.java
 Wed Jun 30 22:36:05 2010
@@ -21,8 +21,12 @@ package org.apache.ode.bpel.runtime;
 import java.net.URI;
 import java.util.Calendar;
 import java.util.Date;
+import java.util.Map;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.ode.bpel.common.FaultException;
+import org.apache.ode.bpel.engine.BpelRuntimeContextImpl;
 import org.apache.ode.bpel.explang.EvaluationContext;
 import org.apache.ode.bpel.o.OElementVarType;
 import org.apache.ode.bpel.o.OExpression;
@@ -41,21 +45,23 @@ import javax.xml.namespace.QName;
  * Expression language evaluation context used for evaluating property aliases.
  */
 public class PropertyAliasEvaluationContext implements EvaluationContext {
-    private Element _root;
+    private static final Log __log = 
LogFactory.getLog(PropertyAliasEvaluationContext.class);
+    
+    private Node _root;
 
-    public PropertyAliasEvaluationContext(Element msgData, 
OProcess.OPropertyAlias alias) {
+    public PropertyAliasEvaluationContext(Element msgData, Map<String, Node> 
headerParts, OProcess.OPropertyAlias alias) {
         // We need to tweak the context node based on what kind of variable 
(element vs non-element)
-        if (alias.part == null) {
-            // actually, this should not happen
-            _root  = msgData;
-        } else {
+        if (alias.header != null) {
+            _root = headerParts.get(alias.header);
+        } else if (alias.part != null) {
             Element part = DOMUtils.findChildByName(msgData,new QName(null, 
alias.part.name),false);
             if (part != null && alias.part.type instanceof OElementVarType) {
                 _root = DOMUtils.findChildByName(part, 
((OElementVarType)alias.part.type).elementType);
             } else
                 _root = part;
+        } else {
+            _root = msgData;
         }
-
     }
 
     public Node getRootNode() {


Reply via email to