Author: buildbot
Date: Mon Dec 31 10:53:51 2012
New Revision: 844386
Log:
Staging update by buildbot for ode
Modified:
websites/staging/ode/trunk/content/ (props changed)
websites/staging/ode/trunk/content/extensions/process-contexts.html
Propchange: websites/staging/ode/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Mon Dec 31 10:53:51 2012
@@ -1 +1 @@
-1427075
+1427078
Modified: websites/staging/ode/trunk/content/extensions/process-contexts.html
==============================================================================
--- websites/staging/ode/trunk/content/extensions/process-contexts.html
(original)
+++ websites/staging/ode/trunk/content/extensions/process-contexts.html Mon Dec
31 10:53:51 2012
@@ -28,7 +28,7 @@
<li class="">
<a href="/getting-ode.html">Getting ODE</a>
</li>
- <li class=" dropdown">
+ <li class="active dropdown">
<a href="/user-guide.html" class="dropdown-toggle"
data-toggle="dropdown" data-target="#">Documentation<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/userguide/">User Guide</a></li>
@@ -109,65 +109,69 @@ Contexts can be used to classify or tag
<h3 id="anchorcontextscontexts">{anchor:contexts}Contexts</h3>
<p>Contexts are modeled as a bag of metadata information represented as
key-value pairs <code>(string, string)</code> and are attached to partner
links. Contexts have a name attribute. Contexts are persisted in ODE's runtime
database. Long values are stored as a CLOB whereas shorter values (< 250
characters) are automatically stored in an indexed VARCHAR field.</p>
<p>Since contexts should also be accessible in BPEL, there is also an
XML-based representation. It is defined as follows, the according XMLSchema can
be found <a
href="http://svn.apache.org/viewvc/ode/trunk/bpel-schemas/src/main/xsd/contexts.xsd?view=markup">here</a></p>
-<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><B>"Example: Context data in its XML
representation"</B></DIV><DIV class="codeContent panelContent">
- <?xml version="1.0" encoding="UTF-8"?>
- <ctx:contexts xmlns:ctx="http://www.apache.org/ode/schemas/context/2009"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.apache.org/ode/schemas/context/2009 contexts.xsd
">
- <ctx:context name="foo">
- <ctx:value key="bar">baz</ctx:value>
- </ctx:context>
- <ctx:context name="tracing">
- <ctx:value key="id">0815</ctx:value>
- </ctx:context>
- </ctx:contexts></p>
+<div class="caption">"Example: Context data in its XML representation"</div>
+
+<div class="codehilite"><pre><span class="cp"><?xml version="1.0"
encoding="UTF-8"?></span>
+<span class="nt"><ctx:contexts</span> <span
class="na">xmlns:ctx=</span><span
class="s">"http://www.apache.org/ode/schemas/context/2009"</span>
<span class="na">xmlns:xsi=</span><span
class="s">"http://www.w3.org/2001/XMLSchema-instance"</span> <span
class="na">xsi:schemaLocation=</span><span
class="s">"http://www.apache.org/ode/schemas/context/2009 contexts.xsd
"</span><span class="nt">></span>
+ <span class="nt"><ctx:context</span> <span class="na">name=</span><span
class="s">"foo"</span><span class="nt">></span>
+ <span class="nt"><ctx:value</span> <span class="na">key=</span><span
class="s">"bar"</span><span class="nt">></span>baz<span
class="nt"></ctx:value></span>
+ <span class="nt"></ctx:context></span>
+ <span class="nt"><ctx:context</span> <span class="na">name=</span><span
class="s">"tracing"</span><span class="nt">></span>
+ <span class="nt"><ctx:value</span> <span class="na">key=</span><span
class="s">"id"</span><span class="nt">></span>0815<span
class="nt"></ctx:value></span>
+ <span class="nt"></ctx:context></span>
+<span class="nt"></ctx:contexts></span>
+</pre></div>
+
+
<p><a name="ProcessContexts-ContextInterceptors"></a></p>
<h3 id="context-interceptors">Context Interceptors</h3>
<p>At the transport level, message headers can be translated to context data
and contexts can be translated to message headers. Context interceptors define
how the headers are set to/from contexts and which contexts are affected.
Interceptors are Java classes that implement the following interface. They can
be registered either globally in ode's property configuration file or per
process in the <code>deploy.xml</code>.</p>
-<div class="codehilite"><pre><span class="o">/**</span>
- <span class="o">*</span> <span class="n">Context</span> <span
class="n">Interceptors</span> <span class="n">can</span> <span
class="nb">map</span> <span class="n">message</span> <span
class="n">headers</span> <span class="p">(</span><span class="ow">or</span>
<span class="n">even</span> <span class="n">payload</span><span
class="p">)</span> <span class="n">to</span>
- <span class="o">*</span> <span class="n">context</span> <span
class="n">information</span> <span class="n">that</span> <span
class="n">is</span> <span class="n">attached</span> <span class="n">to</span>
<span class="n">process</span> <span class="n">models</span><span
class="o">.</span>
- <span class="o">*/</span>
-<span class="n">public</span> <span class="n">interface</span> <span
class="n">ContextInterceptor</span> <span class="p">{</span>
-
- <span class="o">/**</span>
- <span class="o">*</span> <span class="n">Configures</span> <span
class="n">the</span> <span class="n">interceptor</span><span class="o">.</span>
<span class="n">This</span> <span class="n">method</span> <span
class="n">will</span> <span class="n">be</span> <span class="n">called</span>
<span class="n">immediatedly</span> <span class="n">after</span>
- <span class="o">*</span> <span class="n">instantiation</span> <span
class="n">of</span> <span class="n">the</span> <span
class="n">implementing</span> <span class="n">class</span><span
class="o">.</span> <span class="n">The</span> <span class="n">passed</span>
<span class="n">element</span> <span class="n">will</span> <span
class="n">contain</span> <span class="n">the</span>
- <span class="o">*</span> <span class="n">configuration</span> <span
class="n">elements</span> <span class="n">given</span> <span
class="n">in</span> <span class="n">the</span> <span
class="n">deploy</span><span class="o">.</span><span class="n">xml</span><span
class="o">.</span> <span class="n">In</span> <span class="k">case</span> <span
class="n">of</span> <span class="n">a</span> <span class="n">declaration</span>
<span class="n">in</span>
- <span class="o">*</span> <span class="n">ode</span><span
class="o">-</span><span class="n">xxx</span><span class="o">.</span><span
class="n">properties</span><span class="p">,</span> <span class="n">the</span>
<span class="n">method</span> <span class="n">won</span><span
class="err">'</span><span class="n">t</span> <span class="n">be</span>
<span class="n">called</span><span class="o">.</span>
- <span class="o">*</span>
- <span class="o">*</span> <span class="nv">@param</span> <span
class="n">configuration</span>
- <span class="o">*/</span>
- <span class="n">void</span> <span class="n">configure</span><span
class="p">(</span><span class="n">Element</span> <span
class="n">configuration</span><span class="p">);</span>
-
- <span class="o">/**</span>
- <span class="o">*</span> <span class="n">Translates</span> <span
class="n">the</span> <span class="n">data</span> <span class="n">stored</span>
<span class="n">within</span> <span class="n">the</span> <span
class="n">context</span> <span class="n">object</span> <span
class="n">into</span> <span class="n">SOAP</span> <span
class="n">headers</span> <span class="ow">or</span>
- <span class="o">*</span> <span class="n">vice</span> <span
class="n">versa</span><span class="o">.</span>
- <span class="o">*</span>
- <span class="o">*</span> <span class="n">If</span> <span
class="n">direction</span> <span class="n">is</span> <span
class="n">OUTBOUND</span><span class="p">,</span> <span
class="n">context</span> <span class="n">data</span> <span
class="n">must</span> <span class="n">be</span> <span
class="n">converted</span> <span class="n">into</span> <span
class="n">message</span> <span class="n">headers</span>
- <span class="o">*</span> <span class="k">if</span> <span
class="n">direction</span> <span class="n">is</span> <span
class="n">INBOUND</span><span class="p">,</span> <span class="n">context</span>
<span class="n">data</span> <span class="n">must</span> <span
class="n">be</span> <span class="n">extracted</span> <span
class="n">from</span> <span class="n">the</span> <span
class="n">message</span><span class="o">.</span>
- <span class="o">*/</span>
- <span class="n">void</span> <span class="n">process</span><span
class="p">(</span><span class="n">ContextData</span> <span
class="n">ctx</span><span class="p">,</span> <span
class="n">MessageExchangeDAO</span> <span class="n">mexdao</span><span
class="p">,</span> <span class="n">IOContext</span><span
class="o">.</span><span class="n">Direction</span> <span
class="n">dir</span><span class="p">)</span> <span class="n">throws</span>
<span class="n">ContextException</span><span class="p">;</span>
-<span class="p">}</span>
+<div class="codehilite"><pre><span class="cm">/**</span>
+<span class="cm"> * Context Interceptors can map message headers (or even
payload) to</span>
+<span class="cm"> * context information that is attached to process
models.</span>
+<span class="cm"> */</span>
+<span class="kd">public</span> <span class="kd">interface</span> <span
class="nc">ContextInterceptor</span> <span class="o">{</span>
+
+ <span class="cm">/**</span>
+<span class="cm"> * Configures the interceptor. This method will be called
immediatedly after</span>
+<span class="cm"> * instantiation of the implementing class. The passed
element will contain the</span>
+<span class="cm"> * configuration elements given in the deploy.xml. In
case of a declaration in</span>
+<span class="cm"> * ode-xxx.properties, the method won't be
called.</span>
+<span class="cm"> *</span>
+<span class="cm"> * @param configuration</span>
+<span class="cm"> */</span>
+ <span class="kt">void</span> <span class="nf">configure</span><span
class="o">(</span><span class="n">Element</span> <span
class="n">configuration</span><span class="o">);</span>
+
+ <span class="cm">/**</span>
+<span class="cm"> * Translates the data stored within the context object
into SOAP headers or</span>
+<span class="cm"> * vice versa.</span>
+<span class="cm"> *</span>
+<span class="cm"> * If direction is OUTBOUND, context data must be
converted into message headers</span>
+<span class="cm"> * if direction is INBOUND, context data must be
extracted from the message.</span>
+<span class="cm"> */</span>
+ <span class="kt">void</span> <span class="nf">process</span><span
class="o">(</span><span class="n">ContextData</span> <span
class="n">ctx</span><span class="o">,</span> <span
class="n">MessageExchangeDAO</span> <span class="n">mexdao</span><span
class="o">,</span> <span class="n">IOContext</span><span
class="o">.</span><span class="na">Direction</span> <span
class="n">dir</span><span class="o">)</span> <span class="kd">throws</span>
<span class="n">ContextException</span><span class="o">;</span>
+<span class="o">}</span>
</pre></div>
<p>There is also a more high-level interface defined in terms of an abstract
class:</p>
-<div class="codehilite"><pre><span class="n">public</span> <span
class="n">abstract</span> <span class="n">class</span> <span
class="n">AbstractContextInterceptor</span> <span class="n">implements</span>
<span class="n">ContextInterceptor</span> <span class="p">{</span>
+<div class="codehilite"><pre><span class="kd">public</span> <span
class="kd">abstract</span> <span class="kd">class</span> <span
class="nc">AbstractContextInterceptor</span> <span class="kd">implements</span>
<span class="n">ContextInterceptor</span> <span class="o">{</span>
- <span class="n">public</span> <span class="n">abstract</span> <span
class="n">void</span> <span class="n">configure</span><span
class="p">(</span><span class="n">Element</span> <span
class="n">configuration</span><span class="p">);</span>
+ <span class="kd">public</span> <span class="kd">abstract</span> <span
class="kt">void</span> <span class="nf">configure</span><span
class="o">(</span><span class="n">Element</span> <span
class="n">configuration</span><span class="o">);</span>
- <span class="o">/**</span>
- <span class="o">*</span> <span class="nv">@see</span> <span
class="n">org</span><span class="o">.</span><span class="n">apache</span><span
class="o">.</span><span class="n">ode</span><span class="o">.</span><span
class="n">bpel</span><span class="o">.</span><span
class="n">context</span><span class="o">.</span><span
class="n">ContextInterceptor</span><span
class="c1">#process(org.apache.ode.bpel.rapi.ContextData,
org.apache.ode.bpel.dao.MessageExchangeDAO,
org.apache.ode.bpel.rapi.IOContext.Direction)</span>
- <span class="o">*/</span>
- <span class="n">public</span> <span class="n">void</span> <span
class="n">process</span><span class="p">(</span><span
class="n">ContextData</span> <span class="n">ctx</span><span class="p">,</span>
<span class="n">MessageExchangeDAO</span> <span class="n">mexdao</span><span
class="p">,</span> <span class="n">IOContext</span><span
class="o">.</span><span class="n">Direction</span> <span
class="n">dir</span><span class="p">)</span> <span class="n">throws</span>
<span class="n">ContextException</span> <span class="p">{</span>
- <span class="sr">//</span> <span class="n">dispatch</span>
- <span class="p">}</span>
-
- <span class="n">abstract</span> <span class="n">void</span> <span
class="n">onPartnerInvoke</span><span class="p">(</span><span
class="n">ContextData</span> <span class="n">ctx</span><span class="p">,</span>
<span class="n">Message</span> <span class="n">msg</span><span
class="p">);</span>
- <span class="n">abstract</span> <span class="n">void</span> <span
class="n">onPartnerReply</span><span class="p">(</span><span
class="n">ContextData</span> <span class="n">ctx</span><span class="p">,</span>
<span class="n">Message</span> <span class="n">msg</span><span
class="p">);</span>
- <span class="n">abstract</span> <span class="n">void</span> <span
class="n">onProcessInvoke</span><span class="p">(</span><span
class="n">ContextData</span> <span class="n">ctx</span><span class="p">,</span>
<span class="n">Message</span> <span class="n">msg</span><span
class="p">);</span>
- <span class="n">abstract</span> <span class="n">void</span> <span
class="n">onProcessReply</span><span class="p">(</span><span
class="n">ContextData</span> <span class="n">ctx</span><span class="p">,</span>
<span class="n">Message</span> <span class="n">msg</span><span
class="p">);</span>
+ <span class="cm">/**</span>
+<span class="cm"> * @see
org.apache.ode.bpel.context.ContextInterceptor#process(org.apache.ode.bpel.rapi.ContextData,
org.apache.ode.bpel.dao.MessageExchangeDAO,
org.apache.ode.bpel.rapi.IOContext.Direction)</span>
+<span class="cm"> */</span>
+ <span class="kd">public</span> <span class="kt">void</span> <span
class="nf">process</span><span class="o">(</span><span
class="n">ContextData</span> <span class="n">ctx</span><span class="o">,</span>
<span class="n">MessageExchangeDAO</span> <span class="n">mexdao</span><span
class="o">,</span> <span class="n">IOContext</span><span
class="o">.</span><span class="na">Direction</span> <span
class="n">dir</span><span class="o">)</span> <span class="kd">throws</span>
<span class="n">ContextException</span> <span class="o">{</span>
+ <span class="c1">// dispatch</span>
+ <span class="o">}</span>
+
+ <span class="kd">abstract</span> <span class="kt">void</span> <span
class="nf">onPartnerInvoke</span><span class="o">(</span><span
class="n">ContextData</span> <span class="n">ctx</span><span class="o">,</span>
<span class="n">Message</span> <span class="n">msg</span><span
class="o">);</span>
+ <span class="kd">abstract</span> <span class="kt">void</span> <span
class="nf">onPartnerReply</span><span class="o">(</span><span
class="n">ContextData</span> <span class="n">ctx</span><span class="o">,</span>
<span class="n">Message</span> <span class="n">msg</span><span
class="o">);</span>
+ <span class="kd">abstract</span> <span class="kt">void</span> <span
class="nf">onProcessInvoke</span><span class="o">(</span><span
class="n">ContextData</span> <span class="n">ctx</span><span class="o">,</span>
<span class="n">Message</span> <span class="n">msg</span><span
class="o">);</span>
+ <span class="kd">abstract</span> <span class="kt">void</span> <span
class="nf">onProcessReply</span><span class="o">(</span><span
class="n">ContextData</span> <span class="n">ctx</span><span class="o">,</span>
<span class="n">Message</span> <span class="n">msg</span><span
class="o">);</span>
-<span class="p">}</span>
+<span class="o">}</span>
</pre></div>
@@ -179,20 +183,30 @@ Contexts can be used to classify or tag
<em> Engine-wide registration - the context interceptor will be available for
all processes that are deployed to this ODE instance.
</em> Per-process registration - the context interceptor will only be
available for a particular process model.</p>
<p>Engine-wide context interceptors are registered in ODE's properties file
(either <code>ode-axis2.properties</code> or <code>ode-jbi.properties</code>)
using the properties key <code>context.interceptors</code>.</p>
-<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><B>ode-axis2.properties</B></DIV><DIV
class="codeContent panelContent">
- ...
- ode-axis2.context.interceptors =
my.full.qualified.context.interceptor.class.name
- ...</p>
-<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><B>ode-jbi.properties</B></DIV><DIV
class="codeContent panelContent">
- ...
- ode-jbi.context.interceptors =
my.full.qualified.context.interceptor.class.name
- ...</p>
+<div class="caption">ode-axis2.properties</div>
+
+<div class="codehilite"><pre>...
+ode-axis2.context.interceptors =
my.full.qualified.context.interceptor.class.name
+...
+</pre></div>
+
+
+<div class="caption">ode-jbi.properties</div>
+
+<div class="codehilite"><pre>...
+ode-jbi.context.interceptors = my.full.qualified.context.interceptor.class.name
+...
+</pre></div>
+
+
<p>Per-process context interceptors are declared in ODE's deployment
descriptor deploy.xml:</p>
-<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><B>deploy.xml</B></DIV><DIV class="codeContent
panelContent">
- <deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
- xmlns:pns="http://ode/bpel/unit-test"
- xmlns:wns="http://ode/bpel/unit-test.wsdl"></p>
-<div class="codehilite"><pre> <span class="nt"><process</span> <span
class="na">name=</span><span class="s">"pns:HelloWorld2"</span><span
class="nt">></span>
+<div class="caption">deploy.xml</div>
+
+<div class="codehilite"><pre><span class="nt"><deploy</span> <span
class="na">xmlns=</span><span
class="s">"http://www.apache.org/ode/schemas/dd/2007/03"</span>
+ <span class="na">xmlns:pns=</span><span
class="s">"http://ode/bpel/unit-test"</span>
+ <span class="na">xmlns:wns=</span><span
class="s">"http://ode/bpel/unit-test.wsdl"</span><span
class="nt">></span>
+
+ <span class="nt"><process</span> <span class="na">name=</span><span
class="s">"pns:HelloWorld2"</span><span class="nt">></span>
<span class="nt"><active></span>true<span
class="nt"></active></span>
<span class="nt"><provide</span> <span
class="na">partnerLink=</span><span
class="s">"helloPartnerLink"</span><span class="nt">></span>
<span class="nt"><service</span> <span
class="na">name=</span><span class="s">"wns:HelloService"</span>
<span class="na">port=</span><span class="s">"HelloPort"</span><span
class="nt">/></span>
@@ -221,6 +235,7 @@ Contexts can be used to classify or tag
<span class="nt"><ctx:propagate</span> <span
class="na">ctx:fromPartnerLink=</span><span
class="s">"testPartnerLink"</span> <span
class="na">ctx:context=</span><span class="s">"*"</span><span
class="nt">/></span>
<span class="nt"></bpel:invoke></span>
+:::xml
<span class="nt"><bpel:reply</span> <span class="err">...</span><span
class="nt">></span>
<span class="nt"><ctx:propagate</span> <span
class="na">ctx:fromPartnerLink=</span><span
class="s">"testPartnerLink"</span> <span
class="na">ctx:context=</span><span class="s">"*"</span><span
class="nt">/></span>
<span class="nt"></bpel:reply></span>
@@ -239,16 +254,18 @@ Contexts can be used to classify or tag
<p><a name="ProcessContexts-AccessingandAssigningContextData"></a></p>
<h4 id="accessing-and-assigning-context-data">Accessing and Assigning Context
Data</h4>
<p>Context data should be accessible within BPEL processes and from the
outside, e.g. for management purposes. For the former, the
<code><assign></code> activity has been extended to support copying data
from and to contexts of a partner link. The according
<code>from</code>/<code>to</code> specs are defined as follows:</p>
-<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><B>"from/to specs for the work with context
data"</B></DIV><DIV class="codeContent panelContent">
- <assign>
- <!-- copy 'tracing' and 'security' contexts to a variable. -->
- <copy>
- <from partnerLink="pl1" context="tracing security"/>
- <to>$var</to>
- </copy></p>
-<div class="codehilite"><pre> <span class="c"><!-- copy context data
from </span><span class="p">$</span><span class="nv">var</span><span class="c">
to pl1. Only 'tracing' and 'security' contexts will be written,
other contexts remain unchanged. --></span>
+<div class="caption">"from/to specs for the work with context data"</div>
+
+<div class="codehilite"><pre><span class="nt"><assign></span>
+ <span class="c"><!-- copy 'tracing' and 'security'
contexts to a variable. --></span>
<span class="nt"><copy></span>
- <span class="nt"><from></span><span class="p">$</span><span
class="nv">var</span><span class="nt"></from></span>
+ <span class="nt"><from</span> <span
class="na">partnerLink=</span><span class="s">"pl1"</span> <span
class="na">context=</span><span class="s">"tracing
security"</span><span class="nt">/></span>
+ <span class="nt"><to></span>$var<span
class="nt"></to></span>
+ <span class="nt"></copy></span>
+
+ <span class="c"><!-- copy context data from $var to pl1. Only
'tracing' and 'security' contexts will be written, other
contexts remain unchanged. --></span>
+ <span class="nt"><copy></span>
+ <span class="nt"><from></span>$var<span
class="nt"></from></span>
<span class="nt"><to</span> <span
class="na">partnerLink=</span><span class="s">"pl1"</span> <span
class="na">context=</span><span class="s">"tracing
security"</span><span class="nt">/></span>
<span class="nt"></copy></span>
@@ -275,22 +292,28 @@ Contexts can be used to classify or tag
<div class="alert alert-info">
- - `context="*"` in `from`\-specs selects all contexts.
- - `context="*"` in `to`\-specs replaces existing contexts with context
data selected by the `from`\-spec.
- - `context="+"` in `to`\-specs merges existing contexts with context data
selected by the `from`\-spec.
+ <ul>
+ <li><code>context="*"</code> in <code>from</code>-specs selects all
contexts.</li>
+ <li><code>context="*"</code> in <code>to</code>-specs replaces
existing contexts with context data selected by the <code>from</code>-spec.</li>
+ <li><code>context="+"</code> in <code>to</code>-specs merges existing
contexts with context data selected by the <code>from</code>-spec.</li>
+ <ul>
</div>
<p>When assigning context data to variables, the variable should be declared
to be an instance of the context XSD (see <a href="#contexts.html">Contexts
section</a>). It is also possible to copy only fragments of a context data set
by applying an XPath query to the <code>from</code>-spec:</p>
-<p><DIV class="code panel" style="border-style: solid;border-width: 1px;"><DIV
class="codeHeader panelHeader" style="border-bottom-width:
1px;border-bottom-style: solid;"><B>"Applying XPath-query to context
data"</B></DIV><DIV class="codeContent panelContent">
- <assign>
- <!-- copy tracing id to a string variable. -->
- <copy>
- <from partnerLink="pl1" context="*">
-
<query>/ctx:contexts/ctx:context[@name='tracing']/ctx:value[@key='id']</query>
- </from>
- <to>$tracingId</to>
- </copy>
- </assign></p>
+<div class="caption">"Applying XPath-query to context data"</div>
+
+<div class="codehilite"><pre><span class="nt"><assign></span>
+ <span class="c"><!-- copy tracing id to a string variable. --></span>
+ <span class="nt"><copy></span>
+ <span class="nt"><from</span> <span
class="na">partnerLink=</span><span class="s">"pl1"</span> <span
class="na">context=</span><span class="s">"*"</span><span
class="nt">></span>
+ <span
class="nt"><query></span>/ctx:contexts/ctx:context[@name='tracing']/ctx:value[@key='id']<span
class="nt"></query></span>
+ <span class="nt"></from></span>
+ <span class="nt"><to></span><span class="p">$</span><span
class="nv">tracingId</span><span class="nt"></to></span>
+ <span class="nt"></copy></span>
+<span class="nt"></assign></span>
+</pre></div>
+
+
<p>In order to make context data accessible for external management tools, the
ProcessManagement-API has been extended. TODO: to be completed.</p>
</div>
</div>