<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<!--
   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.
-->
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
        <meta name="description" lang="en" content="Apache Click Java web application framework"/>
        <meta name="keywords" lang="en" content="Apache Click, Click Framework, Java, JEE, J2EE, web application framework, open source"/>
        <title>Apache Click</title>
        <link rel="stylesheet" type="text/css" href="../help.css"/>
        <style rel="stylesheet" type="text/css">
          .heading {
            margin-top: 2em;
          }
          table {
              width: 670px;
          }
        </style>
    </head>

    <body>

        <h1>Downloads</h1>

        <h2 class="heading">Apache Releases</h2>
        Please select a release from the table below. All releases are platform independent.
        <p/>
        <table cellspacing="1" cellpadding="8" class="click-table">
            <thead>
                <tr>
                    <th>Package</th>
                    <th>PGP key</th>
                    <th>MD5</th>
                    <th>Version</th>
                    <th>Release date</th>
                    <th>Status</th>
                </tr>
            </thead>
            <tbody>
                <tr class="odd">
                    <td><a target="_blank" class="external" href="http://www.apache.org/dyn/closer.cgi/click/click/2.1.0/click-2.1.0.zip">
                    click-2.1.0.zip</a></td>
                    <td><a target="_blank" class="external" href="http://www.apache.org/dist/click/click/2.1.0/click-2.1.0.zip.asc">pgp</a></td>
                    <td><a target="_blank" class="external" href="http://www.apache.org/dist/click/click/2.1.0/click-2.1.0.zip.md5">md5</a></td>
                    <td>2.1.0</td>
                    <td>2010-02-10</td>
                    <td><b>Stable</b></td>
                </tr>
                <tr class="odd">
                    <td><a target="_blank" class="external" href="http://www.apache.org/dyn/closer.cgi/incubator/click/click/2.1.0-RC1/click-2.1.0-RC1-incubating.zip">
                    click-2.1.0-RC1-incubating.zip</a></td>
                    <td><a target="_blank" class="external" href="http://www.apache.org/dist/incubator/click/click/2.1.0-RC1/click-2.1.0-RC1-incubating.zip.asc">pgp</a></td>
                    <td><a target="_blank" class="external" href="http://www.apache.org/dist/incubator/click/click/2.1.0-RC1/click-2.1.0-RC1-incubating.zip.MD5">md5</a></td>
                    <td>2.1.0-RC1</td>
                    <td>2009-06-28</td>
                    <td><b>Release Candidate</b></td>
                </tr>
                <tr class="even">
                    <td><a target="_blank" class="external" href="http://www.apache.org/dyn/closer.cgi/incubator/click/click/2.0.1/click-2.0.1-incubating.zip">
                    click-2.0.1-incubating.zip</a></td>
                    <td><a target="_blank" class="external" href="http://www.apache.org/dist/incubator/click/click/2.0.1/click-2.0.1-incubating.zip.asc">pgp</a></td>
                    <td><a target="_blank" class="external" href="http://www.apache.org/dist/incubator/click/click/2.0.1/click-2.0.1-incubating.zip.MD5">md5</a></td>
                    <td>2.0.1</td>
                    <td>2009-02-15</td>
                    <td><b>Stable</b></td>
                </tr>
            </tbody>
        </table>
        <p/>

        <h2 class="heading">Pre Apache Releases</h2>
        Please select a release from the table below. All releases are platform independent.
        <p/>
        <table cellspacing="1" cellpadding="8" class="click-table">
            <thead>
                <tr>
                    <th>Package</th>
                    <th>Version</th>
                    <th>Release date</th>
                    <th>Status</th>
                </tr>
            </thead>
            <tbody>
                <tr class="odd">
                    <td><a target="_blank" class="external" href="https://sourceforge.net/project/showfiles.php?group_id=82095&package_id=84113&release_id=684671">
                    click-1.5.2.zip</a></td>
                    <td>1.5.2</td>
                    <td>2009-05-23</td>
                    <td><b>Stable</b></td>
                </tr>
                <tr class="even">
                    <td><a target="_blank" class="external" href="http://sourceforge.net/project/showfiles.php?group_id=82095&package_id=84113&release_id=655844">
                    click-1.5.1.zip</a></td>
                    <td>1.5.1</td>
                    <td>2009-01-23</td>
                    <td><b>Stable</b></td>
                </tr>
                <tr class="odd">
                    <td><a target="_blank" class="external" href="http://sourceforge.net/project/showfiles.php?group_id=82095&package_id=84113&release_id=637639">
                    click-1.5.zip</a></td>
                    <td>1.5</td>
                    <td>2008-11-02</td>
                    <td><b>Stable</b></td>
                </tr>
                <tr class="even">
                    <td><a target="_blank" class="external" href="http://sourceforge.net/project/showfiles.php?group_id=82095&package_id=84113&release_id=595596">
                        click-1.4.2.zip</a>
                    </td>
                    <td>1.4.2</td>
                    <td>2008-04-28</td>
                    <td><b>Stable</b></td>
                </tr>
                <tr class="odd">
                    <td><a target="_blank" class="external" href="http://sourceforge.net/project/showfiles.php?group_id=82095&package_id=84113&release_id=515196">
                        click-1.3.1.zip</a>
                    </td>
                    <td>1.3.1</td>
                    <td>2007-06-11</td>
                    <td><b>Stable</b></td>
                </tr>
                <tr class="even">
                    <td><a target="_blank" class="external" href="http://sourceforge.net/project/showfiles.php?group_id=82095&package_id=84113">
                        archives</a>
                    </td>
                    <td></td>
                    <td></td>
                    <td></td>
                </tr>
            </tbody>
        </table>
        <p/>
        <b>Note:</b> pre Apache releases are hosted at <a target="_blank" class="external" href="http://sourceforge.net">http://sourceforge.net</a>
        and is not endorsed by nor affiliated with the Apache Software Foundation.
        
        <h2 class="heading">Maven</h2>

        <p/>
        Click Maven bundles are also available from the Maven 2 repository
        <a target="_blank" class="external" href="http://repo1.maven.org/maven2/org/apache/click/">http://repo1.maven.org/maven2/org/apache/click/</a>.

        <p/>
        To include Click in your project add the following dependency in your <tt>pom.xml</tt>:

<pre style="border: 1px solid #888888; padding: 1em; overflow: auto">
&lt;!-- Specifying the artifactId click will include Click Core in your project --&gt;
<span class="tag">&lt;dependency&gt;</span>
    <span class="tag">&lt;groupId&gt;</span>org.apache.click<span class="tag">&lt;/groupId&gt;</span>
    <span class="tag">&lt;artifactId&gt;</span>click<span class="tag">&lt;/artifactId&gt;</span>
    <span class="tag">&lt;version&gt;</span>X.X.X<span class="tag">&lt;/version&gt;</span>
    <span class="tag">&lt;scope&gt;</span>compile<span class="tag">&lt;/scope&gt;</span>
<span class="tag">&lt;/dependency&gt;</span>

&lt;!-- Specifying the artifactId click-extras will include Click Extras in your project --&gt;
<span class="tag">&lt;dependency&gt;</span>
    <span class="tag">&lt;groupId&gt;</span>org.apache.click<span class="tag">&lt;/groupId&gt;</span>
    <span class="tag">&lt;artifactId&gt;</span>click-extras<span class="tag">&lt;/artifactId&gt;</span>
    <span class="tag">&lt;version&gt;</span>X.X.X<span class="tag">&lt;/version&gt;</span>
    <span class="tag">&lt;scope&gt;</span>compile<span class="tag">&lt;/scope&gt;</span>
<span class="tag">&lt;/dependency&gt;</span>
</pre>

        Specify your Click version in the <tt>version</tt> tag e.g: <span class="tag">&lt;version&gt;</span>2.1.0<span class="tag">&lt;/version&gt;</span>

        <p/>
        The following <tt>artifactId</tt>'s are available:
        <ul>
            <li>
                click
            </li>
            <li>
                click-extras
            </li>
            <li>
                click-mock
            </li>
            <li>
                click-nodeps
            </li>
        </ul>
    </body>
</html>
