You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by hi...@apache.org on 2011/12/22 12:22:56 UTC
svn commit: r1222183 - in /synapse/trunk/scratch/hiranya/website/src/site:
resources/css/site.css site.xml xdoc/userguide/config.xml
xdoc/userguide/deployment.xml xdoc/userguide/history.xml
xdoc/userguide/mediators.xml
Author: hiranya
Date: Thu Dec 22 11:22:55 2011
New Revision: 1222183
URL: http://svn.apache.org/viewvc?rev=1222183&view=rev
Log:
More documentation updates
Added:
synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/history.xml
Modified:
synapse/trunk/scratch/hiranya/website/src/site/resources/css/site.css
synapse/trunk/scratch/hiranya/website/src/site/site.xml
synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/config.xml
synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/deployment.xml
synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/mediators.xml
Modified: synapse/trunk/scratch/hiranya/website/src/site/resources/css/site.css
URL: http://svn.apache.org/viewvc/synapse/trunk/scratch/hiranya/website/src/site/resources/css/site.css?rev=1222183&r1=1222182&r2=1222183&view=diff
==============================================================================
--- synapse/trunk/scratch/hiranya/website/src/site/resources/css/site.css (original)
+++ synapse/trunk/scratch/hiranya/website/src/site/resources/css/site.css Thu Dec 22 11:22:55 2011
@@ -11,9 +11,9 @@ body{
h2{
background-color:transparent;
border:none;
- font-size:35px;
+ font-size:30px;
color:#171515;
- text-shadow:-1px -1px 2px #ADA9A9;
+ /*text-shadow:-1px -1px 2px #ADA9A9;*/
margin:3px 0px;
}
h3{
@@ -21,18 +21,26 @@ h3{
border:none;
font-size:25px;
color:#171515;
- text-shadow:-1px -1px 2px #ADA9A9;
+ /*text-shadow:-1px -1px 2px #ADA9A9;*/
margin:3px 0px;
}
div#contentBox h4{
margin:3px 0px;
- font-size:20px;
+ font-size:15px;
+ color: #666666;
+ font-weight:bold;
+ border:none;
+ padding:0;
+ background-color:transparent;
}
div#contentBox h5{
margin:3px 0px;
font-size:15px;
}
-p{
+div#contentBox{
+ padding-top:10px;
+}
+p,li{
line-height:25px;
}
#bannerLeft{
@@ -52,10 +60,13 @@ p{
font-size:11px;
height:80px;
padding:10px;
- text-align:left;
+ text-align:center;
margin:0px 0px !important;
border-top:solid 5px #000;
}
+.xright{
+ float:none;
+}
#breadcrumbs{
background-image: -webkit-gradient(linear, left top, left bottom, from(#c2c2c2), to(#d7d7d7)); /* mozilla - FF3.6+ */
background-image: -moz-linear-gradient(top, #c2c2c2 0%, #d7d7d7 100%); /* IE 5.5 - 7 */
@@ -77,7 +88,7 @@ p{
margin:0px 20px;
padding:5px;
- text-shadow: -1px -1px 2px #918D8D;
+ /*text-shadow: -1px -1px 2px #918D8D;*/
}
#leftColumn{
margin:20px 20px;
@@ -117,9 +128,6 @@ p{
#bodyColumn ul li{
margin-bottom:10px;
}
-div#contentBox{
- padding-top:10px;
-}
table.bodyTable {
border-left: solid 1px #468aa6;
border-top: solid 1px #468aa6;
Modified: synapse/trunk/scratch/hiranya/website/src/site/site.xml
URL: http://svn.apache.org/viewvc/synapse/trunk/scratch/hiranya/website/src/site/site.xml?rev=1222183&r1=1222182&r2=1222183&view=diff
==============================================================================
--- synapse/trunk/scratch/hiranya/website/src/site/site.xml (original)
+++ synapse/trunk/scratch/hiranya/website/src/site/site.xml Thu Dec 22 11:22:55 2011
@@ -28,7 +28,7 @@
<menu name="Main Menu">
<item name="Home" href="index.html"/>
<item name="Download"/>
- <item name="History"/>
+ <item name="History" href="userguide/history.html"/>
<item name="News"/>
<item name="License" href="http://www.apache.org/licenses/LICENSE-2.0"/>
</menu>
Modified: synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/config.xml
URL: http://svn.apache.org/viewvc/synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/config.xml?rev=1222183&r1=1222182&r2=1222183&view=diff
==============================================================================
--- synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/config.xml (original)
+++ synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/config.xml Thu Dec 22 11:22:55 2011
@@ -42,6 +42,7 @@
<li><a href="#Endpoints">Endpoints</a></li>
<li><a href="#ProxyServices">Proxy Services</a></li>
<li><a href="#ScheduledTasks">Scheduled Tasks</a></li>
+ <li><a href="#Templates">Templates</a></li>
<li><a href="#Registry">Remote Registry and Local Registry</a></li>
<li><a href="#API">APIs</a></li>
<li><a href="#PriorityExecutors">Priority Executors</a></li>
@@ -66,6 +67,7 @@
</li>
<li><a href="#ProxyServiceConfig">Proxy Service Configuration</a></li>
<li><a href="#TaskConfig">Scheduled Task Configuration</a></li>
+ <li><a href="#TemplateConfig">Template Configuration</a></li>
<li><a href="#EventSourceConfig">Event Source Configuration</a></li>
<li><a href="#APIConfig">API Configuration</a></li>
<li><a href="#ExecutorConfig">Priority Executor Configuration</a></li>
@@ -318,6 +320,36 @@
the Unix Cron syntax.
</p>
</subsection>
+ <subsection name="Templates" id="Templates">
+ <p>
+ A Template is an abstract concept in synapse. One way to view a template, is as
+ a prototype or a function. Templates try to minimize redundancy in synapse
+ artifacts (ie sequences and endpoints) by creating prototypes that users can
+ re-use and utilize as and when needed. This is very much analogous to classes
+ and instances of classes whereas, a template is a class that can be used to
+ wield instance objects such as sequences and endpoints.
+ </p>
+ <p>
+ Templates is an ideal way to improve re-usability and readability of
+ ESB configurations (XML). Addition to that users can utilize predefined templates
+ that reflect commonly used EIP patterns for rapid development of ESB
+ message/mediation flows.There are two flavours of templates which are Endpoint
+ and Sequence Templates.
+ </p>
+ <p>
+ An endpoint template is an abstract definition of a synapse endpoint. Users have
+ to invoke this kind of a template using a special template endpoint. Endpoint
+ templates can specify various commons parameters of an endpoint that can be reused
+ across many endpoint definitions (eg: address uri, timeouts, error codes etc).
+ </p>
+ <p>
+ A sequence template defines a functional form of an ESB sequence. Sequence
+ templates have the ability to parametrize a sequence flow. Generally
+ parametrization is in the form of static values as well as xpath expressions.
+ Users can invoke a template of this kind with a mediator named 'call-template'
+ by passing in the required parameter values.
+ </p>
+ </subsection>
<subsection name="Remote Registry and Local Registry (Local Entries)" id="Registry">
<p>
Synapse configuration can refer to an external registry/repository for resources
@@ -459,14 +491,16 @@
high level.
</p>
<div class="xmlConf"><definitions>
- <<a href="#registry">registry</a> provider="string">...</registry>?
- <<a href="#localEntry">localEntry</a> key="string">...</localEntry>?
- <<a href="#sequence">sequence</a> name="string">...</sequence>?
- <<a href="#endpoint">endpoint</a> name="string">...</endpoint>?
- <<a href="#proxy">proxy</a> name="string" ...>...</proxy>?
- <<a href="#task">task</a> name="string" ...>...</task>?
- <<a href="#eventsource">eventSource</a> name="string" ...>...</eventSource>?
- <<a href="#executor">executor</a> name="string" ...>...</executor>?
+ <<a href="#RegistryConfig">registry</a> provider="string">...</registry>?
+ <<a href="#LocalEntryConfig">localEntry</a> key="string">...</localEntry>?
+ <<a href="#SequenceConfig">sequence</a> name="string">...</sequence>?
+ <<a href="#EndpointConfig">endpoint</a> name="string">...</endpoint>?
+ <<a href="#ProxyServiceConfig">proxy</a> name="string" ...>...</proxy>?
+ <<a href="#TaskConfig">task</a> name="string" ...>...</task>?
+ <<a href="#EventSourceConfig">eventSource</a> name="string" ...>...</eventSource>?
+ <<a href="#ExecutorConfig">executor</a> name="string" ...>...</executor>?
+ <<a href="#APIConfig">api</a> name="string" ...>...</api>?
+ <<a href="#TemplateConfig">template</a> name="string" ...>...</template>?
<<a href="#store">messageStore</a> name="string" ...>...</messageStore>?
</definitions></div>
<p>
@@ -1246,6 +1280,138 @@
or not.
</p>
</section>
+ <section name="Template Configuration" id="TemplateConfig">
+ <p>
+ As explained earlier templates in synapse are defined in two flavors; sequence and
+ endpoint templates. The configuration, syntax forms and semantics of these are explained
+ in the following section.
+ </p>
+ <p>
+ A sequence template consist of two parts. As in any kind of a function, it has a
+ parameter set definition (argument list) and a function body definition. An important
+ difference is sequence template parameters are not typed (typically these are
+ string parameters, but can be of any type which is determined at runtime). Also
+ function body is a typical esb flow or a sequence.
+ </p>
+ <p>
+ The syntax outline of a sequence template definition is given below.
+ </p>
+ <div class="xmlConf"><template name="string">
+ <!-- parameters this sequence template will be supporting -->
+ (
+ <parameter name="string"/>
+ ) *
+ <!--this is the in-line sequence of the template -->
+ <sequence>
+ mediator+
+ </sequence>
+</template></div>
+ <p>
+ A sequence template is a top level element defined with the 'name' attribute in Synapse
+ configuration. Both endpoint and sequence templates start with a 'template' element.
+ Parameters (defined by <parameter> elements) are the inputs supported by a
+ sequence template. These sequence template parameters can be referred by any xpath
+ expression defined within the in-lined sequence. For example parameter named 'foo' can
+ be referred by a property mediator (defined inside the in-line sequence of the template)
+ in following ways.
+ </p>
+ <div class="xmlConf"><property name="PropertyValue" expression="$func:foo"/>
+<property name="PropertyValue" expression="get-property('foo', 'func')"/></div>
+ <p>
+ Note the scope variable used in the XPath expression. We use 'function' scope or '$func'
+ to refer to template parameters.
+ </p>
+ <p>
+ Invoking a sequence template can be done with a mediator named 'call-template' by
+ passing parameter values. The syntax outline of a call template mediator definition
+ is given below.
+ </p>
+ <div class="xmlConf"><call-template target="string">
+ <!-- parameter values will be passed on to a sequence template -->
+ (
+ <!--passing plain static values -->
+ <with-param name="string" value="string" /> |
+ <!--passing xpath expressions -->
+ <with-param name="string" value="{string}" /> |
+ <!--passing dynamic xpath expressions where values will be compiled dynamically-->
+ <with-param name="string" value="{{string}}" /> |
+ ) *
+</call-template></div>
+
+ <p>
+ The 'call-template' mediator should define a target template it should be
+ invoking, with 'target' attribute.
+ </p>
+ <p>
+ The 'with-param' element is used to parse parameter values to a target
+ sequence template. Note that parameter names has to be exact matches to the names
+ specified in the target template. Parameter elements can contain three types of
+ parameterized values. xpath values are passed in within curly braces ({}) for value
+ attribute.
+ </p>
+ <p>
+ Endpoint templates are similar to the sequence templates in definition. Unlike
+ sequence templates, endpoint templates are always parameterized using '$' prefixed
+ values (NOT xpath expressions). Users can parameterize endpoint configuration elements
+ with these '$' prefixed values. An example is shown below.
+ </p>
+ <div class="xmlConf"><template name="ep_template">
+ <parameter name="codes"/>
+ <parameter name="factor"/>
+ <parameter name="retries"/>
+ <endpoint name="$name">
+ <default>
+ <suspendOnFailure>
+ <errorCodes>$codes</errorCodes>
+ <progressionFactor>$factor</progressionFactor>
+ </suspendOnFailure>
+ <markForSuspension>
+ <retriesBeforeSuspension>$retries</retriesBeforeSuspension>
+ <retryDelay>0</retryDelay>
+ </markForSuspension>
+ </default>
+ </endpoint>
+</template></div>
+ <p>
+ The syntax outline of a endpoint template definition is given below.
+ </p>
+
+ <div class="xmlConf"><template name="string">
+ <!-- parameters this endpoint template will be supporting -->
+ (
+ <parameter name="string"/>
+ ) *
+ <!--this is the in-line endpoint of the template -->
+ <endpoint [name="string"] >
+ address-endpoint | default-endpoint | wsdl-endpoint |
+ load-balanced-endpoint | fail-over-endpoint | recipient-list-endpoint
+ </endpoint>
+</template></div>
+
+ <p>
+ As described earlier template endpoint is the artifact that makes a template of an
+ endpoint type into a concrete endpoint. In other words an endpoint template would
+ be useless without a template endpoint referring to it. This is semantically similar
+ to the relationship between a sequence template and a 'call-template' mediator.
+ </p>
+ <p>
+ The syntax outline of a template endpoint definition is as following..
+ </p>
+ <div class="xmlConf"><endpoint [name="string"] [key="string"] template="string">
+ <!-- parameter values will be passed on to a endpoint template -->
+ (
+ <parameter name="string" value="string" />
+ ) *
+</endpoint></div>
+ <p>
+ Template endpoint defines parameter values that can parameterize an endpoint.
+ The 'template' attribute points to a target endpoint template.
+ </p>
+ <p>
+ As in the case of sequence template, note that parameter names has to be exact match
+ to the names specified in target endpoint template.
+ </p>
+ </section>
<section name="Event Source Configuration" id="EventSourceConfig">
<p>
Event sources enable the user to run Synapse in the eventing mode of operation.
Modified: synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/deployment.xml
URL: http://svn.apache.org/viewvc/synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/deployment.xml?rev=1222183&r1=1222182&r2=1222183&view=diff
==============================================================================
--- synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/deployment.xml (original)
+++ synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/deployment.xml Thu Dec 22 11:22:55 2011
@@ -20,7 +20,7 @@
<document>
<body>
- <section name="Content">
+ <section name="Contents">
<ul>
<li>
<a href="#Platform_requirements">Platform requirements</a>
Added: synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/history.xml
URL: http://svn.apache.org/viewvc/synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/history.xml?rev=1222183&view=auto
==============================================================================
--- synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/history.xml (added)
+++ synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/history.xml Thu Dec 22 11:22:55 2011
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!--
+ ~ 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.
+ -->
+
+<document>
+ <body>
+ <section name="History of Synapse">
+ <p>
+ Synapse started out as an Apache Incubator project co-proposed by a number of
+ companies. The real key starting point was a face-to-face meeting held in the
+ Bay Area in September 2005 hosted at Infravio's offices. In that meeting the
+ overall approach for Synapse was hammered out, and then we set out to coding.
+ </p>
+ <p>
+ The first real usable build followed early in January 2006. Known as M1, this was a
+ real runnable release, but only providing very simple functionality. Other releases
+ throughout 2006 lead to the 0.90 release in December 2006, and in December 2006, the
+ Board voted to approve Synapse as a graduate from the Incubator and a member of the
+ Web Services project. The namespace URL (http://ws.apache.org/ns/synapse) used in
+ the Synapse configuration language is a remnant from our Apache Web Services heritage.
+ </p>
+ <p>
+ A year later, in December 2007, Synapse became an Apache top level project (TLP),
+ and since then has released 3 versions.
+ </p>
+ <p>
+ Here are some more interesting resources that show the growth and development
+ of Synapse from its humble beginnings.
+ </p>
+ <ul>
+ <li><a href="http://wiki.apache.org/incubator/SynapseProposal">Project proposal</a></li>
+ <li><a href="http://markmail.org/message/ac27hfeyvj4bbgde">What's available in Synapse M1?</a></li>
+ <li><a href="http://markmail.org/message/ueoox6fgpu5zwsrn">1.1 release announcement</a></li>
+ <li><a href="http://markmail.org/message/7wuu2jfsk2qfwhdp">1.1.1 release announcement</a></li>
+ <li><a href="http://markmail.org/message/od5si63jdjhj3mhc">1.2 release announcement</a></li>
+ <li><a href="http://apache-synapse.blogspot.com/">Old Apache Synapse blog</a></li>
+ <li><a href="http://www.slideshare.net/pizak/fast-soa-with-apache-synapse">Synapse at ApacheCon EU 2008</a></li>
+ <li><a href="http://www.slideshare.net/guest60ed0b/aceu2009-synapse-scalability-availability">Synapse at ApacheCon EU 2009</a></li>
+ <li><a href="http://www.slideshare.net/hiranya911/introduction-to-apache-synapse">Synapse at Apache Asia Roadshow 2009</a></li>
+ <li><a href="http://en.wikipedia.org/wiki/Apache_Synapse">Synapse on Wikipedia</a></li>
+ </ul>
+ </section>
+ </body>
+</document>
\ No newline at end of file
Modified: synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/mediators.xml
URL: http://svn.apache.org/viewvc/synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/mediators.xml?rev=1222183&r1=1222182&r2=1222183&view=diff
==============================================================================
--- synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/mediators.xml (original)
+++ synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/mediators.xml Thu Dec 22 11:22:55 2011
@@ -118,6 +118,131 @@
This behavior can also be configured using the 'category' attribute.
</p>
</subsection>
+ <subsection name="Property Mediator" id="Property">
+ <p>
+ Every message mediated through Synapse can have a set of associated properties.
+ Synapse engine and the underlying transports set a number of properties on
+ each message processed which can be manipulated by the user to modify the
+ runtime behavior of the message flows. In addition, user can set his/her own
+ properties on the message which is very helpful when it comes to managing
+ message flow state and storing scenario specific variables. For an example in
+ some situations a user might want to access a particular value in the request
+ payload while processing a response. This can be easily achieved by setting the
+ required value to a property in the request (in) sequence and then later accessing
+ that property in the response (out) sequence.
+ </p>
+ <p>
+ Property mediator is used to manipulate the properties of a message. This
+ mediator can be used to set and remove property values. When it comes to setting
+ property values, the input could be a constant or a variable value generated
+ by an XPath expression. The syntax for configuring the property mediator is as
+ follows.
+ </p>
+ <div class="xmlConf"><property name="string" [action=set|remove] [type="string"] (value="literal" | expression="xpath") [scope=default|transport|axis2|axis2-client] [pattern="regex" [group="integer"]]>
+ <xml-element/>?
+</property></div>
+ <p>
+ The 'name' attribute specifies the name of the property which needs to be either
+ set or removed while the 'action' attribute specifies the exact action that needs
+ to be carried out by the mediator. If not specified action will default to 'set'.
+ </p>
+ <p>
+ When setting a property value, either the 'value' or the 'expression' attribute
+ must be specified. The 'value' attribute can be used to set a constant as
+ the property value whereas the 'expression' attribute can be used to specify an
+ XPath expression. If an XPath expression is specified, Synapse will evaluate that
+ on the message to determine the value that needs to be assigned to the property.
+ </p>
+ <p>
+ Synapse properties are scoped. Therefore when using this mediator the user should
+ specify the scope at which the property will be set or removed from. If not
+ specified, property mediator will work at the 'default' scope. Properties set in
+ this scope last as long as the transaction (request-response) exists. Properties
+ set on scope 'axis2' has a shorter life span and it's mainly used for passing
+ parameters to the underlying Axis2 engine. Properties set in the 'transport'
+ scope will be treated as transport headers. For an example if it is required to
+ send an HTTP header named 'CustomHeader' with an outgoing request, one may use
+ the property mediator configuration.
+ </p>
+ <div class="xmlConf"><property name="CustomHeader" value="some value" scope="transport" type="type name"/></div>
+ <p>
+ This will force Synapse to send a transport header named 'CustomHeader' along
+ with the outgoing message. Property mediator also supports a scope named
+ 'axis2-client'. Properties set in this scope will be treated as Axis2 client
+ options.
+ </p>
+ <p>
+ When using properties to store user or scenario specific information it is
+ recommended to always use the 'default' scope. Other scopes should not be used
+ for custom development or mediation work since they have the potential to
+ alter the behavior of the underlying Axis2 engine and transports framework.
+ </p>
+ <p>
+ By default property mediator sets all property values as strings. It is possible
+ to set properties in other types by specifying the 'type' attribute. This attribute
+ can accept one of following values.
+ </p>
+ <ul>
+ <li>STRING</li>
+ <li>BOOLEAN</li>
+ <li>DOUBLE</li>
+ <li>FLOAT</li>
+ <li>INTEGER</li>
+ <li>LONG</li>
+ <li>SHORT</li>
+ <li>OM</li>
+ </ul>
+ <p>
+ The type names are case sensitive. Type 'OM' can be used to set XML property
+ values on the message context. This becomes useful when the expression associated
+ with the property mediator evaluates to an XML node during mediation. With the
+ type attribute set to 'OM' the resulting XML will be converted to an AXIOM
+ OMElement before assigning it to a property.
+ </p>
+ <p>
+ It is also possible to use the property mediator to set some static XML content
+ as a property value. To do this specify the static XML content as a child node
+ of the 'property' element instead of using the 'value' attribute.
+ </p>
+ </subsection>
+ <subsection name="Send Mediator" id="Send">
+ <p>
+ Send mediator is used to send requests to endpoints. The same can be used
+ to send response messages back to clients. The send mediator is configured using
+ the following XML syntax.
+ </p>
+ <div class="xmlConf"><send [receive="string"]>
+ (endpointref | endpoint)?
+</send></div>
+ <p>
+ Messages are sent to the endpoint specified as the child of the
+ 'send' element. An optional receiving sequence can be configured using the
+ 'receive' attribute. When specified, response messages from the endpoint will
+ be dispatched to the referred sequence. This makes it easier to implement
+ complex service chaining scenarios, where the response from one service needs
+ to be processed and directed to another service.
+ </p>
+ <p>
+ The send mediator can be configured without any child endpoints. For an example
+ following is a perfectly valid send mediator configuration.
+ </p>
+ <div class="xmlConf"><send/></div>
+ <p>
+ In this case the messages will be sent to an implicit endpoint. If the message
+ is a request from a client, Synapse will lookup the 'To' header of the request and
+ simply forward it to the service addressed by that header. If it is a response
+ from a back-end service, Synapse will simply send it back to the original
+ client who initiated the original message flow.
+ </p>
+ <p>
+ The service invocations done by the send mediator may or may not be
+ synchronous based on the underlying transport used. If the default non-blocking
+ HTTP transport is used, the send mediator will make an asynchronous invocation
+ and release the calling thread as soon as possible. Synapse will asynchronously
+ handle the response from the endpoint while the giving the illusion that Synapse
+ is making blocking service calls.
+ </p>
+ </subsection>
</section>
</body>
</document>
\ No newline at end of file