<html>
<head>
  <meta http-equiv="content-type" content="">
  <title>:: Axis2 Modules ::</title>
  <link href="../css/axis-docs.css" rel="stylesheet" type="text/css"
  media="all">
</head>

<body lang="en">
<h1>Apache Axis2 Modules</h1>

<p>Axis2 architecture is flexible enough to extend its functionalities using
modules. This page is maintained to keep track of the relevant modules that
are developed on top of Axis2.</p>

<table width="675" border="1" align="center" cellpadding="1">
  <tbody>
    <tr>
      <th width="68" scope="col">Name</th>
      <th width="147" scope="col">Description</th>
      <th width="52" scope="col">Version</th>
      <th width="80" scope="col">Compatible Axis2 version</th>
      <th width="97" scope="col">Downloads</th>
      <th width="191" scope="col">Comments</th>
    </tr>
    <tr>
      <td><a href="addressing/index.html">Addressing</a></td>
      <td>This is an implementation of WS-Addressing submission version
        (2004-08) and WS-Addressing 2005-08 versions.</td>
      <td>1.2</td>
      <td>1.2</td>
      <td><a
        href="http://www.apache.org/dyn/mirrors/mirrors.cgi/ws/axis2/modules/addressing/1_2/addressing-1.2.mar"
        title="http://www.apache.org/dyn/mirrors/mirrors.cgi/ws/axis2/modules/addressing/1_2/addressing-1.2.mar">mar</a>
        <a
        href="http://www.apache.org/dyn/mirrors/mirrors.cgi/ws/axis2/modules/addressing/1_2/addressing-1.2.mar.md5"
        title="http://www.apache.org/dyn/mirrors/mirrors.cgi/ws/axis2/modules/addressing/1_2/addressing-1.2.mar.md5">MD5</a>
        <a
        href="http://www.apache.org/dyn/mirrors/mirrors.cgi/ws/axis2/modules/addressing/1_2/addressing-1.2.mar.asc"
        title="http://www.apache.org/dyn/mirrors/mirrors.cgi/ws/axis2/modules/addressing/1_2/addressing-1.2.mar.asc">PGP</a></td>
      <td></td>
    </tr>
    <tr>
      <td><a href="../1_2/soapmonitor-module.html">SOAP Monitor</a></td>
      <td>SOAP Monitor utility provides a way for Web services developers to
        monitor the SOAP messages being sent/received without requiring any
        special configuration or restarting of the server</td>
      <td>1.2</td>
      <td>1.2</td>
      <td><a
        href="http://www.apache.org/dyn/mirrors/mirrors.cgi/ws/axis2/modules/addressing/1_2/soapmonitor-1.2.zip"
        title="http://www.apache.org/dyn/mirrors/mirrors.cgi/ws/axis2/modules/addressing/1_2/soapmonitor-1.2.zip">zip</a>
        <a
        href="http://www.apache.org/dyn/mirrors/mirrors.cgi/ws/axis2/modules/addressing/1_2/soapmonitor-1.2.zip.md5"
        title="http://www.apache.org/dyn/mirrors/mirrors.cgi/ws/axis2/modules/addressing/1_2/soapmonitor-1.2.zip.md5">MD5</a>
        <a
        href="http://www.apache.org/dyn/mirrors/mirrors.cgi/ws/axis2/modules/addressing/1_2/soapmonitor-1.2.zip.asc"
        title="http://www.apache.org/dyn/mirrors/mirrors.cgi/ws/axis2/modules/addressing/1_2/soapmonitor-1.2.zip.asc">PGP</a></td>
      <td></td>
    </tr>
    <tr>
      <td><a
        href="http://ws.apache.org/sandesha/sandesha2/index.html">Sandesha2</a></td>
      <td>An implementation of WS-RM specification February 2005</td>
      <td>1.2</td>
      <td>1.2</td>
      <td><a
        href="http://apache.hoxt.com/ws/sandesha2/1_1/sandesha2-1.1-src.zip"
        title="http://apache.hoxt.com/ws/sandesha2/1_1/sandesha2-1.1-src.zip">zip</a>
        <a
        href="http://www.apache.org/dist/ws/sandesha2/1_1/sandesha2-1.1-src.zip.md5"
        title="http://www.apache.org/dist/ws/sandesha2/1_1/sandesha2-1.1-src.zip.md5">MD5</a>
        <a
        href="http://www.apache.org/dist/ws/sandesha2/1_1/sandesha2-1.1-src.zip.asc"
        title="http://www.apache.org/dist/ws/sandesha2/1_1/sandesha2-1.1-src.zip.asc">PGP</a></td>
      <td>Click <a
        href="http://people.apache.org/repo/m1-snapshot-repository/org.apache.sandesha2/">here</a>
        to get the Sandesha2 nightly builds compatible with the latest Axis2
        SNAPSHOT.</td>
    </tr>
    <tr>
      <td><a href="rampart/1_2/security-module.html">Rampart</a></td>
      <td>The WS-Security and WS-SecureConversation implementation for axis2.
        Now with a new configuration model based on WS-SecurityPolicy</td>
      <td>1.2</td>
      <td>1.2</td>
      <td><a
        href="http://www.apache.org/dyn/mirrors/mirrors.cgi/ws/rampart/1_1/rampart-1.1.zip"
        title="http://www.apache.org/dyn/mirrors/mirrors.cgi/ws/rampart/1_1/rampart-1.1.zip">Distro
        zip</a> <a
        href="http://www.apache.org/dyn/mirrors/mirrors.cgi/ws/rampart/1_1/rampart-1.1.zip.md5"
        title="http://www.apache.org/dyn/mirrors/mirrors.cgi/ws/rampart/1_1/rampart-1.1.zip.md5">MD5</a>
        <a
        href="http://www.apache.org/dyn/mirrors/mirrors.cgi/ws/rampart/1_1/rampart-1.1.zip.asc"
        title="http://www.apache.org/dyn/mirrors/mirrors.cgi/ws/rampart/1_1/rampart-1.1.zip.asc">PGP</a></td>
      <td>Please follow the instructions in the README.txt available in the
        rampart-1.2.zip file to copy the required libraries to the main "lib"
        dir of Axis2.

        <p></p>

        <p><strong>Note</strong>: In Axis2 v1.2 to run Rampart v1.2 samples,
        change the addressing mar value to adressing-1.2.mar as given below;
        <code>&lt;property name="addressing.mar"
        value="addressing-1.2.mar"/&gt;</code> in
        ..\rampart-1.2\samples\basic\build.xml</p>
      </td>
    </tr>
  </tbody>
</table>
<br>
Previous module releases are available <a href="previous.html">here</a></body>
</html>
