You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by bu...@apache.org on 2013/11/21 19:48:22 UTC

svn commit: r887578 - in /websites/production/cxf/content: cache/docs.pageCache docs/30-migration-guide.html docs/jax-rs-basics.html docs/jax-rs.html

Author: buildbot
Date: Thu Nov 21 18:48:22 2013
New Revision: 887578

Log:
Production update by buildbot for cxf

Modified:
    websites/production/cxf/content/cache/docs.pageCache
    websites/production/cxf/content/docs/30-migration-guide.html
    websites/production/cxf/content/docs/jax-rs-basics.html
    websites/production/cxf/content/docs/jax-rs.html

Modified: websites/production/cxf/content/cache/docs.pageCache
==============================================================================
Binary files - no diff available.

Modified: websites/production/cxf/content/docs/30-migration-guide.html
==============================================================================
--- websites/production/cxf/content/docs/30-migration-guide.html (original)
+++ websites/production/cxf/content/docs/30-migration-guide.html Thu Nov 21 18:48:22 2013
@@ -140,6 +140,9 @@ Apache CXF -- 3.0 Migration Guide
 <ul><li>CXF JAX-RS Form extension has been dropped, please use JAX-RS 2.0 Form.</li></ul>
 
 
+<ul><li>CXF JAX-RS ParameterHandler has been dropped, please use JAX-RS 2.0 ParamConverterProvider.</li></ul>
+
+
 <h4><a shape="rect" name="3.0MigrationGuide-JAXWS%2FSoap"></a>JAX-WS/Soap</h4>
 
 <ul><li>Add new code generator frontend to add CXF specific constructors and methods.  (pass "-fe cxf" to wsdl2java)</li></ul>

Modified: websites/production/cxf/content/docs/jax-rs-basics.html
==============================================================================
--- websites/production/cxf/content/docs/jax-rs-basics.html (original)
+++ websites/production/cxf/content/docs/jax-rs-basics.html Thu Nov 21 18:48:22 2013
@@ -133,7 +133,7 @@ Apache CXF -- JAX-RS Basics
 <div id="ConfluenceContent"><p><span style="font-size:2em;font-weight:bold"> JAX-RS : Understanding the Basics </span></p>
 
 <div>
-<ul><li><a shape="rect" href="#JAX-RSBasics-WhatisNewinJAXRS2.0">What is New in JAX-RS 2.0</a></li><ul><li><a shape="rect" href="#JAX-RSBasics-Filters">Filters</a></li><ul><li><a shape="rect" href="#JAX-RSBasics-Server">Server</a></li><li><a shape="rect" href="#JAX-RSBasics-Client">Client</a></li></ul><li><a shape="rect" href="#JAX-RSBasics-Interceptors">Interceptors</a></li><li><a shape="rect" href="#JAX-RSBasics-DynamicFeatures">Dynamic Features</a></li><li><a shape="rect" href="#JAX-RSBasics-Exceptions">Exceptions</a></li><li><a shape="rect" href="#JAX-RSBasics-Suspendedinvocations">Suspended invocations</a></li><li><a shape="rect" href="#JAX-RSBasics-Parameterconverters">Parameter converters</a></li><li><a shape="rect" href="#JAX-RSBasics-Beanparameters">Bean parameters</a></li><li><a shape="rect" href="#JAX-RSBasics-Updatestothematchingalgorithm">Updates to the matching algorithm</a></li><li><a shape="rect" href="#JAX-RSBasics-Injectionintosubresources">Injection into subresour
 ces</a></li><li><a shape="rect" href="#JAX-RSBasics-ClientAPI">Client API</a></li><ul><li><a shape="rect" href="#JAX-RSBasics-AsynchronousInvocations">Asynchronous Invocations</a></li><li><a shape="rect" href="#JAX-RSBasics-Responseinterfaceupdates">Response interface updates</a></li></ul></ul><li><a shape="rect" href="#JAX-RSBasics-Resourceclass">Resource class</a></li><li><a shape="rect" href="#JAX-RSBasics-@Path">@Path</a></li><li><a shape="rect" href="#JAX-RSBasics-HTTPMethod">HTTP Method</a></li><li><a shape="rect" href="#JAX-RSBasics-Returntypes">Return types</a></li><li><a shape="rect" href="#JAX-RSBasics-Exceptionhandling">Exception handling</a></li><ul><li><a shape="rect" href="#JAX-RSBasics-MappingexceptionsthrownfromCXFinterceptors">Mapping exceptions thrown from CXF interceptors</a></li><li><a shape="rect" href="#JAX-RSBasics-CustomizingdefaultWebApplicationExceptionmapper">Customizing default WebApplicationException mapper</a></li></ul><li><a shape="rect" href="#JAX-RSB
 asics-DealingwithParameters">Dealing with Parameters</a></li><ul><li><a shape="rect" href="#JAX-RSBasics-Parameterbeans">Parameter beans</a></li></ul><li><a shape="rect" href="#JAX-RSBasics-Resourcelifecycles">Resource lifecycles</a></li><li><a shape="rect" href="#JAX-RSBasics-Overviewoftheselectionalgorithm.">Overview of the selection algorithm.</a></li><ul><li><a shape="rect" href="#JAX-RSBasics-Selectingbetweenmultipleresourceclasses">Selecting between multiple resource classes</a></li><li><a shape="rect" href="#JAX-RSBasics-Selectingbetweenmultipleresourcemethods">Selecting between multiple resource methods</a></li><li><a shape="rect" href="#JAX-RSBasics-Resourcemethodsandmediatypes">Resource methods and media types</a></li><li><a shape="rect" href="#JAX-RSBasics-Customselectionbetweenmultipleresources">Custom selection between multiple resources</a></li></ul><li><a shape="rect" href="#JAX-RSBasics-Contextannotations">Context annotations</a></li><ul><li><a shape="rect" href="#JA
 X-RSBasics-CustomContexts">Custom Contexts</a></li></ul><li><a shape="rect" href="#JAX-RSBasics-URIcalculationusingUriInfoandUriBuilder">URI calculation using UriInfo and UriBuilder</a></li><li><a shape="rect" href="#JAX-RSBasics-Annotationinheritance">Annotation inheritance</a></li><li><a shape="rect" href="#JAX-RSBasics-Subresourcelocators.">Sub-resource locators.</a></li><ul><li><a shape="rect" href="#JAX-RSBasics-Staticresolutionofsubresources">Static resolution of subresources</a></li></ul><li><a shape="rect" href="#JAX-RSBasics-MessageBodyProviders">Message Body Providers</a></li><ul><li><a shape="rect" href="#JAX-RSBasics-CustomMessageBodyProviders">Custom Message Body Providers</a></li><li><a shape="rect" href="#JAX-RSBasics-Registeringcustomproviders">Registering custom providers</a></li></ul><li><a shape="rect" href="#JAX-RSBasics-Customizingmediatypesformessagebodyproviders">Customizing media types for message body providers</a></li><li><a shape="rect" href="#JAX-RSBasics
 -AdvancedHTTP">Advanced HTTP</a></li></ul></div>
+<ul><li><a shape="rect" href="#JAX-RSBasics-WhatisNewinJAXRS2.0">What is New in JAX-RS 2.0</a></li><ul><li><a shape="rect" href="#JAX-RSBasics-Filters">Filters</a></li><ul><li><a shape="rect" href="#JAX-RSBasics-Server">Server</a></li><li><a shape="rect" href="#JAX-RSBasics-Client">Client</a></li></ul><li><a shape="rect" href="#JAX-RSBasics-Interceptors">Interceptors</a></li><li><a shape="rect" href="#JAX-RSBasics-DynamicFeatures">Dynamic Features</a></li><li><a shape="rect" href="#JAX-RSBasics-Exceptions">Exceptions</a></li><li><a shape="rect" href="#JAX-RSBasics-Suspendedinvocations">Suspended invocations</a></li><li><a shape="rect" href="#JAX-RSBasics-Parameterconverters">Parameter converters</a></li><li><a shape="rect" href="#JAX-RSBasics-Beanparameters">Bean parameters</a></li><li><a shape="rect" href="#JAX-RSBasics-ResourceInfo">ResourceInfo</a></li><li><a shape="rect" href="#JAX-RSBasics-Injectionintosubresources">Injection into subresources</a></li><li><a shape="rect" href="
 #JAX-RSBasics-Updatestothematchingalgorithm">Updates to the matching algorithm</a></li><li><a shape="rect" href="#JAX-RSBasics-ClientAPI">Client API</a></li></ul><li><a shape="rect" href="#JAX-RSBasics-Resourceclass">Resource class</a></li><li><a shape="rect" href="#JAX-RSBasics-@Path">@Path</a></li><li><a shape="rect" href="#JAX-RSBasics-HTTPMethod">HTTP Method</a></li><li><a shape="rect" href="#JAX-RSBasics-Returntypes">Return types</a></li><li><a shape="rect" href="#JAX-RSBasics-Exceptionhandling">Exception handling</a></li><ul><li><a shape="rect" href="#JAX-RSBasics-MappingexceptionsthrownfromCXFinterceptors">Mapping exceptions thrown from CXF interceptors</a></li><li><a shape="rect" href="#JAX-RSBasics-CustomizingdefaultWebApplicationExceptionmapper">Customizing default WebApplicationException mapper</a></li></ul><li><a shape="rect" href="#JAX-RSBasics-DealingwithParameters">Dealing with Parameters</a></li><ul><li><a shape="rect" href="#JAX-RSBasics-Parameterbeans">Parameter be
 ans</a></li></ul><li><a shape="rect" href="#JAX-RSBasics-Resourcelifecycles">Resource lifecycles</a></li><li><a shape="rect" href="#JAX-RSBasics-Overviewoftheselectionalgorithm.">Overview of the selection algorithm.</a></li><ul><li><a shape="rect" href="#JAX-RSBasics-Selectingbetweenmultipleresourceclasses">Selecting between multiple resource classes</a></li><li><a shape="rect" href="#JAX-RSBasics-Selectingbetweenmultipleresourcemethods">Selecting between multiple resource methods</a></li><li><a shape="rect" href="#JAX-RSBasics-Resourcemethodsandmediatypes">Resource methods and media types</a></li><li><a shape="rect" href="#JAX-RSBasics-Customselectionbetweenmultipleresources">Custom selection between multiple resources</a></li></ul><li><a shape="rect" href="#JAX-RSBasics-Contextannotations">Context annotations</a></li><ul><li><a shape="rect" href="#JAX-RSBasics-CustomContexts">Custom Contexts</a></li></ul><li><a shape="rect" href="#JAX-RSBasics-URIcalculationusingUriInfoandUriBuild
 er">URI calculation using UriInfo and UriBuilder</a></li><li><a shape="rect" href="#JAX-RSBasics-Annotationinheritance">Annotation inheritance</a></li><li><a shape="rect" href="#JAX-RSBasics-Subresourcelocators.">Sub-resource locators.</a></li><ul><li><a shape="rect" href="#JAX-RSBasics-Staticresolutionofsubresources">Static resolution of subresources</a></li></ul><li><a shape="rect" href="#JAX-RSBasics-MessageBodyProviders">Message Body Providers</a></li><ul><li><a shape="rect" href="#JAX-RSBasics-CustomMessageBodyProviders">Custom Message Body Providers</a></li><li><a shape="rect" href="#JAX-RSBasics-Registeringcustomproviders">Registering custom providers</a></li></ul><li><a shape="rect" href="#JAX-RSBasics-Customizingmediatypesformessagebodyproviders">Customizing media types for message body providers</a></li><li><a shape="rect" href="#JAX-RSBasics-AdvancedHTTP">Advanced HTTP</a></li></ul></div>
 
 <h1><a shape="rect" name="JAX-RSBasics-WhatisNewinJAXRS2.0"></a>What is New in JAX-RS 2.0</h1>
 
@@ -197,14 +197,50 @@ Apache CXF -- JAX-RS Basics
 
 <h2><a shape="rect" name="JAX-RSBasics-Parameterconverters"></a>Parameter converters</h2>
 
-<p><a shape="rect" class="external-link" href="https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs/ext/ParamConverterProvider.html" rel="nofollow">ParamConverterProvider</a> can be used to manage the conversion of custom Objects to String and vice versa on the server and client sides, when processing JAX-RS parameters representing URI parts or headers and when a default conversion mechanism does not work. For example, java.util.Date constructor accepting a String may have to be replaced a custom ParamConverter.  </p>
+<p><a shape="rect" class="external-link" href="https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs/ext/ParamConverterProvider.html" rel="nofollow">ParamConverterProvider</a> can be used to manage the conversion of custom Objects to String and vice versa on the server and client sides, when processing JAX-RS parameters representing URI parts or headers or form elements and when a default conversion mechanism does not work. For example, java.util.Date constructor accepting a String may have to be replaced a custom ParamConverter.  </p>
 
 <h2><a shape="rect" name="JAX-RSBasics-Beanparameters"></a>Bean parameters</h2>
-<h2><a shape="rect" name="JAX-RSBasics-Updatestothematchingalgorithm"></a>Updates to the matching algorithm</h2>
+
+<p><a shape="rect" class="external-link" href="https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs/BeanParam.html" rel="nofollow">BeanParam</a> can be used to get JAX-RS parameters representing URI parts or headers or form elements and also contexts injected into a single bean container. </p>
+
+<p>Note the CXF extension supporting the injection of all the parameters of specific JAX-RS type (example, QueryParam("") MyBean) is different, it only allows to get all the query parameters injected, but it also does not require that bean properties are annotated with QueryParam/etc annotations.</p>
+
+<h2><a shape="rect" name="JAX-RSBasics-ResourceInfo"></a>ResourceInfo</h2>
+
+<p><a shape="rect" class="external-link" href="https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs/container/ResourceInfo.html" rel="nofollow">ResourceInfo</a> is a new JAX-RS context which can be injected into filters and interceptors and checked which resource class and method are about to be invoked.</p>
+
 <h2><a shape="rect" name="JAX-RSBasics-Injectionintosubresources"></a>Injection into subresources</h2>
+
+<p>Subresources can get JAX-RS contexts injected directly into their fields with the help of <a shape="rect" class="external-link" href="https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs/container/ResourceContext.html" rel="nofollow">ResourceContext</a>. </p>
+
+<p>When possible, having a parent resource injecting the contexts into a given subresource instance via a setter or constructor can offer a much simpler alternative.</p>
+
+<h2><a shape="rect" name="JAX-RSBasics-Updatestothematchingalgorithm"></a>Updates to the matching algorithm</h2>
+
+<p>JAX-RS 2.0 supports a proper resource method selection in cases where multiple root resource classes have the same Path value, for example:</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
+@Path("/")
+public class Root1 {
+   @Path("/1")
+   @GET 
+   public Response get() {...}
+}
+
+@Path("/")
+public class Root2 {
+   @Path("/2")
+   @GET 
+   public Response get() {...}
+}
+]]></script>
+</div></div>
+
+<p>In JAX-RS 1.1 a request with URI such as "/1" is not guaranteed to be matched and in CXF 2.7.x or earlier the use of CXF specific ResourceComparator is required to ensure Root1 and its get() method gets selected. In CXF 3.0.0 Root1 get() will always be correctly selected. Note ResourceComparator may still be of help in some cases even in CXF 3.0.0. </p>
+
 <h2><a shape="rect" name="JAX-RSBasics-ClientAPI"></a>Client API</h2>
-<h3><a shape="rect" name="JAX-RSBasics-AsynchronousInvocations"></a>Asynchronous Invocations</h3>
-<h3><a shape="rect" name="JAX-RSBasics-Responseinterfaceupdates"></a>Response interface updates</h3>
+<p>JAX-RS 2.0 Client API has been completely implemented in CXF 3.0.0, please see the <a shape="rect" href="http://cxf.apache.org/docs/jax-rs-client-api.html#JAX-RSClientAPI-JAXRS2.0ClientAPI">Client API page</a> for more information.</p>
 
 <h1><a shape="rect" name="JAX-RSBasics-Resourceclass"></a>Resource class</h1>
 

Modified: websites/production/cxf/content/docs/jax-rs.html
==============================================================================
--- websites/production/cxf/content/docs/jax-rs.html (original)
+++ websites/production/cxf/content/docs/jax-rs.html Thu Nov 21 18:48:22 2013
@@ -175,7 +175,9 @@ in CXF 3.0.0. Here are more details on t
 
 <p>2. CXF org.apache.cxf.jaxrs.ext.form.Form has been dropped, please use JAX-RS 2.0 <a shape="rect" class="external-link" href="https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs/core/Form.html" rel="nofollow">Form</a> instead. </p>
 
-<p>3. JAX-RS 2.0 introduces a controversial requirement that the default built-in JAX-RS MessageBodyWriter and JAX-RS MessageBodyReader providers are <b>preferred</b> to custom providers supporting the same types unless the custom providers are precisely typed, for example, if you have a custom InputStream reader properly implementing isReadable:</p>
+<p>3. CXF ParameterHandler has been dropped. Please use <a shape="rect" class="external-link" href="https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs/ext/ParamConverterProvider.html" rel="nofollow">ParameterConverterProvider</a> instead, it can be used both on the server and client sides.</p>
+
+<p>4. JAX-RS 2.0 introduces a controversial requirement that the default built-in JAX-RS MessageBodyWriter and JAX-RS MessageBodyReader providers are <b>preferred</b> to custom providers supporting the same types unless the custom providers are precisely typed, for example, if you have a custom InputStream reader properly implementing isReadable:</p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
@@ -212,7 +214,7 @@ public void upload(@Multipart InputStrea
 ]]></script>
 </div></div>  
 
-<p>4. If the custom code throws JAX-RS WebApplicationException with Response containing a non-null entity then custom WebApplicationException mappers will be bypassed - another problematic requirement, for example, the custom mappers doing the logging will miss on such exceptions.<br clear="none">
+<p>5. If the custom code throws JAX-RS WebApplicationException with Response containing a non-null entity then custom WebApplicationException mappers will be bypassed - another problematic requirement, for example, the custom mappers doing the logging will miss on such exceptions.<br clear="none">
 Set CXF "support.wae.spec.optimization" property to false to disable it.  </p>
 
 <h3><a shape="rect" name="JAX-RS-FromCXF2.6.xtoCXF2.7.x"></a>From CXF 2.6.x to CXF 2.7.x</h3>