<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
    <title>Apache Rampart - Source Repository</title>
    <style type="text/css" media="all">
      @import url("./css/maven-base.css");
      @import url("./css/maven-theme.css");
      @import url("./css/site.css");
    </style>
    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
      </head>
  <body class="composite">
    <div id="banner">
                  <a href="ws.apache.org/rampart/" id="bannerLeft">Apache Rampart</a>
     <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
    <div class="xleft">
        Last Published: 13 Jul 2007
    </div>
    <div class="xright"><a href="http://www.apache.org/">Apache</a>
          <a href="../">WebServices</a>
       </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
                   <h5>Apache Rampart</h5>
        <ul>
              
    <li class="none">
              <a href="index.html">About</a>
        </li>
    
            <li class="expanded">
              <a href="">Downloads</a>
                <ul>
                  
    <li class="none">
              <a href="download.cgi">Releases</a>
        </li>
                  
    <li class="none">
              <strong>Source Code</strong>
        </li>
              </ul>
        </li>
      <li class="expanded">
              <a href="">Documentation</a>
                <ul>
                  
    <li class="none">
              <a href="quick-start.html">Quick Start Guide</a>
        </li>
 
   <li class="none">
              <a href="rampartconfig-guide.html">Rampart Configuration</a>
    </li>
                  
    <li class="none">
              <a href="developer-guide.html">Developer Guide</a>
        </li>
              </ul>
        </li>
              
    <li class="expanded">
              <a href="">Project Information</a>
                <ul>
                  
    <li class="none">
              <a href="mail-lists.html">Mailing Lists</a>
        </li>
                  
    <li class="none">
              <a href="http://issues.apache.org/jira/browse/Rampart">Issue Tracking</a>
        </li>
                  
    <li class="none">
              <a href="dependencies.html">Dependencies</a>
        </li>
              </ul>
        </li>
          </ul>
                                       <a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy">
            <img alt="Built by Maven" src="./images/logos/maven-feather.png"></img>
          </a>
                       
     </div>
    </div>
<div id="bodyColumn"><div id="contentBox">
<div class="section">
<h2>Releases</h2>

<p>The Apache Rampart team is proud to announce the aviailability of the 1.2 release from June 2007</p>

<table class="bodyTable">
  <tbody>
    <tr class="a">
      <th>Version</th>
      <th>Date</th>
      <th>Description</th>
    </tr>
    <tr class="b">
      <td><a
        href="http://ws.apache.org/rampart/download/1.2/download.cgi">1.2</a></td>
      <td>June-2007</td>
      <td>1.2 Release</td>
    </tr>
  </tbody>
</table>
</div>
</div>
</div>

<div class="clear">
<hr>
</div>

<div id="footer">

<div class="xright">
&copy; 2005-2006 Apache Software Foundation</div>

<div class="clear">
<hr>
</div>
</div>

</body>
</html>
