Added: synapse/site/userguide/samples/sample857.html URL: http://svn.apache.org/viewvc/synapse/site/userguide/samples/sample857.html?rev=1777276&view=auto ============================================================================== --- synapse/site/userguide/samples/sample857.html (added) +++ synapse/site/userguide/samples/sample857.html Wed Jan 4 10:30:06 2017 @@ -0,0 +1,405 @@ +<!DOCTYPE html> +<!-- + | Generated by Apache Maven Doxia at 2017-01-04 + | Rendered using Apache Maven Fluido Skin 1.4 +--> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <meta name="Date-Revision-yyyymmdd" content="20170104" /> + <meta http-equiv="Content-Language" content="en" /> + <title>Apache Synapse - + Apache Synapse - Sample 857</title> + <link rel="stylesheet" href="../../css/apache-maven-fluido-1.4.min.css" /> + <link rel="stylesheet" href="../../css/site.css" /> + <link rel="stylesheet" href="../../css/print.css" media="print" /> + + + <script type="text/javascript" src="../../js/apache-maven-fluido-1.4.min.js"></script> + + + </head> + <body class="topBarDisabled"> + + + + <div class="container-fluid"> + <div id="banner"> + <div class="pull-left"> + <div id="bannerLeft"> + <h2>Apache Synapse</h2> + </div> + </div> + <div class="pull-right"> </div> + <div class="clear"><hr/></div> + </div> + + <div id="breadcrumbs"> + <ul class="breadcrumb"> + + + <li id="publishDate">Last Published: 2017-01-04 + <span class="divider">|</span> + </li> + <li id="projectVersion">Version: 3.0.0 + </li> + + + + + </ul> + </div> + + + <div class="row-fluid"> + <div id="leftColumn" class="span2"> + <div class="well sidebar-nav"> + + + <ul class="nav nav-list"> + <li class="nav-header">Main Menu</li> + + <li> + + <a href="../../index.html" title="Home"> + <span class="none"></span> + Home</a> + </li> + + <li> + + <a href="../../download.html" title="Download"> + <span class="none"></span> + Download</a> + </li> + + <li> + + <a href="../../history.html" title="History"> + <span class="none"></span> + History</a> + </li> + + <li> + + <a href="http://www.apache.org/licenses/LICENSE-2.0" class="externalLink" title="License"> + <span class="none"></span> + License</a> + </li> + + <li> + + <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"> + <span class="none"></span> + Thanks</a> + </li> + + <li> + + <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship"> + <span class="none"></span> + Sponsorship</a> + </li> + + <li> + + <a href="http://www.apache.org/security/" class="externalLink" title="Security"> + <span class="none"></span> + Security</a> + </li> + <li class="nav-header">Documentation</li> + + <li> + + <a href="../../userguide/installation.html" title="Installation Guide"> + <span class="none"></span> + Installation Guide</a> + </li> + + <li> + + <a href="../../userguide/quick_start.html" title="Quick Start Guide"> + <span class="none"></span> + Quick Start Guide</a> + </li> + + <li> + + <a href="../../userguide/samples/setup/index.html" title="Samples Setup Guide"> + <span class="none"></span> + Samples Setup Guide</a> + </li> + + <li> + + <a href="../../userguide/samples.html" title="Samples Catalog"> + <span class="none"></span> + Samples Catalog</a> + </li> + + <li> + + <a href="../../userguide/config.html" title="Configuration Language"> + <span class="none"></span> + Configuration Language</a> + </li> + + <li> + + <a href="../../userguide/mediators.html" title="Mediators Catalog"> + <span class="none"></span> + Mediators Catalog</a> + </li> + + <li> + + <a href="../../userguide/transports.html" title="Transports Catalog"> + <span class="none"></span> + Transports Catalog</a> + </li> + + <li> + + <a href="../../userguide/properties.html" title="Properties Catalog"> + <span class="none"></span> + Properties Catalog</a> + </li> + + <li> + + <a href="../../userguide/xpath.html" title="XPath functions and Variables"> + <span class="none"></span> + XPath functions and Variables</a> + </li> + + <li> + + <a href="../../userguide/extending.html" title="Extending Synapse"> + <span class="none"></span> + Extending Synapse</a> + </li> + + <li> + + <a href="../../userguide/template_library.html" title="Synapse Template Libraries"> + <span class="none"></span> + Synapse Template Libraries</a> + </li> + + <li> + + <a href="../../userguide/upgrading.html" title="Upgrading"> + <span class="none"></span> + Upgrading</a> + </li> + + <li> + + <a href="../../userguide/deployment.html" title="Deployment"> + <span class="none"></span> + Deployment</a> + </li> + + <li> + + <a href="../../apidocs/" title="Javadocs"> + <span class="none"></span> + Javadocs</a> + </li> + + <li> + + <a href="../../userguide/faq.html" title="FAQ"> + <span class="none"></span> + FAQ</a> + </li> + <li class="nav-header">Developer Resources</li> + + <li> + + <a href="../../dev/developer-guide.html" title="Developer Guide"> + <span class="none"></span> + Developer Guide</a> + </li> + + <li> + + <a href="../../dev/best-practices.html" title="Development Best Practices"> + <span class="none"></span> + Development Best Practices</a> + </li> + + <li> + + <a href="../../dev/release-process.html" title="Release Process"> + <span class="none"></span> + Release Process</a> + </li> + <li class="nav-header">Project Details</li> + + <li> + + <a href="../../project-info.html" title="Overview"> + <span class="none"></span> + Overview</a> + </li> + + <li> + + <a href="../../mail-lists.html" title="Mailing Lists"> + <span class="none"></span> + Mailing Lists</a> + </li> + + <li> + + <a href="../../source-repository.html" title="Source Repository"> + <span class="none"></span> + Source Repository</a> + </li> + + <li> + + <a href="../../issue-tracking.html" title="Issue Tracking"> + <span class="none"></span> + Issue Tracking</a> + </li> + + <li> + + <a href="../../dependency-management.html" title="Dependencies"> + <span class="none"></span> + Dependencies</a> + </li> + + <li> + + <a href="../../team-list.html" title="Project Team"> + <span class="none"></span> + Project Team</a> + </li> + </ul> + + + + <hr /> + + <div id="poweredBy"> + <div class="clear"></div> + <div class="clear"></div> + <div class="clear"></div> + <div class="clear"></div> + <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"> + <img class="builtBy" alt="Built by Maven" src="../../images/logos/maven-feather.png" /> + </a> + </div> + </div> + </div> + + + <div id="bodyColumn" class="span10" > + + <!-- ~ Licensed to the Apache Software Foundation (ASF) under one + ~ or more contributor license agreements. See the NOTICE file + ~ distributed with this work for additional information + ~ regarding copyright ownership. The ASF licenses this file + ~ to you under the Apache License, Version 2.0 (the + ~ "License"); you may not use this file except in compliance + ~ with the License. You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, + ~ software distributed under the License is distributed on an + ~ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + ~ KIND, either express or implied. See the License for the + ~ specific language governing permissions and limitations + ~ under the License. --> + + <div class="section"> +<h2>Sample 857: Introduction to Synapse Recipient List eip function template<a name="Sample_857:_Introduction_to_Synapse_Recipient_List_eip_function_template"></a></h2> + +<div class="xmlConf"><!-- Introduction to Synapse Recipient List eip function template --> +<definitions xmlns="http://ws.apache.org/ns/synapse"> +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary" package="synapse.lang.eip" /> + <sequence name="main"> + <property name="OUT_ONLY" value="true"/> + <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/> + <call-template target="synapse.lang.eip.recipient_list"> + <with-param name="recipient_list" value="http://localhost:9000/services/SimpleStockQuoteService,http://localhost:9001/services/SimpleStockQuoteService"/> + </call-template> + <drop/> +</sequence> +</definitions></div> + +<div class="section"> +<h3>Objective<a name="Objective"></a></h3> + +<p> +This sample is an introduction to Synapse Recipient List eip function template. + </p> + </div> + +<div class="section"> +<h3>Pre-requisites<a name="Pre-requisites"></a></h3> + +<p> + </p> +<ul> + +<li> + Start two instances of sample Axis2 server on HTTP ports 9000,9001. And deploy the SimpleStockQuoteService in all of them. + </li> + +<li> + Start Synapse using the configuration numbered 857 (repository/conf/sample/synapse_sample_857.xml) + +<div class="command"> + Unix/Linux: sh synapse.sh -sample 857<br /> + Windows: synapse.bat -sample 857 + </div> + </li> + </ul> + + </div> + +<div class="section"> +<h3>Executing the Client<a name="Executing_the_Client"></a></h3> + +<p> +In this sample, the messages sent to Synapse will be route to the endpoints defined under recipient_list parameter. +</p> + +<p> + Invoke the client as follows. + </p> + +<div class="command">ant stockquote -Dtrpurl=http://localhost:8280/</div> + </div> + </div> + +<p><a href="../samples.html">Back to Catalog</a></p> + + + </div> + </div> + </div> + + <hr/> + + <footer> + <div class="container-fluid"> + <div class="row-fluid"> + <p >Copyright © 2005–2017 + <a href="http://www.apache.org/">Apache Software Foundation</a>. + All rights reserved. + + </p> + </div> + + + </div> + </footer> + </body> +</html>
Added: synapse/site/userguide/template_library.html URL: http://svn.apache.org/viewvc/synapse/site/userguide/template_library.html?rev=1777276&view=auto ============================================================================== --- synapse/site/userguide/template_library.html (added) +++ synapse/site/userguide/template_library.html Wed Jan 4 10:30:06 2017 @@ -0,0 +1,829 @@ +<!DOCTYPE html> +<!-- + | Generated by Apache Maven Doxia at 2017-01-04 + | Rendered using Apache Maven Fluido Skin 1.4 +--> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <meta name="Date-Revision-yyyymmdd" content="20170104" /> + <meta http-equiv="Content-Language" content="en" /> + <title>Apache Synapse - + Apache Synapse - Synapse Template Libraries</title> + <link rel="stylesheet" href="../css/apache-maven-fluido-1.4.min.css" /> + <link rel="stylesheet" href="../css/site.css" /> + <link rel="stylesheet" href="../css/print.css" media="print" /> + + + <script type="text/javascript" src="../js/apache-maven-fluido-1.4.min.js"></script> + + + </head> + <body class="topBarDisabled"> + + + + <div class="container-fluid"> + <div id="banner"> + <div class="pull-left"> + <div id="bannerLeft"> + <h2>Apache Synapse</h2> + </div> + </div> + <div class="pull-right"> </div> + <div class="clear"><hr/></div> + </div> + + <div id="breadcrumbs"> + <ul class="breadcrumb"> + + + <li id="publishDate">Last Published: 2017-01-04 + <span class="divider">|</span> + </li> + <li id="projectVersion">Version: 3.0.0 + </li> + + + + + </ul> + </div> + + + <div class="row-fluid"> + <div id="leftColumn" class="span2"> + <div class="well sidebar-nav"> + + + <ul class="nav nav-list"> + <li class="nav-header">Main Menu</li> + + <li> + + <a href="../index.html" title="Home"> + <span class="none"></span> + Home</a> + </li> + + <li> + + <a href="../download.html" title="Download"> + <span class="none"></span> + Download</a> + </li> + + <li> + + <a href="../history.html" title="History"> + <span class="none"></span> + History</a> + </li> + + <li> + + <a href="http://www.apache.org/licenses/LICENSE-2.0" class="externalLink" title="License"> + <span class="none"></span> + License</a> + </li> + + <li> + + <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"> + <span class="none"></span> + Thanks</a> + </li> + + <li> + + <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship"> + <span class="none"></span> + Sponsorship</a> + </li> + + <li> + + <a href="http://www.apache.org/security/" class="externalLink" title="Security"> + <span class="none"></span> + Security</a> + </li> + <li class="nav-header">Documentation</li> + + <li> + + <a href="../userguide/installation.html" title="Installation Guide"> + <span class="none"></span> + Installation Guide</a> + </li> + + <li> + + <a href="../userguide/quick_start.html" title="Quick Start Guide"> + <span class="none"></span> + Quick Start Guide</a> + </li> + + <li> + + <a href="../userguide/samples/setup/index.html" title="Samples Setup Guide"> + <span class="none"></span> + Samples Setup Guide</a> + </li> + + <li> + + <a href="../userguide/samples.html" title="Samples Catalog"> + <span class="none"></span> + Samples Catalog</a> + </li> + + <li> + + <a href="../userguide/config.html" title="Configuration Language"> + <span class="none"></span> + Configuration Language</a> + </li> + + <li> + + <a href="../userguide/mediators.html" title="Mediators Catalog"> + <span class="none"></span> + Mediators Catalog</a> + </li> + + <li> + + <a href="../userguide/transports.html" title="Transports Catalog"> + <span class="none"></span> + Transports Catalog</a> + </li> + + <li> + + <a href="../userguide/properties.html" title="Properties Catalog"> + <span class="none"></span> + Properties Catalog</a> + </li> + + <li> + + <a href="../userguide/xpath.html" title="XPath functions and Variables"> + <span class="none"></span> + XPath functions and Variables</a> + </li> + + <li> + + <a href="../userguide/extending.html" title="Extending Synapse"> + <span class="none"></span> + Extending Synapse</a> + </li> + + <li class="active"> + + <a href="#"><span class="none"></span>Synapse Template Libraries</a> + </li> + + <li> + + <a href="../userguide/upgrading.html" title="Upgrading"> + <span class="none"></span> + Upgrading</a> + </li> + + <li> + + <a href="../userguide/deployment.html" title="Deployment"> + <span class="none"></span> + Deployment</a> + </li> + + <li> + + <a href="../apidocs/" title="Javadocs"> + <span class="none"></span> + Javadocs</a> + </li> + + <li> + + <a href="../userguide/faq.html" title="FAQ"> + <span class="none"></span> + FAQ</a> + </li> + <li class="nav-header">Developer Resources</li> + + <li> + + <a href="../dev/developer-guide.html" title="Developer Guide"> + <span class="none"></span> + Developer Guide</a> + </li> + + <li> + + <a href="../dev/best-practices.html" title="Development Best Practices"> + <span class="none"></span> + Development Best Practices</a> + </li> + + <li> + + <a href="../dev/release-process.html" title="Release Process"> + <span class="none"></span> + Release Process</a> + </li> + <li class="nav-header">Project Details</li> + + <li> + + <a href="../project-info.html" title="Overview"> + <span class="none"></span> + Overview</a> + </li> + + <li> + + <a href="../mail-lists.html" title="Mailing Lists"> + <span class="none"></span> + Mailing Lists</a> + </li> + + <li> + + <a href="../source-repository.html" title="Source Repository"> + <span class="none"></span> + Source Repository</a> + </li> + + <li> + + <a href="../issue-tracking.html" title="Issue Tracking"> + <span class="none"></span> + Issue Tracking</a> + </li> + + <li> + + <a href="../dependency-management.html" title="Dependencies"> + <span class="none"></span> + Dependencies</a> + </li> + + <li> + + <a href="../team-list.html" title="Project Team"> + <span class="none"></span> + Project Team</a> + </li> + </ul> + + + + <hr /> + + <div id="poweredBy"> + <div class="clear"></div> + <div class="clear"></div> + <div class="clear"></div> + <div class="clear"></div> + <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"> + <img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /> + </a> + </div> + </div> + </div> + + + <div id="bodyColumn" class="span10" > + + <!-- ~ Licensed to the Apache Software Foundation (ASF) under one + ~ or more contributor license agreements. See the NOTICE file + ~ distributed with this work for additional information + ~ regarding copyright ownership. The ASF licenses this file + ~ to you under the Apache License, Version 2.0 (the + ~ "License"); you may not use this file except in compliance + ~ with the License. You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, + ~ software distributed under the License is distributed on an + ~ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + ~ KIND, either express or implied. See the License for the + ~ specific language governing permissions and limitations + ~ under the License. --> + + <div class="section"> +<h2>Synapse Template Libraries<a name="Synapse_Template_Libraries"></a></h2> + +<p> + Synapse template libraries are a mechanism to group synapse templates and automatically + expose it as a self contained set of function modules. It can be considered as a container + consisting a set of templates grouped in a particular order. Currently a synapse template + library is shipped as a ".zip" file and should be deployed inside + {$SYNAPSE_HOME}/repository/conf/synapse-libs . + If a given template container is successfully deployed, all + templates within the library will be accessible to any Synapse user. + </p> + +<p>Following is a sample skeleton structure of a template library</p> + +<div class="xmlConf">|-- artifacts.xml +|-- com +| `-- synapse +| `-- sample +| `-- SynapseLibTestMediator.class +|-- lib +| `-- test-mediator-1.0.0.jar +|-- template_dir-1 +| |-- artifact.xml +| |-- templ1_ns1.xml +| `-- templ2_ns1.xml +`-- template_dir-2 + |-- artifact.xml + |-- templ1_ns2.xml + `-- templ2_ns2.xml</div> + +<p>Following are these components at an overview.</p> + +<p> + </p> +<ul> + +<li>artifacts.xml + <br /> + This contains synapse library name , package name information and template groupings. + +<div class="xmlConf"><artifacts> + <artifact name="synapse.lib.name" package="synapse.lib.package.name"> + <dependency artifact="template.group.name"/>* + <description>sample synapse library</description>? + </artifact> +</artifacts></div></li> + +<li>artifact.xml + <br /> + This contains information about each individual template group. + <br /> + ie: - names of the templates in the group , corresponding configuration file ,etc. + +<div class="xmlConf"><artifact name="template.group.name" type="synapse/template"> + <subArtifacts> + <artifact name="template.name"> + <file>template_file.xml</file> + <description>a sample synapse library function</description>? + </artifact>* + </subArtifacts> +</artifact></div> + </li> + +<li>template_file.xml + <br /> + This contains the implementation of each individual template configuration + </li> + +<li>./lib + <br /> + This is the directory to add any classes for class loading or can contain the .class files from + the root + level. + </li> + </ul> + + +<p>Also utilizing a synapse library is a three step process.</p> + +<p> + </p> +<ul> + +<li>Create and deploy the library</li> + +<li>Importing the library into synapse + Users should deploy a import_lib_name.xml into + {$SYNAPSE_HOME}/repository/conf/synapse-config/imports + +<div class="xmlConf"><import xmlns="http://ws.apache.org/ns/synapse" name="SampleLibrary" package="synapse.lib"/></div> + </li> + +<li>Execute functions of library using a template invoker. Target template is a + combination of the package of synapse library and the target template name + target == {synapse_lib_package}.{template name} + + +<div class="xmlConf"><call-template target="synapse.lib.pkg.name.template_name"> + <with-param name="..." value="..."/>* +</call-template></div> + </li> + </ul> + + </div> + +<div class="section"> +<h2>Synapse Enterprise Integration Patterns library<a name="Synapse_Enterprise_Integration_Patterns_library"></a></h2> + +<p>Synapse Enterprise Integration Patterns library is a container consisting a set of + templates grouped in a particular order by implementing commonly used + <a class="externalLink" href="http://www.eaipatterns.com">Enterprise + Integration Patterns + </a> + from the set of patterns introduced by Gregor Hohpe and Bobby Woolf. + Users can design their solutions using these well-known patterns and then simply configure + and use these same patterns in Apache Synapse by calling up the function as required. + So this will greatly reduce the effort required when building integrations. + </p> + +<p>Following lists all the built-in patterns of Synapse EIP library currently supports and + describes their usage, functionality and configuration syntax. + This excludes all generic EIP patterns supported by synapse out of the box. + </p> + +<p> + </p> +<ul> + +<li> + <a href="#CalloutBlock">Callout Block</a> + </li> + +<li> + <a href="#Splitter">Splitter</a> + </li> + +<li> + <a href="#Aggregator">Aggregator</a> + </li> + +<li> + <a href="#SplitterAggregator">Splitter-Aggregator</a> + </li> + +<li> + <a href="#ScatterGather">Scatter-Gather</a> + </li> + +<li> + <a href="#WireTap">Wire Tap</a> + </li> + +<li> + <a href="#ContentBasedRouter">Content-Based Router</a> + </li> + +<li> + <a href="#DynamicRouter">Dynamic Router</a> + </li> + +<li> + <a href="#RecipientList">Recipient List</a> + </li> + </ul> + + <a name="CalloutBlock"></a> +<div class="section" id="CalloutBlock"> +<h3>Callout Block<a name="Callout_Block"></a></h3> + +<p> + This pattern is pretty much identical to the + <a class="externalLink" href="http://www.eaipatterns.com/RoutingTable.html">Routing slip pattern</a> + and this blocks + external service invocation during mediation. And useful in scenarios such as service chaining. + As default values are assigned to source and target xpaths, + one can simply utilize this pattern by just defining serviceURL. + <br /> + <br /> + + Call template target - + <b>synapse.lang.eip.callout_block</b> + <br /> + Parameters + <br /> + <b>service_URL</b> + - URL of the service + <br /> + <b>[action]</b> + - SOAP action(Optional) + <br /> + <b>[source_xpath | source_key]</b> + - Payload of the message( either Xpath or key and Optional) + <br /> + <b>[target_xpath | target_key]</b> + - A node to attach the response element ( either Xpath or key and optional) + <br /> + <br /> + Related Sample - <a href="samples/sample850.html">Sample 850</a> + </p> + </div> + <a name="Splitter"></a> +<div class="section" id="Splitter"> +<h3>Splitter<a name="Splitter"></a></h3> + +<p> + The + <a class="externalLink" href="http://www.eaipatterns.com/Sequencer.html">Splitter pattern</a> + breaks out the composite message into a series of individual messages by + finding matching elements for the XPath expression specified and then redirected to the given + endpoint. + <br /> + <br /> + + Call template target - + <b>synapse.lang.eip.splitter</b> + <br /> + Parameters + <br /> + <b>iterate_exp</b> + - Xpath expression from which element you want to split the message. + <br /> + <b>[attach_path]</b> + - Xpath expression to specify which elements needs to be attached to form new messages.( Optional) + <br /> + <b>endpoint_url</b> + - Endpoint which newly created messages are redirected to. + <br /> + <b>[attach_path_enabled]</b> + - Boolean value to enable attach path. Optional and by default this is false. + <br /> + <br /> + Related Sample - <a href="samples/sample851.html">Sample 851</a> + </p> + </div> + + <a name="Aggregator"></a> +<div class="section" id="Aggregator"> +<h3>Aggregator<a name="Aggregator"></a></h3> + +<p> + The + <a class="externalLink" href="http://www.eaipatterns.com/Aggregator.html">Aggregator pattern</a> + builds a single message distilled from the individual messages. + And messages will be merged by using the XPath expression specified for aggregator_exp. + <br /> + <br /> + + Call template target - + <b>synapse.lang.eip.aggregator</b> + <br /> + Parameters + <br /> + <b>aggregator_exp</b> + - An XPath expression specifying based on which elements to aggregate. + <br /> + <b>[sequence_ref]</b> + - target sequence which message should be mediated after aggregation. (Optional and if this is not + specified aggregator will send the aggregated message to the client). + <br /> + <b>[oncomplete_seq_enabled]</b> + - Boolean value to enable target sequence. (Optional and by default this is false) + <br /> + <br /> + Related Sample - <a href="samples/sample851.html">Sample 851</a> + </p> + </div> + + <a name="SplitterAggregator"></a> +<div class="section" id="SplitterAggregator"> +<h3>Splitter-Aggregator<a name="Splitter-Aggregator"></a></h3> + +<p> + This pattern provides the combined functionality of Splitter and Aggregator patterns. + Which is when you specified following parameters this pattern will split the message and + does a synchronized call for the given endpoint and aggregates replies then send back to + client or mediates to the defined target sequence. + <br /> + <br /> + + Call template target - + <b>synapse.lang.eip.splitter_aggregator</b> + <br /> + Parameters + <br /> + <b>iterate_exp</b> + - An Xpath expression from which element you want to split the message. + <br /> + <b>[attach_path]</b> + - An Xpath expression to specify which elements needs to be attached to form new messages.( + Optional) + <br /> + <b>endpoint_url</b> + - Endpoint which newly created messages are redirected to. + <br /> + <b>[attach_path_enabled]</b> + - Boolean value to enable attach path. Optional and by default this is false. + <br /> + <b>aggregator_exp</b> + - An XPath expression specifying based on which elements to aggregate. + <br /> + <b>[sequence_ref]</b> + - Target sequence which message should be mediated after aggregation. (Optional and if this is not + specified aggregator will send the aggregated message to the client). + <br /> + <b>[oncomplete_seq_enabled]</b> + - Boolean value to enable target sequence. (Optional and by default this is false) + <br /> + <br /> + Related Sample - <a href="samples/sample852.html">Sample 852</a> + </p> + </div> + + <a name="ScatterGather"></a> +<div class="section" id="ScatterGather"> +<h3>Scatter-Gather<a name="Scatter-Gather"></a></h3> + +<p> + The + <a class="externalLink" href="http://www.eaipatterns.com/BroadcastAggregate.html">Scatter-Gather pattern</a> + broadcasts a message to multiple recipients and re-aggregates the + responses back into a single message and send back to client or mediates to the defined + target sequence. + <br /> + <br /> + + Call template target - + <b>synapse.lang.eip.scatter_gather</b> + <br /> + Parameters + <br /> + <b>aggregator_exp</b> + - An XPath expression specifying based on which elements to aggregate. + <br /> + <b>[sequence_ref]</b> + - Target sequence which message should be mediated after aggregation. (Optional and if this is not + specified aggregator will send the aggregated message to the client). + <br /> + <b>[oncomplete_seq_enabled]</b> + - Boolean value to enable target sequence. (Optional and by default this is false) + <br /> + <b>recipient_list</b> + - Set of recipient endpoints , which should be specified as comma separated values + <br /> + <br /> + Related Sample - <a href="samples/sample853.html">Sample 853</a> + </p> + </div> + + <a name="WireTap"></a> +<div class="section" id="WireTap"> +<h3>Wire Tap<a name="Wire_Tap"></a></h3> + +<p> + <a class="externalLink" href="http://www.eaipatterns.com/WireTap.html">Wire Tap pattern</a> + enables route messages to a secondary channel while they are being forwarded to the main channel. + <br /> + <br /> + + Call template target - + <b>synapse.lang.eip.wire_tap</b> + <br /> + Parameters + <br /> + <b>destination_uri</b> + - Endpoint of main channel + <br /> + <b>wiretap_uri</b> + - Endpoint of secondary channel + <br /> + <br /> + Related Sample - <a href="samples/sample854.html">Sample 854</a> + </p> + </div> + + <a name="ContentBasedRouter"></a> +<div class="section" id="ContentBasedRouter"> +<h3>Content-Based Router<a name="Content-Based_Router"></a></h3> + +<p> + The + <a class="externalLink" href="http://www.eaipatterns.com/ContentBasedRouter.html">Content Based Router pattern</a> + route messages to the appropriate sequence, according to the message contents. + Routing decision is taken by matching given Xpath expression and Regular Expression. + User can define multiple matching elements as regular expressions and a target sequence where + if any of matching element evaluates to true then it mediates using the target sequence. + If none of the case statements are matching and default case is specified, it will be executed. + <br /> + <br /> + + Call template target - + <b>synapse.lang.eip.content_base_router</b> + <br /> + Parameters + <br /> + <b>routing_exp</b> + - Here you can specify the source xpath to be evaluated + <br /> + <b>match_content</b> + - This is a String which contains the matching conditions. Following is the syntax of it + <b>"IBM:cnd1_seq,MSFT:cnd2_seq;cnd3_seq"</b> + <br /> + User can define multiple matching conditions using "," splitter. regular expressions and + target sequence should be separated by inserting":". And finally default sequence needs to be + defined + after inserting ";". If there is no any target sequence + defined for a particular regular expression , default it will be mediated to the main sequence. + <br /> + <br /> + Related Sample - <a href="samples/sample855.html">Sample 855</a> + </p> + </div> + + <a name="DynamicRouter"></a> +<div class="section" id="DynamicRouter"> +<h3>Dynamic Router<a name="Dynamic_Router"></a></h3> + +<p> + The + <a class="externalLink" href="http://www.eaipatterns.com/DynamicRouter.html">Dynamic Router pattern</a> + route a message consecutively through a series of condition steps, + which is parsed by the “conditions” parameter. The list of sequences through which the message + should pass is decided dynamically at run time. + It checks whether the route condition evaluates to true and mediates using the given sequence and + user can define + routing decision based on the message contents such as HTTP url,HTTP headers or combination of both. + <br /> + <br /> + + Call template target - + <b>synapse.lang.eip.dynamic_router</b> + <br /> + Parameters + <br /> + <b>conditions</b> + - This is a String which contains the routing rules. Following is the syntax of it. + <br /> + <b> + "header=foo:bar.*{AND}url=/services/;seq=seq1,header=header1:bar.*{OR}header=header1:foo.*;seq=seq2,header=header2:foo.*;seq=seq3" + </b> + <br /> + User can define multiple routing rules by using "," splitter. Routing rule contains following + format, + <br /> + To match HTTP headers , use + <b>header=regEx:seqRef</b> + <br /> + header source and regular expression should be separated by inserting ":" + <br /> + To match HTTP url, use + <b>url=/url</b> + <br /> + Then target sequence needs to be defined after inserting ";" + <br /> + + Also you can use<b>"{AND}"</b>as to specify logical AND , + <b>"{OR}"</b> + as to specify logical OR to match + multiple headers and url in your expression. + <br /> + <br /> + Related Sample - <a href="samples/sample856.html">Sample 856</a> + </p> + </div> + + <a name="RecipientList"></a> +<div class="section" id="RecipientList"> +<h3>Recipient List<a name="Recipient_List"></a></h3> + +<p> + The + <a class="externalLink" href="http://www.eaipatterns.com/RecipientList.html">Recipient List pattern</a> + forward the message to all channels associated with the defined set of recipients. + <br /> + <br /> + + Call template target - + <b>synapse.lang.eip.recipient_list</b> + <br /> + Parameters + <br /> + <b>recipient_list</b> + - set of recipient endpoints , which should be specified as comma separated values + <br /> + <br /> + Related Sample - <a href="samples/sample857.html">Sample 857</a> + </p> + </div> + </div> + + + </div> + </div> + </div> + + <hr/> + + <footer> + <div class="container-fluid"> + <div class="row-fluid"> + <p >Copyright © 2005–2017 + <a href="http://www.apache.org/">Apache Software Foundation</a>. + All rights reserved. + + </p> + </div> + + + </div> + </footer> + </body> +</html>
