You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2006/12/22 05:24:27 UTC

svn commit: r489555 [2/4] - in /webservices/axis2/site/c: ./ docs/ docs/hello/client/ docs/hello/service/

Modified: webservices/axis2/site/c/docs/axis2c_manual.html
URL: http://svn.apache.org/viewvc/webservices/axis2/site/c/docs/axis2c_manual.html?view=diff&rev=489555&r1=489554&r2=489555
==============================================================================
--- webservices/axis2/site/c/docs/axis2c_manual.html (original)
+++ webservices/axis2/site/c/docs/axis2c_manual.html Thu Dec 21 20:24:26 2006
@@ -2,39 +2,43 @@
           @import url("../style/maven-base.css");
           
 			    @import url("../style/maven-classic.css");</style><link rel="stylesheet" href="../style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta></head><body class="composite"><div id="banner"><a href="http://www.apache.org/" id="organizationLogo"><img alt="Apache Software Foundation" src="http://www.apache.org/images/asf-logo.gif"></img></a><a href="http://ws.apache.org/axis2/c" id="projectLogo"><img alt="Apache Axis2 C" src="http://ws.apache.org/axis2/images/axis.jpg"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xleft">
-                	Last published: 11 November 2006
-                  | Doc for 0.94</div><div class="xright"></div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuAxis2_C"><h5>Axis2/C</h5><ul><li class="none"><a href="../index.html">Home</a></li><li class="expanded"><a href="../download.cgi">Download Axis2/C</a><ul><li class="none"><a href="../download.cgi">Releases</a></li><li class="none"><a href="http://svn.apache.org/viewcvs.cgi/webservices/axis2/trunk/c/" class="externalLink" title="External Link">View Source Code Online</a></li><li class="none"><a href="../svn.html">Checkout Source Code</a></li></ul></li><li class="none"><a href="../docs/index.html">Documentation</a></li><li class="expanded"><a href="../mail-lists.html">Get Involved</a><ul><li class="none"><a href="../mail-lists.html">Mailing Lists</a></li></ul></li><li class="expanded"><a href="../team-list.html">Project Information</a><ul><li class="none"><a href="../team-list.html">Project Team</a></li><li class="none"><
 a href="../issue-tracking.html">Issue Tracking</a></li></ul></li></ul></div><a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy"><img alt="Built by Maven" src="../images/logos/maven-button-1.png"></img></a></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><p style="margin-bottom: 0in">This document is intended to be a reference
+                	Last published: 22 December 2006
+                  | Doc for 0.96</div><div class="xright"></div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuAxis2_C"><h5>Axis2/C</h5><ul><li class="none"><a href="../index.html">Home</a></li><li class="expanded"><a href="../download.cgi">Download Axis2/C</a><ul><li class="none"><a href="../download.cgi">Releases</a></li><li class="none"><a href="http://svn.apache.org/viewcvs.cgi/webservices/axis2/trunk/c/" class="externalLink" title="External Link">View Source Code Online</a></li><li class="none"><a href="../svn.html">Checkout Source Code</a></li></ul></li><li class="expanded"><a href="../docs/index.html">Documentation</a><ul><li class="none"><a href="../docs/installationguide.html">Installation Guide</a></li><li class="none"><a href="../docs/developerguide.html">Developer Guide</a></li><li class="none"><a href="../docs/userguide.html">User Guide</a></li><li class="none"><a href="../docs/axis2c_manual.html">Axis2/C manual</a>
 </li></ul></li><li class="expanded"><a href="../mail-lists.html">Get Involved</a><ul><li class="none"><a href="../mail-lists.html">Mailing Lists</a></li></ul></li><li class="expanded"><a href="../team-list.html">Project Information</a><ul><li class="none"><a href="../team-list.html">Project Team</a></li><li class="none"><a href="../issue-tracking.html">Issue Tracking</a></li></ul></li></ul></div><a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy"><img alt="Built by Maven" src="../images/logos/maven-button-1.png"></img></a></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><p style="margin-bottom: 0in">This document is intended to be a reference
 manual on <a href="http://ws.apache.org/axis2/c" class="externalLink" title="External Link">Apache Axis2/C</a> and
-covers its features and how to use it. Please send your feedback to Apache
-Axis2/C developer mailing list (<a href="mailto:axis-c-dev@apache.org">axis-c-dev@apache.org</a>)</p><p><a name="toc"></a></p></div><div class="section"><a name="Axis2_C_Manual"></a><h2>Axis2/C Manual</h2><ol>
-<li><a href="#quick_start">Quick Start Guide</a></li>
-<li><a href="#repo_fold">Repository Folder</a></li>
-<li><a href="#svc_api">Service API</a></li>
-<li><a href="#cli_api">Client API</a></li>
-<li><a href="#rest">REST</a></li>
-<li><a href="#mtom">MTOM</a></li>
-<li><a href="#eng_mod">Engaging a Module</a></li>
-<li><a href="#ws_add">WS-Addressing</a></li>
-<li><a href="#wrt_mod">Writing a Module</a></li>
-<li><a href="#sim_ser">Simple Axis Server</a></li>
-<li><a href="#apa_mod">Apache2 Module</a></li>
-<li><a href="#appA">Appendix A  - axis2.xml</a></li>
-<li><a href="#appB">Appendix B  - services.xml</a></li>
-<li><a href="#appC">Appendix C  - module.xml</a></li>
-<li><a href="#appD">Appendix D  - service client options</a></li>
+covers its features and how to use it to provide and consume Web Services.
+Please send your feedback to Apache Axis2/C developer mailing list (<a href="mailto:axis-c-dev@apache.org">axis-c-dev@apache.org</a>)</p></div><div class="section"><a name="Axis2_C_Manual"></a><h2>Axis2/C Manual</h2><ol>
+  <li><a href="#quick_start">Quick Start Guide</a></li>
+  <li><a href="#repo_fold">Repository Folder</a></li>
+  <li><a href="#svc_api">Service API</a></li>
+  <li><a href="#cli_api">Client API</a></li>
+  <li><a href="#rest">REST</a></li>
+  <li><a href="#mtom">MTOM</a></li>
+  <li><a href="#eng_mod">Engaging a Module</a></li>
+  <li><a href="#ws_add">WS-Addressing</a></li>
+  <li><a href="#wrt_mod">Writing a Module</a></li>
+  <li><a href="#sim_ser">Simple Axis Server</a></li>
+  <li><a href="#apa_mod">Deploying in Apache2</a></li>
+  <li><a href="#ssl_client">Using SSL Client</a></li>
+  <li><a href="#appA">Appendix A  - axis2.xml</a></li>
+  <li><a href="#appB">Appendix B  - services.xml</a></li>
+  <li><a href="#appC">Appendix C  - module.xml</a></li>
+  <li><a href="#appD">Appendix D  - service client options</a></li>
 </ol><p><a name="quick_start"></a></p></div><div class="section"><a name="1__Quick_Start_Guide"></a><h2>1. Quick Start Guide</h2><p>This sections is aimed to help you to get a Web service up in quick time
-using Axis2/C and consume that service using an Axis2/C client.</p><p>First download the latest binary release form Apache Axis2/C <a href="http://ws.apache.org/axis2/c/download.cgi" class="externalLink" title="External Link">download page </a>. Once you
-download the correct binary that suits your platform, all that you require to
-get it running is to extract the package to a folder of your choice, set
-AXIS2C_HOME environment variable to point to this extracted folder. On Linux,
-you may have to set the LD_LIBRARY_PATH environment variable to include the
-lib folder (e.g. add $AXIS2C_HOME/lib). On Windows, you would have to add the
-lib folder to your PATH variable to include the Axis2/C dlls to your path.
-Now you should be able to cd to bin folder of this extracted folder and run
-the simple axis server in one command line and cd to bin/samples in another
-command shell and run any of the samples there (you may have to set the
-environment variables in this new shell as well). Please see the <a href="http://ws.apache.org/axis2/c/docs/installationguide.html" class="externalLink" title="External Link">installation
-guide </a> for more details.</p><p><br></br>
+using Axis2/C and consume that service using an Axis2/C client.</p><p>First download the latest binary release form Apache Axis2/C</p><p><a href="http://ws.apache.org/axis2/c/download.cgi" class="externalLink" title="External Link">download page</a>. Once
+you download the correct binary that suits your platform, all that you
+require to get it running is to extract the package to a folder of your
+choice, set AXIS2C_HOME environment variable to point to this extracted
+folder. On Linux, you may have to set the LD_LIBRARY_PATH environment
+variable to include the lib folder (e.g. add $AXIS2C_HOME/lib). On Windows,
+you would have to add the lib folder to your PATH variable to include the
+Axis2/C dlls to your path. Now you should be able to cd to bin folder of this
+extracted folder and run the simple axis server in one command shell and cd
+to bin/samples in another command shell and run any of the samples there (you
+may have to set the environment variables in this new shell as well). Please
+see the <a href="http://ws.apache.org/axis2/c/docs/installationguide.html" class="externalLink" title="External Link">installation
+guide</a> for more details.
+
+</p><p><br></br>
 <br></br>
 </p><p>Once you have Axis2/C up and running successfully, you can start writing
 your own services and clients. The following sections detail how to write
@@ -43,7 +47,7 @@
 have a single operation named "greet" in the service. This "greet" operation,
 when invoked by client, would expect the client to send a greeting in the
 request, and would in turn send a greeting in the response. Following are
-example XML payloads exchanged between client and service:</p><p>Request:</p>
+example XML payloads exchanged between the client and the service:</p><p>Request:</p>
     <div class="source"><pre>&lt;greet&gt;
     Hello Service!
 &lt;greet&gt;
@@ -101,10 +105,10 @@
     {
         client_greeting_node = AXIOM_NODE_GET_FIRST_CHILD(node, env);
         if (client_greeting_node &amp;&amp; 
-	AXIOM_NODE_GET_NODE_TYPE(client_greeting_node, env) == AXIOM_TEXT)
+        AXIOM_NODE_GET_NODE_TYPE(client_greeting_node, env) == AXIOM_TEXT)
         {
             axiom_text_t *greeting = 
-	    (axiom_text_t *)AXIOM_NODE_GET_DATA_ELEMENT(client_greeting_node, env);
+            (axiom_text_t *)AXIOM_NODE_GET_DATA_ELEMENT(client_greeting_node, env);
             if (greeting &amp;&amp; AXIOM_TEXT_GET_VALUE(greeting , env))
             {
                 axis2_char_t *greeting_str = AXIOM_TEXT_GET_VALUE(greeting, env);
@@ -116,7 +120,7 @@
     else
     {
         AXIS2_ERROR_SET(env-&gt;error, 
-	AXIS2_ERROR_SVC_SKEL_INVALID_XML_FORMAT_IN_REQUEST, AXIS2_FAILURE);
+        AXIS2_ERROR_SVC_SKEL_INVALID_XML_FORMAT_IN_REQUEST, AXIS2_FAILURE);
         printf("ERROR: invalid XML in request\n");
         return_node = build_greeting_response(env, "Client! Who are you?");
     }
@@ -173,7 +177,7 @@
 invoke method to return a pointer to an axiom_node, representing the response
 payload.</p></div><div class="subsection"><a name="1_1_4_Full_Source"></a><h3>1.1.4 Full Source</h3><p>Here is the complete source code for the service : <a href="hello/service/hello.c.html">hello.c</a></p><br></br></div><div class="subsection"><a name="1_1_5_Service_Descriptor"></a><h3>1.1.5 Service Descriptor</h3><p>services.xml file contains details on the service that would be read by
 the Axis2/C deployment engine during deployment time. Following shows the
-contents for the service.xml file for hello service.</p>
+contents for the services.xml file for hello service.</p>
     <div class="source"><pre>&lt;service name="hello"&gt;
    &lt;parameter name="ServiceClass" locked="xsd:false"&gt;hello&lt;/parameter&gt;
    &lt;description&gt;
@@ -195,7 +199,7 @@
     <div class="source"><pre>gcc -shared -olibhello.so -I$AXIS2C_HOME/include -L$AXIS2C_HOME/lib -laxis2 hello.c
 
 </pre></div>
-  <p>On Windows </p><p>to compile,</p>
+  <p>On Windows</p><p>to compile,</p>
     <div class="source"><pre>cl.exe /D "WIN32" /D "_WINDOWS" /D "_MBCS"/D"AXIS2_DECLARE_EXPORT" 
 /D "AXIS2_SVR_MULTI_THREADED" /w /nologo $(AXIS2_INCLUDE_PATH)
 $(APACHE_INCLUDE_PATH) /I hello.c
@@ -209,8 +213,8 @@
 simple axis server and then browse the list of deployed services using a Web
 browser. To start the simple axis server you can go to AXIS2C_HOME/bin folder
 and run the executable axis2_http_server. The default url that you can test
-the service list with is <a href="http://localhost:9090/axis2/services" class="externalLink" title="External Link">http://localhost:9090/axis2/services</a>.
-You should get an entry for the hello service on the page that you get.</p><p><br></br>
+the service list with is <a href="http://localhost:9090/axis2/services" class="externalLink" title="External Link">http://localhost:9090/axis2/services</a>.You
+should get an entry for the hello service on the page that you get.</p><p><br></br>
 <br></br>
 </p></div><div class="subsection"><a name="1_2_Hello_Client"></a><h3>1.2 Hello Client</h3><p>Now that you know how to write a service with Axis2/C, lets see how you
 could write a client to consume that service. The request payload that the
@@ -234,10 +238,11 @@
     services. It provides an easy to use API. Service client create method
     takes the location of the repository as a parameter. For the purpose of
     our sample, you can use the AXIS2C_HOME as the repository. The concept of
-    repository would be explained in detail in a later section.<br></br>
+    <a href="#repo_fold">repository</a> is explained in detail in a later
+    section.<br></br>
   </li>
   <li><b>Set options to service client instance</b><br></br>
-    The options created in earlier step needs to be set on the service
+    The options created in an earlier step needs to be set on the service
     client, indicating that options are meant to be used by the service
     client.<br></br>
   </li>
@@ -385,7 +390,7 @@
 implementing functions to members of the ops member of service skeleton.</p><p>The following table details the function signatures to be implemented by a
 service.</p><table class="bodyTable"><caption></caption><tbody>
     <tr class="b"><th>Function Signature</th><th>Description</th></tr>
-    <tr class="a"><td><pre>int (AXIS2_CALL *
+    <tr class="a"><td><pre>axis2_status_t (AXIS2_CALL *
     free )( axis2_svc_skeleton_t *svc_skeli,
         const axis2_env_t *env);</pre>
       </td><td>Frees the service implementation instance.</td></tr>
@@ -417,38 +422,33 @@
 
 </pre></div>
   <p>The above code shows the free method implementation of the math sample.</p>
-    <div class="source"><pre>
-axiom_node_t* AXIS2_CALL
+    <div class="source"><pre>axiom_node_t* AXIS2_CALL
 math_invoke(axis2_svc_skeleton_t *svc_skeleton,
         const axis2_env_t *env,
         axiom_node_t *node,
         axis2_msg_ctx_t *msg_ctx)
 {
-     (node)
+    if(node)
     {
-         (AXIOM_NODE_GET_NODE_TYPE(node, env) == AXIOM_ELEMENT)
+        if(AXIOM_NODE_GET_NODE_TYPE(node, env) == AXIOM_ELEMENT)
         {
             axiom_element_t *element = NULL;
             element = (axiom_element_t *)AXIOM_NODE_GET_DATA_ELEMENT(node, env);
-             (element)
+            if(element)
             {
                 axis2_char_t *op_name = AXIOM_ELEMENT_GET_LOCALNAME(element, env);
-                 (op_name)
+                if(op_name)
                 {
-                     (AXIS2_STRCMP(op_name, "add") == 0)
-                         axis2_math_add(env, node);
-                     (AXIS2_STRCMP(op_name, "sub") == 0)
-                         axis2_math_sub(env, node);
-                     (AXIS2_STRCMP(op_name, "mul") == 0)
-                         axis2_math_mul(env, node);
-                     (AXIS2_STRCMP(op_name, "div") == 0)
-                         axis2_math_div(env, node);
-                }
-            }
-        }
-    }
-    printf("Math service ERROR: invalid operation invoked\n");
-    node;
+                    if(AXIS2_STRCMP(op_name, "add") == 0)
+                        return axis2_math_add(env, node);
+                    if(AXIS2_STRCMP(op_name, "sub") == 0)
+                        return axis2_math_sub(env, node);
+                    if(AXIS2_STRCMP(op_name, "mul") == 0)
+                        return axis2_math_mul(env, node);
+                    if(AXIS2_STRCMP(op_name, "div") == 0)
+                        return axis2_math_div(env, node);
+           vice ERROR: invalid operation invoked\n");
+    return node;
 }
 
 </pre></div>
@@ -458,13 +458,13 @@
 is deployed, the message receiver of the Axis2/C engine would need to create
 a service instance at runtime for the purpose of invoking it. For this, it
 looks for a method named axis2_create_instance and calls it on the service
-shared library. The engine also looks to a function named
-axis2_remove_instance for clean up purposes in the shared library.</p>
+shared library. The engine also looks for a function named
+axis2_remove_instance in the shared library for clean up purposes.</p>
     <div class="source"><pre>AXIS2_EXPORT int axis2_get_instance(struct axis2_svc_skeleton **inst,
         const axis2_env_t *env)
 {
     *inst = axis2_math_create(env);
-    if&gt; (!(*inst))
+    if(!(*inst))
     {
         return AXIS2_FAILURE;
     }
@@ -493,10 +493,10 @@
 inside a module, or wrap the client API with another interface, you may need
 to use the axis2_op_client, operation client, API. However for general
 purposes, service client is sufficient.</p><p>Behaviour of the service client could be fine tuned with the options
-passed to service client. You can set the options by creating axis2_options
-instance. The bare minimum that you need to set is the endpoint URI where the
-request is to be sent to. An example of this was given in the quick start
-guide section.</p><p>The service client interface serves as the primary client interface for
+passed to service client. You can set the options by creating an
+axis2_options instance. The bare minimum that you need to set is the endpoint
+URI where the request is to be sent to. An example of this was given in the
+<a href="#quick_start">quick start guide section</a>.</p><p>The service client interface serves as the primary client interface for
 consuming services. You can set the options to be used by the service client
 and then invoke an operation on a given service. There are several ways of
 invoking a service operation. The way of invoking an operation depends on 3
@@ -504,85 +504,88 @@
   <li>The Message Exchange Pattern (MEP)</li>
   <li>Synchronous/Asynchronous behaviour (Blocking/Non-Blocking)</li>
   <li>Two-way or one-way transport</li>
-</ol><p>Many ways of service operation invoking scenarios can be obtained by
-combining these 3 factors. Service client interface provides the necessary
-parameters for above 3 tasks.</p><p></p><p>Deciding the Message Exchange Pattern (MEP)</p><p>There are 2 message exchange patterns.</p><ol>
-  <li>out_only</li>
-  <li>in_out</li>
-</ol><p>In out_only MEP the client doesn't expect a reply from the server. Service
-client provides 2 methods for executing out_only operations.</p><p></p><div class="subsection"><a name="axis2_svc_client_fire_and_forget"></a><h3>axis2_svc_client_fire_and_forget</h3><p>Sends a message and forget about it. This method is used to interact with
+</ol><p>Many ways of service operation invocation scenarios can be obtained by
+combining above three factors. Service client interface provides the
+necessary API calls to achieve this .</p><p></p><p>Deciding the Message Exchange Pattern (MEP)</p><p>There are 2 message exchange patterns.</p><ol>
+  <li>Out-Only</li>
+  <li>Out-In</li>
+</ol><p>In Out-Only MEP the client doesn't expect a reply from the server. Service
+client provides two methods for invoking Out-Only operations.</p><p></p><div class="subsection"><a name="axis2_svc_client_fire_and_forget"></a><h3>axis2_svc_client_fire_and_forget</h3><p>Sends a message and forget about it. This method is used to interact with
 a service operation whose MEP is In-Only. That is, there is no opportunity to
 get an error from the service via this method; one may still get client-side
 errors, such as host unknown etc.</p><table class="bodyTable"><caption></caption><tbody>
     <tr class="a"><th>Parameter</th><th>Description</th></tr>
-    <tr class="b"><td>axis2_svc_client_t *svc_client</td><td>svc_client pointer to service client struct</td></tr>
-    <tr class="a"><td>const axis2_env_t *env</td><td>env pointer to environment struct</td></tr>
-    <tr class="b"><td>const axis2_qname_t *op_qname</td><td>qname of the service operation which is going to be execute</td></tr>
-    <tr class="a"><td>const axiom_node_t *payload</td><td>payload pointer to OM node representing the XML payload to be
-      sent</td></tr>
+    <tr class="b"><td>axis2_svc_client_t *svc_client</td><td>pointer to service client struct</td></tr>
+    <tr class="a"><td>const axis2_env_t *env</td><td>pointer to environment struct</td></tr>
+    <tr class="b"><td>const axis2_qname_t *op_qname</td><td>qname of the service operation which is going to be invoked.</td></tr>
+    <tr class="a"><td>const axiom_node_t *payload</td><td>pointer to OM node representing the XML payload to be sent</td></tr>
   </tbody></table><p>return type :- void</p><p></p></div><div class="subsection"><a name="axis2_svc_client_send_robust"></a><h3>axis2_svc_client_send_robust</h3><p>If a fault triggers on server side, this method would report an error back
 to the caller.</p><table class="bodyTable"><caption></caption><tbody>
     <tr class="b"><th>Parameter</th><th>Description</th></tr>
-    <tr class="a"><td>axis2_svc_client_t *svc_client</td><td>svc_client pointer to service client struct</td></tr>
-    <tr class="b"><td>const axis2_env_t *env</td><td>env pointer to environment struct</td></tr>
-    <tr class="a"><td>const axis2_qname_t *op_qname</td><td>qname of the service operation which is going to be execute</td></tr>
-    <tr class="b"><td>const axiom_node_t *payload</td><td>payload pointer to OM node representing the XML payload to be
-      sent</td></tr>
-  </tbody></table><p>return type:- axis2_status_t</p><p>return AXIS2_SUCCESS on success, else AXIS2_FAILURE.</p><p></p><p>Both these methods call AXIS2_OP_CLIENT_EXECUTE inside. But
-fire_and_forget method set the blocking parameter FALSE and send_robust set
-the blocking parameter TRUE. Hence it will block for the fault trigger.</p><p></p><p>In in_out MEP, the client expect a reply from the server. The
+    <tr class="a"><td>axis2_svc_client_t *svc_client</td><td>pointer to service client struct</td></tr>
+    <tr class="b"><td>const axis2_env_t *env</td><td>pointer to environment struct</td></tr>
+    <tr class="a"><td>const axis2_qname_t *op_qname</td><td>qname of the service operation which is going to be invoked.</td></tr>
+    <tr class="b"><td>const axiom_node_t *payload</td><td>pointer to OM node representing the XML payload to be sent</td></tr>
+  </tbody></table><p>return type:- axis2_status_t</p><p>return AXIS2_SUCCESS on success, else AXIS2_FAILURE.</p><p></p><p>In In-Out MEP, the client expect a reply from the server. The
 axis2_svc_client_send_recieve and axis2_send_receive_non_blocking supports
-this MEP pattern.</p><p></p></div><div class="subsection"><a name="axis2_svc_client_send_receive"></a><h3>axis2_svc_client_send_receive</h3><p>Sends XML request and receives XML response.</p><table class="bodyTable"><caption></caption><tbody>
+this MEP.</p><p></p></div><div class="subsection"><a name="axis2_svc_client_send_receive"></a><h3>axis2_svc_client_send_receive</h3><p>Sends XML request and receives XML response.</p><table class="bodyTable"><caption></caption><tbody>
     <tr class="a"><th>Parameter</th><th>Description</th></tr>
-    <tr class="b"><td>axis2_svc_client_t *svc_client</td><td>svc_client pointer to service client struct</td></tr>
-    <tr class="a"><td>const axis2_env_t *env</td><td>env pointer to environment struct</td></tr>
-    <tr class="b"><td>const axis2_qname_t *op_qname</td><td>qname of the service operation which is going to be execute</td></tr>
-    <tr class="a"><td>const axiom_node_t *payload</td><td>payload pointer to OM node representing the XML payload to be
-      sent</td></tr>
-  </tbody></table><p>Return pointer to OM node representing the XML response. The caller owns
-the returned node. This method blocks until the response arrives.</p><p></p></div><div class="subsection"><a name="axis2_send_receive_non_blocking"></a><h3>axis2_send_receive_non_blocking</h3><p>Sends XML request and receives XML response, but does not block for
+    <tr class="b"><td>axis2_svc_client_t *svc_client</td><td>pointer to service client struct</td></tr>
+    <tr class="a"><td>const axis2_env_t *env</td><td>pointer to environment struct</td></tr>
+    <tr class="b"><td>const axis2_qname_t *op_qname</td><td>qname of the service operation which is going to be invoked.</td></tr>
+    <tr class="a"><td>const axiom_node_t *payload</td><td>pointer to OM node representing the XML payload to be sent</td></tr>
+  </tbody></table><p>Returns pointer to the OM node representing the XML response. This method
+blocks until the response arrives.</p><p></p></div><div class="subsection"><a name="axis2_send_receive_non_blocking"></a><h3>axis2_send_receive_non_blocking</h3><p>Sends XML request and receives XML response, but does not block for
 response.</p><table class="bodyTable"><caption></caption><tbody>
     <tr class="b"><th>Parameter</th><th>Description</th></tr>
-    <tr class="a"><td>axis2_svc_client_t *svc_client</td><td>svc_client pointer to service client struct</td></tr>
-    <tr class="b"><td>const axis2_env_t *env</td><td>env pointer to environment struct</td></tr>
+    <tr class="a"><td>axis2_svc_client_t *svc_client</td><td>pointer to service client struct</td></tr>
+    <tr class="b"><td>const axis2_env_t *env</td><td>pointer to environment struct</td></tr>
     <tr class="a"><td>const axis2_qname_t *op_qname</td><td>qname of the service operation which is going to be execute</td></tr>
-    <tr class="b"><td>const axiom_node_t *payload</td><td>payload pointer to OM node representing the XML payload to be
-      sent</td></tr>
-    <tr class="a"><td>axis2_callback_t *callback</td><td>callback pointer to callback struct used to capture response</td></tr>
+    <tr class="b"><td>const axiom_node_t *payload</td><td>pointer to OM node representing the XML payload to be sent</td></tr>
+    <tr class="a"><td>axis2_callback_t *callback</td><td>pointer to callback struct used to capture response</td></tr>
   </tbody></table><p></p><p>Return type :- void<br></br>
 This method will not block for the response. Instead it sets a call back to
 capture the response.<br></br>
-</p><p><strong>Synchronous/Asynchronous behaviour
-(Blocking/Non-Blocking)</strong></p><p>This will determine whether the client will block (Sysnchronous) or
-non-block (asynchronous) for the response in a in-out MEP scenario. This can
-be decided by using<br></br>
-<em>axis2_svc_client_send_receive</em> or
-<em>axis2_svc_client_send_receive_non_blocking</em> methods.<br></br>
-</p><p></p><p><strong>Two-way or One-way transport</strong></p><p>If the transport is Two-way transport then only one channel is used .If
-the Transport is One-way then the response will come from a seperate
+</p><p><strong>Synchronous/Asynchronous Behaviour
+(Blocking/Non-Blocking)</strong></p><p>This will determine whether the client would block (Sysnchronous) or
+return immediately (Asynchronous) for the response in a in-out MEP
+scenario.<br></br>
+<em>AXIS2_SVC_CLIENT_SEND_RECEIVE</em> or
+<em>AXIS2_SVC_CLIENT_SEND_RECEIVE_NON_BLOCKING</em> methods.<br></br>
+</p><p></p><p><strong>Two-way or One-way transport</strong></p><p>If the transport is Two-way then only one channel is used .If the
+Transport is One-way then the response would have to come on a seperate
 chanel.<br></br>
-If we want to set a seperate channel for the response the following
-<em>set_use_seperate_listener</em> option has to be set.</p><p>See ApendixD for further details.</p><p><a name="rest"></a></p></div></div><div class="section"><a name="5__REST"></a><h2>5. REST</h2><p>If you want to consume Web services using REST style calls you can use
-either the HTTP POST method or HTTP GET method.</p><p>The following example shows how to enable a REST style invocation using
-different HTTP methods.</p>
-    <div class="source"><pre>AXIS2_OPTIONS_SET_PROPERTY(options, env, AXIS2_ENABLE_REST,AXIS2_VALUE_TRUE);
-if (AXIS2_TRUE == method_get )
-{
-AXIS2_OPTIONS_SET_PROPERTY(options, env, AXIS2_HTTP_METHOD, AXIS2_HTTP_HEADER_GET);
-}
-
-</pre></div>
-  <p>Default value of REST is set to HTTP POST Method. If someone need to
-change it to HTTP GET method.</p>
-    <div class="source"><pre>AXIS2_OPTIONS_SET_PROPERTY(options, env, AXIS2_HTTP_METHOD, AXIS2_HTTP_HEADER_GET);
-
-</pre></div>
-  <p>can be used.</p><p><a name="mtom"></a></p></div><div class="section"><a name="6__MTOM"></a><h2>6. MTOM</h2><p>Axis2/C allows you to send and receive binary data with SOAP messages
+If we want to use a seperate channel for the response
+<em>SET_USE_SEPERATE_LISTENER</em> option has to be set.</p><p>See <a href="#appD">ApendixD</a> for further details on setting
+options.</p><p><a name="rest"></a></p></div></div><div class="section"><a name="5__REST"></a><h2>5. REST</h2><p>If you want to consume Web services using REST style calls you can use
+either the HTTP POST method or HTTP GET method.</p><p>The following example code fragments shows how to enable a REST style
+invocation using different HTTP methods.</p>
+    <div class="source"><pre>AXIS2_OPTIONS_SET_PROPERTY(options, env, AXIS2_ENABLE_REST, AXIS2_VALUE_TRUE);
+
+</pre></div>
+  <p>Default HTTP method used with REST is HTTP POST Method. If someone need
+tochange it to HTTP GET method following needs to be done.</p><p>REST with HTTP GET</p>
+    <div class="source"><pre>AXIS2_OPTIONS_SET_PROPERTY(options, env, AXIS2_HTTP_METHOD, AXIS2_HTTP_HEADER_GET);&gt;
+
+</pre></div>
+  <p>Apart from setting the above options one do not have to do anything
+special to get REST to work You can use the same code that you would use with
+a SOAP call and do rest style invocation.</p><p><a name="mtom"></a></p></div><div class="section"><a name="6__MTOM"></a><h2>6. MTOM</h2><p>Axis2/C allows you to send and receive binary data with SOAP messages
 using MTOM/XOP conventions. When sending attachments, you have to use service
 client (svc_client) to perform the send and receive operation, and give the
-binary data as an array.</p><p>In order to send the attachment you need to build om node including that
-attachment as a node. We need to give our built om structure to service
-client to perform send and receive operations.</p><p>In the above sample payload shown, we place our image file as text within
+binary data as an array.</p><p>In order to send the attachment you need to build AXIOM payload and attach
+the data handler with binary content to the payload.</p>
+    <div class="source"><pre>&lt;soapenv:Body&gt;
+&lt;ns1:mtomSample xmlns:ns1="http://ws.apache.org/axis2/c/samples/mtom"&gt;
+&lt;ns1:fileName&gt;test.jpg&lt;/ns1:fileName&gt;
+&lt;ns1:image&gt;
+&lt;xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="cid:1.f399248e-8b39-1db1-3124-0015c53de2e5@apache.org"&gt;&lt;/xop:Include&gt;
+&lt;/ns1:image&gt;
+&lt;/ns1:mtomSample&gt;
+&lt;/soapenv:Body&gt;
+
+</pre></div>
+  <p>In the above sample payload shown, we place our image file as text within
 an image element</p>
     <div class="source"><pre>image_om_ele = axiom_element_create(env,mtom_om_node, "image", ns1,&amp;image_om_node);
 data_handler = axiom_data_handler_create(env, image_name, "image/jpeg");
@@ -599,241 +602,154 @@
   <p>
 in axis2.xml
 
-</p><p>If the attachment is sent in binary optimised format, the file content
-would be sent as it is, out of the SOAP body, using MIME headers and the
-payload would have an XOP:Include element, referring to the MIME part that
-contains the binary attachment. In case of binary non optimised format, the
-attachment content would be sent in the payload itself, as a base64 encoded
-string.</p><p><a name="eng_mod"></a></p></div><div class="section"><a name="7__Engaging_a_Module"></a><h2>7. Engaging a Module</h2><p>Modules have the concept of being available and engaged. Available means
-modules are deployed in the system but not activated. They will be activated
-only after being engaged. Normally a module is a set of handlers. Every
-module should come with its own module.xml file . This module.xml file
-specifies the module specific handlers and to what phases they are to be
-deployed in the axis2 handler chain. Some of the module specific handlers may
-be put in to system predefined phases.In that case, module.xml file should
-specify where to put the handlers relative to the others in that phase. Some
-times module may define its own phase. In that case some of the module specie
-handlers may be put in to that phase. The handlers which are added to the
-system predefined phases (global handlers) are invoked for every message
-which comes in/out to the system. The handlers in the module specific phase
-are invoked only for the messages aiming at the operations which engaged that
-module. Engaging a module means correctly adding the handlers of a particular
-module to a phase. A service, operations or the system may engage a module.
-Once the module is engaged the handlers and the operations defined in the
-module are added to the entity that engaged them.</p><p></p><p>Before engaging a module following steps has to be followed.</p><ol>
+</p><p>If enableMTOM is set to true the attachment would be sent as it is, out of
+the SOAP body, using MIME headers and the payload would have an XOP:Include
+element, referring to the MIME part that contains the binary attachment. In
+case of binary non optimised format,where enable mtom is false the attachment
+content would be sent in the payload itself, as a base64 encoded string.</p><p><a name="eng_mod"></a></p></div><div class="section"><a name="7__Engaging_a_Module"></a><h2>7. Engaging a Module</h2><p>A module is a set of handlers that helps to extend the message processing
+behaviours of Axis2/C SOAP engine. Modules have the concept of being
+available and engaged. Available means modules are deployed in the system but
+not activated. They will be activated only after being engaged. Every module
+should come with its own module.xml file . This module.xml file specifies the
+module specific handlers and to what phases they are to be deployed in the
+handler chain. Some of the module specific handlers may be put in to system
+predefined phases.In that case, module.xml file should specify where to put
+the handlers relative to the others in that phase. Sometimes a module may
+define its own phase. In that case some of the module specie handlers may be
+put in to that phase. The handlers which are added to the system predefined
+phases (global handlers) are invoked for every message which comes to or goes
+out from the system. The handlers in the module specific phase are invoked
+only for the messages invoking the operations that engage that module.
+Engaging a module means correctly adding the handlers of a particular module
+to one or more phases. A service, operations or the system may engage a
+module. Once the module is engaged the handlers and the operations defined in
+the module are added to the entity that engaged them.</p><p></p><p>Before engaging a module following steps has to be followed.</p><ol>
   <li>Writing the module.xml file</li>
   <li>Packaging the module libraries and the module.xml in to a folder which
     has the name of the module.</li>
   <li>Deploy the folder in AXIS2C_INSTALL_DIR/modules</li>
   <li>Adding the module specific phases in the axis2.xml file.</li>
 </ol><p>The following is an example of engaging a sample module called logging
-module to the axis2c system.</p><p></p><div class="subsection"><a name="Writing_the_module_xml_file"></a><h3>Writing the module.xml file</h3><p>In the module.xml file, the handlers of the module and the phases to which
+module with Axis2/C.</p><p></p><div class="subsection"><a name="Writing_the_module_xml_File"></a><h3>Writing the module.xml File</h3><p>In the module.xml file, the handlers of the module and the phases to which
 they are to be added has to be specified. Below is the module.xml file of the
-sample logging module.</p><table class="bodyTable"><caption></caption><tbody>
-    <tr class="b"><td>&lt;module name="logging" class="axis2_mod_log"&gt;
-
-        <p>&lt;inflow&gt;</p>
-
-        <p>&lt;handler name="LoggingInHandler" class="axis2_mod_log"&gt;</p>
-
-        <p>&lt;order phase="PreDispatch"/&gt;</p>
-
-        <p>&lt;/handler&gt;</p>
-
-        <p>&lt;/inflow&gt;</p>
-
-        <p></p>
-
-        <p>&lt;outflow&gt;</p>
-
-        <p>&lt;handler name="LoggingOutHandler" class="axis2_mod_log"&gt;</p>
-
-        <p>&lt;order phase="MessageOut"/&gt;</p>
-
-        <p>&lt;/handler&gt;</p>
-
-        <p>&lt;/outflow&gt;</p>
-
-        <p></p>
-
-        <p>&lt;Outfaultflow&gt;</p>
-
-        <p>&lt;handler name="LoggingOutHandler" class="axis2_mod_log"&gt;</p>
-
-        <p>&lt;order phase="MessageOut"/&gt;</p>
-
-        <p>&lt;/handler&gt;</p>
-
-        <p>&lt;/Outfaultflow&gt;</p>
+sample logging module.</p>
+    <div class="source"><pre>
+        &lt;module name="logging" class="axis2_mod_log"&gt;
+	   &lt;inflow&gt;
+              &lt;handler name="LoggingInHandler" class="axis2_mod_log"&gt;
+                 &lt;order phase="PreDispatch"/&gt;
+              &lt;/handler&gt;
+           &lt;/inflow&gt;
+           &lt;outflow&gt;
+                 &lt;handler name="LoggingOutHandler" class="axis2_mod_log"&gt;
+                   &lt;order phase="MessageOut"/&gt;
+                 &lt;/handler&gt;
+           &lt;/outflow&gt;
+           &lt;Outfaultflow&gt;
+                 &lt;handler name="LoggingOutHandler" class="axis2_mod_log"&gt;
+                    &lt;order phase="MessageOut"/&gt;
+                 &lt;/handler&gt;
+           &lt;/Outfaultflow&gt;
+        &lt;/module&gt;
 
-        <p>&lt;/module&gt;</p>
 
-        <p></p>
-      </td></tr>
-  </tbody></table><p></p></div><div class="subsection"><a name="Adding_the_module_specific_phases_in_the_axis2_xml_file"></a><h3>Adding the module specific phases in the axis2.xml file</h3><p>The module specific phase has to de added after the system predefined
+</pre></div>
+  </div><div class="subsection"><a name="Adding_the_Module_Specific_Phases_in_the_axis2_xml_File"></a><h3>Adding the Module Specific Phases in the axis2.xml File</h3><p>The module specific phase has to de added after the system predefined
 phases. The following example shows where to add the module specific
-phases.</p><table class="bodyTable"><caption></caption><tbody>
-    <tr class="a"><td>&lt;phaseOrder type="inflow"&gt;
-
-        <p>&lt;!-- System pre defined phases --&gt;</p>
-
-        <p>&lt;phase name="TransportIn"/&gt;</p>
-
-        <p>&lt;phase name="PreDispatch"/&gt;</p>
-
-        <p>&lt;phase name="Dispatch"
-        class="org.apache.axis2.engine.DispatchPhase"&gt;</p>
-
-        <p>&lt;handler name="AddressingBasedDispatcher"</p>
-
-        <p>class="axis2_engine"&gt;</p>
-
-        <p>&lt;order phase="Dispatch"/&gt;</p>
-
-        <p>&lt;/handler&gt;</p>
-
-        <p></p>
-
-        <p>&lt;handler name="RequestURIBasedDispatcher"</p>
-
-        <p>class="axis2_engine"&gt;</p>
-
-        <p>&lt;order phase="Dispatch"/&gt;</p>
-
-        <p>&lt;/handler&gt;</p>
-
-        <p></p>
-
-        <p>&lt;handler name="SOAPActionBasedDispatcher"</p>
+phases.</p>
+    <div class="source"><pre>&lt;phaseOrder type="inflow"&gt;
+        &lt;!-- System pre defined phases --&gt;
+        &lt;phase name="TransportIn"/&gt;
+        &lt;phase name="PreDispatch"/&gt;
+        &lt;phase name="Dispatch"
+        class="org.apache.axis2.engine.DispatchPhase"&gt;
+        &lt;handler name="AddressingBasedDispatcher"
+        class="axis2_engine"&gt;
+        &lt;order phase="Dispatch"/&gt;
+        &lt;/handler&gt;
+        &lt;handler name="RequestURIBasedDispatcher"
+        class="axis2_engine"&gt;
+        &lt;order phase="Dispatch"/&gt;
+        &lt;/handler&gt;
+        &lt;handler name="SOAPActionBasedDispatcher"
+        class="axis2_engine"&gt;
+        &lt;order phase="Dispatch"/&gt;
+        &lt;/handler&gt;
+        &lt;handler name="SOAPMessageBodyBasedDispatcher"
+        class="axis2_engine"&gt;
+        &lt;order phase="Dispatch"/&gt;
+        &lt;/handler&gt;
+        &lt;handler name="InstanceDispatcher"
+        class="org.apache.axis2.engine.InstanceDispatcher"&gt;
+        &lt;order phase="PostDispatch"/&gt;
+        &lt;/handler&gt;
+        &lt;/phase&gt;
+        &lt;!-- System pre defined phases --&gt;
+        &lt;!-- After Postdispatch phase
+        module author or or service author can add any phase he want  --&gt;
+        &lt;phase name="OperationInPhase"/&gt;
+        &lt;phase name=""/&gt;
+        &lt;/phaseOrder&gt;
+        &lt;phaseOrder type="outflow"&gt;
+        &lt;!-- user can add his own phases  to this area --&gt;
+        &lt;phase name="OperationOutPhase"/&gt;
+        &lt;phase name=""/&gt;
+        &lt;!--system predefined phase--&gt;
+        &lt;!--these phase will run irrespective of the service--&gt;
+        &lt;phase name="MessageOut"/&gt;
+        &lt;/phaseOrder/&gt;
+        &lt;phaseOrder type="INfaultflow"&gt;
+        &lt;!-- user can add his own phases  to this area --&gt;
+        &lt;phase name="OperationInFaultPhase"/&gt;
+        &lt;phase name=""/&gt;
+        &lt;/phaseOrder&gt;
+        &lt;phaseOrder type="Outfaultflow"&gt;
+        &lt;!-- user can add his own phases to this area --&gt;
+        &lt;phase name="OperationOutFaultPhase"/&gt;
+        &lt;phase name=""/&gt;
+        &lt;phase name="PolicyDetermination"/&gt;
+        &lt;phase name="MessageOut"/&gt;
+&lt;/phaseOrder&gt;
 
-        <p>class="axis2_engine"&gt;</p>
-
-        <p>&lt;order phase="Dispatch"/&gt;</p>
-
-        <p>&lt;/handler&gt;</p>
-
-        <p></p>
-
-        <p>&lt;handler name="SOAPMessageBodyBasedDispatcher"</p>
-
-        <p>class="axis2_engine"&gt;</p>
-
-        <p>&lt;order phase="Dispatch"/&gt;</p>
-
-        <p>&lt;/handler&gt;</p>
-
-        <p>&lt;handler name="InstanceDispatcher"</p>
-
-        <p>class="org.apache.axis2.engine.InstanceDispatcher"&gt;</p>
-
-        <p>&lt;order phase="PostDispatch"/&gt;</p>
-
-        <p>&lt;/handler&gt;</p>
-
-        <p>&lt;/phase&gt;</p>
-
-        <p>&lt;!-- System pre defined phases --&gt;</p>
-
-        <p><span style="color: #0000FF">&lt;!-- After Postdispatch phase
-        module author or or service author can add any phase he want
-        --&gt;</span></p>
-
-        <p>&lt;phase name="OperationInPhase"/&gt;</p>
-
-        <p>&lt;phase name=""/&gt;</p>
-
-        <p>&lt;/phaseOrder&gt;</p>
-
-        <p>&lt;phaseOrder type="outflow"&gt;</p>
-
-        <p><span style="color: #0000FF">&lt;!-- user can add his own phases
-        to this area --&gt;</span></p>
-
-        <p>&lt;phase name="OperationOutPhase"/&gt;</p>
-
-        <p>&lt;phase name=""/&gt;</p>
-
-        <p>&lt;!--system predefined phase--&gt;</p>
-
-        <p>&lt;!--these phase will run irrespective of the service--&gt;</p>
-
-        <p>&lt;phase name="MessageOut"/&gt;</p>
-
-        <p>&lt;/phaseOrder/&gt;</p>
-
-        <p>&lt;phaseOrder type="INfaultflow"&gt;</p>
-
-        <p><span style="color: #0000FF">&lt;!-- user can add his own phases
-        to this area --&gt;</span></p>
-
-        <p>&lt;phase name="OperationInFaultPhase"/&gt;</p>
-
-        <p>&lt;phase name=""/&gt;</p>
-
-        <p>&lt;/phaseOrder&gt;</p>
-
-        <p>&lt;phaseOrder type="Outfaultflow"&gt;</p>
-
-        <p><span style="color: #0000FF">&lt;!-- user can add his own phases
-        to this area --&gt;</span></p>
-
-        <p>&lt;phase name="OperationOutFaultPhase"/&gt;</p>
-
-        <p>&lt;phase name=""/&gt;</p>
-
-        <p>&lt;phase name="PolicyDetermination"/&gt;</p>
-
-        <p>&lt;phase name="MessageOut"/&gt;</p>
-
-        <p>&lt;/phaseOrder&gt;</p>
-      </td></tr>
-  </tbody></table><p>As mentioned in the above example, the user or module author can handle
+</pre></div>
+  <p>As mentioned in the above example, the user or module author can handle
 his own phases after system predefined phases.In the above example there are
 no specific phases for the logging module. That is all the module specific
 handlers are added to the system predefined phases as mentioned in the
-module.xml file.</p><p></p></div><div class="subsection"><a name="Engaging_the_module_for_services"></a><h3>Engaging the module for services</h3><p>Following is an example of engaging the logging module to the echo
+module.xml file.</p><p></p></div><div class="subsection"><a name="Engaging_the_Module_for_Services"></a><h3>Engaging the Module for Services</h3><p>Following is an example of engaging the logging module to the echo
 service.This can be done by simply adding &lt;module ref ="logging"/&gt; in
-the service.xml file. This informs the Axis2 engine that the module "logging"
-should be engaged for this service. The handler inside the module will be
-executed in their respective phases as described by the "module.xml".</p><table class="bodyTable"><tbody>
-    <tr class="b"><td>&lt;service name="echo"&gt;
-
-        <p><span style="color: #0000FF">&lt;module ref
-        ="logging"/&gt;</span></p>
-
-        <p>&lt;parameter name="ServiceClass"
-        locked="xsd:false"&gt;echo&lt;/parameter&gt;</p>
-
-        <p>&lt;description&gt;</p>
-
-        <p>This is a testing service , to test the system is working or
-        not</p>
-
-        <p>&lt;/description&gt;</p>
-
-        <p>&lt;operation name="echoString"&gt;</p>
-
-        <p>&lt;!--messageReceiver class="axis2_receivers" /--&gt;</p>
-
-        <p>&lt;parameter name="wsamapping"
-        &gt;http://ws.apache.org/axis2/c/samples/echoString&lt;/parameter&gt;</p>
-
-        <p>&lt;/operation&gt;</p>
+the services.xml file. This informs the Axis2 engine that the module
+"logging" should be engaged for this service. The handler inside the module
+will be executed in their respective phases as described by the
+"module.xml".</p>
+    <div class="source"><pre>
+     &lt;service name="echo"&gt;
+          &lt;module ref ="logging"/&gt;
+                &lt;parameter name="ServiceClass" locked="xsd:false"&gt;echo&lt;/parameter&gt;
+                   &lt;description&gt;
+                      This is a testing service , to test the system is working or  not
+                  &lt;/description&gt;
+                &lt;operation name="echoString"&gt;
+                &lt;!--messageReceiver class="axis2_receivers" /--&gt;
+                    &lt;parameter name="wsamapping" &gt;
+		        http://ws.apache.org/axis2/c/samples/echoString
+                    &lt;/parameter&gt;
+                &lt;/operation&gt;
+      &lt;/service&gt;
 
-        <p>&lt;/service&gt;</p>
 
-        <p></p>
-      </td></tr>
-  </tbody></table></div><div class="subsection"><a name="Engaging_the_module_globally"></a><h3>Engaging the module globally</h3><p>If we want to engage the module for every service deployed in the axis2c
+</pre></div>
+  </div><div class="subsection"><a name="Engaging_the_Module_Globally"></a><h3>Engaging the Module Globally</h3><p>If we want to engage the module for every service deployed in the Axis2/C
 system, we can add the above entry in the axis2.xml file. This will inform
-the Axis2/C system to invoke the handler inside the module specific phases
-for every message coming to any service deployed within the system.</p><p></p></div><div class="subsection"><a name="Engaging_the_module_at_the_client_side"></a><h3>Engaging the module at the client side</h3><p>In the client side if the above &lt;module ref ="logging"/&gt; is added in
-the axis2.xml the module specific handlers will invoke for every request the
-client sends.If only a particular client wants to engage the module it can be
-done by engaging the module programmatically. This can be done by adding the
-following line in the client code after setting the options.</p><p>AXIS2_SVC_CLIENT_SET_OPTIONS(svc_client, env, options);</p><p><em>AXIS2_SVC_CLIENT_ENGAGE_MODULE(svc_client, env, "module
-name");</em></p><p></p><p>So it is very easy engaging modules in Axis2/c and it also gives a higher
-flexibility.</p><p><a name="ws_add"></a></p></div></div><div class="section"><a name="8__WS-Addressing"></a><h2>8. WS-Addressing</h2><p><a href="http://www.w3.org/2002/ws/addr/" class="externalLink" title="External Link">WS-Addressing</a> provides
+the Axis2/C engine to invoke the handler inside the module specific phases
+for every message coming to any service deployed within the engine.</p></div><div class="subsection"><a name="Engaging_the_Module_on_the_Client_Side"></a><h3>Engaging the Module on the Client Side</h3><p>On the client side, if the above &lt;module ref ="logging"/&gt; is added
+in the axis2.xml the module specific handlers will be invoked for every
+request the client sends.If only a particular client wants to engage the
+module it can be done by engaging the module programmatically. This can be
+done by adding the following line in the client code after setting the
+options.</p><p>AXIS2_SVC_CLIENT_SET_OPTIONS(svc_client, env, options);</p><p><em>AXIS2_SVC_CLIENT_ENGAGE_MODULE(svc_client, env, "module
+name");</em></p><p>Remember to replace "module-name" with the name of the module you want to
+engage.</p><p><a name="ws_add"></a></p></div></div><div class="section"><a name="8__WS-Addressing"></a><h2>8. WS-Addressing</h2><p><a href="http://www.w3.org/2002/ws/addr/" class="externalLink" title="External Link">WS-Addressing</a> provides
 mechanisms to address Web services and messages. With Axis2/C, you can use
 both WS-Addressing <a href="http://www.w3.org/TR/ws-addr-core/" class="externalLink" title="External Link">version
 1.0</a> as well as the <a href="http://www.w3.org/Submission/ws-addressing/" class="externalLink" title="External Link">submission version</a>.</p><p>WS-Addressing can be enabled in the client side using 2 different methods
@@ -846,29 +762,16 @@
   <li>If we need to add addressing for a specific client , we should do it
     programmetically by adding the following function call in the client
     implementation file.
-    <pre>AXIS2_SVC_CLIENT_ENGAGE_MODULE(svc_client, env,AXIS2_MODULE_ADDRESSING);</pre>
+    <pre>AXIS2_SVC_CLIENT_ENGAGE_MODULE(svc_client, env, AXIS2_MODULE_ADDRESSING);</pre>
   </li>
-</ul><p>There are two basic requirements for using WS-Addressing on client side
-with Axis2/C. One is that you have to provide a WS-Addressing action at
-message level. The other is that you have to enable the use of WS-Addressing
-at client level.</p>
-    <div class="source"><pre>    address = "http://localh ost:9090/axis2/services/echo";
-    endpoint_ref = axis2_endpoint_ref_create(env, address);
-    /* Setup options */
-    options = axis2_options_create(env);
-    AXIS2_OPTIONS_SET_TO(options, env, endpoint_ref);
-
-</pre></div>
-  <p>In the above code segment the message destination endpoint(wsa:To) is set
-using the AXIS2_OPTIONS_SET_TO(options, env, endpoint_ref) macro.
-endpoint_ref is created using the address string. Another important parameter
-in addressing is the wsa:action parameter. This is set from the function
-shown below.</p>
+</ul><p>There is a mandatory requirement for using WS-Addressing on client side
+with Axis2/C. That is to set a WS-Addressing action that represents the
+operation to be invoked.</p>
     <div class="source"><pre>AXIS2_OPTIONS_SET_ACTION(options,env,"http://ws.apache.org/axis2/c/samples/echoString")
 
 </pre></div>
-  <p>In addition to the action and to there are other WS-Addressing related
-SOAP headers that could be sent in a message. Axis2/C has support to set
+  <p>In addition to the action which is mandatory,there are other WS-Addressing
+related headers that could be sent in a message. Axis2/C has support to set
 those headers as options at client level. The following functions are used to
 set them.</p>
     <div class="source"><pre>AXIS2_OPTIONS_SET_REPLY_TO(options, env, reply_to)
@@ -881,25 +784,25 @@
 
 </pre></div>
   <p>Sets the wsa:FaultTo header.This contains the endpoint to direct fault
-messages. If "FaultTo" is absent one may use "ReplyTo" endpoint instead.</p>
+messages.</p>
     <div class="source"><pre>AXIS2_OPTIONS_SET_FROM(options, env, from)
 
 </pre></div>
-  <p>Some times receiving endpoint requires to know the original sender of the
-message.wsa:From header is used in those cases.The above function sets the
+  <p>Sometimes receiving endpoint requires to know the original sender of the
+message.wsa:From header is used in those cases the above function sets the
 wsa:From header.</p>
     <div class="source"><pre>AXIS2_OPTIONS_SET_RELATES_TO(options, env, relates_to)
 
 </pre></div>
-  <p>sets the wsa:RelatesTo header.This header contains a uri value that must
-be the message ID of a previously exchanged message.It defines the current
-message relationship to the message being identified.</p><p><a name="wrt_mod"></a></p></div><div class="section"><a name="9__Writing_a_Module"></a><h2>9. Writing a Module</h2><p>A module is an extension point in the Axis2/C engine. Modules are used to
+  <p>Sets the wsa:RelatesTo header.This header contains a unique ID that must
+be a message ID of a previously exchanged message.It helps to identify a
+previous message that relates to the current message.</p><p><a name="wrt_mod"></a></p></div><div class="section"><a name="9__Writing_a_Module"></a><h2>9. Writing a Module</h2><p>A module is an extension point in the Axis2/C engine. Modules are used to
 improve the quality of service in the Axis2/C engine.A SOAP message may
 contain any number of header blocks. These header blocks provide various
 processing information. In Axis2/C, these various header blocks are processed
 by modules. Some times modules may add header blocks to a SOAP message.</p><p>Normally a module is a collection of handlers. So writing a module mainly
 consists of writing handlers. Axis2/C provides two basic interfaces for
-writing a module. They are axis2_module and axis2_handler.</p><p></p><p>Every module should have 3 basic functions as defined in the
+writing a module. They are axis2_module and axis2_handler.</p><p></p><p>Every module should have three basic functions as defined in the
 axis2_modules_ops.</p><ol>
   <li><pre><font color="#4169E1">axis2_status_t (AXIS2_CALL * init ) (axis2_module_t *module, const
     axis2_env_t *env , axis2_conf_ctx_t *conf_ctx , axis2_module_desc_t
@@ -917,8 +820,8 @@
     module.</p>
   </li>
 </ol><p>The module developer implements these functions in its implementation
-file. When creating a module, the base struct functions will be assigned
-these implemented functions.</p><p>The following example shows the creation of logging module.</p>
+file. When creating a module, the memebers of the ops struct functions will
+be assigned these implemented functions.</p><p>The following example shows the create function of logging module.</p>
     <div class="source"><pre>
 {
     axis2_module_t *module = NULL;
@@ -939,7 +842,7 @@
 
 </pre></div>
   <p>The following code segmement shows the adding of handler create functions
-to the module hash map.</p>
+to the module's hash map that stores handler create functions.</p>
     <div class="source"><pre>
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
@@ -959,10 +862,12 @@
         AXIS2_HASH_KEY_STRING, axis2_log_out_handler_create);
     
      AXIS2_SUCCESS;
+}
 
 </pre></div>
-  <p>In the above example the "logging" module adds two handlers. So these
-handler creation functions are added to the hash map.</p><p></p><div class="subsection"><a name="Writing_handlers"></a><h3>Writing handlers</h3><p>Handler is the smallest unit of execution in the Axis2/C engine's
+  <p>In the above example the "logging" module adds two handlers.The in handler
+and the out handler that deals with logging along inflow and outflow
+respectively.</p><p></p><div class="subsection"><a name="Writing_Handlers"></a><h3>Writing Handlers</h3><p>Handler is the smallest unit of execution in the Axis2/C engine's
 execution flow. The engine could have two flows, the in-flow and the
 out-flow. A flow is a collection of phases and a phase in turn is a
 collection of handlers. A handler is invoked when the phase within which it
@@ -983,7 +888,7 @@
    
     /* handler init is handled by conf loading, so no need to do it here */
     
-/* set the base struct's invoke op */
+    /* set the base struct's invoke op */
 
      if (handler-&gt;ops) 
         handler-&gt;ops-&gt;invoke = axis2_log_in_handler_invoke;
@@ -1037,10 +942,11 @@
 }
 
 </pre></div>
-  </div><div class="subsection"><a name="Writing_the_module_xml_file"></a><h3>Writing the module.xml file</h3><p>After writing the module, the module.xml file should be written. The
+  </div><div class="subsection"><a name="Writing_the_module_xml_File"></a><h3>Writing the module.xml File</h3><p>After writing the module, the module.xml file should be written. The
 module.xml file contains all the configuration details for a particular
-module.See Enging a module part for more details. Some of the important
-details in the module.xml file can be summerized as follows.</p><ul>
+module.See <a href="#eng_mod">Enging a module</a> part for more details. Some
+of the important details in the module.xml file can be summerized as
+follows.</p><ul>
   <li>The names of the module specific handlers and the phases they are to be
     added in Axis2/C flows.</li>
   <li>The relative places of handlers with respect to the other handlers in a
@@ -1048,7 +954,7 @@
   <li>The operations the module is adding to the engaged services.</li>
   <li>The module specific message receivers.</li>
 </ul><p>The handlers defined in a module can be added to Axis2/C system global
-phases or the module specific phases.</p><p><a name="sim_ser"></a></p></div></div><div class="section"><a name="11__Simple_Axis_Server"></a><h2>11. Simple Axis Server</h2><p>simple axis server is the inbuilt server of the Axis2/C.<br></br>
+phases or the module specific phases.</p><p><a name="sim_ser"></a></p></div></div><div class="section"><a name="10__Simple_Axis_Server"></a><h2>10. Simple Axis Server</h2><p>simple axis server is the inbuilt server of the Axis2/C.<br></br>
 </p>
     <div class="source"><pre>./axis2_http_server [-p PORT] [-t TIMEOUT] [-r REPO_PATH][-l LOG_LEVEL] [-f LOG_FILE]
 </pre></div>
@@ -1059,27 +965,19 @@
     <div class="source"><pre>$./axis2_http_server </pre></div>
   
 Then it takes
-</p><p> port       -&gt; 9090<br></br>
-      repo path  -&gt; ../<br></br>
-      time_out   -&gt; AXIS2_HTTP_DEFAULT_SO_TIMEOUT (30000 s)<br></br>
-      log_level  -&gt; AXIS2_LOG_LEVEL_DEBUG<br></br>
-      log_file   -&gt; axis2.log</p><br></br><p>
-as default values.
-
-    <div class="source"><pre>[-p PORT]
-This option specifies the port that server should start. 
-Once started the server listen for requests that will come to this port.
-
-[-t TIMEOUT]
-Timeout gives time period that the server should listen without any
-requests. After that it quits.
-
-[-r REPO_PATH]
-This is the repository path to pick up the services and axis2.xml
-
-[-l LOG_LEVEL]
-There are several log levels available. One could specify the log level we needed.
-LOG_LEVEL can be one of following&lt;
+
+</p><p>port       -&gt; 9090<br></br>
+repository path  -&gt; ../<br></br>
+time_out   -&gt; AXIS2_HTTP_DEFAULT_SO_TIMEOUT (30000 s)<br></br>
+log_level  -&gt; AXIS2_LOG_LEVEL_DEBUG<br></br>
+log_file   -&gt; axis2.log</p><p>
+as default values. One can use the following options with simple axis server.
+
+    <div class="source"><pre>[-p PORT] use the port number PORT. The default port is 9090
+[-r REPO_PATH] use the repository path REPO_PATH. The default repository path is ../
+[-t SOCKET_READ_TIMEOUT] set socket read timeout to SOCKET_READ_TIMEOUT. Default timeout is 30 seconds
+[-l LOG_LEVEL] set log level to LOG_LEVEL. Available log levels range from 0(critical only) to 4(debug).Default log level is 4(debug).
+                         
            AXIS2_LOG_LEVEL_CRITICAL - Log critical errors only 
            AXIS2_LOG_LEVEL_ERROR - Log errors critical errors 
            AXIS2_LOG_LEVEL_WARNING - Log warnings and above 
@@ -1087,13 +985,11 @@
            AXIS2_LOG_LEVEL_DEBUG - Log debug and above (default)
            AXIS2_LOG_LEVEL_TRACE - Log trace messages
 
-[-f LOG_FILE]
-One could specify a log file , when need to use a file other that
-default file (axis2.log).
-</pre></div>
+[-f LOG_FILE]set log file to LOG_FILE. Default is $AXIS2C_HOME/logs/axis2.log or current folder if AXIS2C_HOME not set.</pre></div>
   
-<a name="apa_mod"></a></p></div><div class="section"><a name="12__Apache2_Module"></a><h2>12. Apache2 Module</h2><p>To build Axis2/C with apache module, One need to give configuration
-options as</p><p>On Linux platform</p><p>./configure --with-apache2=[path to apache directory]</p><p><font color="#666666">NOTE: Some apache2 distributions install APR (Apache
+
+<a name="apa_mod"></a></p></div><div class="section"><a name="11__Deploying_in_Apache2"></a><h2>11. Deploying in Apache2</h2><p>To build Axis2/C with Apache module, One needs to give the following
+configuration options on Linux platform.</p><p>./configure --with-apache2=[path to apache directory]</p><p><font color="#666666">NOTE: Some Apache2 distributions install APR (Apache
 Portable Run-time) include files in a separate location which is required to
 build mod_axis2. In that case use: ./configure --with-apache2="&lt;apache2
 directory&gt;" --with-apr="&lt;apr include files location&gt;" [other
@@ -1103,28 +999,26 @@
         make install
 
 </pre></div>
-  <p>This will install mod_axis2.so into your "&lt;your_path_to_axis2c&gt;/lib"<br></br>
-On Win32 platform<br></br>
-Provide the apache2 location in configure.in file in APACHE_INSTALL_DIR</p>
-    <div class="source"><pre>
- Example
+  <p>This will install mod_axis2.so into your
+"&lt;your_path_to_axis2c&gt;/lib"<br></br>
+</p><p></p><p>On Win32 platform<br></br>
+provide the apache2 location in configure.in file in APACHE_INSTALL_DIR</p>
+    <div class="source"><pre> Example
     APACHE_INSTALL_DIR = E:\Apache
 
 </pre></div>
   <p>After compiling the sources build the mod_axis2.dll by issuing the command
 "nmake axis2_apache_module". This will build the mod_axis2.dll and copy it to
 %AXIS2C_HOME%\lib directory.</p>
-    <div class="source"><pre>
-Example
+    <div class="source"><pre>Example
     C:\axis2c\build\deploy\lib
 
 </pre></div>
-  <p>Deploying in Apache2 Web Server</p><p><font color="#666666">NOTE: To do the following tasks, you might need
+  <p></p><p>Deploying in Apache2 httpd Web Server</p><p><font color="#666666">NOTE: To do the following tasks, you might need
 super user privileges in your machine.</font></p><p>Copy the mod_axis2 <font color="#4169E1">(libmod_axis2.so.0.0.0 on Linux
 and mod_axis2.dll in Windows)</font> to "&lt;apache2 modules directory&gt;"
 as mod_axis2.so</p>
-    <div class="source"><pre>
-  Example
+    <div class="source"><pre>  Example
 In Linux
     cp $AXIS2C_HOME/lib/libmod_axis2.so.0.0.0
       /usr/lib/apache2/modules/mod_axis2.so
@@ -1133,75 +1027,127 @@
    copy C:\axis2c\build\deploy\lib\mod_axis2.dll
    C:\Apache2\modules\mod_axis2.so
 
-
 </pre></div>
   <p>Edit the Apache2's configuration file (generally httpd.conf) and add the
 following directives<br></br>
 </p>
-    <div class="source"><pre>LoadModule axis2_module&lt;apache2 modules directory&gt;/mod_axis2.so
-&lt;Location /axis2&gt;
-        SetHandler axis2_module
-        RepoPath &lt;axis2 repository path&gt;
-        LogFile &lt;axis2 log file path&gt;
-        Axis2LogLevel LOG_LEVEL
-&lt;/Location&gt;
+    <div class="source"><pre>Axis2RepoPath /home/dinesh/axis2c/deploy/
+Axis2LogFile  /tmp/axis2.log
+Axis2LogLevel info 
+LoadModule axis2_module /usr/local/apache2/modules/mod_axis2.so
+
 
 </pre></div>
   <p><font color="#666666">NOTE: Axis2 log file path should have write access
-to all users because by </font>default Apache Web Server runs as nobody.</p>
+to deamon user account under which Apache2 httpd process is run.</font></p>
     <div class="source"><pre>LOG_LEVEL can be one of following
         AXIS2_LOG_LEVEL_CRITICAL - Log critical errors only
-        AXIS2_LOG_LEVEL_ERROR - Log errors critical errors
+        AXIS2_LOG_LEVEL_ERROR - Log errors 
         AXIS2_LOG_LEVEL_WARNING - Log warnings and above
         AXIS2_LOG_LEVEL_INFO - Log info and above
-        AXIS2_LOG_LEVEL_DEBUG - Log debug and above (default)
+        AXIS2_LOG_LEVEL_DEBUG - Log debug information and above (default)
         AXIS2_LOG_LEVEL_TRACE - Log trace messages
 
 </pre></div>
   <p><font color="#B22222">NOTE: Use forward slashes "/" for path separators in
 &lt;apache2 modules directory&gt;,&lt;axis2 repository path&gt; and &lt;axis2
-log file path&gt;</font></p><p>Make sure that the apache2 user has the correct permissions to above
-paths</p><ul>
+log file path&gt;</font></p><p>Make sure that the Apache2 user account under which Apache2 is run has the
+correct permissions to above paths</p><ul>
   <li>Read permission to the repository</li>
   <li>Write permission to the log file</li>
-</ul><p>Restart apache2 and test whether mod_axis2 module is loaded by typing the
-URL</p><p><a href="http://localhost/axis2/services" class="externalLink" title="External Link">http://localhost/axis2/services</a></p><p><a name="appA"></a></p></div><div class="section"><a name="Appendix_A"></a><h2>Appendix A</h2><div class="subsection"><a name="axis2_xml"></a><h3>axis2.xml</h3><p>The axis2.xml file is the configuration file for Axis2/C. It has 6 top
+</ul><p>Restart Apache2 and test whether mod_axis2 module is loaded by typing the
+URL</p><p><a href="http://localhost/axis2/services" class="externalLink" title="External Link">http://localhost/axis2/services</a></p><p><a name="ssl_client"></a></p></div><div class="section"><a name="12__Using_SSL_Client"></a><h2>12. Using SSL Client</h2><div class="subsection"><a name="Using_SSL_Client"></a><h3>Using SSL Client</h3><p>It is assumed that you have already installed a SSL enabled web server to
+host services. For instance, you can configure Axis2/C with Apache2 webserver
+support and have Apache enable SSL. For more information on how to deploy
+Axis2C on Apache2 with SSL, please refer to the Axis2/C <a href="http://ws.apache.org/axis2/c/docs/installationguide.html#installing-apache2" class="externalLink" title="External Link">installation
+guide</a>, and <a href="http://httpd.apache.org/docs/2.0/ssl/#documentation" class="externalLink" title="External Link">Apache2 SSL/TLS
+documentation</a>.</p><ul>
+  <li>Build Axis2/C with SSL support
+    <p>In order to build the Axis2/C client with SSL support, the source
+    should be built with <code>--enable-ssl=yes</code> option.</p>
+    <p><code>./configure --enable-ssl=yes &lt;other configuration
+    options&gt;<br></br>
+    make<br></br>
+    make install<br></br>
+    </code></p>
+  </li>
+  <li>Configure axis2.xml
+    <p>Add the following lines in axis2.xml.</p>
+    <p><code>&lt;transportSender name="https"
+    class="axis2_http_sender"&gt;<br></br>
+        &lt;parameter name="PROTOCOL"
+    locked="false"&gt;HTTP/1.1&lt;/parameter&gt;<br></br>
+    &lt;/transportSender&gt;<br></br>
+    </code></p>
+  </li>
+  <li>Get the server certificate in PEM format
+    <p>You can easily obtain the server certificate using
+    <code>openssl</code> tool as follows:</p>
+    <p>Run <code>openssl s_client -connect &lt;servername&gt;:&lt;port&gt;
+    </code> and copy the portion of the output bounded by and including:</p>
+    <p><code>-----BEGIN CERTIFICATE-----</code><br></br>
+    and <br></br>
+    <code>-----END CERTIFICATE-----</code><br></br>
+    </p>
+    <p>to a file &lt;filename&gt;.pem</p>
+    <p><b>NOTE:</b> On linux you can simply run the following and the file
+    cert.pem will contain the server certificate.</p>
+    <p><code>echo |\<br></br>
+    openssl s_client -connect &lt;servername&gt;:&lt;port&gt; 2&gt;&amp;1
+    |\<br></br>
+    sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' &gt;
+    cert.pem</code></p>
+  </li>
+  <li>Set the environment variable <code>AXIS2_SSL_CA_FILE</code> to point to
+    the server certificate file created.
+    <p>Eg: <code>export AXIS2_SSL_CA_FILE=${AXIS2C_HOME}/cert.pem</code></p>
+    <p><b>NOTE:</b> Make sure that the <code>AXIS2_SSL_CA_FILE</code> does
+    not begin with '~' to refer to the home directory. Use absolute path or
+    relative (to the client binary) path not containing '~', otherwise
+    openssl may fail to load the certificate file.</p>
+  </li>
+  <li>Invoke the client using an end point reference starting with
+    <b>https</b>.
+    <p>Eg: <code>echo
+    https://localhost:9090/axis2/services/echo/echoString</code></p>
+  </li>
+</ul><p><a name="appA"></a></p></div></div><div class="section"><a name="Appendix_A"></a><h2>Appendix A</h2><div class="subsection"><a name="axis2_xml"></a><h3>axis2.xml</h3><p>The axis2.xml file is the configuration file for Axis2/C. It has 6 top
 level elements. They are <em>parameter, transportReciever,
 transportSender,module,phaseOrder</em> and <em>messageReciever</em>. Given
 below is a description about these elements, their sub elements , element
 atributes, possible valuses and their purpose.</p><p></p><p><em><strong>axisconfig</strong></em> is the root element</p><table class="bodyTable"><tbody>
-    <tr class="a"><th>Attribute</th><th>Possible Values</th></tr>
-    <tr class="b"><td>name</td><td>Axis2/C</td></tr>
+    <tr class="b"><th>Attribute</th><th>Possible Values</th></tr>
+    <tr class="a"><td>name</td><td>Axis2/C</td></tr>
   </tbody></table><p></p><p>The description of the 6 top level elements is given below.</p><p></p></div><div class="subsection"><a name="parameter"></a><h3>parameter</h3><p>In Axis2/C a parameter is a name value pair. Each and every top level
 parameter available in the axis2.xml (direct sub elements of root element)
 will be transformed into properties in axisConfiguration. Therefore the top
 level parameters in configuration document can be accessed via
 axisConfiguration in the running system.</p><p>sub elements :- none</p><p>attributes:- name , locked</p><p></p><table class="bodyTable"><caption></caption><tbody>
-    <tr class="a"><th>Attribute</th><th>Description</th></tr>
-    <tr class="b"><td>name</td><td>Name of the parameter. The table below shows possible values of the
+    <tr class="b"><th>Attribute</th><th>Description</th></tr>
+    <tr class="a"><td>name</td><td>Name of the parameter. The table below shows possible values of the
         name attribute and their description.
 
         <table class="bodyTable"><caption></caption><tbody>
-            <tr class="a"><th>Value</th><th>Description</th><th>Possibe text of parameter element</th></tr>
-            <tr class="b"><td>enableMTOM</td><td>Enable MTOM support when sending binary attachments</td><td>true or false</td></tr>
-            <tr class="a"><td>enableREST</td><td>Enable REST support</td><td>true or false</td></tr>
+            <tr class="b"><th>Value</th><th>Description</th><th>Possibe text of parameter element</th></tr>
+            <tr class="a"><td>enableMTOM</td><td>Enable MTOM support when sending binary attachments</td><td>true or false</td></tr>
+            <tr class="b"><td>enableREST</td><td>Enable REST support</td><td>true or false</td></tr>
           </tbody></table>
       </td></tr>
-    <tr class="b"><td>locked</td><td>whether the parameter can be changed from the code. Following are
+    <tr class="a"><td>locked</td><td>whether the parameter can be changed from the code. Following are
         the possible values for the locked attribute.
 
         <table class="bodyTable"><caption></caption><tbody>
-            <tr class="a"><th>Value</th><th>Description</th></tr>
-            <tr class="b"><td>true</td><td>The parameter cannot be changed from the code</td></tr>
-            <tr class="a"><td>false</td><td>The parmeter can be changed from the code.</td></tr>
+            <tr class="b"><th>Value</th><th>Description</th></tr>
+            <tr class="a"><td>true</td><td>The parameter cannot be changed from the code</td></tr>
+            <tr class="b"><td>false</td><td>The parmeter can be changed from the code.</td></tr>
           </tbody></table>
       </td></tr>
   </tbody></table><p></p></div><div class="subsection"><a name="transportReciever"></a><h3>transportReciever</h3><p>This element spsecifies the transport Reciever details in an INOUT
 messange exchange scenario. The users can change the transport reciever port
 as they wishes.</p><p>attributes :- name, class</p><table class="bodyTable"><caption></caption><tbody>
-    <tr class="b"><th>Attribute</th><th>Description</th><th>Possible values</th></tr>
-    <tr class="a"><td>Name</td><td>Specify which transport protocol is used</td><td>http(when using http)</td></tr>
-    <tr class="b"><td>Class</td><td>Specify shared library which implements the transport interface</td><td>Name of the shared library.
+    <tr class="a"><th>Attribute</th><th>Description</th><th>Possible values</th></tr>
+    <tr class="b"><td>Name</td><td>Specify which transport protocol is used</td><td>http(when using http)</td></tr>
+    <tr class="a"><td>Class</td><td>Specify shared library which implements the transport interface</td><td>Name of the shared library.
 
         <p>eg:-On Linux if the value is given as <em>foo</em> then shared
         library is libfoo.so.</p>
@@ -1210,26 +1156,26 @@
       </td></tr>
   </tbody></table><p></p><p>Sub elements of <em>transportReciever</em></p><p><em>transportReciever</em> can have zero or more parameters.(prameter
 elements) . An example element is shown below.</p><table class="bodyTable"><caption></caption><tbody>
-    <tr class="a"><th>Attribute</th><th>Description</th></tr>
-    <tr class="b"><td>name</td><td>Name of the parameter.
+    <tr class="b"><th>Attribute</th><th>Description</th></tr>
+    <tr class="a"><td>name</td><td>Name of the parameter.
 
         <table class="bodyTable"><caption></caption><tbody>
-            <tr class="a"><th>Value</th><th>Description</th><th>Possible text of parameter element</th></tr>
-            <tr class="b"><td>port</td><td>Transport listener port</td><td>Integer specifying the port number</td></tr>
+            <tr class="b"><th>Value</th><th>Description</th><th>Possible text of parameter element</th></tr>
+            <tr class="a"><td>port</td><td>Transport listener port</td><td>Integer specifying the port number</td></tr>
           </tbody></table>
       </td></tr>
-    <tr class="a"><td>locked</td><td>whether the parameter can be changed from the code
+    <tr class="b"><td>locked</td><td>whether the parameter can be changed from the code
 
         <table class="bodyTable"><caption></caption><tbody>
-            <tr class="b"><th>Value</th><th>Description</th></tr>
-            <tr class="a"><td>true</td><td>Parameter cannot be changed from the code</td></tr>
-            <tr class="b"><td>false</td><td>The parmeter can be changed from the code.</td></tr>
+            <tr class="a"><th>Value</th><th>Description</th></tr>
+            <tr class="b"><td>true</td><td>Parameter cannot be changed from the code</td></tr>
+            <tr class="a"><td>false</td><td>The parmeter can be changed from the code.</td></tr>
           </tbody></table>
       </td></tr>
   </tbody></table><p></p><p></p></div><div class="subsection"><a name="transportSender"></a><h3>transportSender</h3><p>This element specifies the transport senders used to send messages</p><p>attributes :- name, class</p><table class="bodyTable"><caption></caption><tbody>
-    <tr class="a"><th>Attribute</th><th>Description</th><th>Possible Values</th></tr>
-    <tr class="b"><td>name</td><td>Specify which transport protocol is used when sending messages</td><td>http(when using http)</td></tr>
-    <tr class="a"><td>class</td><td>Specify shared library which implements the transport interface</td><td><p>Name of the shared library.</p>
+    <tr class="b"><th>Attribute</th><th>Description</th><th>Possible Values</th></tr>
+    <tr class="a"><td>name</td><td>Specify which transport protocol is used when sending messages</td><td>http(when using http)</td></tr>
+    <tr class="b"><td>class</td><td>Specify shared library which implements the transport interface</td><td><p>Name of the shared library.</p>
 
         <p>eg:-On Linux if the value is given as <em>foo</em> then shared
         library is libfoo.so.</p>
@@ -1238,33 +1184,33 @@
       </td></tr>
   </tbody></table><p></p><p>Sub elements of <em>transportSender</em></p><p><em>transportSender</em> can have zero or more parameters.(prameter
 elements) . An example element is shown below.</p><table class="bodyTable"><caption></caption><tbody>
-    <tr class="b"><th>Attribute</th><th>Description</th></tr>
-    <tr class="a"><td>name</td><td>The name of the parameter.
+    <tr class="a"><th>Attribute</th><th>Description</th></tr>
+    <tr class="b"><td>name</td><td>The name of the parameter.
 
         <table class="bodyTable"><caption></caption><tbody>
-            <tr class="b"><th>Value</th><th>Description</th><th>Possible text of parameter element</th></tr>
-            <tr class="a"><td>PROTOCOL</td><td>Transport protocol used</td><td>Prtocol version. eg:- HTTP /1.1, HTTP/1.0</td></tr>
+            <tr class="a"><th>Value</th><th>Description</th><th>Possible text of parameter element</th></tr>
+            <tr class="b"><td>PROTOCOL</td><td>Transport protocol used</td><td>Prtocol version. eg:- HTTP /1.1, HTTP/1.0</td></tr>
           </tbody></table>
       </td></tr>
-    <tr class="b"><td>locked</td><td>whether the parameter can be changed from the code
+    <tr class="a"><td>locked</td><td>whether the parameter can be changed from the code
 
         <table class="bodyTable"><caption></caption><tbody>
-            <tr class="a"><th>Value</th><th>Description</th></tr>
-            <tr class="b"><td>true</td><td>The parameter cannot be changed from the code</td></tr>
-            <tr class="a"><td>false</td><td>The parmeter can be changed from the code.</td></tr>
+            <tr class="b"><th>Value</th><th>Description</th></tr>
+            <tr class="a"><td>true</td><td>The parameter cannot be changed from the code</td></tr>
+            <tr class="b"><td>false</td><td>The parmeter can be changed from the code.</td></tr>
           </tbody></table>
       </td></tr>
   </tbody></table><p></p></div><div class="subsection"><a name="module"></a><h3>module</h3><p>This element is optional. It is used when a particular module needs to be
 engaged for every service in the system.</p><table class="bodyTable"><caption></caption><tbody>
-    <tr class="b"><th>Attributes</th><th>Description</th><th>Possible Values</th></tr>
-    <tr class="a"><td>ref</td><td>the name of the module which is to be engaged globally</td><td>Name of the module.
+    <tr class="a"><th>Attributes</th><th>Description</th><th>Possible Values</th></tr>
+    <tr class="b"><td>ref</td><td>the name of the module which is to be engaged globally</td><td>Name of the module.
 
         <p>eg:- addressing</p>
       </td></tr>
   </tbody></table><p></p></div><div class="subsection"><a name="phaseOrder"></a><h3>phaseOrder</h3><p>The order of phases in execution chain has to be configured using phase
 order element.</p><table class="bodyTable"><caption></caption><tbody>
-    <tr class="b"><th>Attribute</th><th>Description</th><th>Possible Values</th></tr>
-    <tr class="a"><td>type</td><td>Flow to which the phase belongs to</td><td>inflow
+    <tr class="a"><th>Attribute</th><th>Description</th><th>Possible Values</th></tr>
+    <tr class="b"><td>type</td><td>Flow to which the phase belongs to</td><td>inflow
 
         <p>outflow</p>
 
@@ -1274,13 +1220,13 @@
       </td></tr>
   </tbody></table><p>A flow is a collection of handlers which are invoked for a particular
 message.The types of flows are described below.</p><table class="bodyTable"><caption></caption><tbody>
-    <tr class="b"><th>Flow</th><th>Description</th></tr>
-    <tr class="a"><td>inflow</td><td>Collection of handlers invoked for a message coming in to the
+    <tr class="a"><th>Flow</th><th>Description</th></tr>
+    <tr class="b"><td>inflow</td><td>Collection of handlers invoked for a message coming in to the
         system.</td></tr>
-    <tr class="b"><td>outflow</td><td>Collection of handles invoked for a message going out of the
+    <tr class="a"><td>outflow</td><td>Collection of handles invoked for a message going out of the
       system.</td></tr>
-    <tr class="a"><td>INfaultflow</td><td>Collection of handlers invoked for a incoming fault message.</td></tr>
-    <tr class="b"><td>Outfaultflow</td><td>Collection of handlers invoked for a outgoing fault message.</td></tr>
+    <tr class="b"><td>INfaultflow</td><td>Collection of handlers invoked for a incoming fault message.</td></tr>
+    <tr class="a"><td>Outfaultflow</td><td>Collection of handlers invoked for a outgoing fault message.</td></tr>
   </tbody></table><p></p><p>sub elements of <em>phaseOrder</em></p><p><em>phase</em>:- represents available phases in the execution chain. The
 system predefined phases cannot be changed.</p><p>The system predefined phases are,</p><ul>
   <li>Transport</li>
@@ -1289,19 +1235,19 @@
   <li>PostDispatch</li>
   <li>MessageOut</li>
 </ul><table class="bodyTable"><caption></caption><tbody>
-    <tr class="a"><th>Attribute</th><th>Description</th><th>Possible Values</th></tr>
-    <tr class="b"><td>name</td><td>Specifies the name of the phase</td><td>TransportIn,Dispatch,PreDispatch,PostDispatch,MessageOut,
+    <tr class="b"><th>Attribute</th><th>Description</th><th>Possible Values</th></tr>
+    <tr class="a"><td>name</td><td>Specifies the name of the phase</td><td>TransportIn,Dispatch,PreDispatch,PostDispatch,MessageOut,
 
         <p>User defined phases (can have user defined name)</p>
       </td></tr>
   </tbody></table><p></p><p>sub elements of phase</p><p><em>handler</em></p><table class="bodyTable"><caption></caption><tbody>
-    <tr class="a"><th>Attribute</th><th>Description</th><th>Possible Values</th></tr>
-    <tr class="b"><td>name</td><td>Specifies the handler name. Phase may contain zero or more
+    <tr class="b"><th>Attribute</th><th>Description</th><th>Possible Values</th></tr>
+    <tr class="a"><td>name</td><td>Specifies the handler name. Phase may contain zero or more
       handlers.</td><td>Based on handler name.
 
         <p>eg:- AddressingbasedDispatcher, RequestURIbaseddispatcher</p>
       </td></tr>
-    <tr class="a"><td>class</td><td>Specify shared library which implements the handler</td><td><p>Name of the shared library.</p>
+    <tr class="b"><td>class</td><td>Specify shared library which implements the handler</td><td><p>Name of the shared library.</p>
 
         <p>eg:-On Linux if the value is given as <em>foo</em> then shared
         library is libfoo.so.</p>
@@ -1309,9 +1255,9 @@
         <p>On Windows <em>foo.dll</em>.</p>
       </td></tr>
   </tbody></table><p></p></div><div class="subsection"><a name="messageReciever"></a><h3>messageReciever</h3><p></p><table class="bodyTable"><caption></caption><tbody>
-    <tr class="b"><th>Attribute</th><th>Description</th><th>Possible Values</th></tr>
-    <tr class="a"><td>mep</td><td>Message Exchange Pattern</td><td>INOUT, INONLY</td></tr>
-    <tr class="b"><td>class</td><td>Specify the shared library which implements the transport interface
+    <tr class="a"><th>Attribute</th><th>Description</th><th>Possible Values</th></tr>
+    <tr class="b"><td>mep</td><td>Message Exchange Pattern</td><td>INOUT, INONLY</td></tr>
+    <tr class="a"><td>class</td><td>Specify the shared library which implements the transport interface
 
         <p>If not specified Axis2/C default message reciever is used.</p>
       </td><td>Name of the shared library.
@@ -1327,8 +1273,8 @@
 <em>service</em>. If it is describing a service group, then the root element
 is <em>serviceGroup</em>. <em>service</em> will be a child element of
 serviceGroup, if there are multiple services specified in service.xml.</p></div><div class="subsection"><table class="bodyTable"><caption></caption><tbody>
-    <tr class="a"><th>Attributes</th><th>Description</th><th>Possible Values</th></tr>
-    <tr class="b"><td>name</td><td>Name of the service. This will be the name of the archive
+    <tr class="b"><th>Attributes</th><th>Description</th><th>Possible Values</th></tr>
+    <tr class="a"><td>name</td><td>Name of the service. This will be the name of the archive
 
         <p>file for the service.</p>
       </td><td>Depend on the service or the
@@ -1337,24 +1283,24 @@
       </td></tr>
   </tbody></table><p></p></div><div class="subsection"><p>This is optional. This element can be used to describe the service in a
 human readable format.</p><p></p></div><div class="subsection"><p>This is optional. Can be used to engage modules at service level.</p><table class="bodyTable"><caption></caption><tbody>
-    <tr class="a"><th>Attributes</th><th>Description</th><th>Possible Values</th></tr>
-    <tr class="b"><td>ref</td><td>Name of the module which is to be engaged for the service</td><td>Name of the module which is to be engaged at service level.</td></tr>
+    <tr class="b"><th>Attributes</th><th>Description</th><th>Possible Values</th></tr>
+    <tr class="a"><td>ref</td><td>Name of the module which is to be engaged for the service</td><td>Name of the module which is to be engaged at service level.</td></tr>
   </tbody></table><p></p><p></p></div><div class="subsection"><p>The service element can have any number of parameters as sub elemnts.</p><table class="bodyTable"><caption></caption><tbody>
-    <tr class="a"><th>Attributes</th><th>Description</th><th>Possible Values</th><th>Value of the text in parameter element</th></tr>
-    <tr class="b"><td>name</td><td>Specify the shared library the service is implemented</td><td>serviceClass</td><td>the service name. eg:- echo</td></tr>
-    <tr class="a"><td>locked</td><td>Specify whether the parameter can be changed from the code</td><td>true/false</td><td></td></tr>
+    <tr class="b"><th>Attributes</th><th>Description</th><th>Possible Values</th><th>Value of the text in parameter element</th></tr>
+    <tr class="a"><td>name</td><td>Specify the shared library the service is implemented</td><td>serviceClass</td><td>the service name. eg:- echo</td></tr>
+    <tr class="b"><td>locked</td><td>Specify whether the parameter can be changed from the code</td><td>true/false</td><td></td></tr>
   </tbody></table><p></p></div><div class="subsection"><p>The operations which the service provide are specified here.</p><table class="bodyTable"><caption></caption><tbody>
-    <tr class="b"><th>Attributes</th><th>Description</th><th>Possible Values</th></tr>
-    <tr class="a"><td>name</td><td>name of the operation</td><td>eg:- echoString</td></tr>
+    <tr class="a"><th>Attributes</th><th>Description</th><th>Possible Values</th></tr>
+    <tr class="b"><td>name</td><td>name of the operation</td><td>eg:- echoString</td></tr>
   </tbody></table><p>sub elements of <em>operation</em></p><p><em>parameter</em> elements can be present as sub elements. Zero or more
 parameters may be present.</p><table class="bodyTable"><caption></caption><tbody>
-    <tr class="b"><th>Attribute</th><th>Description</th><th>Possible Value</th><th>Parameter Vlue</th></tr>
-    <tr class="a"><td>name</td><td>ws-Addressing action mapping to the operation.</td><td>wsamapping</td><td>A URL representing the ws-Addressing action corresponding to the
+    <tr class="a"><th>Attribute</th><th>Description</th><th>Possible Value</th><th>Parameter Vlue</th></tr>
+    <tr class="b"><td>name</td><td>ws-Addressing action mapping to the operation.</td><td>wsamapping</td><td>A URL representing the ws-Addressing action corresponding to the
         operation</td></tr>
   </tbody></table><p></p></div><div class="subsection"><p>An operation specific messageReciver is specified from this. This is
 optional.</p><table class="bodyTable"><caption></caption><tbody>
-    <tr class="b"><th>Attributes</th><th>Description</th><th>Possible Values</th></tr>
-    <tr class="a"><td>class</td><td>Shared library with the message reciever implementation</td><td>Name of the shared library.
+    <tr class="a"><th>Attributes</th><th>Description</th><th>Possible Values</th></tr>

[... 525 lines stripped ...]


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org