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">&lt;definitions&gt;
-   &lt;<a href="#registry">registry</a> provider="string"&gt;...&lt;/registry&gt;?
-   &lt;<a href="#localEntry">localEntry</a> key="string"&gt;...&lt;/localEntry&gt;?
-   &lt;<a href="#sequence">sequence</a> name="string"&gt;...&lt;/sequence&gt;?
-   &lt;<a href="#endpoint">endpoint</a> name="string"&gt;...&lt;/endpoint&gt;?
-   &lt;<a href="#proxy">proxy</a> name="string" ...&gt;...&lt;/proxy&gt;?
-   &lt;<a href="#task">task</a> name="string" ...&gt;...&lt;/task&gt;?
-   &lt;<a href="#eventsource">eventSource</a> name="string" ...&gt;...&lt;/eventSource&gt;?
-   &lt;<a href="#executor">executor</a> name="string" ...&gt;...&lt;/executor&gt;?
+   &lt;<a href="#RegistryConfig">registry</a> provider="string"&gt;...&lt;/registry&gt;?
+   &lt;<a href="#LocalEntryConfig">localEntry</a> key="string"&gt;...&lt;/localEntry&gt;?
+   &lt;<a href="#SequenceConfig">sequence</a> name="string"&gt;...&lt;/sequence&gt;?
+   &lt;<a href="#EndpointConfig">endpoint</a> name="string"&gt;...&lt;/endpoint&gt;?
+   &lt;<a href="#ProxyServiceConfig">proxy</a> name="string" ...&gt;...&lt;/proxy&gt;?
+   &lt;<a href="#TaskConfig">task</a> name="string" ...&gt;...&lt;/task&gt;?
+   &lt;<a href="#EventSourceConfig">eventSource</a> name="string" ...&gt;...&lt;/eventSource&gt;?
+   &lt;<a href="#ExecutorConfig">executor</a> name="string" ...&gt;...&lt;/executor&gt;?
+   &lt;<a href="#APIConfig">api</a> name="string" ...&gt;...&lt;/api&gt;?
+   &lt;<a href="#TemplateConfig">template</a> name="string" ...&gt;...&lt;/template&gt;?
    &lt;<a href="#store">messageStore</a> name="string" ...&gt;...&lt;/messageStore&gt;?
 &lt;/definitions&gt;</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">&lt;template name=&quot;string&quot;&gt;
+    &lt;!-- parameters this sequence template will be supporting --&gt;
+    (
+    &lt;parameter name=&quot;string&quot;/&gt;
+    ) *
+    &lt;!--this is the in-line sequence of the template     --&gt;
+    &lt;sequence&gt;
+        mediator+
+    &lt;/sequence&gt;
+&lt;/template&gt;</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 &lt;parameter&gt; 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">&lt;property name="PropertyValue" expression="$func:foo"/&gt;
+&lt;property name="PropertyValue" expression="get-property('foo', 'func')"/&gt;</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">&lt;call-template target=&quot;string&quot;&gt;
+    &lt;!-- parameter values will be passed on to a sequence template --&gt;
+    (
+    &lt;!--passing plain static values --&gt;
+    &lt;with-param name=&quot;string&quot; value=&quot;string&quot; /&gt; |
+    &lt;!--passing xpath expressions --&gt;
+    &lt;with-param name=&quot;string&quot; value=&quot;{string}&quot; /&gt; |
+    &lt;!--passing dynamic xpath expressions where values will be compiled dynamically--&gt;
+    &lt;with-param name=&quot;string&quot; value=&quot;{{string}}&quot; /&gt; |
+    ) *
+&lt;/call-template&gt;</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">&lt;template name=&quot;ep_template&quot;&gt;
+    &lt;parameter name=&quot;codes&quot;/&gt;
+    &lt;parameter name=&quot;factor&quot;/&gt;
+    &lt;parameter name=&quot;retries&quot;/&gt;
+    &lt;endpoint name=&quot;$name&quot;&gt;
+        &lt;default&gt;
+            &lt;suspendOnFailure&gt;
+                &lt;errorCodes&gt;$codes&lt;/errorCodes&gt;
+                &lt;progressionFactor&gt;$factor&lt;/progressionFactor&gt;
+            &lt;/suspendOnFailure&gt;
+            &lt;markForSuspension&gt;
+                &lt;retriesBeforeSuspension&gt;$retries&lt;/retriesBeforeSuspension&gt;
+                &lt;retryDelay&gt;0&lt;/retryDelay&gt;
+            &lt;/markForSuspension&gt;
+        &lt;/default&gt;
+     &lt;/endpoint&gt;
+&lt;/template&gt;</div>
+            <p>
+                The syntax outline of a endpoint template definition is given below.
+            </p>
+
+            <div class="xmlConf">&lt;template name=&quot;string&quot;&gt;
+    &lt;!-- parameters this endpoint template will be supporting --&gt;
+    (
+    &lt;parameter name=&quot;string&quot;/&gt;
+    ) *
+    &lt;!--this is the in-line endpoint of the template    --&gt;
+    &lt;endpoint [name=&quot;string&quot;] &gt;
+        address-endpoint | default-endpoint | wsdl-endpoint |
+        load-balanced-endpoint | fail-over-endpoint | recipient-list-endpoint
+    &lt;/endpoint&gt;
+&lt;/template&gt;</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">&lt;endpoint [name=&quot;string&quot;] [key=&quot;string&quot;] template=&quot;string&quot;&gt;
+    &lt;!-- parameter values will be passed on to a endpoint template --&gt;
+    (
+    &lt;parameter name=&quot;string&quot; value=&quot;string&quot; /&gt;
+    ) *
+&lt;/endpoint&gt;</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">&lt;property name="string" [action=set|remove] [type="string"] (value="literal" | expression="xpath") [scope=default|transport|axis2|axis2-client] [pattern="regex" [group="integer"]]&gt;
+    &lt;xml-element/&gt;?
+&lt;/property&gt;</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">&lt;property name="CustomHeader" value="some value" scope="transport" type="type name"/&gt;</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">&lt;send [receive="string"]&gt;
+    (endpointref | endpoint)?
+&lt;/send&gt;</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">&lt;send/&gt;</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