<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- 
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 lang="en">
  <head>
    <meta charset="utf-8">
    <title>Downloads</title>
    <meta name="description" content="Apache Wink -- Downloads">
    <meta name="author" content="dev@wink.apache.org">

    <META http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <META name="Keywords" content="Apache Wink JSR-237 REST JavaEE6" />
    <META name="Owner" content="dev@wink.apache.org" />
    <META name="Robots" content="index, follow" />
    <META name="Security" content="Public" />
    <META name="DC.Rights" content="Copyright &copy; 2009-2013, The Apache Software Foundation" />

    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
    <!--[if lt IE 9]>
      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->

    <!-- Le styles -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="assets/bootstrap/css/bootstrap.min.css" rel="stylesheet">
    <link href="assets/bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet">
    <style type="text/css">
      body {
        padding-top: 60px;
        padding-bottom: 40px;
      }
    </style>

    <!-- Le fav and touch icons -->
    <link rel="shortcut icon" href="images/wink.png">
    <link rel="shortcut icon" href="images/favicon.ico">
    <link rel="apple-touch-icon" href="images/apple-touch-icon-iphone.png" />
    <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-ipad.png" />
    <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-iphone-retina.png" />
    <link rel="apple-touch-icon" sizes="144x144" href="images/apple-touch-icon-ipad-retina.png" />
  </head>

  <body>
    <div class="navbar navbar-inverse navbar-fixed-top">
      <div class="navbar-inner fill">
          <div class="container">
            <!--<a class="brand" href="index.html"><img src="images/favicon.ico" width="15%" height="15%"/></a>-->

            <ul class="nav">
              <li class="active"><a href="index.html">Home</a></li>
              <li class="active"><a href="news.html">News</a></li>
              <li class="active"><a href="downloads.html">Downloads</a></li>
              <li class="active"><a href="documentation.html">Documentation</a></li>
              <li class="active"><a href="community.html">Community</a></li>
              <li class="active"><a href="source.html">Source</a></li>
              <li class="active"><a href="faq.html">FAQ</a></li>
              <li class="active"><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
              <li class="active"><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
              <li class="active"><a href="privacy.html">Privacy</a></li>
            </ul>


            <!-- Google CSE Search Box Begins  -->
              <FORM class="navbar-form pull-right" id="searchbox_007756850371322559056:un2ixevjhis" action="http://www.google.com/cse">
                <INPUT type="hidden" name="cx" value="007756850371322559056:un2ixevjhis">
                <INPUT type="hidden" name="cof" value="FORID:0">
                <INPUT name="q" type="text" placeholder="Search">
              </FORM>
              <!--<SCRIPT type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_007756850371322559056:un2ixevjhis"></SCRIPT>-->
              <!-- Google CSE Search Box Ends -->
        </div><!--/container -->
      </div><!--/navbar-inner -->
    </div><!--/navbar -->
    

    
    <div class="container" id="content">
      <h1>Apache Wink Downloads</h1>

<hr>

<div class="row">
    <div class="span10">
       <p>Apache Wink is distributed in several formats for your convenience.</p>
       <p>You will be prompted for a mirror - if the file is not found on yours, please be patient, as it may take 24 hours to reach all mirrors.</p>
       <p>Apache Wink is distributed under the <a href="http://maven.apache.org/license.html">Apache License, version 2.0</a>.</p>
    </div>
</div>

<hr>

<h2>Download Apache Wink 1.3.0</h2>

<div class="row">
    <div class="span10">
        <table class="table table-hover">
        <tr>
          <th><b>Name</b></th><th><b>Archive</b></th><th><b>MD5</b></th><th><b>SHA-1</b></th><th><b>Signature</b></th>
        </tr>

        <tr>
            <td>Wink-1.3.0 (tar.gz)</td><td><a href="http://www.apache.org/dyn/closer.cgi/wink/1.3.0/apache-wink-1.3.0.tar.gz">tar.gz</a></td><td><a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0.tar.gz.md5">MD5</a> </td><td>  <a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0.tar.gz.sha1">SHA-1</a>  </td><td> <a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0.tar.gz.asc">ASC</a> </td>
        </tr>

        <tr>
            <td> Wink-1.3.0 (zip) </td><td> <a href="http://www.apache.org/dyn/closer.cgi/wink/1.3.0/apache-wink-1.3.0.zip">zip</a> </td><td>  <a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0.zip.md5">MD5</a> </td><td>  <a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0.zip.sha1">SHA-1</a> </td><td> <a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0.zip.asc">ASC</a> </td>
        </tr>

        <tr>
            <td> Wink-1.3.0 (Source tar.gz) </td><td> <a href="http://www.apache.org/dyn/closer.cgi/wink/1.3.0/apache-wink-1.3.0-src.tar.gz">tar.gz</a> </td><td>  <a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0-src.tar.gz.md5">MD5</a>  </td><td> <a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0-src.tar.gz.sha1">SHA-1</a> </td><td> <a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0-src.tar.gz.asc">ASC</a> </td>
        </tr>

        <tr>
            <td> Wink-1.3.0 (Source zip) </td><td> <a href="http://www.apache.org/dyn/closer.cgi/wink/1.3.0/apache-wink-1.3.0-src.zip">zip</a> </td><td>  <a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0-src.zip.md5">MD5</a> </td><td>  <a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0-src.zip.sha1">SHA-1</a> </td><td> <a href="http://www.apache.org/dist/wink/1.3.0/apache-wink-1.3.0-src.zip.asc">ASC</a> </td>
        </tr>

        <tr>
            <td> Release Notes </td><td> <a href="1.3.0/release_notes.html">1.3.0</a> </td><td> </td><td> </td><td> </td></tr><tr class="a"><td> KEYS </td><td> <a href="http://svn.apache.org/repos/asf/wink/tags/wink-1.3.0/KEYS">KEYS</a> </td><td> </td><td> </td><td> </td>
        </tr>
        </table>

        <p>Instructions for checking hashes and signatures is indicated on the <a href="http://www.apache.org/info/verification.html">Verifying Apache Software Foundation Releases</a> page.</p>
        <p>You can also retrieve the source files from our svn repository by typing :</p>

        <pre>svn co http://svn.apache.org/repos/asf/wink/tags/wink-1.3.0/</pre>

        <p>Instructions for checking hashes and signatures is indicated on the <a href="http://www.apache.org/info/verification.html">Verifying Apache Software Foundation Releases</a> page.</p>

        <p>You can also retrieve the source files from our svn repository by typing :</p>

        <pre>svn co http://svn.apache.org/repos/asf/wink/tags/wink-1.3.0/</pre>

        <h4> Using Maven </h4>

        <p>We strongly encourage our users to configure a Maven repository mirror closer to their location, please read <a href="http://maven.apache.org/guides/mini/guide-mirror-settings.html">How to Use Mirrors for Repositories</a>.

        <strong>Dependencies</strong>

        <p>Add the following dependencies to your Maven pom.xml to include the Apache Wink Client module or the Server module.</p>

        <strong>Server:</strong>
        <pre>&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wink&lt;/groupId&gt;
    &lt;artifactId&gt;wink-server&lt;/artifactId&gt;
    &lt;version&gt;1.3.0&lt;/version&gt;
&lt;/dependency&gt;</pre>

        <strong>Client:</strong>
        <pre>&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wink&lt;/groupId&gt;
    &lt;artifactId&gt;wink-client&lt;/artifactId&gt;
    &lt;version&gt;1.3.0&lt;/version&gt;
&lt;/dependency&gt;</pre>
    </div>

</div>

<h2>Previous Releases</h2>

<div class="row">
    <div class="span10">
        All previous releases of Apache Wink can be found in the <a href="http://archive.apache.org/dist/wink/">archives</a>.
    </div>
</div>
    </div> <!-- /container/content -->
    


    <hr>

    <div class="container">
      <footer>
        <div class="xright">
        Copyright &copy; 2009-2013 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.Licensed under <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.</br>
        Apache and the Apache feather logo are trademarks of The Apache Software Foundation. Other names may be trademarks of their respective owners.</br>
        </p>
    </footer>
  </div> <!-- /container/footer -->


  <!-- Le javascript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="assets/jquery/jquery-1.9.1.min.js"></script>
    <script src="assets/bootstrap/js/bootstrap.min.js"></script>
    
  </body>
</html>
