Author: buildbot
Date: Fri Nov 22 13:48:16 2013
New Revision: 887691
Log:
Production update by buildbot for cxf
Modified:
websites/production/cxf/content/cache/docs.pageCache
websites/production/cxf/content/docs/jax-rs-basics.html
websites/production/cxf/content/docs/jax-rs-client-api.html
Modified: websites/production/cxf/content/cache/docs.pageCache
==============================================================================
Binary files - no diff available.
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 Fri Nov 22 13:48:16
2013
@@ -191,7 +191,11 @@ Apache CXF -- JAX-RS Basics
<p>Typically, the resource method accepting AsyncResponse will either store it
and start a new thread to finish the request, the method will return and the
invocation will be suspended, then eventually another thread (either the one
which initiated an internal job or some other thread) will resume the suspended
call. Note in this case the invocation will be suspended indefinitely until it
is resumed.</p>
-<p>Another approach is to have AsyncResponse suspended for a limited period of
time only and also register a TimeoutHandler. The latter will be invoked when
the invocation is resumed by the container after the timeout has expired and
the handler will either complete the invocation or suspend it again till it is
ready to finish it.</p>
+<p>Another approach is to have AsyncResponse suspended for a limited period of
time only and also register a <a shape="rect" class="external-link"
href="https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs/container/TimeoutHandler.html"
rel="nofollow">TimeoutHandler</a>. The latter will be invoked when the
invocation is resumed by the container after the timeout has expired and the
handler will either complete the invocation or suspend it again till it is
ready to finish it.</p>
+
+<p><a shape="rect" class="external-link"
href="https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs/container/CompletionCallback.html"
rel="nofollow">CompletionCallback</a> can be registered with AsyncResponse to
receive the notifications when the async response has been sent back.</p>
+
+<p><a shape="rect" class="external-link"
href="https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs/container/ConnectionCallback.html"
rel="nofollow">ConnectionCallback</a> is not currently supported.</p>
<p>This feature can help developers write very sophisticated asynchronous
applications. </p>
Modified: websites/production/cxf/content/docs/jax-rs-client-api.html
==============================================================================
--- websites/production/cxf/content/docs/jax-rs-client-api.html (original)
+++ websites/production/cxf/content/docs/jax-rs-client-api.html Fri Nov 22
13:48:16 2013
@@ -133,19 +133,45 @@ Apache CXF -- JAX-RS Client API
<div id="ConfluenceContent"><p><span style="font-size:2em;font-weight:bold">
JAX-RS : Client API </span></p>
<div>
-<ul><li><a shape="rect" href="#JAX-RSClientAPI-JAXRS2.0ClientAPI">JAX-RS 2.0
Client API</a></li><li><a shape="rect"
href="#JAX-RSClientAPI-JAXRS2.0andCXFspecificAPI">JAX-RS 2.0 and CXF specific
API</a></li><li><a shape="rect"
href="#JAX-RSClientAPI-ProxybasedAPI">Proxy-based API</a></li><ul><li><a
shape="rect" href="#JAX-RSClientAPI-Customizingproxies">Customizing
proxies</a></li><li><a shape="rect"
href="#JAX-RSClientAPI-ConvertingproxiestoWebClientsandviceversa">Converting
proxies to Web Clients and vice versa</a></li><li><a shape="rect"
href="#JAX-RSClientAPI-Handlingexceptions">Handling exceptions</a></li><li><a
shape="rect" href="#JAX-RSClientAPI-ConfiguringproxiesinSpring">Configuring
proxies in Spring</a></li><li><a shape="rect"
href="#JAX-RSClientAPI-Injectingproxies">Injecting proxies</a></li><li><a
shape="rect" href="#JAX-RSClientAPI-Limitations">Limitations</a></li><li><a
shape="rect" href="#JAX-RSClientAPI-Workingwithusermodels">Working with user
models</a></li></ul><li>
<a shape="rect" href="#JAX-RSClientAPI-CXFWebClientAPI">CXF WebClient
API</a></li><ul><li><a shape="rect"
href="#JAX-RSClientAPI-Asynchronousinvocations">Asynchronous
invocations</a></li><li><a shape="rect"
href="#JAX-RSClientAPI-Workingwithexplicitcollections">Working with explicit
collections</a></li><li><a shape="rect"
href="#JAX-RSClientAPI-Handlingexceptions">Handling exceptions</a></li><li><a
shape="rect" href="#JAX-RSClientAPI-ConfiguringHTTPclientsinSpring">Configuring
HTTP clients in Spring</a></li></ul><li><a shape="rect"
href="#JAX-RSClientAPI-XMLcentricclients">XML-centric clients</a></li><li><a
shape="rect" href="#JAX-RSClientAPI-ThreadSafety">Thread Safety</a></li><li><a
shape="rect" href="#JAX-RSClientAPI-ConfiguringClientsatRuntime">Configuring
Clients at Runtime</a></li><li><a shape="rect"
href="#JAX-RSClientAPI-CreatingclientsprogrammaticallywithnoSpringdependencies">Creating
clients programmatically with no Spring dependencies</a></li><li><a
shape="rect" href="#JA
X-RSClientAPI-ConfiguringanHTTPConduitfromSpring">Configuring an HTTP Conduit
from Spring</a></li><li><a shape="rect"
href="#JAX-RSClientAPI-ClientsandAuthentication">Clients and
Authentication</a></li></ul></div>
+<ul><li><a shape="rect" href="#JAX-RSClientAPI-MavenDependency">Maven
Dependency</a></li><li><a shape="rect"
href="#JAX-RSClientAPI-JAXRS2.0ClientAPI">JAX-RS 2.0 Client
API</a></li><ul><li><a shape="rect"
href="#JAX-RSClientAPI-Overview">Overview</a></li><li><a shape="rect"
href="#JAX-RSClientAPI-JAXRS2.0andCXFspecificAPI">JAX-RS 2.0 and CXF specific
API</a></li></ul><li><a shape="rect"
href="#JAX-RSClientAPI-ProxybasedAPI">Proxy-based API</a></li><ul><li><a
shape="rect" href="#JAX-RSClientAPI-Customizingproxies">Customizing
proxies</a></li><li><a shape="rect"
href="#JAX-RSClientAPI-ConvertingproxiestoWebClientsandviceversa">Converting
proxies to Web Clients and vice versa</a></li><li><a shape="rect"
href="#JAX-RSClientAPI-Handlingexceptions">Handling exceptions</a></li><li><a
shape="rect" href="#JAX-RSClientAPI-ConfiguringproxiesinSpring">Configuring
proxies in Spring</a></li><li><a shape="rect"
href="#JAX-RSClientAPI-Injectingproxies">Injecting proxies</a></li><li><a
shape="rect"
href="#JAX-RSClientAPI-Limitations">Limitations</a></li><li><a shape="rect"
href="#JAX-RSClientAPI-Workingwithusermodels">Working with user
models</a></li></ul><li><a shape="rect"
href="#JAX-RSClientAPI-CXFWebClientAPI">CXF WebClient API</a></li><ul><li><a
shape="rect" href="#JAX-RSClientAPI-Asynchronousinvocations">Asynchronous
invocations</a></li><li><a shape="rect"
href="#JAX-RSClientAPI-Workingwithexplicitcollections">Working with explicit
collections</a></li><li><a shape="rect"
href="#JAX-RSClientAPI-Handlingexceptions">Handling exceptions</a></li><li><a
shape="rect" href="#JAX-RSClientAPI-ConfiguringHTTPclientsinSpring">Configuring
HTTP clients in Spring</a></li></ul><li><a shape="rect"
href="#JAX-RSClientAPI-XMLcentricclients">XML-centric clients</a></li><li><a
shape="rect"
href="#JAX-RSClientAPI-SupportforarbitraryHTTPmethodsforsyncinvocations.">Support
for arbitrary HTTP methods for sync invocations.</a></li><li><a shape="rect"
href="#JAX-RSClientAPI-ThreadSafety">Thread Sa
fety</a></li><li><a shape="rect"
href="#JAX-RSClientAPI-ConfiguringClientsatRuntime">Configuring Clients at
Runtime</a></li><li><a shape="rect"
href="#JAX-RSClientAPI-CreatingclientsprogrammaticallywithnoSpringdependencies">Creating
clients programmatically with no Spring dependencies</a></li><li><a
shape="rect"
href="#JAX-RSClientAPI-ConfiguringanHTTPConduitfromSpring">Configuring an HTTP
Conduit from Spring</a></li><li><a shape="rect"
href="#JAX-RSClientAPI-ClientsandAuthentication">Clients and
Authentication</a></li></ul></div>
+<h1><a shape="rect" name="JAX-RSClientAPI-MavenDependency"></a>Maven
Dependency</h1>
+
+<p><dependency><br clear="none">
+ <groupId>org.apache.cxf</groupId><br clear="none">
+ <artifactId>cxf-rt-rs-client</artifactId><br clear="none">
+ <version>3.0.0-milestone1</version><br clear="none">
+</dependency></p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
+
+In CXF 2.7.x no JAX-RS 2.0 Client API is supported and CXF specific Client API
is located in the cxf-rt-frontend-jaxrs module.
+
+CXF Apache HttpClient based transport is required to get the asynchronous
invocations working correctly:
+
+{code:xml}
+<dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-transports-http-hc</artifactId>
+ <!-- 2.7.8 or 3.0.0-milestone1 -->
+ <version>${cxf.version}</version>
+</dependency>
+]]></script>
+</div></div>
+
+
<h1><a shape="rect" name="JAX-RSClientAPI-JAXRS2.0ClientAPI"></a>JAX-RS 2.0
Client API</h1>
-<p>To be supported</p>
+<p>CXF 3.0.0 implements JAX-RS 2.0 Client API. Internally it is implemented in
terms of CXF specific WebClient.</p>
-<h1><a shape="rect"
name="JAX-RSClientAPI-JAXRS2.0andCXFspecificAPI"></a>JAX-RS 2.0 and CXF
specific API</h1>
+<h2><a shape="rect" name="JAX-RSClientAPI-Overview"></a>Overview</h2>
-<p>CXF proxy and WebClient client code has been retrofitted to support all the
new JAX-RS 2.0 client constructs except for the client API itself.<br
clear="none">
-Specifically, JAX-RS 2.0 client filters, reader and writer interceptors, new
exception classes and Response API all can be used in scope of working with
proxy or WebClient API.</p>
+<h2><a shape="rect"
name="JAX-RSClientAPI-JAXRS2.0andCXFspecificAPI"></a>JAX-RS 2.0 and CXF
specific API</h2>
-<p>Additionally, WebClient supports JAX-RS 2.0 AsyncInvoker interface and
offers few shortcuts, please see more about it below.</p>
+<p>CXF proxy and WebClient client code has been retrofitted to support JAX-RS
2.0 client filters, reader and writer interceptors, new exception classes and
Response API.</p>
-<p>Users can expect WebClient API maintained in the next CXF releases as it
offers a light-weight fluent API alternative.</p>
+<p>WebClient offers shortcuts to JAX-RS 2.0 <a shape="rect"
class="external-link"
href="https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs/client/AsyncInvoker.html"
rel="nofollow">AsyncInvoker</a> and <a shape="rect" class="external-link"
href="https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs/client/SyncInvoker.html"
rel="nofollow">SyncInvoker</a> interfaces.</p>
+
+<p>WebClient.getConfig(Object client) supports JAX-RS 2.0 <a shape="rect"
class="external-link"
href="https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs/client/WebTarget.html"
rel="nofollow">WebTarget</a> and <a shape="rect" class="external-link"
href="https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs/client/Invocation.Builder.html"
rel="nofollow">Invocation.Builder</a> for 2.0 clients to be able to get to the
lower-level CXF configuration and set up the properties such as
'receiveTimeout', etc. </p>
<h1><a shape="rect" name="JAX-RSClientAPI-ProxybasedAPI"></a>Proxy-based
API</h1>
@@ -396,11 +422,13 @@ Book book = WebClient.create("http://boo
<p><a shape="rect" name="JAX-RSClientAPI-asynchronousinvocations"></a></p>
<h2><a shape="rect"
name="JAX-RSClientAPI-Asynchronousinvocations"></a>Asynchronous invocations</h2>
-<p><b>Starting from CXF 2.7.0</b></p>
+<p>WebClient has several methods accepting JAX-RS 2.0 <a shape="rect"
class="external-link"
href="https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs/client/InvocationCallback.html"
rel="nofollow">InvocationCallback</a> and returning Future. Alternatively,
users can also use WebClient.async() shortcut to work with a standard <a
shape="rect" class="external-link"
href="https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs/client/AsyncInvoker.html"
rel="nofollow">AsyncInvoker</a>.</p>
<h2><a shape="rect"
name="JAX-RSClientAPI-Workingwithexplicitcollections"></a>Working with explicit
collections</h2>
-<p>Example :</p>
+<p>WebClient supports <a shape="rect" class="external-link"
href="https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs/core/GenericEntity.html"
rel="nofollow">GenericEntity</a> and 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/GenericType.html"
rel="nofollow">GenericType</a> directly and via JAX-RS 2.0 SyncInvoker and
AsyncInvoker to make it easier to work with the explicit collections.</p>
+
+<p>WebClient also has few collection-aware methods, 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[
@@ -414,7 +442,7 @@ Collection<? extends Book> books =
<h2><a shape="rect" name="JAX-RSClientAPI-Handlingexceptions"></a>Handling
exceptions</h2>
-<p>You can handle remote exceptions by either explicitly getting a Response
object as shown above and handling error statuses as needed or you can catch
either javax.ws.rs.WebApplicationException or
javax.ws.rs.client.ClientException exceptions, the same way it can be done with
proxies. </p>
+<p>You can handle remote exceptions by either explicitly getting a Response
object as shown above and handling error statuses as needed or you can catch
either javax.ws.rs.WebApplicationException or javax.ws.rs.ProcessingException
exceptions, the same way it can be done with proxies. </p>
<h2><a shape="rect"
name="JAX-RSClientAPI-ConfiguringHTTPclientsinSpring"></a>Configuring HTTP
clients in Spring</h2>
@@ -473,6 +501,12 @@ Book b2 = source.getNode("/books/book[po
<p>Note that an XMLSource instance can be set to buffer the input stream thus
allowing for executing multiple XPath queries.<br clear="none">
XMlSource can also help with getting the URIs representing the links or XML
instances as Strings.</p>
+<h1><a shape="rect"
name="JAX-RSClientAPI-SupportforarbitraryHTTPmethodsforsyncinvocations."></a>Support
for arbitrary HTTP methods for sync invocations.</h1>
+
+<p>To get the arbitrary HTTP methods supported with the synchronous client
calls add the HttpClient-based transport dependency and set a
"use.async.http.conduit" contextual property.</p>
+
+<p>This will work as is for asynchronous calls given that the HttpClient-based
transport is required. </p>
+
<h1><a shape="rect" name="JAX-RSClientAPI-ThreadSafety"></a>Thread Safety</h1>
<p>Proxies and web clients (clients) are not thread safe by default. In some
cases this can be a limitation, especially when clients are injected;
synchronizing on them can cause performance side effects. </p>