Author: buildbot
Date: Sat May 19 16:57:04 2018
New Revision: 1030074
Log:
Production update by buildbot for cxf
Modified:
websites/production/cxf/content/cache/docs.pageCache
websites/production/cxf/content/docs/sse.html
Modified: websites/production/cxf/content/cache/docs.pageCache
==============================================================================
Binary files - no diff available.
Modified: websites/production/cxf/content/docs/sse.html
==============================================================================
--- websites/production/cxf/content/docs/sse.html (original)
+++ websites/production/cxf/content/docs/sse.html Sat May 19 16:57:04 2018
@@ -118,7 +118,55 @@ Apache CXF -- SSE
<td height="100%">
<!-- Content -->
<div class="wiki-content">
-<div id="ConfluenceContent"><h2 id="SSE-Introduction">Introduction</h2><p>The
<a shape="rect" class="external-link"
href="https://jcp.org/en/jsr/detail?id=370" rel="nofollow">JAX-RS 2.1</a>
introduced the support of server-sent events (SSE). Although SSE in general
works on top of HTTP transport, the SSE implementation in CXF uses the
dedicated one, based on <a shape="rect" class="external-link"
href="https://github.com/Atmosphere/atmosphere" rel="nofollow">Atmosphere</a>
framework. This transport only required on the server-side (client side works
over normal HTTP) and is fully compatible with HTTP transport.</p><h2
id="SSE-Configuration">Configuration</h2><p>There are several ways to configure
SSE transport (and as the consequence, SSE support). The most straightforward
one is to pass the init parameter <strong>"transportId"</strong> to the
CXF servlet in question, for example:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl"
>
+<div id="ConfluenceContent"><h2
id="SSE-/*<![CDATA[*/div.rbtoc1526748985916{padding:0px;}div.rbtoc1526748985916ul{list-style:disc;margin-left:0px;}div.rbtoc1526748985916li{margin-left:0px;padding-left:0px;}/*]]>*/#SSE-Introduction#SSE-IntroductionSince3.2.5release#SSE-Since3.2.5releaseConfi"><style
type="text/css">/*<![CDATA[*/
+div.rbtoc1526748985916 {padding: 0px;}
+div.rbtoc1526748985916 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1526748985916 li {margin-left: 0px;padding-left: 0px;}
+
+/*]]>*/</style></h2><div class="toc-macro rbtoc1526748985916">
+<ul class="toc-indentation"><li><a shape="rect" href="#SSE-"></a></li><li><a
shape="rect" href="#SSE-Introduction">Introduction</a></li><li><a shape="rect"
href="#SSE-Since3.2.5release">Since 3.2.5 release</a>
+<ul class="toc-indentation"><li><a shape="rect"
href="#SSE-Configuration">Configuration</a></li><li><a shape="rect"
href="#SSE-OSGi">OSGi</a></li></ul>
+</li><li><a shape="rect" href="#SSE-Before3.2.5release">Before 3.2.5
release</a>
+<ul class="toc-indentation"><li><a shape="rect"
href="#SSE-Configuration.1">Configuration</a></li><li><a shape="rect"
href="#SSE-AdvancedConfiguration">Advanced Configuration</a></li><li><a
shape="rect" href="#SSE-OSGi.1">OSGi</a></li></ul>
+</li></ul>
+</div><h2 id="SSE-Introduction">Introduction</h2><p>The <a shape="rect"
class="external-link" href="https://jcp.org/en/jsr/detail?id=370"
rel="nofollow">JAX-RS 2.1</a> introduced the support of server-sent events
(SSE).</p><h2 id="SSE-Since3.2.5release">Since 3.2.5 release</h2><p>Thanks to
the community contribution, the SSE implementation has been revamped
significantly in <strong>3.2.5</strong> release and does not depend on any
additional transport or/and library.</p><h3
id="SSE-Configuration">Configuration</h3><p>In most cases the SSE providers are
going to be activated automatically, either though
<strong>SseProvidersExtension</strong> or
<strong>SseTransportCustomizationExtension</strong>. However, in case there is
a need to manually add SSE support, it could be done by including
<strong>SseFeature</strong>, for example:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default"
style="font-size:12px;">final JAXRSServerFactoryBean factory =
RuntimeDelegate.getInstance().createEndpoint(<application>,
JAXRSServerFactoryBean.class);
+factory.setFeatures(Arrays.asList(new SseFeature()));
+...
+return factory.create();</pre>
+</div></div><h3 id="SSE-OSGi">OSGi</h3><p>For the deployments inside OSGi
containers (like Apache Karaf), <strong>Apache CXF</strong> provides a
dedicated <strong>cxf-sse</strong> feature (which depends on
<strong>cxf-http</strong> and <strong>cxf-jaxrs</strong>).</p><div
class="preformatted panel" style="border-width: 1px;"><div
class="preformattedContent panelContent">
+<pre>karaf@root()> feature:install cxf-sse </pre>
+</div></div><p> Once installed, the dependent bundles could benefit from
SSE capabilities by specifying desired transport in the Blueprint
configuration, for example.</p><div class="code panel pdl" style="border-width:
1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default"
style="font-size:12px;"><blueprint
xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:cxf="http://cxf.apache.org/blueprint/core"
+ xmlns:jaxrs="http://cxf.apache.org/blueprint/jaxrs"
+
+ xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
+ http://cxf.apache.org/blueprint/core
http://cxf.apache.org/schemas/blueprint/core.xsd
+ http://cxf.apache.org/jaxrs
http://cxf.apache.org/schemas/blueprint/jaxrs.xsd">
+
+ <bean id="sseFeature" class="org.apache.cxf.jaxrs.sse.SseFeature" />
+
+  <cxf:bus>
+ <cxf:features>
+ <cxf:logging />
+ </cxf:features>
+ </cxf:bus>
+
+ <jaxrs:server id="sseSampleService" address="/">
+ <jaxrs:serviceBeans>
+ <ref component-id="..." />
+ </jaxrs:serviceBeans>
+ <jaxrs:providers>
+ <ref component-id="..." />
+ </jaxrs:providers>
+ <jaxrs:features>
+ <ref component-id="sseFeature" />
+ </jaxrs:features>
+ </jaxrs:server>
+</blueprint></pre>
+</div></div><h2 id="SSE-Before3.2.5release">Before 3.2.5
release</h2><p>Although SSE in general works on top of HTTP transport, the SSE
implementation in CXF uses the dedicated one, based on <a shape="rect"
class="external-link" href="https://github.com/Atmosphere/atmosphere"
rel="nofollow">Atmosphere</a> framework. This transport only required on the
server-side (client side works over normal HTTP) and is fully compatible with
HTTP transport.</p><h3 id="SSE-Configuration.1">Configuration</h3><p>There are
several ways to configure SSE transport (and as the consequence, SSE support).
The most straightforward one is to pass the init
parameter <strong>"transportId"</strong> to the CXF servlet in question,
for example:</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
<pre class="brush: java; gutter: false; theme: Default"
style="font-size:12px;">final CXFNonSpringServlet cxfServlet = new
CXFNonSpringServlet();
final ServletHolder holder = new ServletHolder(cxfServlet);
holder.setInitParameter(CXFCdiServlet.TRANSPORT_ID,
SseHttpTransportFactory.TRANSPORT_ID);
@@ -128,7 +176,7 @@ holder.setInitParameter(CXFCdiServlet.TR
factory.setTransportId(SseHttpTransportFactory.TRANSPORT_ID);
...
return factory.create();</pre>
-</div></div><h2 id="SSE-AdvancedConfiguration">Advanced
Configuration</h2><p>Since <strong>Apache CXF 3.2.3</strong> release, it is
possible to use alternative means to configure transports, including SSE one,
by passing it through the <strong>Bus</strong> property "<a shape="rect"
class="external-link" href="http://org.apache.cxf.preferred.transport.id"
rel="nofollow">org.apache.cxf.preferred.transport.id</a>" (also available as
<strong>AbstractTransportFactory.PREFERRED_TRANSPORT_ID</strong> constant).
With this property set to preferred transport, CXF servlet in question is going
to pick it up instead of using the default one. SSE implementation benefits
from that and in many cases setting the <strong>"transportId" </strong>init
parameter on the servlet level could be omitted.</p><h2
id="SSE-OSGi">OSGi</h2><p>For the deployments inside OSGi containers (like
Apache Karaf), <strong>Apache CXF</strong> provides a dedicated
<strong>cxf-sse</strong> feature (which depends on <strong>c
xf-http</strong> and <strong>cxf-jaxrs</strong>).</p><div class="preformatted
panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+</div></div><h3 id="SSE-AdvancedConfiguration">Advanced
Configuration</h3><p>Since <strong>Apache CXF 3.2.3</strong> release, it is
possible to use alternative means to configure transports, including SSE one,
by passing it through the <strong>Bus</strong> property "<a shape="rect"
class="external-link" href="http://org.apache.cxf.preferred.transport.id"
rel="nofollow">org.apache.cxf.preferred.transport.id</a>" (also available as
<strong>AbstractTransportFactory.PREFERRED_TRANSPORT_ID</strong> constant).
With this property set to preferred transport, CXF servlet in question is going
to pick it up instead of using the default one. SSE implementation benefits
from that and in many cases setting the <strong>"transportId" </strong>init
parameter on the servlet level could be omitted.</p><h3
id="SSE-OSGi.1">OSGi</h3><p>For the deployments inside OSGi containers (like
Apache Karaf), <strong>Apache CXF</strong> provides a dedicated
<strong>cxf-sse</strong> feature (which depends on <strong
>cxf-http</strong> and <strong>cxf-jaxrs</strong>).</p><div
>class="preformatted panel" style="border-width: 1px;"><div
>class="preformattedContent panelContent">
<pre>karaf@root()> feature:install cxf-sse </pre>
</div></div><p>Once installed, the dependent bundles could benefit from SSE
capabilities by specifying desired transport in the Blueprint configuration,
for example.</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
<pre class="brush: java; gutter: false; theme: Default"
style="font-size:12px;"><blueprint
xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"