<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
  ~  Licensed to the Apache Software Foundation (ASF) under one
  ~  or more contributor license agreements.  See the NOTICE file
  ~  distributed with this work for additional information
  ~  regarding copyright ownership.  The ASF licenses this file
  ~  to you under the Apache License, Version 2.0 (the
  ~  "License"); you may not use this file except in compliance
  ~  with the License.  You may obtain a copy of the License at
  ~
  ~   http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~  Unless required by applicable law or agreed to in writing,
  ~  software distributed under the License is distributed on an
  ~   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~  KIND, either express or implied.  See the License for the
  ~  specific language governing permissions and limitations
  ~  under the License.
  -->

<document>

  <properties>
    <title>Documentation</title>
  </properties>

<body>

<section name="Previous version documentation">

    <p>The Apache Synapse team is proud to announce the availability of the 1.1.1 release on the
        28th of January 2008. As of December 2007, Apache Synapse has moved on to become a Top Level Project
        (TLP) of the Apache Software Foundation, moving out from Web Services project.
    </p>

<table class="bodyTable">
  <tbody>
    <tr class="a">
      <th>Version</th>
      <th>Date</th>
      <th>Documentation</th>
    </tr>
    <tr class="b">
      <td>1.1</td>
      <td>12-Nov-2007</td>
      <td><a href="1_1/content.html">click here</a> for 1.1 documentation</td>
    </tr>
    <tr class="b">
      <td>1.0</td>
      <td>08-Jun-2007</td>
      <td><a href="1_0/content.html">click here</a> for 1.0 documentation</td>
    </tr>
  </tbody>
</table>
</section>

</body>
</document>
