<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia at Feb 18, 2013 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Apache Wink - </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 name="Date-Revision-yyyymmdd" content="20130218" />
    <meta http-equiv="Content-Language" content="en" />
                                                    
<link rel="shortcut icon" href="./images/wink2.ico"/>
                                                        
<style type="text/css" media="all">@import url(css/site.css);</style>
                      
  </head>
  <body class="composite">
    <div id="banner">
                  <a href="http://incubator.apache.org/wink/" id="bannerLeft">
                                                <img src="../images/wink2-s.png" alt="Apache Wink" />
                </a>
                        <a href="http://incubator.apache.org" id="bannerRight">
                                        <img src="http://incubator.apache.org/images/apache-incubator-logo.png" alt="Apache Incubator" />
                </a>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
            
                
                <div class="xleft">
                                  <a href="http://www.apache.org" class="externalLink" title="Apache">Apache</a>
                &gt;
                              <a href="http://incubator.apache.org" class="externalLink" title="Incubator">Incubator</a>
                &gt;
                              <a href="http://incubator.apache.org/wink" class="externalLink" title="Wink">Wink</a>
                  </div>
            <div class="xright">                    <a href="http://svn.apache.org/viewvc/incubator/wink/trunk" class="externalLink" title="SVN">SVN</a>
            |
                        <a href="http://cwiki.apache.org/confluence/display/WINK/Index" class="externalLink" title="Wiki">Wiki</a>
            |
                        <a href="http://issues.apache.org/jira/browse/WINK" class="externalLink" title="Jira">Jira</a>
              
                
                &nbsp;| <span id="publishDate">Last Published: 2013-02-18</span>
            </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
             
                
                                <h5>Main</h5>
                  <ul>
                  <li class="none">
                          <a href=".././index.html" title="Introduction">Introduction</a>
            </li>
                  <li class="none">
                          <a href=".././news.html" title="News">News</a>
            </li>
                  <li class="none">
                          <a href=".././downloads.html" title="Downloads">Downloads</a>
            </li>
                  <li class="none">
                          <a href=".././documentation.html" title="Documentation">Documentation</a>
            </li>
                  <li class="none">
                          <a href=".././community.html" title="Community">Community</a>
            </li>
                  <li class="none">
                          <a href=".././faqs.html" title="FAQ">FAQ</a>
            </li>
          </ul>
                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="poweredBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
      </a>
                   
                
            </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        <div class="section"><h3>Apache Wink 1.1.3 Release Notes<a name="Apache_Wink_1.1.3_Release_Notes"></a></h3></div><div class="section"><h4>Overview<a name="Overview"></a></h4></div><p>This is the fifth official release of Apache Wink project. Apache Wink is a framework that helps you to produce and consume RESTful Web Services. Apache Wink is TCK compliant implementation of the JAX-RS v1.1 specification. The project also introduces Java API for writing clients that consume HTTP-based RESTful Web Services.</p><div class="section"><h4>Complete list of issues fixed in 1.1.3<a name="Complete_list_of_issues_fixed_in_1.1.3"></a></h4></div><div class="section"><h5>Bug<a name="Bug"></a></h5></div><ul><li>WINK-286 - GET methods fail to serve requests without Content-Type if the class/interface has @Consumes</li><li>WINK-292 - Add proxy authentification support for the RestClient</li><li>WINK-307 - Fix obscure error message during Service Doc generation</li><li>WINK-311 - Resource Locator's @PathParam resolution is not correct.</li><li>WINK-312 - GenericsUtils.isAssignable() cannot handle primitive types</li><li>WINK-316 - AdminServlet doesn't process QueryParams properly</li><li>WINK-317 - HttpHeadersImpl.getCookies() only ever returns the first cookie in the Cookie header</li><li>WINK-320 - The JSON4J tests are failing due to not being able to find test resources</li><li>WINK-332 - JAXBXmlProvider blocks JAXB implementation from successfully parsing XML when no concrete type can be found.</li><li>WINK-339 - org.apache.wink.test.mock.MockHttpServletRequestWrapper doesn't handle getContentType() and parameter related methods</li></ul><div class="section"><h5>Improvement<a name="Improvement"></a></h5></div><ul><li>WINK-287 - Support web beans / (J)CDI / JSR-299</li><li>WINK-294 - Some plugins missing versions</li><li>WINK-295 - Upgrade to SLF4J 1.6.0</li><li>WINK-296 - DEBUG -&gt; TRACE logging reform</li><li>WINK-297 - serviceability improvement; externalize strings, confirm formatting</li><li>WINK-299 - Make Jackson the default JSON provider for Wink</li><li>WINK-304 - serviceability improvement, output information upon application registration, errors</li><li>WINK-305 - allow configuration file for SSL</li><li>WINK-310 - Annotations inherited by a resource class should determine parameter type from the subclass, not the superclass</li><li>WINK-315 - Improve the tolerance of malformed media types</li><li>WINK-319 - Simplify addition of Request/Response handlers</li><li>WINK-325 - Allow AtomCommonAttributes#otherAttributes and AtomCommonAttributesSimpleContent#otherAttributes to be lazy initialized.</li></ul><div class="section"><h5>New Feature<a name="New_Feature"></a></h5></div><ul><li>WINK-313 - WADL support</li><li>WINK-318 - Wink JSON model</li><li>WINK-321 - Support @XmlJavaTypeAdapter and @XmlElement on method params</li><li>WINK-322 - Add JSR250 life cycle management support</li><li>WINK-326 - AsyncHttpClient module</li><li>WINK-336 - Add a wink provider for Google Protocol Buffer</li><li>WINK-337 - Add a wink provider for Apache Thrift</li></ul><div class="section"><h5>Test<a name="Test"></a></h5></div><ul><li>WINK-298 - enhance DTD expansion tests</li></ul>
      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">Copyright &#169;                    2009-2013
                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
            All Rights Reserved.      
                
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
