Modified: websites/staging/ode/trunk/content/extensions/restful-bpel-part-i.html ============================================================================== --- websites/staging/ode/trunk/content/extensions/restful-bpel-part-i.html (original) +++ websites/staging/ode/trunk/content/extensions/restful-bpel-part-i.html Fri Jul 14 10:08:12 2017 @@ -1,109 +1,120 @@ -<!DOCTYPE html> -<html> - <head> - <title>Apache ODE – RESTful BPEL, Part I</title> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> - <meta property="og:image" content="http://ode.apache.org/img/ode-logo.png" /> - - <link href="/css/application.min.css" rel="stylesheet" media="screen"> - - - - - - <script src="http://code.jquery.com/jquery-latest.js"></script> - <script src="/js/bootstrap.min.js"></script> - <script type="text/javascript"> - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-36293077-1']); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); - </script> - </head> - <body> - - <!-- Navbar --> - <div class="navbar navbar-fixed-top"> - <div class="navbar-inner"> - <div class="container"> - <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - </button> - <a class="brand" href="/index.html">Apache ODE</a> - <div class="nav-collapse collapse"> - <ul class="nav"> - <li class=""> - <a href="/getting-ode.html">Getting ODE</a> - </li> - <li class="active dropdown"> - <a href="/userguide/" 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> - <li><a href="/developerguide/">Developer Guide</a></li> - <li><a href="/ws-bpel-20-specification-compliance.html">WS-BPEL Compliance</a></li> - <li><a href="/extensions/">WS-BPEL Extensions</a></li> - <li><a href="/faq.html">FAQ</a></li> - <li><a href="/roadmap.html">Roadmap</a></li> - <li><a href="/resource-services.html">Resources & Services</a></li> - <li><a href="/javadoc/">Javadoc</a></li> - </ul> - </li> - <li class=" dropdown"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown">Contributing<b class="caret"></b></a> - <ul class="dropdown-menu"> - <li><a href="/mailing-lists.html">Mailing Lists</a></li> - <li><a href="/developerguide/building-ode.html">Building ODE</a></li> - <li><a href="/developerguide/source-code.html">Source Code</a></li> - <li><a href="http://issues.apache.org/jira/browse/ODE">Bug Tracking</a></li> - <li><a href="/contributors.html">Contributors</a></li> - <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> - </ul> - </li> - <li class="dropdown"> - <a href="http://www.apache.org" class="dropdown-toggle" data-toggle="dropdown" data-target="#">The ASF<b class="caret"></b></a> - <ul class="dropdown-menu"> - <li><a href="http://www.apache.org">Apache Software Foundation</a></li> - <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li> - <li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li> - <li><a href="http://www.apache.org/security/">Security</a></li> - </ul> - </li> - </ul> - </div> - </div> - </div> - </div> - - <!-- Subhead --> - - <header class="jumbotron subhead" id="overview"> - <div class="container"> - - <h1>RESTful BPEL, Part I</h1> - - </div> - </header> - - - <!-- Content --> - <div class="container"> - - <div class="row"> - <div class="span12"> - <h2 id="restful-bpel-i">RESTful BPEL (I)</h2> +<!DOCTYPE html> +<html> + <head> + <title>Apache ODE – RESTful BPEL, Part I</title> + <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> + <meta property="og:image" content="http://ode.apache.org/img/ode-logo.png" /> + + <link href="/css/application.min.css" rel="stylesheet" media="screen"> + + + + + + <script src="http://code.jquery.com/jquery-latest.js"></script> + <script src="/js/bootstrap.min.js"></script> + <script type="text/javascript"> + var _gaq = _gaq || []; + _gaq.push(['_setAccount', 'UA-36293077-1']); + _gaq.push(['_trackPageview']); + + (function() { + var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; + ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; + var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); + })(); + </script> + </head> + <body> + + <!-- Navbar --> + <div class="navbar navbar-fixed-top"> + <div class="navbar-inner"> + <div class="container"> + <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="brand" href="/index.html">Apache ODE</a> + <div class="nav-collapse collapse"> + <ul class="nav"> + <li class=""> + <a href="/getting-ode.html">Getting ODE</a> + </li> + <li class="active dropdown"> + <a href="/userguide/" 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> + <li><a href="/developerguide/">Developer Guide</a></li> + <li><a href="/ws-bpel-20-specification-compliance.html">WS-BPEL Compliance</a></li> + <li><a href="/extensions/">WS-BPEL Extensions</a></li> + <li><a href="/faq.html">FAQ</a></li> + <li><a href="/roadmap.html">Roadmap</a></li> + <li><a href="/resource-services.html">Resources & Services</a></li> + <li><a href="/javadoc/">Javadoc</a></li> + </ul> + </li> + <li class=" dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Contributing<b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="/mailing-lists.html">Mailing Lists</a></li> + <li><a href="/developerguide/building-ode.html">Building ODE</a></li> + <li><a href="/developerguide/source-code.html">Source Code</a></li> + <li><a href="http://issues.apache.org/jira/browse/ODE">Bug Tracking</a></li> + <li><a href="/contributors.html">Contributors</a></li> + <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> + </ul> + </li> + <li class="dropdown"> + <a href="http://www.apache.org" class="dropdown-toggle" data-toggle="dropdown" data-target="#">The ASF<b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="http://www.apache.org">Apache Software Foundation</a></li> + <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li> + <li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li> + <li><a href="http://www.apache.org/security/">Security</a></li> + </ul> + </li> + </ul> + </div> + </div> + </div> + </div> + + <!-- Subhead --> + + <header class="jumbotron subhead" id="overview"> + <div class="container"> + + <h1>RESTful BPEL, Part I</h1> + + </div> + </header> + + + <!-- Content --> + <div class="container"> + + <div class="row"> + <div class="span12"> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<h2 id="restful-bpel-i">RESTful BPEL (I)<a class="headerlink" href="#restful-bpel-i" title="Permanent link">¶</a></h2> <div class="alert alert-warning"> This feature is not yet implemented in ODE. This is a proposal and is subject to change based on feedback, implementation experience, etc. </div> <p><a name="RESTfulBPEL,PartI-Invoke"></a></p> -<h3 id="invoke">Invoke</h3> +<h3 id="invoke">Invoke<a class="headerlink" href="#invoke" title="Permanent link">¶</a></h3> <p>The RESTfulvariant of the invoke activity replaces the attributes partnerLink/operation with resource and method. The method attribute identifies the HTTP method. All HTTP methods are supported, although this spec is only concerned with GET, POST, PUT and DELETE. The resource attribute identifies a BPELvariable of a simple type (xsd:uri, xsd:string, etc) used as the URL of the actual resource. The resource element can be used instead of the resource attribute to calculate the URL using an expression.</p> <p>In addition to the above, the invoke activity adds a way to map values to/from HTTP headers, using a syntax similar to that for mapping message parts, but specifying the corresponding HTTP header instead. Headers mapped by the process override default values, and some headers have special handling.</p> <p>The implementation shields the invoke activity from some of the details of the HTTP protocol, specifically: @@ -114,39 +125,39 @@ <em> GET, PUT and DELETE requests retried automatically for certain error conditions. </em> GET requests may be cached by the engine, private caching is never shared across process instances.</p> <p>This example uses the myPost variable to create a new blog post, store the response in the newPost variable, and the location of the new post in the variable newPostUrl:</p> -<div class="codehilite"><pre><span class="n">invoke</span> <span class="n">resource</span><span class="o">=</span><span class="n">createPostsUrl</span> <span class="n">method</span><span class="o">=</span><span class="n">post</span> - <span class="n">input</span><span class="o">=</span><span class="n">myPost</span> <span class="n">output</span><span class="o">=</span><span class="n">newPost</span> - <span class="n">from</span> <span class="n">header</span><span class="o">=</span><span class="n">location</span> <span class="n">to</span><span class="o">=</span><span class="n">newPostUrl</span> +<div class="codehilite"><pre><span class="n">invoke</span> <span class="n">resource</span><span class="p">=</span><span class="n">createPostsUrl</span> <span class="n">method</span><span class="p">=</span><span class="n">post</span> + <span class="n">input</span><span class="p">=</span><span class="n">myPost</span> <span class="n">output</span><span class="p">=</span><span class="n">newPost</span> + <span class="n">from</span> <span class="n">header</span><span class="p">=</span><span class="n">location</span> <span class="n">to</span><span class="p">=</span><span class="n">newPostUrl</span> </pre></div> <p>And to update the post:</p> -<div class="codehilite"><pre><span class="n">invoke</span> <span class="n">resource</span><span class="o">=</span><span class="n">newPostUrl</span> <span class="n">method</span><span class="o">=</span><span class="n">put</span> <span class="n">input</span><span class="o">=</span><span class="n">updatedPost</span> +<div class="codehilite"><pre><span class="n">invoke</span> <span class="n">resource</span><span class="p">=</span><span class="n">newPostUrl</span> <span class="n">method</span><span class="p">=</span><span class="n">put</span> <span class="n">input</span><span class="p">=</span><span class="n">updatedPost</span> </pre></div> <p><a name="RESTfulBPEL,PartI-XPathfunctions"></a></p> -<h3 id="xpath-functions">XPath functions</h3> -<p>The use or URLs requires the ability to combine URLs with two new XPath functions: <code>combine-url(base, relative)</code> and <code>compose-url(template, [name, value]*)</code> / <code>compose-url(template, pairs)</code>. See <a href="xpath-extensions.html#combineurl(base,relative)">xpath extensions</a> for details.</p> - </div> - </div> - - - <!-- Footer --> - <footer class="footer"> - <div class='row'> - <div class='span3'> - <img src="/img/asf.png" alt="Apache Software Foundation"/> - </div> - <div class='span9'> - <p><strong>Apache ODE</strong><sup>™</sup> is a top-level project at the <a href="http://www.apache.org">Apache Software Foundation<sup>™</sup></a> - Through a collaborative and meritocratic development process, Apache - projects deliver enterprise-grade, freely available software products that - attract large communities of users.</p> - <p>Apache ODE, ODE, Apache, the Apache feather logo, and the Apache ODE project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p> - </div> - </div> - </footer> - </div> <!-- /container --> - </body> +<h3 id="xpath-functions">XPath functions<a class="headerlink" href="#xpath-functions" title="Permanent link">¶</a></h3> +<p>The use or URLs requires the ability to combine URLs with two new XPath functions: <code>combine-url(base, relative)</code> and <code>compose-url(template, [name, value]*)</code> / <code>compose-url(template, pairs)</code>. See <a href="xpath-extensions.html#combineurl(base,relative)">xpath extensions</a> for details.</p> + </div> + </div> + + + <!-- Footer --> + <footer class="footer"> + <div class='row'> + <div class='span3'> + <img src="/img/asf_logo_url.png" alt="Apache Software Foundation"/> + </div> + <div class='span9'> + <p><strong>Apache ODE</strong><sup>™</sup> is a top-level project at the <a href="http://www.apache.org">Apache Software Foundation<sup>™</sup></a> + Through a collaborative and meritocratic development process, Apache + projects deliver enterprise-grade, freely available software products that + attract large communities of users.</p> + <p>Apache ODE, ODE, Apache, the Apache feather logo, and the Apache ODE project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p> + </div> + </div> + </footer> + </div> <!-- /container --> + </body> </html> \ No newline at end of file
Modified: websites/staging/ode/trunk/content/extensions/restful-bpel-part-ii.html ============================================================================== --- websites/staging/ode/trunk/content/extensions/restful-bpel-part-ii.html (original) +++ websites/staging/ode/trunk/content/extensions/restful-bpel-part-ii.html Fri Jul 14 10:08:12 2017 @@ -1,108 +1,119 @@ -<!DOCTYPE html> -<html> - <head> - <title>Apache ODE – RESTful BPEL, Part II</title> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> - <meta property="og:image" content="http://ode.apache.org/img/ode-logo.png" /> - - <link href="/css/application.min.css" rel="stylesheet" media="screen"> - - - - - - <script src="http://code.jquery.com/jquery-latest.js"></script> - <script src="/js/bootstrap.min.js"></script> - <script type="text/javascript"> - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-36293077-1']); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); - </script> - </head> - <body> - - <!-- Navbar --> - <div class="navbar navbar-fixed-top"> - <div class="navbar-inner"> - <div class="container"> - <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - </button> - <a class="brand" href="/index.html">Apache ODE</a> - <div class="nav-collapse collapse"> - <ul class="nav"> - <li class=""> - <a href="/getting-ode.html">Getting ODE</a> - </li> - <li class="active dropdown"> - <a href="/userguide/" 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> - <li><a href="/developerguide/">Developer Guide</a></li> - <li><a href="/ws-bpel-20-specification-compliance.html">WS-BPEL Compliance</a></li> - <li><a href="/extensions/">WS-BPEL Extensions</a></li> - <li><a href="/faq.html">FAQ</a></li> - <li><a href="/roadmap.html">Roadmap</a></li> - <li><a href="/resource-services.html">Resources & Services</a></li> - <li><a href="/javadoc/">Javadoc</a></li> - </ul> - </li> - <li class=" dropdown"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown">Contributing<b class="caret"></b></a> - <ul class="dropdown-menu"> - <li><a href="/mailing-lists.html">Mailing Lists</a></li> - <li><a href="/developerguide/building-ode.html">Building ODE</a></li> - <li><a href="/developerguide/source-code.html">Source Code</a></li> - <li><a href="http://issues.apache.org/jira/browse/ODE">Bug Tracking</a></li> - <li><a href="/contributors.html">Contributors</a></li> - <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> - </ul> - </li> - <li class="dropdown"> - <a href="http://www.apache.org" class="dropdown-toggle" data-toggle="dropdown" data-target="#">The ASF<b class="caret"></b></a> - <ul class="dropdown-menu"> - <li><a href="http://www.apache.org">Apache Software Foundation</a></li> - <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li> - <li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li> - <li><a href="http://www.apache.org/security/">Security</a></li> - </ul> - </li> - </ul> - </div> - </div> - </div> - </div> - - <!-- Subhead --> - - <header class="jumbotron subhead" id="overview"> - <div class="container"> - - <h1>RESTful BPEL, Part II</h1> - - </div> - </header> - - - <!-- Content --> - <div class="container"> - - <div class="row"> - <div class="span12"> - <h2 id="restful-bpel-ii">RESTful BPEL (II)</h2> +<!DOCTYPE html> +<html> + <head> + <title>Apache ODE – RESTful BPEL, Part II</title> + <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> + <meta property="og:image" content="http://ode.apache.org/img/ode-logo.png" /> + + <link href="/css/application.min.css" rel="stylesheet" media="screen"> + + + + + + <script src="http://code.jquery.com/jquery-latest.js"></script> + <script src="/js/bootstrap.min.js"></script> + <script type="text/javascript"> + var _gaq = _gaq || []; + _gaq.push(['_setAccount', 'UA-36293077-1']); + _gaq.push(['_trackPageview']); + + (function() { + var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; + ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; + var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); + })(); + </script> + </head> + <body> + + <!-- Navbar --> + <div class="navbar navbar-fixed-top"> + <div class="navbar-inner"> + <div class="container"> + <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="brand" href="/index.html">Apache ODE</a> + <div class="nav-collapse collapse"> + <ul class="nav"> + <li class=""> + <a href="/getting-ode.html">Getting ODE</a> + </li> + <li class="active dropdown"> + <a href="/userguide/" 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> + <li><a href="/developerguide/">Developer Guide</a></li> + <li><a href="/ws-bpel-20-specification-compliance.html">WS-BPEL Compliance</a></li> + <li><a href="/extensions/">WS-BPEL Extensions</a></li> + <li><a href="/faq.html">FAQ</a></li> + <li><a href="/roadmap.html">Roadmap</a></li> + <li><a href="/resource-services.html">Resources & Services</a></li> + <li><a href="/javadoc/">Javadoc</a></li> + </ul> + </li> + <li class=" dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Contributing<b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="/mailing-lists.html">Mailing Lists</a></li> + <li><a href="/developerguide/building-ode.html">Building ODE</a></li> + <li><a href="/developerguide/source-code.html">Source Code</a></li> + <li><a href="http://issues.apache.org/jira/browse/ODE">Bug Tracking</a></li> + <li><a href="/contributors.html">Contributors</a></li> + <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> + </ul> + </li> + <li class="dropdown"> + <a href="http://www.apache.org" class="dropdown-toggle" data-toggle="dropdown" data-target="#">The ASF<b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="http://www.apache.org">Apache Software Foundation</a></li> + <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li> + <li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li> + <li><a href="http://www.apache.org/security/">Security</a></li> + </ul> + </li> + </ul> + </div> + </div> + </div> + </div> + + <!-- Subhead --> + + <header class="jumbotron subhead" id="overview"> + <div class="container"> + + <h1>RESTful BPEL, Part II</h1> + + </div> + </header> + + + <!-- Content --> + <div class="container"> + + <div class="row"> + <div class="span12"> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<h2 id="restful-bpel-ii">RESTful BPEL (II)<a class="headerlink" href="#restful-bpel-ii" title="Permanent link">¶</a></h2> <p><div class="alert alert-warning"> This feature is not yet implemented in ODE. This is a proposal subject to feedback, implementation experience, etc. </div></p> <p><a name="RESTfulBPEL,PartII-UseCases"></a></p> -<h3 id="use-cases">Use Cases</h3> +<h3 id="use-cases">Use Cases<a class="headerlink" href="#use-cases" title="Permanent link">¶</a></h3> <p><em>Use case 1</em>: A client needs to process <em>foo</em>, which it does by creating a new resource which it can operate on. The client starts by making a POST request to /foos. This results in a new resource, a response with status code 201 (Created), relevant document and the Location header pointing to the URL of the new resource (/foos/123). The client can then operate on the new resource, e.g. reading its state at various points in time (GET), changing its state (PUT), or even discarding it (DELETE).</p> <p><em>Use case 2</em>: Continuing with use case 1, the client may need to process <em>bar</em> or <em>baz</em>, as part of the larger processing of <em>foo</em>. The client will attempt to create a new resource under /foos/123/bar or /foos/123/baz, but to do so the client must first determine the URL for either resource. This is done in a separate step, maybe in the response to the request that created /foos/123 or a subsequent operation against that resource (or in fact some other resource).</p> <p><em>Use case 3</em>: Continuing with use case 1, the client is able to operate on a collection of items that are part of the larger processing of <em>foo</em>. Those are exposed behind a URL like /foos/123/items/456, where 456 is the item number. The exact number of resources available depend on the number of items in that collection.</p> @@ -115,40 +126,40 @@ </ol> <p>The above deal specifically with resources, but in addition we will also need a way to handle HTTP variables and query string parameters. We also expect the process engine to take care of common protocol details, such as status codes, redirection, cache control, content negotiation and encoding, HEAD and OPTIONs requests, etc.</p> <p><a name="RESTfulBPEL,PartII-Resources"></a></p> -<h3 id="resources">Resources</h3> +<h3 id="resources">Resources<a class="headerlink" href="#resources" title="Permanent link">¶</a></h3> <p>Resources are declared in a scope, and a scope may declare any number of resources. A resource declaration consists of two properties, the resource <strong>name</strong>, which we use to reference the resource, and a relative <strong>path</strong> that denotes the relationship between this resource and other resources. Once instantiated, the value of the resource is an absolute URL.</p> <p>The process can use resources in two ways. It can reference a resource for the purpose of receiving requests on that resource or a member of the collection denoted by the resource. It can also access the value of the resource (URL), for example, to send it as part of a message.</p> <p>To access the value of the resource, we treat the resource as a read-only variable with the type xsd:uri. Expressions can access the resource as they would any other variable available in the scope, but cannot modify (assign to) its value. For that reason, all resources declared in a scope must have unique name and in addition no variable and resource declared in the same scope may have the same name.</p> <p>A resource that specifies no path (or the empty path) will be instantiated using a URL unique to that process instance. A resource that specifies a static path will be instantiated by appending that path to the instance URL. A resource that specifies a path relative to another resource will be instantiated by appending that path to the URL of the other resource. We use the $ notation to reference another resource, so the path $foo/bar will append /bar to the URL denoted by the resource $foo.</p> <p><a name="RESTfulBPEL,PartII-Recievingrequests"></a></p> -<h3 id="recieving-requests">Recieving requests</h3> +<h3 id="recieving-requests">Recieving requests<a class="headerlink" href="#recieving-requests" title="Permanent link">¶</a></h3> <p>To expose themselves as resources, the receive activity and event handler introduce four new properties. The <strong>method</strong> property specifies the HTTP method to accept, and the semantics of each HTTP method are described below. The <strong>resource</strong> property references a resource declaration available in the scope.</p> <p>The <strong>instantiateResource</strong> property is true if the resource is instantiated by the receive activity or event handler, and false if the resource must be instantiated before the activity executes. This property can only be set to true when using the POST method, and is always true for the instantiating activity of the process.</p> <p>When instantiateResource is false, the resource is instantiated first and the activity receives requests on that URL. When instantiateResource is true, the resource value is calculated and the activity receives requests on that URL. Once received, the resource is instantiated by appending a unique identifier to that URL. For example, the receive activity listens on the URL /foos, and upon receipt instantiates the resource to the URL /foos/123. In addition, the corresponding reply activity will set the status code to 201 (Created) and set the Location header to the resource URL.</p> <p>The <strong>resourceIdentity</strong> activity names a variable that will be set to the member identity when receiving requests on behalf of a collection resource. When used in event handlers, the variable is implicitly defined in the implicit scope of the event handler and has the type xsd:string.</p> <p>For example, if the resource is /foos/123/bars and the resourceIdentity is set to bar, then the activity will receive requests on the URL /foos/123/bars/{bar}, and the last part of the request URL path (the member identity {bar}) is assigned to the value of the variable bar.</p> <p><a name="RESTfulBPEL,PartII-POST"></a></p> -<h4 id="post">POST</h4> +<h4 id="post">POST<a class="headerlink" href="#post" title="Permanent link">¶</a></h4> <p>The POST method has two uses, one involving the creation of a new resource, and the other involving processing of requests that do not map to any other HTTP method. The receive activity is coupled to a reply activity, and no other receive or wait is allowed to occur between the two.</p> <p>When using the POST method to create a new resource, including in the instantiating activity of the process, the instantiateResource property is set to true, and the resource is instantiated by the activity. The reply activity uses the status code 201 (Created).</p> <p>When using the POST method to process requests, the instantiate property is set to false. The reply activity sets the status code to 200 (OK), or if there is no document entity, to 204 (No Content).</p> <p><a name="RESTfulBPEL,PartII-GET/HEAD"></a></p> -<h4 id="gethead">GET/HEAD</h4> +<h4 id="gethead">GET/HEAD<a class="headerlink" href="#gethead" title="Permanent link">¶</a></h4> <p>The GET method has on side effects. To preserve this constraint only event handlers are allowed to use the GET method, and the event handler may only contain the reply activity. In addition, the event handler can only assign to variables declared in the implicit scope of the event handler, and faults occurring in the event handler are not propagated to the enclosing scope.</p> <p>The process engine uses cache control to optimize the GET method by handling conditional GETs and setting the Last-Modified/ETag headers. These are set to detect any change in the state of the process instance (which excludes responding to a GET request).</p> <p>The HEAD method is handled using receives for the GET method, without constructing a document entity in the response.</p> <p><a name="RESTfulBPEL,PartII-PUT"></a></p> -<h4 id="put">PUT</h4> +<h4 id="put">PUT<a class="headerlink" href="#put" title="Permanent link">¶</a></h4> <p>The PUT method is used to modify state. To be used successfully in combination with GET, the process engine supports conditional PUTs and returns 412 (Precondition Failed) if it detects a change in the process state since the corresponding GET.</p> <p>The receive activity is coupled to a reply activity, and no other receive or wait is allowed to occur between the two. The reply activity sets the status code to 200 (OK), or if there is no document entity, to 204 (No Content).</p> <p><a name="RESTfulBPEL,PartII-DELETE*"></a></p> -<h4 id="delete">DELETE*</h4> +<h4 id="delete">DELETE*<a class="headerlink" href="#delete" title="Permanent link">¶</a></h4> <p>The DELETE method does not have a corresponding reply activity and returns the status code 200 (OK).</p> <p><a name="RESTfulBPEL,PartII-OPTIONS"></a></p> -<h4 id="options">OPTIONS</h4> +<h4 id="options">OPTIONS<a class="headerlink" href="#options" title="Permanent link">¶</a></h4> <p>The OPTIONS method is handled by the process engine.</p> <p><a name="RESTfulBPEL,PartII-Additional"></a></p> -<h3 id="additional">Additional</h3> +<h3 id="additional">Additional<a class="headerlink" href="#additional" title="Permanent link">¶</a></h3> <p>Since all incoming requests must disambiguate a receive activity, no two receive activities can be outstanding on the same URL using the same method. This behavior is defined in term of URLs not resources, since it is possible for two resources to denote the same URL. It is also possible for the same resource to be used, once with the resourceIdentity property and once without, since those map two distinct URLs (/foos/something vs /foos).</p> <p>The reply activity is matched to the corresponding receive activity based on the resource name.</p> <p>Both receive and reply activities have access to an implicit message part called bodythat contains the internal representation of the document entity. Receive activities have access to an implicit message part called params, instantiated from the query string parameters. The XML representation of this part consists of the element Parameters, which maps query string parameters as follows:</p> @@ -156,26 +167,26 @@ <li>foo -- Maps to the element foo.</li> <li>foo[bar] -- Maps to the element bar contained in the parent element foo.</li> <li>foo[] -- Each value is mapped to an element called foo in the parent element foos.</li> -</ul> - </div> - </div> - - - <!-- Footer --> - <footer class="footer"> - <div class='row'> - <div class='span3'> - <img src="/img/asf.png" alt="Apache Software Foundation"/> - </div> - <div class='span9'> - <p><strong>Apache ODE</strong><sup>™</sup> is a top-level project at the <a href="http://www.apache.org">Apache Software Foundation<sup>™</sup></a> - Through a collaborative and meritocratic development process, Apache - projects deliver enterprise-grade, freely available software products that - attract large communities of users.</p> - <p>Apache ODE, ODE, Apache, the Apache feather logo, and the Apache ODE project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p> - </div> - </div> - </footer> - </div> <!-- /container --> - </body> +</ul> + </div> + </div> + + + <!-- Footer --> + <footer class="footer"> + <div class='row'> + <div class='span3'> + <img src="/img/asf_logo_url.png" alt="Apache Software Foundation"/> + </div> + <div class='span9'> + <p><strong>Apache ODE</strong><sup>™</sup> is a top-level project at the <a href="http://www.apache.org">Apache Software Foundation<sup>™</sup></a> + Through a collaborative and meritocratic development process, Apache + projects deliver enterprise-grade, freely available software products that + attract large communities of users.</p> + <p>Apache ODE, ODE, Apache, the Apache feather logo, and the Apache ODE project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p> + </div> + </div> + </footer> + </div> <!-- /container --> + </body> </html> \ No newline at end of file Modified: websites/staging/ode/trunk/content/extensions/wsdl-11-extensions-for-rest.html ============================================================================== --- websites/staging/ode/trunk/content/extensions/wsdl-11-extensions-for-rest.html (original) +++ websites/staging/ode/trunk/content/extensions/wsdl-11-extensions-for-rest.html Fri Jul 14 10:08:12 2017 @@ -1,103 +1,114 @@ -<!DOCTYPE html> -<html> - <head> - <title>Apache ODE – WSDL 1.1 Extensions for REST</title> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> - <meta property="og:image" content="http://ode.apache.org/img/ode-logo.png" /> - - <link href="/css/application.min.css" rel="stylesheet" media="screen"> - - - - - - <script src="http://code.jquery.com/jquery-latest.js"></script> - <script src="/js/bootstrap.min.js"></script> - <script type="text/javascript"> - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-36293077-1']); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); - </script> - </head> - <body> - - <!-- Navbar --> - <div class="navbar navbar-fixed-top"> - <div class="navbar-inner"> - <div class="container"> - <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - </button> - <a class="brand" href="/index.html">Apache ODE</a> - <div class="nav-collapse collapse"> - <ul class="nav"> - <li class=""> - <a href="/getting-ode.html">Getting ODE</a> - </li> - <li class="active dropdown"> - <a href="/userguide/" 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> - <li><a href="/developerguide/">Developer Guide</a></li> - <li><a href="/ws-bpel-20-specification-compliance.html">WS-BPEL Compliance</a></li> - <li><a href="/extensions/">WS-BPEL Extensions</a></li> - <li><a href="/faq.html">FAQ</a></li> - <li><a href="/roadmap.html">Roadmap</a></li> - <li><a href="/resource-services.html">Resources & Services</a></li> - <li><a href="/javadoc/">Javadoc</a></li> - </ul> - </li> - <li class=" dropdown"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown">Contributing<b class="caret"></b></a> - <ul class="dropdown-menu"> - <li><a href="/mailing-lists.html">Mailing Lists</a></li> - <li><a href="/developerguide/building-ode.html">Building ODE</a></li> - <li><a href="/developerguide/source-code.html">Source Code</a></li> - <li><a href="http://issues.apache.org/jira/browse/ODE">Bug Tracking</a></li> - <li><a href="/contributors.html">Contributors</a></li> - <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> - </ul> - </li> - <li class="dropdown"> - <a href="http://www.apache.org" class="dropdown-toggle" data-toggle="dropdown" data-target="#">The ASF<b class="caret"></b></a> - <ul class="dropdown-menu"> - <li><a href="http://www.apache.org">Apache Software Foundation</a></li> - <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li> - <li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li> - <li><a href="http://www.apache.org/security/">Security</a></li> - </ul> - </li> - </ul> - </div> - </div> - </div> - </div> - - <!-- Subhead --> - - <header class="jumbotron subhead" id="overview"> - <div class="container"> - - <h1>WSDL 1.1 Extensions for REST</h1> - - </div> - </header> - - - <!-- Content --> - <div class="container"> - - <div class="row"> - <div class="span12"> - <h2 id="overview">Overview</h2> +<!DOCTYPE html> +<html> + <head> + <title>Apache ODE – WSDL 1.1 Extensions for REST</title> + <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> + <meta property="og:image" content="http://ode.apache.org/img/ode-logo.png" /> + + <link href="/css/application.min.css" rel="stylesheet" media="screen"> + + + + + + <script src="http://code.jquery.com/jquery-latest.js"></script> + <script src="/js/bootstrap.min.js"></script> + <script type="text/javascript"> + var _gaq = _gaq || []; + _gaq.push(['_setAccount', 'UA-36293077-1']); + _gaq.push(['_trackPageview']); + + (function() { + var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; + ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; + var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); + })(); + </script> + </head> + <body> + + <!-- Navbar --> + <div class="navbar navbar-fixed-top"> + <div class="navbar-inner"> + <div class="container"> + <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="brand" href="/index.html">Apache ODE</a> + <div class="nav-collapse collapse"> + <ul class="nav"> + <li class=""> + <a href="/getting-ode.html">Getting ODE</a> + </li> + <li class="active dropdown"> + <a href="/userguide/" 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> + <li><a href="/developerguide/">Developer Guide</a></li> + <li><a href="/ws-bpel-20-specification-compliance.html">WS-BPEL Compliance</a></li> + <li><a href="/extensions/">WS-BPEL Extensions</a></li> + <li><a href="/faq.html">FAQ</a></li> + <li><a href="/roadmap.html">Roadmap</a></li> + <li><a href="/resource-services.html">Resources & Services</a></li> + <li><a href="/javadoc/">Javadoc</a></li> + </ul> + </li> + <li class=" dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Contributing<b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="/mailing-lists.html">Mailing Lists</a></li> + <li><a href="/developerguide/building-ode.html">Building ODE</a></li> + <li><a href="/developerguide/source-code.html">Source Code</a></li> + <li><a href="http://issues.apache.org/jira/browse/ODE">Bug Tracking</a></li> + <li><a href="/contributors.html">Contributors</a></li> + <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> + </ul> + </li> + <li class="dropdown"> + <a href="http://www.apache.org" class="dropdown-toggle" data-toggle="dropdown" data-target="#">The ASF<b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="http://www.apache.org">Apache Software Foundation</a></li> + <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li> + <li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li> + <li><a href="http://www.apache.org/security/">Security</a></li> + </ul> + </li> + </ul> + </div> + </div> + </div> + </div> + + <!-- Subhead --> + + <header class="jumbotron subhead" id="overview"> + <div class="container"> + + <h1>WSDL 1.1 Extensions for REST</h1> + + </div> + </header> + + + <!-- Content --> + <div class="container"> + + <div class="row"> + <div class="span12"> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<h2 id="overview">Overview<a class="headerlink" href="#overview" title="Permanent link">¶</a></h2> <p>The <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">Resource-Oriented Architecture</a> defines four concepts:</p> <ol> <li>Resources</li> @@ -131,7 +142,7 @@ </ul> <div class="alert alert-info"><h4 class="alert-heading">Check out unit tests!</h4></div> -<h3 id="one-verb-per-operation">One verb per operation</h3> +<h3 id="one-verb-per-operation">One verb per operation<a class="headerlink" href="#one-verb-per-operation" title="Permanent link">¶</a></h3> <p>According to the WSDL 1.1 specification, the verb describing the HTTP method has to be at <a href="http://www.w3.org/TR/wsdl#A4.3">the binding level</a>. Which implies that the same HTTP method is used by all operations of a given port type. But RESTful web services leverage HTTP methods as a uniform interface to describe operation on resources. So for instance, if you want to use the following HTTP operations -- GET, POST, PUT, DELETE -- for a given resource, four different bindings would be required. And consequently four port types and four ports. Quite verbose and unusable, isn't it?</p> <p>So, this extension is to push down the HTTP verb at the operation level. And if an operation does not have its own verb, then the verb defined at the binding level will be used. This extension is declared in the namespace: <code>http://www.apache.org/ode/type/extension/http</code></p> @@ -153,7 +164,7 @@ This extension is declared in the namesp </pre></div> -<h3 id="uri-template">URI Template</h3> +<h3 id="uri-template">URI Template<a class="headerlink" href="#uri-template" title="Permanent link">¶</a></h3> <p>A RESTful service exposed a set of resources, each of them being accessible through a uniform interface: HTTP methods for a web service. So we need a way to define four operations (at most) for a single resource. </p> <p>Moreover it's very likely that the resource URI actually describes a set of resources. For instance, the set of posts contained in our imaginary blog: <code>http://blog.org/post/{post_id}</code>.</p> <p>HTTP binding offers the <a href="http://www.w3.org/TR/wsdl#_http:operation">http:operation </a> element to set the path of an operation. While the service address is set in the <a href="http://www.w3.org/TR/wsdl#_http:address">http:address</a> of the <a href="http://www.w3.org/TR/wsdl#_ports">wsdl:port</a> element. @@ -220,7 +231,7 @@ So one could imagine splitting the URL t </pre></div> -<h3 id="http-headers-manipulation">HTTP Headers manipulation</h3> +<h3 id="http-headers-manipulation">HTTP Headers manipulation<a class="headerlink" href="#http-headers-manipulation" title="Permanent link">¶</a></h3> <p>HTTP protocal convey a lot of information in Request/Response Headers. Caching information, Content description for instance. All this data is completely left out by WSDL 1.1 HTTP Binding. To fix this, ODE provides a header element. This element can be used to insert a part or a static value into a given HTTP request header (standard or custom). And the way around, a HTTP request header into a part. Also note that all HTTP response headers are inserted into the message headers, and thus are available from the BPEL process.</p> <div class="codehilite"><pre><span class="nt"><definitions</span> <span class="err">...</span> <span class="na">xmlns:odex=</span><span class="s">"http://www.apache.org/ode/type/extension/http"</span><span class="nt">/></span> @@ -278,7 +289,7 @@ So one could imagine splitting the URL t </pre></div> -<h3 id="fault-support">Fault Support</h3> +<h3 id="fault-support">Fault Support<a class="headerlink" href="#fault-support" title="Permanent link">¶</a></h3> <p>Another domain completely neglected by WSDL 1.1 HTTP Binding is Fault management. The word is not even mentioned in the <a href="http://www.w3.org/TR/wsdl#_http">HTTP Binding section</a>. ODE allows you to bind a fault with HTTP Binding. If a <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4">4xx or a 5xx</a> is returned, the following logic is applied:</p> <p>A failure is thrown if the code is one of these:</p> @@ -386,26 +397,26 @@ If one of these steps fails, a failure i <span class="nt"></operation></span> <span class="nt"></binding></span> <span class="nt"></definitions></span> -</pre></div> - </div> - </div> - - - <!-- Footer --> - <footer class="footer"> - <div class='row'> - <div class='span3'> - <img src="/img/asf.png" alt="Apache Software Foundation"/> - </div> - <div class='span9'> - <p><strong>Apache ODE</strong><sup>™</sup> is a top-level project at the <a href="http://www.apache.org">Apache Software Foundation<sup>™</sup></a> - Through a collaborative and meritocratic development process, Apache - projects deliver enterprise-grade, freely available software products that - attract large communities of users.</p> - <p>Apache ODE, ODE, Apache, the Apache feather logo, and the Apache ODE project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p> - </div> - </div> - </footer> - </div> <!-- /container --> - </body> +</pre></div> + </div> + </div> + + + <!-- Footer --> + <footer class="footer"> + <div class='row'> + <div class='span3'> + <img src="/img/asf_logo_url.png" alt="Apache Software Foundation"/> + </div> + <div class='span9'> + <p><strong>Apache ODE</strong><sup>™</sup> is a top-level project at the <a href="http://www.apache.org">Apache Software Foundation<sup>™</sup></a> + Through a collaborative and meritocratic development process, Apache + projects deliver enterprise-grade, freely available software products that + attract large communities of users.</p> + <p>Apache ODE, ODE, Apache, the Apache feather logo, and the Apache ODE project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p> + </div> + </div> + </footer> + </div> <!-- /container --> + </body> </html> \ No newline at end of file Modified: websites/staging/ode/trunk/content/extensions/xpath-extensions.html ============================================================================== --- websites/staging/ode/trunk/content/extensions/xpath-extensions.html (original) +++ websites/staging/ode/trunk/content/extensions/xpath-extensions.html Fri Jul 14 10:08:12 2017 @@ -1,118 +1,129 @@ -<!DOCTYPE html> -<html> - <head> - <title>Apache ODE – XPath Extensions</title> - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> - <meta property="og:image" content="http://ode.apache.org/img/ode-logo.png" /> - - <link href="/css/application.min.css" rel="stylesheet" media="screen"> - - - - - - <script src="http://code.jquery.com/jquery-latest.js"></script> - <script src="/js/bootstrap.min.js"></script> - <script type="text/javascript"> - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-36293077-1']); - _gaq.push(['_trackPageview']); - - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); - </script> - </head> - <body> - - <!-- Navbar --> - <div class="navbar navbar-fixed-top"> - <div class="navbar-inner"> - <div class="container"> - <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - </button> - <a class="brand" href="/index.html">Apache ODE</a> - <div class="nav-collapse collapse"> - <ul class="nav"> - <li class=""> - <a href="/getting-ode.html">Getting ODE</a> - </li> - <li class="active dropdown"> - <a href="/userguide/" 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> - <li><a href="/developerguide/">Developer Guide</a></li> - <li><a href="/ws-bpel-20-specification-compliance.html">WS-BPEL Compliance</a></li> - <li><a href="/extensions/">WS-BPEL Extensions</a></li> - <li><a href="/faq.html">FAQ</a></li> - <li><a href="/roadmap.html">Roadmap</a></li> - <li><a href="/resource-services.html">Resources & Services</a></li> - <li><a href="/javadoc/">Javadoc</a></li> - </ul> - </li> - <li class=" dropdown"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown">Contributing<b class="caret"></b></a> - <ul class="dropdown-menu"> - <li><a href="/mailing-lists.html">Mailing Lists</a></li> - <li><a href="/developerguide/building-ode.html">Building ODE</a></li> - <li><a href="/developerguide/source-code.html">Source Code</a></li> - <li><a href="http://issues.apache.org/jira/browse/ODE">Bug Tracking</a></li> - <li><a href="/contributors.html">Contributors</a></li> - <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> - </ul> - </li> - <li class="dropdown"> - <a href="http://www.apache.org" class="dropdown-toggle" data-toggle="dropdown" data-target="#">The ASF<b class="caret"></b></a> - <ul class="dropdown-menu"> - <li><a href="http://www.apache.org">Apache Software Foundation</a></li> - <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li> - <li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li> - <li><a href="http://www.apache.org/security/">Security</a></li> - </ul> - </li> - </ul> - </div> - </div> - </div> - </div> - - <!-- Subhead --> - - <header class="jumbotron subhead" id="overview"> - <div class="container"> - - <h1>XPath Extensions</h1> - - </div> - </header> - - - <!-- Content --> - <div class="container"> - - <div class="row"> - <div class="span12"> - <h2 id="overview">Overview</h2> +<!DOCTYPE html> +<html> + <head> + <title>Apache ODE – XPath Extensions</title> + <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> + <meta property="og:image" content="http://ode.apache.org/img/ode-logo.png" /> + + <link href="/css/application.min.css" rel="stylesheet" media="screen"> + + + + + + <script src="http://code.jquery.com/jquery-latest.js"></script> + <script src="/js/bootstrap.min.js"></script> + <script type="text/javascript"> + var _gaq = _gaq || []; + _gaq.push(['_setAccount', 'UA-36293077-1']); + _gaq.push(['_trackPageview']); + + (function() { + var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; + ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; + var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); + })(); + </script> + </head> + <body> + + <!-- Navbar --> + <div class="navbar navbar-fixed-top"> + <div class="navbar-inner"> + <div class="container"> + <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="brand" href="/index.html">Apache ODE</a> + <div class="nav-collapse collapse"> + <ul class="nav"> + <li class=""> + <a href="/getting-ode.html">Getting ODE</a> + </li> + <li class="active dropdown"> + <a href="/userguide/" 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> + <li><a href="/developerguide/">Developer Guide</a></li> + <li><a href="/ws-bpel-20-specification-compliance.html">WS-BPEL Compliance</a></li> + <li><a href="/extensions/">WS-BPEL Extensions</a></li> + <li><a href="/faq.html">FAQ</a></li> + <li><a href="/roadmap.html">Roadmap</a></li> + <li><a href="/resource-services.html">Resources & Services</a></li> + <li><a href="/javadoc/">Javadoc</a></li> + </ul> + </li> + <li class=" dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Contributing<b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="/mailing-lists.html">Mailing Lists</a></li> + <li><a href="/developerguide/building-ode.html">Building ODE</a></li> + <li><a href="/developerguide/source-code.html">Source Code</a></li> + <li><a href="http://issues.apache.org/jira/browse/ODE">Bug Tracking</a></li> + <li><a href="/contributors.html">Contributors</a></li> + <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li> + </ul> + </li> + <li class="dropdown"> + <a href="http://www.apache.org" class="dropdown-toggle" data-toggle="dropdown" data-target="#">The ASF<b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="http://www.apache.org">Apache Software Foundation</a></li> + <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li> + <li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li> + <li><a href="http://www.apache.org/security/">Security</a></li> + </ul> + </li> + </ul> + </div> + </div> + </div> + </div> + + <!-- Subhead --> + + <header class="jumbotron subhead" id="overview"> + <div class="container"> + + <h1>XPath Extensions</h1> + + </div> + </header> + + + <!-- Content --> + <div class="container"> + + <div class="row"> + <div class="span12"> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<h2 id="overview">Overview<a class="headerlink" href="#overview" title="Permanent link">¶</a></h2> <p>Apache ODE extends the default XPath coverage provided by the <a href="/ws-bpel-20.html">WS-BPEL</a> specification mostly by adding support for <a href="http://www.w3.org/TR/xpath20/">XPath 2.0</a> and by offering a few utility extension functions to make some assignments easier.</p> <p><a name="XPathExtensions-XPath2.0"></a></p> -<h3 id="xpath-20">XPath 2.0</h3> +<h3 id="xpath-20">XPath 2.0<a class="headerlink" href="#xpath-20" title="Permanent link">¶</a></h3> <p>To use XPath 2.0 in your processes just use the following <em>queryLanguage</em> and <em>expressionLanguage</em> attributes:</p> -<div class="codehilite"><pre><span class="n">queryLanguage</span><span class="o">=</span><span class="s">"urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"</span> -<span class="n">expressionLanguage</span><span class="o">=</span><span class="s">"urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"</span> +<div class="codehilite"><pre><span class="n">queryLanguage</span><span class="p">=</span>"<span class="n">urn</span><span class="p">:</span><span class="n">oasis</span><span class="p">:</span><span class="n">names</span><span class="p">:</span><span class="n">tc</span><span class="p">:</span><span class="n">wsbpel</span><span class="p">:</span>2<span class="p">.</span>0<span class="p">:</span><span class="n">sublang</span><span class="p">:</span><span class="n">xpath2</span><span class="p">.</span>0" +<span class="n">expressionLanguage</span><span class="p">=</span>"<span class="n">urn</span><span class="p">:</span><span class="n">oasis</span><span class="p">:</span><span class="n">names</span><span class="p">:</span><span class="n">tc</span><span class="p">:</span><span class="n">wsbpel</span><span class="p">:</span>2<span class="p">.</span>0<span class="p">:</span><span class="n">sublang</span><span class="p">:</span><span class="n">xpath2</span><span class="p">.</span>0" </pre></div> <p>If you want support at the process just add these attributes to your root <em>process</em> element. If you want to stick with XPath 1.0 but want XPath 2.0 support for a specific assignment you can also define these attributes on an <em>assign</em> element.</p> <p><a name="XPathExtensions-ExtensionFunctions"></a></p> -<h3 id="extension-functions">Extension Functions</h3> +<h3 id="extension-functions">Extension Functions<a class="headerlink" href="#extension-functions" title="Permanent link">¶</a></h3> <p>All extension functions are defined in the ODE extension namespace: http://www.apache.org/ode/type/extension. This namespace will be associated with the <em>ode</em> prefix in the following examples.</p> <p><a name="XPathExtensions-insert-before"></a></p> -<h4 id="insert-before">insert-before</h4> +<h4 id="insert-before">insert-before<a class="headerlink" href="#insert-before" title="Permanent link">¶</a></h4> <p>This is a function that allows you to insert one or more siblings (specified by the $siblings argument in the signature below) before the first node of children (specified by the $children argument), all of whose nodes must have the same parent (specified by the $context argument).</p> <div class="caption">Insert Before</div> @@ -138,7 +149,7 @@ <p><a name="XPathExtensions-insert-after"></a></p> -<h4 id="insert-after">insert-after</h4> +<h4 id="insert-after">insert-after<a class="headerlink" href="#insert-after" title="Permanent link">¶</a></h4> <p>This is a function that allows you to insert one or more siblings (specified by the $siblings argument in the signature below) after the last node of children (specified by the $children argument), all of whose nodes must have the same parent (specified by the $context argument).</p> <div class="caption">Insert After</div> @@ -164,7 +175,7 @@ <p><a name="XPathExtensions-insert-as-first-into"></a></p> -<h4 id="insert-as-first-into">insert-as-first-into</h4> +<h4 id="insert-as-first-into">insert-as-first-into<a class="headerlink" href="#insert-as-first-into" title="Permanent link">¶</a></h4> <p>This is a function that allows you to insert the node(s) (specified by the $children argument in the signature below) as the first child(ren) of a given context node (specified by the $context argument).</p> <div class="caption">Insert As First Into</div> @@ -190,7 +201,7 @@ <p><a name="XPathExtensions-insert-as-last-into"></a></p> -<h4 id="insert-as-last-into">insert-as-last-into</h4> +<h4 id="insert-as-last-into">insert-as-last-into<a class="headerlink" href="#insert-as-last-into" title="Permanent link">¶</a></h4> <p>This is a function that allows you to insert the node(s) (specified by the $children argument in the signature below) as the last child(ren) of a given context node (specified by the $context argument).</p> <div class="caption">Insert As Last Into</div> @@ -216,7 +227,7 @@ <p><a name="XPathExtensions-delete"></a></p> -<h4 id="delete">delete</h4> +<h4 id="delete">delete<a class="headerlink" href="#delete" title="Permanent link">¶</a></h4> <p>This is a function that allows you to delete one or more node(s) (specified by the $children argument in the signature below) from its parent (specified by the $context argument).</p> <div class="caption">Delete</div> @@ -242,7 +253,7 @@ <p><a name="XPathExtensions-rename"></a></p> -<h4 id="rename">rename</h4> +<h4 id="rename">rename<a class="headerlink" href="#rename" title="Permanent link">¶</a></h4> <p>This is a function that allows you to rename the context node (specified by the $context argument in the signature below) as per the given name (specified by $item, which is either a QName, Element or String).</p> <div class="caption">Rename</div> @@ -272,7 +283,7 @@ </div> <p><a name="XPathExtensions-split-to-elements"></a></p> -<h4 id="split-to-elements">split-to-elements</h4> +<h4 id="split-to-elements">split-to-elements<a class="headerlink" href="#split-to-elements" title="Permanent link">¶</a></h4> <p>It's impossible to split a given string into a sequence of elements using assignments. The only possible alternative is XSL which is a lot of complexity for a very simple usage pattern. The <em>ode:splitToElements</em> function splits a given string (that can be a variable reference) into several elements by using a specific separators. Here is an example:</p> <div class="codehilite"><pre><span class="nt"><assign></span> <span class="nt"><from></span>ode:split-to-elements(<span class="p">$</span><span class="nv">authorizeMessage</span><span class="p">.</span><span class="nv">credential</span>/userList, ',', 'user')<span class="nt"></from></span> @@ -298,22 +309,22 @@ </div> <p><a name="XPathExtensions-combine-url(base,relative)"></a></p> -<h4 id="combine-urlbase-relative">combine-url(base, relative)</h4> +<h4 id="combine-urlbase-relative">combine-url(base, relative)<a class="headerlink" href="#combine-urlbase-relative" title="Permanent link">¶</a></h4> <p>Takes the relative URL and combines it with the base URL to return a new absolute URL. If the relative parameter is an absolute URL, returns it instead. This function is similar to <a href="http://www.w3.org/TR/2004/WD-xpath-functions-20040723/#func-resolve-uri">func-resolve-uri</a>. However the latter is available in XPath 2.0 only.</p> <p><a name="XPathExtensions-compose-url(template,\[name,value\](name,value\.html)*)"></a></p> -<h4 id="compose-urltemplate-91name-value93">compose-url(template, [name, value]*)</h4> +<h4 id="compose-urltemplate-91name-value93">compose-url(template, [name, value]*)<a class="headerlink" href="#compose-urltemplate-91name-value93" title="Permanent link">¶</a></h4> <p><a name="XPathExtensions-compose-url(template,pairs)"></a></p> -<h4 id="compose-urltemplate-pairs">compose-url(template, pairs)</h4> +<h4 id="compose-urltemplate-pairs">compose-url(template, pairs)<a class="headerlink" href="#compose-urltemplate-pairs" title="Permanent link">¶</a></h4> <p>Expands the template URL by substituting place holders in the template, for example, ('/order/{id}', 'id', 5) returns '/order/5'. Substitute values are either name/value pairs passed as separate parameters, or a node-set returning elements with name mapping to value. The functions applies proper encoding to the mapped values. Undefined variables are replaced with an empty string. This function returns an URL. See also the <a href="http://bitworking.org/projects/URI-Templates/spec/draft-gregorio-uritemplate-03.html">URI Template spec</a>.</p> <p><a name="XPathExtensions-expand-template(template,\[name,value\](name,value\.html)*)"></a></p> -<h4 id="expand-templatetemplate-91name-value93">expand-template(template, [name, value]*)</h4> +<h4 id="expand-templatetemplate-91name-value93">expand-template(template, [name, value]*)<a class="headerlink" href="#expand-templatetemplate-91name-value93" title="Permanent link">¶</a></h4> <p><a name="XPathExtensions-expand-template(template,pairs)"></a></p> -<h4 id="expand-templatetemplate-pairs">expand-template(template, pairs)</h4> +<h4 id="expand-templatetemplate-pairs">expand-template(template, pairs)<a class="headerlink" href="#expand-templatetemplate-pairs" title="Permanent link">¶</a></h4> <p>Similar to <code>composeURL</code> but undefined variables are <em><em>not</em></em> replaced with an empty string. They are ignored. As a result with incomplete mapping may return a new URL template.</p> <p><a name="XPathExtensions-dom-to-string"></a></p> -<h4 id="dom-to-string">dom-to-string</h4> +<h4 id="dom-to-string">dom-to-string<a class="headerlink" href="#dom-to-string" title="Permanent link">¶</a></h4> <p>This is a function that serializes a DOM node (specified by the $node argument in the signature below) into a string.</p> <div class="caption">Dom To String</div> @@ -322,7 +333,7 @@ See also the <a href="http://bitworking. <p><a name="XPathExtensions-process-property"></a></p> -<h4 id="process-property">process-property</h4> +<h4 id="process-property">process-property<a class="headerlink" href="#process-property" title="Permanent link">¶</a></h4> <p>This is a function that allows you to retrieve the value of a property, defined in deploy.xml for the current process, with the given name (specified by the $name argument in the signature below, which is either a QName, String, Element or Single-Valued List).</p> <div class="caption">Process Property</div> @@ -366,9 +377,9 @@ See also the <a href="http://bitworking. </div> <p><a name="XPathExtensions-PredefinedProcessProperties"></a></p> -<h4 id="predefined-process-properties">Predefined Process Properties</h4> +<h4 id="predefined-process-properties">Predefined Process Properties<a class="headerlink" href="#predefined-process-properties" title="Permanent link">¶</a></h4> <p><a name="XPathExtensions-Localhostinfo(nameandIPaddress)"></a></p> -<h5 id="localhost-info-name-and-ip-address">Localhost info (name and IP address)</h5> +<h5 id="localhost-info-name-and-ip-address">Localhost info (name and IP address)<a class="headerlink" href="#localhost-info-name-and-ip-address" title="Permanent link">¶</a></h5> <div class="codehilite"><pre><span class="nt"><bpws:assign></span> <span class="nt"><bpws:copy></span> <span class="nt"><bpws:from></span>ode:process-property('ode.localhost.name')<span class="nt"></bpws:from></span> @@ -386,21 +397,21 @@ See also the <a href="http://bitworking. <p><a name="XPathExtensions-ExtensionVariables"></a></p> -<h3 id="extension-variables">Extension Variables</h3> +<h3 id="extension-variables">Extension Variables<a class="headerlink" href="#extension-variables" title="Permanent link">¶</a></h3> <p><a name="XPathExtensions-InstanceId"></a></p> -<h4 id="instance-id">Instance Id</h4> +<h4 id="instance-id">Instance Id<a class="headerlink" href="#instance-id" title="Permanent link">¶</a></h4> <div class="codehilite"><pre>$ode:pid </pre></div> <p><a name="XPathExtensions-ProcessQName"></a></p> -<h4 id="process-qname">Process QName</h4> +<h4 id="process-qname">Process QName<a class="headerlink" href="#process-qname" title="Permanent link">¶</a></h4> <div class="codehilite"><pre>$ode:processQName </pre></div> <p><a name="XPathExtensions-CurrentEventDateTime"></a></p> -<h4 id="currenteventdatetime">CurrentEventDateTime</h4> +<h4 id="currenteventdatetime">CurrentEventDateTime<a class="headerlink" href="#currenteventdatetime" title="Permanent link">¶</a></h4> <p>This is equivalent to current-dateTime() XPath function, which works with instance replayer. </p> <div class="codehilite"><pre>$ode:currentEventDateTime </pre></div> @@ -408,26 +419,26 @@ See also the <a href="http://bitworking. <div class="alert alert-info"><h4 class="alert-heading">Release Information</h4> 1.3.4 or higher -</div> - </div> - </div> - - - <!-- Footer --> - <footer class="footer"> - <div class='row'> - <div class='span3'> - <img src="/img/asf.png" alt="Apache Software Foundation"/> - </div> - <div class='span9'> - <p><strong>Apache ODE</strong><sup>™</sup> is a top-level project at the <a href="http://www.apache.org">Apache Software Foundation<sup>™</sup></a> - Through a collaborative and meritocratic development process, Apache - projects deliver enterprise-grade, freely available software products that - attract large communities of users.</p> - <p>Apache ODE, ODE, Apache, the Apache feather logo, and the Apache ODE project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p> - </div> - </div> - </footer> - </div> <!-- /container --> - </body> +</div> + </div> + </div> + + + <!-- Footer --> + <footer class="footer"> + <div class='row'> + <div class='span3'> + <img src="/img/asf_logo_url.png" alt="Apache Software Foundation"/> + </div> + <div class='span9'> + <p><strong>Apache ODE</strong><sup>™</sup> is a top-level project at the <a href="http://www.apache.org">Apache Software Foundation<sup>™</sup></a> + Through a collaborative and meritocratic development process, Apache + projects deliver enterprise-grade, freely available software products that + attract large communities of users.</p> + <p>Apache ODE, ODE, Apache, the Apache feather logo, and the Apache ODE project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p> + </div> + </div> + </footer> + </div> <!-- /container --> + </body> </html> \ No newline at end of file
