<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content=
"HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" />
<meta http-equiv="content-type" content="" />
<title>Apache Rampart 1.6.1 Release</title>
</head>
<body>
<!--Google Anayitcs tracking code-->
<script type="text/javascript" src=
"http://www.google-analytics.com/urchin.js">
</script><script type="text/javascript">
//<![CDATA[
_uacct = "UA-1954378-3";
urchinTracker();
//]]>
</script>
<!--End of Google Anayitcs tracking code-->
<h2>Apache Rampart 1.6.1 Release</h2>
<div>
<table border="1" cellpadding="1">
<tbody>
<tr>
<th scope="col">Distribution Name</th>
<th scope="col">Description</th>
<!--<th scope="col">Items</th>-->
<th scope="col">Download</th>
</tr>
<tr>
<td><a name="std-bin" id="std-bin"></a><strong>Standard Binary
Distribution</strong></td>
<td>This is the complete version of Apache Rampart and will contain samples
as well.</td>
<td><a href="[preferred]/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-bin.zip" title=
		"[preferred]/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-bin.zip" onClick=
"javascript:urchinTracker ('/downloads/rampart-dist-1.6.1-bin.zip');">zip</a>
<a href="http://www.apache.org/dist/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-bin.zip.md5"
	title="http://www.apache.org/dist/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-bin.zip.md5">MD5</a>
<a href="http://www.apache.org/dist/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-bin.zip.asc"
	title="http://www.apache.org/dist/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-bin.zip.asc">PGP</a></td>
</tr>
<tr>
<td><a name="src" id="src"></a> <strong>Source
Distribution</strong></td>
<td>This will contain the sources of Apache Rampart distribution.</td>
<td><a href="[preferred]/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-src.zip" title=
		"[preferred]/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-src.zip" onClick=
"javascript:urchinTracker ('/downloads/rampart-dist-1.6.1-src.zip');">zip</a>
<a href=
	"http://www.apache.org/dist/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-src.zip.md5"
title=
"http://www.apache.org/dist/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-src.zip.md5">MD5</a>
<a href=
	"http://www.apache.org/dist/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-src.zip.asc"
title=
"http://www.apache.org/dist/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-src.zip.asc">PGP</a></td>
</tr>
</tbody>
</table>
</div>
<div align="left"><br />
<p>[if-any logo] <a href="[link]"><img align="right" src="[logo]"
border="0" /></a>[end] The currently selected mirror is
<b>[preferred]</b>. If you encounter a problem with this mirror,
please select another mirror. If all mirrors are failing, there are
<i>backup</i> mirrors (at the end of the mirrors list) that should
be available.</p>
<form action="[location]" method="get" id="SelectMirror" name="SelectMirror">
Other mirrors: <select name="Preferred">
[if-any http]
  [for http]<option value="[http]">[http]</option>[end]
[end]  
[if-any ftp]
  [for ftp]<option value="[ftp]">[ftp]</option>[end]
[end]
[if-any backup]
  [for backup]<option value="[backup]">[backup] (backup)</option>[end]
[end]
</select><input type="submit" value="Change"/></form><p>You may also consult the <a class="externalLink" href="http://www.apache.org/mirrors/">complete list of mirrors</a>
.</p>
<p><strong>Note:</strong> when downloading from a mirror please
check the <a href=
"http://www.apache.org/dev/release-signing#md5">md5sum</a> and
verify the <a href=
"http://www.apache.org/dev/release-signing#openpgp">OpenPGP</a>
compatible signature from the main Apache site. These can be
downloaded by following the links above. This <a href=
"http://www.apache.org/dist/axis/axis2/java/rampart/KEYS">KEYS</a> file contains
the public keys that can be used for verifying signatures. It is
recommended that (when possible)a <a href=
"http://www.apache.org/dev/release-signing#web-of-trust">Web of
trust</a> is used to confirm the identity of these keys.</p>
</div>
</body>
</html>
