Modified: 
websites/production/cxf/content/docs/simple-frontend-configuration.html
==============================================================================
--- websites/production/cxf/content/docs/simple-frontend-configuration.html 
(original)
+++ websites/production/cxf/content/docs/simple-frontend-configuration.html Wed 
Sep 13 15:05:52 2017
@@ -119,7 +119,7 @@ Apache CXF -- Simple Frontend Configurat
 <div id="ConfluenceContent"><h1 
id="SimpleFrontendConfiguration-ConfigurewithSpringforthesimplefrontendserver">Configure
 with Spring for the simple front end server</h1>
 <p>You can configure the CXF simple front end server endpoint by using the 
&lt;simple:server&gt; tag in spring. </p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 &lt;beans xmlns="http://www.springframework.org/schema/beans";
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
       xmlns:simple="http://cxf.apache.org/simple";
@@ -147,7 +147,7 @@ http://cxf.apache.org/simple http://cxf.
 
 <p>Here is a more advanced example which shows how to provide interceptors and 
properties:</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 &lt;beans xmlns="http://www.springframework.org/schema/beans";
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
       xmlns:simple="http://cxf.apache.org/simple";
@@ -187,7 +187,7 @@ http://cxf.apache.org/simple http://cxf.
 <h1 
id="SimpleFrontendConfiguration-ConfigurewithSpringforthesimplefrontendclient">Configure
 with Spring for the simple front end client</h1>
 <p>You could use the &lt;simple:client&gt; element to configure the simple 
front end client, you can use the spring's getBean API to get the client 
instance from the application context.</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 &lt;beans xmlns="http://www.springframework.org/schema/beans";
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
       xmlns:simple="http://cxf.apache.org/simple";
@@ -217,7 +217,7 @@ http://cxf.apache.org/simple http://cxf.
 
 <p>Here is a more advanced example which shows how to provide interceptors and 
properties:</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 &lt;beans xmlns="http://www.springframework.org/schema/beans";
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
       xmlns:simple="http://cxf.apache.org/simple";

Modified: websites/production/cxf/content/docs/simple-frontend.html
==============================================================================
--- websites/production/cxf/content/docs/simple-frontend.html (original)
+++ websites/production/cxf/content/docs/simple-frontend.html Wed Sep 13 
15:05:52 2017
@@ -32,8 +32,8 @@
 <link type="text/css" rel="stylesheet" 
href="/resources/highlighter/styles/shThemeCXF.css">
 
 <script src='/resources/highlighter/scripts/shCore.js'></script>
-<script src='/resources/highlighter/scripts/shBrushJava.js'></script>
 <script src='/resources/highlighter/scripts/shBrushXml.js'></script>
+<script src='/resources/highlighter/scripts/shBrushJava.js'></script>
 <script>
   SyntaxHighlighter.defaults['toolbar'] = false;
   SyntaxHighlighter.all();
@@ -146,7 +146,7 @@ Apache CXF -- Simple Frontend
 
 <p>First you'll want to create your service class:</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 public interface HelloWorld {
   String sayHi(String text);
 }
@@ -158,7 +158,7 @@ public interface HelloWorld {
 
 <p>We'll also need an implementation class:</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 public class HelloWorldImpl implements HelloWorld {
   public String sayHi(String text) {
     return "Hello " + text;
@@ -169,7 +169,7 @@ public class HelloWorldImpl implements H
 
 <p>And now we'll want to create a Server from this</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 import org.apache.cxf.frontend.ServerFactoryBean;
 ...
 
@@ -191,7 +191,7 @@ svrFactory.create();
 <p>You'll also want to create a client for your service. CXF includes a 
ClientProxyFactoryBean which will create a Java proxy for you from your 
interface which will invoke the service.</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 import demo.hw.server.HelloWorld;
 import org.apache.cxf.frontend.ClientProxyFactoryBean;
 ...
@@ -214,7 +214,7 @@ own application context.</p>
 <p>Here's an example cxf-servlet.xml with simple front end endpoint 
configuration. If you use your own application context, you'll need to import 
the soap extension and http servlet extension. </p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 &lt;beans xmlns="http://www.springframework.org/schema/beans";
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
       xmlns:simple="http://cxf.apache.org/simple";

Modified: websites/production/cxf/content/docs/soap-11.html
==============================================================================
--- websites/production/cxf/content/docs/soap-11.html (original)
+++ websites/production/cxf/content/docs/soap-11.html Wed Sep 13 15:05:52 2017
@@ -32,8 +32,8 @@
 <link type="text/css" rel="stylesheet" 
href="/resources/highlighter/styles/shThemeCXF.css">
 
 <script src='/resources/highlighter/scripts/shCore.js'></script>
-<script src='/resources/highlighter/scripts/shBrushJava.js'></script>
 <script src='/resources/highlighter/scripts/shBrushBash.js'></script>
+<script src='/resources/highlighter/scripts/shBrushJava.js'></script>
 <script>
   SyntaxHighlighter.defaults['toolbar'] = false;
   SyntaxHighlighter.all();
@@ -141,7 +141,7 @@ Apache CXF -- SOAP 1.1
 <p>If your system had an interface that took orders and offered a single 
operation to process the orders it would be defined in a WSDL document similar 
to the one shown below.</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>Ordering System 
Interface</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 &lt;?xml version="1.0" encoding="UTF-8"?&gt;
 &lt;definitions name="widgetOrderForm.wsdl"
     targetNamespace="http://widgetVendor.com/widgetOrderForm";
@@ -177,7 +177,7 @@ Apache CXF -- SOAP 1.1
 <p>The SOAP binding generated for orderWidgets is shown below.</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>Binding for 
orderWidgets</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 &lt;binding name="orderWidgetsBinding" type="tns:orderWidgets"&gt;
   &lt;soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/&gt;
     &lt;operation name="placeWidgetOrder"&gt;
@@ -209,7 +209,7 @@ Apache CXF -- SOAP 1.1
 <p>The syntax for defining a SOAP header is shown in <strong>SOAP Header 
Syntax</strong>. The <code>message</code> attribute of <code>soap:header</code> 
is the qualified name of the message from which the part being inserted into 
the header is taken. The <code>part</code> attribute is the name of the message 
part inserted into the SOAP header. Because SOAP headers are always document 
style, the WSDL message part inserted into the SOAP header must be defined 
using an element. Together the message and the part attributes fully describe 
the data to insert into the SOAP header.</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>SOAP Header 
Syntax</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 &lt;binding name="headwig"&gt;
   &lt;soap:binding style="document"
                 transport="http://schemas.xmlsoap.org/soap/http"/&gt;
@@ -239,7 +239,7 @@ Apache CXF -- SOAP 1.1
 <p><strong>SOAP 1.1 Binding with a SOAP Header</strong> shows a modified 
version of the orderWidgets service shown in <strong>Ordering System 
Interface</strong>. This version has been modified so that each order has an 
<code>xsd:base64binary</code> value placed in the SOAP header of the request 
and response. The SOAP header is defined as being the <code>keyVal</code> part 
from the <code>widgetKey</code> message. In this case you would be responsible 
for adding the SOAP header in your application logic because it is not part of 
the input or output message.</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>SOAP 1.1 Binding with a 
SOAP Header</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 &lt;?xml version="1.0" encoding="UTF-8"?&gt;
 &lt;definitions name="widgetOrderForm.wsdl"
     targetNamespace="http://widgetVendor.com/widgetOrderForm";
@@ -304,7 +304,7 @@ Apache CXF -- SOAP 1.1
 <p>You could modify <strong>SOAP 1.1 Binding with a SOAP Header</strong> so 
that the header value was a part of the input and output messages as shown in 
<strong>SOAP 1.1 Binding for orderWidgets with a SOAP Header</strong>. In this 
case <code>keyVal</code> is a part of the input and output messages. In the 
<code>soap:body</code> element's parts attribute specifies that 
<code>keyVal</code> is not to be inserted into the body. However, it is 
inserted into the SOAP header.</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>SOAP 1.1 Binding for 
orderWidgets with a SOAP Header</b></div><div class="codeContent panelContent 
pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 &lt;?xml version="1.0" encoding="UTF-8"?&gt;
 &lt;definitions name="widgetOrderForm.wsdl"
     targetNamespace="http://widgetVendor.com/widgetOrderForm";

Modified: websites/production/cxf/content/docs/soap-12.html
==============================================================================
--- websites/production/cxf/content/docs/soap-12.html (original)
+++ websites/production/cxf/content/docs/soap-12.html Wed Sep 13 15:05:52 2017
@@ -32,8 +32,8 @@
 <link type="text/css" rel="stylesheet" 
href="/resources/highlighter/styles/shThemeCXF.css">
 
 <script src='/resources/highlighter/scripts/shCore.js'></script>
-<script src='/resources/highlighter/scripts/shBrushJava.js'></script>
 <script src='/resources/highlighter/scripts/shBrushBash.js'></script>
+<script src='/resources/highlighter/scripts/shBrushJava.js'></script>
 <script>
   SyntaxHighlighter.defaults['toolbar'] = false;
   SyntaxHighlighter.all();
@@ -141,7 +141,7 @@ Apache CXF -- SOAP 1.2
 <p>If your system had an interface that took orders and offered a single 
operation to process the orders it would be defined in a WSDL fragment similar 
to the one shown in <strong>Ordering System Interface</strong>.</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>Ordering System 
Interface</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 &lt;?xml version="1.0" encoding="UTF-8"?&gt;
 &lt;definitions name="widgetOrderForm.wsdl"
     targetamespace="http://widgetVendor.com/widgetOrderForm";
@@ -177,7 +177,7 @@ Apache CXF -- SOAP 1.2
 <p>The SOAP binding generated for orderWidgets is shown in <strong>SOAP 1.2 
Binding for orderWidgets</strong>.</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>SOAP 1.2 Binding for 
orderWidgets</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 &lt;binding name="orderWidgetsBinding" type="tns:orderWidgets"&gt;
   &lt;wsoap12:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/&gt;
     &lt;operation name="placeWidgetOrder"&gt;
@@ -209,7 +209,7 @@ Apache CXF -- SOAP 1.2
 <p>The syntax for defining a SOAP header is shown in <strong>SOAP 1.2 Header 
Syntax</strong>.</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>SOAP 1.2 Header 
Syntax</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 &lt;binding name="headwig"&gt;
   &lt;wsoap12:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/&gt;
     &lt;operation name="weave"&gt;
@@ -244,7 +244,7 @@ Apache CXF -- SOAP 1.2
 <p><strong>SOAP 1.2 Binding with a SOAP Header</strong> shows a modified 
version of the orderWidgets service shown in <strong>Ordering System 
Interface</strong>. This version has been modified so that each order has an 
<code>xsd:base64binary</code> value placed in the header of the request and 
response. The header is defined as being the keyVal part from the 
widgetKeymessage. In this case you would be responsible for adding the 
application logic to create the header because it is not part of the input or 
output message.</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>SOAP 1.2 Binding with a 
SOAP Header</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 &lt;?xml version="1.0" encoding="UTF-8"?&gt;
 &lt;definitions name="widgetOrderForm.wsdl"
     targetNamespace="http://widgetVendor.com/widgetOrderForm";
@@ -309,7 +309,7 @@ Apache CXF -- SOAP 1.2
 <p>You could modify <strong>SOAP 1.2 Binding with a SOAP Header</strong> so 
that the header value was a part of the input and output messages as shown in 
<strong>SOAP 1.2 Binding for orderWidgets with a SOAP Header</strong>. In this 
case keyVal is a part of the input and output messages. In the 
<code>wsoap12:body</code> elements the <code>parts</code> attribute specifies 
that keyVal is not to be inserted into the body. However, it is inserted into 
the header.</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>SOAP 1.2 Binding for 
orderWidgets with a SOAP Header</b></div><div class="codeContent panelContent 
pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 &lt;?xml version="1.0" encoding="UTF-8"?&gt;
 &lt;definitions name="widgetOrderForm.wsdl"
     targetNamespace="http://widgetVendor.com/widgetOrderForm";

Modified: websites/production/cxf/content/docs/soap-over-jms-10-support.html
==============================================================================
--- websites/production/cxf/content/docs/soap-over-jms-10-support.html 
(original)
+++ websites/production/cxf/content/docs/soap-over-jms-10-support.html Wed Sep 
13 15:05:52 2017
@@ -32,10 +32,10 @@
 <link type="text/css" rel="stylesheet" 
href="/resources/highlighter/styles/shThemeCXF.css">
 
 <script src='/resources/highlighter/scripts/shCore.js'></script>
-<script src='/resources/highlighter/scripts/shBrushJava.js'></script>
+<script src='/resources/highlighter/scripts/shBrushBash.js'></script>
 <script src='/resources/highlighter/scripts/shBrushXml.js'></script>
+<script src='/resources/highlighter/scripts/shBrushJava.js'></script>
 <script src='/resources/highlighter/scripts/shBrushPlain.js'></script>
-<script src='/resources/highlighter/scripts/shBrushBash.js'></script>
 <script>
   SyntaxHighlighter.defaults['toolbar'] = false;
   SyntaxHighlighter.all();
@@ -120,16 +120,16 @@ Apache CXF -- SOAP over JMS 1.0 support
            <!-- Content -->
            <div class="wiki-content">
 <div id="ConfluenceContent"><p>The <a shape="rect" 
href="jms-transport.html">JMS Transport</a> offers an alternative messaging 
mechanism to SOAP over HTTP. SOAP over JMS offers more reliable and scalable 
messaging support than SOAP over HTTP. The <a shape="rect" 
class="external-link" href="http://www.w3.org/TR/soapjms/"; rel="nofollow">SOAP 
over JMS specification</a> is aimed at a set of standards for the transport of 
SOAP messages over JMS. Its main purpose is to ensure interoperability between 
the implementations of different Web services vendors. CXF supports and is 
compliant with this specification.</p><h2 
id="SOAPoverJMS1.0support-SOAPoverJMSNamespace">SOAP over JMS Namespace</h2><h3 
id="SOAPoverJMS1.0support-JMSURI">JMS URI</h3><p>JMS endpoints need to know the 
address information for establishing connections to the proper destination. 
SOAP over JMS implements the <a shape="rect" class="external-link" 
href="http://tools.ietf.org/id/draft-merrick-jms-uri-06.txt"; rel="nofollow">U
 RI Scheme for Java Message Service 1.0</a>.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b>JMS URI Scheme</b></div><div 
class="codeContent panelContent pdl">
-<pre class="brush: text; gutter: false; theme: Confluence" 
style="font-size:12px;">jms:&lt;variant&gt;:&lt;destination 
name&gt;?param1=value1&amp;param2=value2</pre>
+<pre class="brush: text; gutter: false; theme: Default" 
style="font-size:12px;">jms:&lt;variant&gt;:&lt;destination 
name&gt;?param1=value1&amp;param2=value2</pre>
 </div></div><h3 id="SOAPoverJMS1.0support-Variants">Variants</h3><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh">Prefix</th><th colspan="1" rowspan="1" 
class="confluenceTh">Description</th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>jndi</strong></td><td colspan="1" rowspan="1" 
class="confluenceTd">Destination name is a jndi queue name</td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><strong>jndi-topic</strong></td><td colspan="1" 
rowspan="1" class="confluenceTd">Destination name is a jndi topic 
name</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>queue</strong></td><td colspan="1" rowspan="1" 
class="confluenceTd">Destination is a queue name resolved using 
JMS</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>topic</strong></td><td colspan="1" rowspan="1" 
class="confluenceTd">Destination is a topic name resolved using 
JMS</td></tr></tbody></
 table></div><p>Further parameters can be added as query parameters in the 
URI.</p><p>For example:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">jms:jndi:SomeJndiNameForDestination?jndiInitialContextFactory=org.apache.activemq.jndi.ActiveMQInitialContextFactory&amp;jndiURL=tcp://localhost:61616&amp;priority=3
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">jms:jndi:SomeJndiNameForDestination?jndiInitialContextFactory=org.apache.activemq.jndi.ActiveMQInitialContextFactory&amp;jndiURL=tcp://localhost:61616&amp;priority=3
 jms:queue:ExampleQueueName?timeToLive=1000
 </pre>
 </div></div><h3 id="SOAPoverJMS1.0support-JMSparameters">JMS 
parameters</h3><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Query Parameter</p></th><th colspan="1" rowspan="1" 
class="confluenceTh">From <br clear="none">Version</th><th colspan="1" 
rowspan="1" class="confluenceTh"><p>DefaultValue</p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd">conduitIdSelectorPrefix</td><td 
colspan="1" rowspan="1" class="confluenceTd">3.0.0</td><td colspan="1" 
rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">If set then this string will be the prefix for all 
correlation ids the conduit creates and also be used in the selector for 
listening to replies</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>deliveryMode</p></td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td co
 lspan="1" rowspan="1" class="confluenceTd"><p>PERSISTENT</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>NON_PERSISTENT messages will 
kept only in memory <br clear="none"> PERSISTENT messages will be saved to 
disk</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">durableSubscriptionClientId</td><td colspan="1" 
rowspan="1" class="confluenceTd">3.0.1</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">Optional Client identifier for the connection. The purpose 
is to associate a connection with a state maintained on behalf of the client by 
a provider. The only such state identified by the JMS API is that required to 
support durable subscriptions.</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">durableSubscriptionName</td><td colspan="1" rowspan="1" 
class="confluenceTd">3.0.0</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" class="confluenceTd"
 >&#160;</td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>jndiConnectionFactoryName</p></td><td colspan="1" 
 >rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>ConnectionFactory</p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>Specifies the JNDI name bound to the JMS connection 
 >factory to use when connecting to the JMS destination.</p></td></tr><tr><td 
 >colspan="1" rowspan="1" 
 >class="confluenceTd"><p>jndiInitialContextFactory</p></td><td colspan="1" 
 >rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>Specifies the fully qualified Java class name of the 
 >"InitialContextFactory" implementation class to use.</p></td></tr><tr><td 
 >colspan="1" rowspan="1" 
 >class="confluenceTd">jndiTransactionManagerName</td><td colspan="1" 
 >rowspan="1" class="confluenceTd">3.0.0</td><td colspan="1" rowspan="1" 
 >class="confluenceTd">
 &#160;</td><td colspan="1" rowspan="1" class="confluenceTd"><p>Name of the JTA 
TransactionManager. Will be searched in spring, blueprint and jndi.<br 
clear="none"> If a transaction manager is found then JTA transactions will be 
enabled. See details below.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>jndiURL</p></td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Specifies the JNDI provider URL</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd">jndi-*</td><td colspan="1" 
rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">Additional parameters for a JNDI provider</td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd">messageType</td><td colspan="1" 
rowspan="1" class="confluenceTd">3.0.0</td><td colspan="1" rows
 pan="1" class="confluenceTd">byte</td><td colspan="1" rowspan="1" 
class="confluenceTd">JMS message type used by CXF (byte, text or 
binary)</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">password</td><td colspan="1" rowspan="1" 
class="confluenceTd">3.0.0</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">Password for creating the connection. Using this in the 
URI is discouraged</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">priority</td><td colspan="1" rowspan="1" 
class="confluenceTd">3.0.0</td><td colspan="1" rowspan="1" 
class="confluenceTd">4</td><td colspan="1" rowspan="1" 
class="confluenceTd">Priority for the messages. See your JMS provider 
documentation for details. Values range from 0 to 9 where 0 is lowest 
priority</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>replyToName</p></td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" c
 lass="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Specifies the JNDI name bound to the JMS destinations 
where replies are sent</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">receiveTimeout</td><td colspan="1" rowspan="1" 
class="confluenceTd">3.0.0</td><td colspan="1" rowspan="1" 
class="confluenceTd">60000</td><td colspan="1" rowspan="1" 
class="confluenceTd">Timeout in milliseconds the client waits for a reply in 
case of request / repy exchanges</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">reconnectOnException</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>deprecated</p><p>in 3.0.0</p></td><td colspan="1" 
rowspan="1" class="confluenceTd">true</td><td colspan="1" rowspan="1" 
class="confluenceTd">Should the transport reconnect in case of exceptions. From 
version 3.0.0 on the transport will always reconnect in case of 
exceptions</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">sessionTransa
 cted</td><td colspan="1" rowspan="1" class="confluenceTd">3.0.0</td><td 
colspan="1" rowspan="1" class="confluenceTd">false</td><td colspan="1" 
rowspan="1" class="confluenceTd">Set to true for resource local transactions. 
Do not set if you use JTA</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>timeToLive</p></td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>0</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Time (in ms) after which the message will be discarded 
by the jms provider</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">topicReplyToName</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">Reply to messages on a topic with this name. Depending on 
the variant this is either&#160; a jndi or jms name.</td></tr><tr><td 
colspan="1" rowspan="1" class="co
 nfluenceTd">useConduitIdSelector</td><td colspan="1" rowspan="1" 
class="confluenceTd">3.0.0</td><td colspan="1" rowspan="1" 
class="confluenceTd">true</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Each conduit is assigned with a UUID. If set to true 
this conduit id will be the prefix for all correlation ids. This allows several 
endpoints to</p><p>share a JMS queue or topic</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>username</p></td><td colspan="1" 
rowspan="1" class="confluenceTd">3.0.0</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Username for creating the 
connection</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">concurrentConsumers</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">1</td><td colspan="1" rowspan="1" 
class="confluenceTd">Number of consumers listening queue concurrently</td></tr
 ></tbody></table></div><p>Some of these attributes are specified in the <a 
 >shape="rect" class="external-link" 
 >href="http://tools.ietf.org/id/draft-merrick-jms-uri-06.txt"; 
 >rel="nofollow">JMS URI specification</a>.</p><h2 
 >id="SOAPoverJMS1.0support-WSDLExtension">WSDL Extension</h2><p>The WSDL 
 >extensions for defining a JMS endpoint use a special namespace. In order to 
 >use the JMS WSDL extensions you will need to add the namespace definition 
 >shown below to the definitions element of your contract.</p><div class="code 
 >panel pdl" style="border-width: 1px;"><div class="codeContent panelContent 
 >pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">xmlns:soapjms="http://www.w3.org/2010/soapjms/";
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">xmlns:soapjms="http://www.w3.org/2010/soapjms/";
 </pre>
 </div></div><p>Various JMS properties may be set in three places in the WSDL 
&#8212; the binding, the service, and the port. Values specified at the service 
will propagate to all ports. Values specified at the binding will propagate to 
all ports using that binding. <br clear="none"> For example, if the 
<strong>jndiInitialContextFactory</strong> is indicated for a service, it will 
be used for all of the port elements it contains.</p><p>JMS Properties. For 
details refer to the URI query parameters with the same name:</p><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Name</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>deliveryMode</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p>jndiConnectionFactoryName</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p>jndiInitialContextFactory</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>jndiURL</
 p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>replyToName</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>priority</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>timeToLive</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p>jndiContextParameter</p></td></tr></tbody></table></div><p>Here
 is an example:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Ways to 
define a Service with JMS transport</b></div><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;wsdl11:binding name="exampleBinding"&gt;
+<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;wsdl11:binding name="exampleBinding"&gt;
   &lt;soapjms:jndiContextParameter name="name" value="value" /&gt;
   
&lt;soapjms:jndiConnectionFactoryName&gt;ConnectionFactory&lt;/soapjms:jndiConnectionFactoryName&gt;
   
&lt;soapjms:jndiInitialContextFactory&gt;org.apache.activemq.jndi.ActiveMQInitialContextFactory&lt;/soapjms:jndiInitialContextFactory&gt;
@@ -151,7 +151,7 @@ jms:queue:ExampleQueueName?timeToLive=10
 &lt;/wsdl11:service&gt;
 </pre>
 </div></div><p>If a property is specified at multiple levels, the setting at 
the most granular level takes precedence (port first, then service, then 
binding). In the above example, notice the timeToLive property &#8212; for the 
quickPort port, the value will be 10ms (specified at the port level). For the 
slowPort port, the value will be 100ms (specified at the service level). In 
this example, the setting in the binding will always be overridden.</p><h2 
id="SOAPoverJMS1.0support-WSDLUsage">WSDL Usage</h2><p>For this 
example:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Greeter 
Service with JMS transaport</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;wsdl:definitions name="JMSGreeterService"  
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:tns="http://cxf.apache.org/jms_greeter"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:x1="http://cxf.apache.org/jms_greeter/types"; 
xmlns:soapjms="http://www.w3.org/2010/soapjms/"; name="JMSGreeterService" 
targetNamespace="http://cxf.apache.org/jms_greeter"&gt;
+<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;wsdl:definitions name="JMSGreeterService"  
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:tns="http://cxf.apache.org/jms_greeter"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:x1="http://cxf.apache.org/jms_greeter/types"; 
xmlns:soapjms="http://www.w3.org/2010/soapjms/"; name="JMSGreeterService" 
targetNamespace="http://cxf.apache.org/jms_greeter"&gt;
     ...
        &lt;wsdl:binding name="JMSGreeterPortBinding" 
type="tns:JMSGreeterPortType"&gt;
                &lt;soap:binding style="document" 
transport="http://www.w3.org/2010/soapjms/"; /&gt;
@@ -182,7 +182,7 @@ jms:queue:ExampleQueueName?timeToLive=10
 &lt;/wsdl:definitions&gt;
 </pre>
 </div></div><ul><li>The transport URI (<a shape="rect" class="external-link" 
href="http://www.w3.org/2010/soapjms/"; 
rel="nofollow">http://www.w3.org/2010/soapjms/</a>) is defined in the 
&lt;soap:binding&gt;.</li><li>The jms: URI is defined in the 
&lt;soap:address&gt;</li><li>The extension properties are in the 
&lt;soap:binding&gt;</li></ul><h2 
id="SOAPoverJMS1.0support-Defineserviceendpointorproxyinspringorblueprint">Define
 service endpoint or proxy in spring or blueprint</h2><p>The JAXWS endpoint or 
proxy can be defined like in the SOAP/HTTP case. Just use a jms: uri like 
described above.</p><p>In CXF 3 it is possible to omit the jndi settings. Just 
specify an endpoint like this:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b>Endpoint in spring</b></div><div 
class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;bean id="ConnectionFactory" 
class="org.apache.activemq.ActiveMQConnectionFactory"&gt;
+<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;bean id="ConnectionFactory" 
class="org.apache.activemq.ActiveMQConnectionFactory"&gt;
   &lt;property name="brokerURL" value="tcp://localhost:61616"/&gt;
 &lt;/bean&gt;
 &lt;jaxws:endpoint id="CustomerService"
@@ -190,7 +190,7 @@ jms:queue:ExampleQueueName?timeToLive=10
   implementor="com.example.customerservice.impl.CustomerServiceImpl"&gt;
 &lt;/jaxws:endpoint&gt;</pre>
 </div></div><p>or a Client like this:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b>Proxy in spring</b></div><div 
class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;bean id="ConnectionFactory" 
class="org.apache.activemq.ActiveMQConnectionFactory"&gt;
+<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;bean id="ConnectionFactory" 
class="org.apache.activemq.ActiveMQConnectionFactory"&gt;
   &lt;property name="brokerURL" value="tcp://localhost:61616"/&gt;
 &lt;/bean&gt;
 &lt;jaxws:client id="CustomerService"
@@ -198,7 +198,7 @@ jms:queue:ExampleQueueName?timeToLive=10
   serviceClass="com.example.customerservice.CustomerService"&gt;
 &lt;/jaxws:client&gt;</pre>
 </div></div><p>The connection factory will be looked up as a bean in the 
context. By default the name "ConnectionFactory" is assumed but it can be 
configured using the jndiConnectionFactoryName uri 
parameter.</p><p>Alternatively the connection factory can be set using the 
ConnectionFactoryFeature.</p><h2 
id="SOAPoverJMS1.0support-PublishingaservicewiththeJAVAAPI">Publishing a 
service with the JAVA API</h2><p>Developers who don't wish to modify the WSDL 
file can also publish the endpoint information using Java code. For CXF's SOAP 
over JMS implementation you can write the following:</p><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">  // You just need to set the address with JMS URI
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">  // You just need to set the address with JMS URI
   String address = "jms:jndi:dynamicQueues/test.cxf.jmstransport.queue3"
       + "?jndiInitialContextFactory"
       + "=org.apache.activemq.jndi.ActiveMQInitialContextFactory"
@@ -218,7 +218,7 @@ jms:queue:ExampleQueueName?timeToLive=10
   ep.getFeatures().add(new ConnectionFactoryFeature(cf));
   ep.publish("jms:queue:test.cxf.jmstransport.queue?timeToLive=1000");</pre>
 </div></div><p>NOTE: For tests it can be useful to create an embedded broker 
like this:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">    public final void run() {
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">    public final void run() {
         try {             
             broker = new BrokerService();
             broker.setPersistent(false);
@@ -236,7 +236,7 @@ jms:queue:ExampleQueueName?timeToLive=10
     }
 </pre>
 </div></div><h2 id="SOAPoverJMS1.0support-ConsumetheservicewiththeAPI">Consume 
the service with the API</h2><p>Sample code to consume a SOAP-over-JMS service 
is as follows:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">    public void invoke() throws Exception {
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">    public void invoke() throws Exception {
         // You just need to set the address with JMS URI
         String address = "jms:jndi:dynamicQueues/test.cxf.jmstransport.queue3"
             + 
"?jndiInitialContextFactory=org.apache.activemq.jndi.ActiveMQInitialContextFactory"
@@ -258,7 +258,7 @@ jms:queue:ExampleQueueName?timeToLive=10
   ConnectionFactoryFeature cff = new ConnectionFactoryFeature(cf);
   Greeter greeter = service.getPort(portName, Greeter.class, cff); // 
Connection Factory can be set as a feature in CXF &gt;= 3.0.0 </pre>
 </div></div><p>If you specify queue or topic as variant and use cxf &gt;= 
3.0.0 then the jndi settings are not necessary.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">svrFactory.setAddress("jms:queue:test.cxf.jmstransport.queue?timeToLive=1000");
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">svrFactory.setAddress("jms:queue:test.cxf.jmstransport.queue?timeToLive=1000");
 // For CXF &gt;= 3.0.0
 svrFactory.setFeatures(Collections.singletonList(new 
ConnectionFactoryFeature(cf)));</pre>
 </div></div><p>In this case case the connection factory is supplied using a 
feature. For CXF 2.x the connection factory can only be supplied using 
jndi.</p><p>&#160;</p></div>

Modified: websites/production/cxf/content/docs/springboot.html
==============================================================================
--- websites/production/cxf/content/docs/springboot.html (original)
+++ websites/production/cxf/content/docs/springboot.html Wed Sep 13 15:05:52 
2017
@@ -32,8 +32,8 @@
 <link type="text/css" rel="stylesheet" 
href="/resources/highlighter/styles/shThemeCXF.css">
 
 <script src='/resources/highlighter/scripts/shCore.js'></script>
-<script src='/resources/highlighter/scripts/shBrushJava.js'></script>
 <script src='/resources/highlighter/scripts/shBrushXml.js'></script>
+<script src='/resources/highlighter/scripts/shBrushJava.js'></script>
 <script src='/resources/highlighter/scripts/shBrushPlain.js'></script>
 <script>
   SyntaxHighlighter.defaults['toolbar'] = false;
@@ -119,11 +119,11 @@ Apache CXF -- SpringBoot
            <!-- Content -->
            <div class="wiki-content">
 <div id="ConfluenceContent"><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1505311259311 {padding: 0px;}
-div.rbtoc1505311259311 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1505311259311 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1505314932220 {padding: 0px;}
+div.rbtoc1505314932220 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1505314932220 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1505311259311">
+/*]]>*/</style></p><div class="toc-macro rbtoc1505314932220">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#SpringBoot-SpringBootCXFJAX-WSStarter">Spring Boot CXF JAX-WS Starter</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#SpringBoot-Features">Features</a></li><li><a shape="rect" 
href="#SpringBoot-Setup">Setup</a></li><li><a shape="rect" 
href="#SpringBoot-AdditionalConfiguration">Additional 
Configuration</a></li><li><a shape="rect" 
href="#SpringBoot-APIDocumentation">API Documentation</a></li><li><a 
shape="rect" href="#SpringBoot-ServiceRegistryPublication">Service Registry 
Publication</a></li><li><a shape="rect" 
href="#SpringBoot-Examples">Examples</a></li></ul>
 </li><li><a shape="rect" href="#SpringBoot-SpringBootCXFJAX-RSStarter">Spring 
Boot CXF&#160;JAX-RS Starter</a>
@@ -134,13 +134,13 @@ div.rbtoc1505311259311 li {margin-left:
 </li></ul>
 </li></ul>
 </div><h1 id="SpringBoot-SpringBootCXFJAX-WSStarter">Spring Boot CXF JAX-WS 
Starter</h1><h2 id="SpringBoot-Features">Features</h2><p>Registers CXFServlet 
with a &#160;"/services/*" URL pattern for serving CXF JAX-WS endpoints.</p><h2 
id="SpringBoot-Setup">Setup</h2><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b>JAX-WS Starter</b></div><div 
class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;dependency&gt;
+<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;dependency&gt;
     &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
     &lt;artifactId&gt;cxf-spring-boot-starter-jaxws&lt;/artifactId&gt;
     &lt;version&gt;3.1.12&lt;/version&gt;
 &lt;/dependency&gt;</pre>
 </div></div><h2 id="SpringBoot-AdditionalConfiguration">Additional 
Configuration</h2><p>Use "<strong>cxf.path</strong>" property to customize a 
CXFServlet URL pattern</p><p>Use "<strong>cxf.servlet.init</strong>" map 
property to customize CXFServlet properties such as "services-list-path" 
(available by default at&#160; "/services"), etc.</p><p>If needed, one can use 
Spring ImportResource annotation to import the existing JAX-WS contexts 
available on the classpath.</p><h2 id="SpringBoot-APIDocumentation">API 
Documentation</h2><p>JAX-WS endpoints support WSDL.</p><h2 
id="SpringBoot-ServiceRegistryPublication">Service Registry 
Publication</h2><p>Publication of JAX-WS endpoints into well-known service 
registries such as Netflix Eureka Registry can be achieved similarly to the way 
JAX-RS endpoints are registered and is shown in a <a shape="rect" 
class="external-link" 
href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/spring_boot_scan/application";
  rel="nofollow">JAX-RS Spring Boot Scan</a> demo.</p><h2 
id="SpringBoot-Examples">Examples</h2><p>Consider the following Configuration 
instance:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>JAX-WS 
Configuration</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Confluence" 
style="font-size:12px;">package sample.ws;
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">package sample.ws;
 
 import javax.xml.ws.Endpoint;
 import org.apache.cxf.Bus;
@@ -164,13 +164,13 @@ public class WebServiceConfig {
     }
 }</pre>
 </div></div><p>&#160;</p><p>Having a CXF JAX-WS starter alongside this 
Configuration is sufficient for enabling a CXF JAX-WS endpoint which will 
respond to SOAP request URI such 
as</p><p>"http://localhost:8080/services/Hello";.</p><p>Please also see a <a 
shape="rect" class="external-link" 
href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jaxws_spring_boot";
 rel="nofollow">JAX-WS Spring Boot</a> demo.</p><h1 
id="SpringBoot-SpringBootCXFJAX-RSStarter">Spring Boot CXF&#160;JAX-RS 
Starter</h1><h2 id="SpringBoot-Features.1">Features</h2><p>Registers CXF 
Servlet with a &#160;"/services/*" URL pattern for serving CXF JAX-RS 
endpoints.</p><p>Optionally auto-discovers JAX-RS root resources and providers 
and creates a JAX-RS endpoint.</p><p>Note the use of CXF JAX-RS Clients in 
SpringBoot Application is covered in <a shape="rect" 
href="jaxrsclientspringboot.html">this section</a>.</p><h2 
id="SpringBoot-Setup.1">Setup</h2><div class="code panel pdl" style="bor
 der-width: 1px;"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b>JAX-RS Starter</b></div><div 
class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;dependency&gt;
+<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;dependency&gt;
     &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
     &lt;artifactId&gt;cxf-spring-boot-starter-jaxrs&lt;/artifactId&gt;
     &lt;version&gt;3.1.12&lt;/version&gt;
 &lt;/dependency&gt;</pre>
 </div></div><h2 id="SpringBoot-AdditionalConfiguration.1">Additional 
Configuration</h2><p>Use "<strong>cxf.path</strong>" property to customize a 
CXFServlet URL pattern.</p><p>Use "<strong>cxf.servlet.init</strong>" map 
property to customize CXFServlet properties such as "services-list-path" 
(available by default at&#160; "/services"), etc.</p><p>Use 
"<strong>cxf.jaxrs.server.path</strong>" property to customize a JAX-RS server 
endpoint address (default is "/").</p><p>JAX-RS root resources and providers 
annotated with JAX-RS @Path and @Provider and native CXF Providers annotated 
with CXF <a shape="rect" class="external-link" 
href="https://github.com/apache/cxf/blob/cxf-3.1.6/core/src/main/java/org/apache/cxf/annotations/Provider.java";
 rel="nofollow">@Provider</a> can be auto-discovered.</p><p>Use 
"<strong>cxf.jaxrs.component-scan</strong>" property to create a JAX-RS 
endpoint from the auto-discovered&#160;JAX-RS root resources and providers 
which are marked as Spring Components (ann
 otated with Spring @Component or created and returned from @Bean 
methods).</p><p>Use 
"<strong>cxf.jaxrs.component-scan</strong>-<strong>packages</strong>" property 
to restrict which of the auto-discovered Spring components are accepted as 
JAX-RS resource or provider classes. It sets a comma-separated list of the 
packages that a given bean instance's class must be in. Note, this property, if 
set, is only effective if a given bean is a singleton. It can be used alongside 
or as an alternative to the 
"<strong>cxf.jaxrs.component-scan</strong>-<strong>beans</strong>" property. 
This property is available starting from CXF 3.1.11.</p><p>Use 
"<strong>cxf.jaxrs.component-scan</strong>-<strong>beans</strong>" property to 
restrict which of the auto-discovered Spring components are accepted as JAX-RS 
resource or provider classes. It sets a comma-separated list of the accepted 
bean names - the auto-discovered component will only be accepted if its bean 
name is in this list. It can be used alongs
 ide or as an alternative to the 
"<strong>cxf.jaxrs.component-scan</strong>-<strong>packages</strong>" property. 
This property is available starting from CXF 3.1.11.</p><p>Use 
"<strong>cxf.jaxrs.classes-scan</strong>" property to create a JAX-RS endpoint 
from the auto-discovered&#160;JAX-RS root resources and provider classes. Such 
classes do not have to be annotated with Spring @Component. This property needs 
to be accompanied by a "<strong>cxf.jaxrs.classes-scan-packages</strong>" 
property which sets a comma-separated list of the packages to scan.</p><p>Note 
that while "<strong>cxf.jaxrs.component-scan</strong>" and 
"<strong>cxf.jaxrs.classes-scan</strong>" are mutually exclusive, 
"<strong>cxf.jaxrs.component-scan</strong>" can be used alongside the 
"<strong>cxf.jaxrs.classes-scan-packages</strong>" property to enable the 
auto-discovery of the JAX-RS resources and providers which may or may not be 
marked as Spring Components.</p><p>If needed, instead of having the resources 
auto-di
 scovered,&#160; one can use Spring ImportResource annotation to import the 
existing JAX-RS contexts available on the classpath.</p><h2 
id="SpringBoot-APIDocumentation.1">API Documentation</h2><h3 
id="SpringBoot-Swagger">Swagger</h3><p>See CXF <a shape="rect" 
href="swagger2feature.html#SwaggerFeature/Swagger2Feature-EnablinginSpringBoot" 
rel="nofollow">Swagger2Feature documentation</a> on how to enable 
Swagger2Feature in SpringBoot and how to auto-activate Swagger UI.</p><h3 
id="SpringBoot-WADL">WADL</h3><p>CXF automatically loads a WADL provider if a 
<strong>cxf-rt-rs-service-description</strong> module is available on the 
runtime classpath.</p><h2 id="SpringBoot-ServiceRegistryPublication.1">Service 
Registry Publication</h2><p>Publication of JAX-RS endpoints into well-known 
service registries such as Netflix Eureka Registry is shown in a <a 
shape="rect" class="external-link" 
href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/spring_boot_sca
 n/application" rel="nofollow">JAX-RS Spring Boot Scan</a> demo.</p><h2 
id="SpringBoot-Examples.1">Examples</h2><h3 
id="SpringBoot-ManualConfiguration">Manual Configuration</h3><p>Consider the 
following Configuration instance:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b>JAX-RS Configuration</b></div><div 
class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Confluence" 
style="font-size:12px;">package sample.rs.service;
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">package sample.rs.service;
 import java.util.Arrays;
 
 import org.apache.cxf.Bus;
@@ -206,12 +206,12 @@ public class SampleRestApplication {
     }
 }</pre>
 </div></div><p>&#160;</p><p>Having a CXF JAX-RS starter alongside this 
Configuration is sufficient for enabling a CXF JAX-RS endpoint which will 
respond to HTTP request URI such as</p><p>"<a shape="rect" 
class="external-link" href="http://localhost:8080/services/Hello"; 
rel="nofollow">http://localhost:8080/services/sayHello/ApacheCxfUser</a>". The 
above code also makes Swagger docs available at&#160;"<a shape="rect" 
class="external-link" href="http://localhost:8080/services/Hello"; 
rel="nofollow">http://localhost:8080/services/swagger.json</a>".</p><p>Please 
also see a <a shape="rect" class="external-link" 
href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/spring_boot";
 rel="nofollow">JAX-RS Spring Boot</a> demo.</p><p>&#160;</p><h3 
id="SpringBoot-AutoConfiguration">Auto Configuration</h3><p>Spring Boot 
Application example shown in the Manual Configuration section can be simplified 
if the auto-discovery is enabled.</p><p>For example, given the 
 following application.yml properties:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b>Application Properties</b></div><div 
class="codeContent panelContent pdl">
-<pre class="brush: text; gutter: false; theme: Confluence" 
style="font-size:12px;">&#160;cxf:
+<pre class="brush: text; gutter: false; theme: Default" 
style="font-size:12px;">&#160;cxf:
   jaxrs:
     component-scan: true
     classes-scan-packages: org.apache.cxf.jaxrs.swagger</pre>
 </div></div><p>&#160;</p><p>the application becomes 
simply:</p><p>&#160;</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 
1px;"><b>JAX-RS Auto Configuration</b></div><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Confluence" 
style="font-size:12px;">package sample.rs.service;
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">package sample.rs.service;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 

Modified: websites/production/cxf/content/docs/standalone-http-transport.html
==============================================================================
--- websites/production/cxf/content/docs/standalone-http-transport.html 
(original)
+++ websites/production/cxf/content/docs/standalone-http-transport.html Wed Sep 
13 15:05:52 2017
@@ -32,8 +32,8 @@
 <link type="text/css" rel="stylesheet" 
href="/resources/highlighter/styles/shThemeCXF.css">
 
 <script src='/resources/highlighter/scripts/shCore.js'></script>
-<script src='/resources/highlighter/scripts/shBrushJava.js'></script>
 <script src='/resources/highlighter/scripts/shBrushXml.js'></script>
+<script src='/resources/highlighter/scripts/shBrushJava.js'></script>
 <script>
   SyntaxHighlighter.defaults['toolbar'] = false;
   SyntaxHighlighter.all();
@@ -118,7 +118,7 @@ Apache CXF -- Standalone HTTP Transport
            <!-- Content -->
            <div class="wiki-content">
 <div id="ConfluenceContent"><h1 
id="StandaloneHTTPTransport-ConfiguringSSL">Configuring SSL</h1><p>To configure 
the standalone HTTP transport to use SSL, you'll need to add an 
&lt;http:destination&gt; definition to your XML configuration file. See the <a 
shape="rect" href="configuration.html">Configuration</a> guide to learn how to 
supply your own XML configuration file to CXF. If you are already using Spring, 
this can be added to your existing beans definitions. For more information 
about configuring TLS, see the <a shape="rect" 
href="https://cwiki.apache.org/confluence/display/CXF20DOC/TLS+Configuration";>Configuring
 TLS</a> page.</p><p>Destinations in CXF are responsible for listening for 
server side requests.</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;beans 
xmlns="http://www.springframework.org/schema/beans";
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">&lt;beans 
xmlns="http://www.springframework.org/schema/beans";
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
   xmlns:sec="http://cxf.apache.org/configuration/security";
   xmlns:http="http://cxf.apache.org/transports/http/configuration";
@@ -168,7 +168,7 @@ Apache CXF -- Standalone HTTP Transport
 &lt;/bean&gt; 
 </pre>
 </div></div><h1 
id="StandaloneHTTPTransport-Addthestaticcontentpagesintothejettyserver">Add the 
static content pages into the jetty server</h1><p>The CXF standalone http 
transport is based on the jetty server. The code below shows how to get the 
jetty server from the destination and how to add the static content path to the 
jetty server.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">    // get the jetty server form the destination
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">    // get the jetty server form the destination
     EndpointInfo ei = new EndpointInfo();
     ei.setAddress(serviceFactory.getAddress());
     Destination destination = df.getDestination(ei);

Modified: 
websites/production/cxf/content/docs/standardized-authentication-authorization.html
==============================================================================
--- 
websites/production/cxf/content/docs/standardized-authentication-authorization.html
 (original)
+++ 
websites/production/cxf/content/docs/standardized-authentication-authorization.html
 Wed Sep 13 15:05:52 2017
@@ -117,7 +117,7 @@ Apache CXF -- Standardized Authenticatio
            <!-- Content -->
            <div class="wiki-content">
 <div id="ConfluenceContent"><p>&#160;</p><p>&#160;</p><p>&#160;</p><div 
class="confluence-information-macro 
confluence-information-macro-information"><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">Ideas / 
Proposal</div></div><p>&#160;</p><p>CXF already supports a wide range of 
authentication and authorization approaches. Unfortunately they are all 
configured differently and do not integrate well with each other.</p><p>So the 
idea is to create one standardized authentication / authorization flow in CXF 
where the modules can then fit in. There are a lot of security frameworks out 
there that could be used as a basis for this. The problem is though that each 
framework&#160; (like Shiro or Spring Security) uses its own mechanisms which 
are not standardized. So by choosing one framework we would force our users to 
depend on this.</p><p>The best standardized security framework in java is JAAS. 
 It is already included in Java and most security frameworks can be hooked into 
it. So let&#180;s investigate what we could do with JAAS.</p><h2 
id="StandardizedAuthentication/Authorization-AuthenticationusingJAAS">Authentication
 using JAAS</h2><p>JAAS authentication is done by creating a LoginContext and 
doing a login on it. Things to configure is the name of the login config and 
the Callback Handlers. So CXF needs mechanisms for the user to set the config 
name and needs to provide CallBackHandlers to supply credentials.</p><h2 
id="StandardizedAuthentication/Authorization-CallbackHandlers">CallbackHandlers</h2><p>CXF
 needs to supply different data to identify the users depending on the chosen 
authentication variant.</p><p>Basic Auth: username and password from HTTP 
header</p><p>WS-Security UserNameToken: Username and password from SOAP 
header</p><p>Spnego: Kerberos token from HTTP header</p><p>HTTPS client cert: 
Certificate information</p><p>We could simply detect what information i
 s provided and configure the Callbackhandlers for each information we can 
supply. Depending on when the login should happen we could collect 
CallbackHandlers in the Message using Interceptors.</p><h2 
id="StandardizedAuthentication/Authorization-JAASconfiguration">JAAS 
configuration</h2><p>The JAAS configuration is supplied differently depending 
on the runtime CXF runs in.</p><p>Standalone: For standalone usage the JAAS 
config can simply come from a file.</p><p>Servlet Container: Not sure. Is there 
a standard approach for this?</p><p>Apache Karaf: Karaf already provides a JAAS 
integration so we just have to configure the JAAS config name and supply a 
suitable config in karaf</p><h2 
id="StandardizedAuthentication/Authorization-SupplyingRoleandUserinformation">Supplying
 Role and User information</h2><p>JAAS stores identity information in the JAAS 
subject. The method getPrincipals returns Principal objects which can be users, 
roles or even other identity information. To differentiate be
 tween roles and users there are two common approaches.</p><ol><li>different 
Classes like a UserPrincipal or RolePrincipal. There seems to be a Group 
interface which allows to differentiate between Users and Groups and also 
allows to see group members.</li><li>prefixes. So for example roles start with 
role- . There is no standard for this approach</li></ol><h2 
id="StandardizedAuthentication/Authorization-Authorization">Authorization</h2><p>Authorization
 has very diverse requirements. So we need to make sure we integrate well with 
different approaches.</p><p>Generally the idea is to base the Authorization on 
the JAAS login data. After a JAAS login the JAAS subject can be retrieved in a 
standard way:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Confluence" 
style="font-size:12px;">AccessControlContext acc = AccesController.getContext();
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">AccessControlContext acc = AccesController.getContext();
 Subject subject = Subject.getSubject(acc);</pre>
 </div></div><p>So the idea is that we provide certain default authorization 
variants that rely on the above to retrieve authentication information in a 
standardized way. So authorization is nicely decoupled from authentication and 
fully standards based.</p><p>This then also provides a nice interface for users 
or other frameworks to access authentication information and provide custom 
authorization variants.</p><h2 
id="StandardizedAuthentication/Authorization-DefaultAuthorizationVariants">Default
 Authorization Variants</h2><h3 
id="StandardizedAuthentication/Authorization-JEEannotations">JEE 
annotations</h3><p>Java EE provides some standard annotations like 
@RolesAllowed. We can provide an interceptor that reads the annotations of 
serivce impls and provides authorization like in a JEE container.</p><h3 
id="StandardizedAuthentication/Authorization-XACMLPEP">XACML PEP</h3><p>An 
XACML policy enforcement point can retrieve the JAAS login data and do 
authorization against an XACML Policy D
 ecision Point (PDP).</p><h2 
id="StandardizedAuthentication/Authorization-SeparatingAuthorizationfromCXF">Separating
 Authorization from CXF</h2><p>As authorization is not only relevant for 
webservices it makes sense to keep the authorization code separate from cxf 
too. So one way to implement authorization would be to put it into a blueprint 
extension. Of course this would cover only OSGi and blueprint but it would be a 
start.</p><p>It could work similar to the XA transaction support. Unlike in tx 
support we could scan all beans for security annotations like @RolesAllowed. 
Then for each bean that has this annotation we could proxy it with a class that 
does the security check. This would allow to have minimal xml 
configuration.</p><p>Another approach is to mark beans for security checks 
using xml like in tx support. This variant then would also work nicely for 
XACML authorization as in that case there would be no annotation to scan 
for.</p><h3 id="StandardizedAuthentication/Authorizat
 ion-KarafrolebasedOSGiserviceAuthorization">Karaf role based OSGi service 
Authorization</h3><p>Karaf 3 already supports authorization on the OSGi service 
level and uses JAAS for authentication. So if we do a JAAS login in CXF and the 
service impl code calls an OSGi service then the Karaf role based securtiy 
should already work out of the box.We could add annotation based Authorization 
to karaf code to make it even better and require less config.</p><h2 
id="StandardizedAuthentication/Authorization-Exceptionhandlingandanswergeneration">Exception
 handling and answer generation</h2><p>Currently the authentication and 
athorization modules often also generate the answer to the caller. It might be 
a good idea to decouple this.</p><p>In the authentication and authorization we 
only throw a defined Exception:</p><ul><li>Failure at Authentication: 
javax.security.auth.login.LoginException could also be more specific like 
AccountLockedException</li><li>Failure at Authorization: org.apache.cxf.in
 terceptor.security.AccessDeniedException or 
java.security.AccessControlException. The later one is better for code separate 
from cxf as it does not depend on CXF.</li></ul><p>Then in the transport like 
the http transport we map the exception to the defined status code and http 
response:</p><ul><li>LoginException: HTTP Code 
401</li><li>AccessDeniedException, AccessControlException: HTTP Code 
403</li></ul><p>Unfortunately CXF currently does not handle the status code 
generation in the transport. The exception is already mapped into a Fault at 
PhaseInterceptorChain. The Fault then holds the statusCode which is by default 
500. So one simple way to do the mapping isto map from exception type to fault 
code in the Fault constructor. This is not extensible but would do for the 
start.</p><h2 id="StandardizedAuthentication/Authorization-JAASFeature">JAAS 
Feature</h2><p>The JAAS feature needs some configuration like the jaas context 
name. So it makes sense to integrate it with config admin in 
 OSGi and publish it as an OSGi service. So we can keep the JAAS configuration 
centralized and keep it out of each bundle.</p><p>As long as the configs are 
very limited we could of course also integrate it in each bundles cxf bus. This 
would have the advantage that it also works outside OSGi.</p><h2 
id="StandardizedAuthentication/Authorization-Authenticationactivation">Authentication
 activation</h2><p>Ideally we should integrate the new authentication / 
authorization model in a way that enable the user to switch on authentication 
for the karaf server without specific configurations in the user bundles that 
implement the services. One problem with this very loosely coupled approach is 
that switching on authentication would secure all services but perhaps some are 
expected to work without. The other problem is that the services might start 
before the auth module and then run unsecured.</p><p>So we need a way to mark 
services that need authentication. One existing way to do so is to bin
 d the auhorization Feature as an OSGi service and add it to the features "by 
hand". This is a bit verbose but on the other hand it is very clear what 
happens.</p><p>One other approach would be to publish the feature as a an OSGi 
service with a unique ID (which is already present for features). Then we could 
have a new Element for cxf:bus and endpoints like 
that:</p><p>&lt;namedFeatures&gt;authentication, 
xacmlAuthorization&lt;/namedFeatures&gt;</p><p>This Element would mean that cxf 
will only publish the endpoint once both of these named features are present 
and will add the features to the endpoint /bus.</p><h2 
id="StandardizedAuthentication/Authorization-Problems">Problems</h2><p>Doing a 
full JAAS login requires to use subject.doAs to populate the 
AcessControlContext. This is not possible in a CXF interceptor as the 
interceptor only works on a message but can not call the next interceptor for 
doAs. So the question is where to do the JAAS login and the doAs?</p><h2 
id="Standardized
 Authentication/Authorization-Links">Links</h2><p><a shape="rect" 
class="external-link" 
href="http://docs.oracle.com/javase/6/docs/technotes/guides/security/jaas/JAASRefGuide.html";
 
rel="nofollow">http://docs.oracle.com/javase/6/docs/technotes/guides/security/jaas/JAASRefGuide.html</a></p></div>
            </div>

Modified: websites/production/cxf/content/docs/swagger2feature.html
==============================================================================
--- websites/production/cxf/content/docs/swagger2feature.html (original)
+++ websites/production/cxf/content/docs/swagger2feature.html Wed Sep 13 
15:05:52 2017
@@ -32,8 +32,8 @@
 <link type="text/css" rel="stylesheet" 
href="/resources/highlighter/styles/shThemeCXF.css">
 
 <script src='/resources/highlighter/scripts/shCore.js'></script>
-<script src='/resources/highlighter/scripts/shBrushJava.js'></script>
 <script src='/resources/highlighter/scripts/shBrushXml.js'></script>
+<script src='/resources/highlighter/scripts/shBrushJava.js'></script>
 <script>
   SyntaxHighlighter.defaults['toolbar'] = false;
   SyntaxHighlighter.all();
@@ -118,16 +118,16 @@ Apache CXF -- Swagger2Feature
            <!-- Content -->
            <div class="wiki-content">
 <div id="ConfluenceContent"><h1 
id="Swagger2Feature-Swagger2Feature">Swagger2Feature</h1><p><style 
type="text/css">/*<![CDATA[*/
-div.rbtoc1505311212333 {padding: 0px;}
-div.rbtoc1505311212333 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1505311212333 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1505314846404 {padding: 0px;}
+div.rbtoc1505314846404 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1505314846404 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1505311212333">
+/*]]>*/</style></p><div class="toc-macro rbtoc1505314846404">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Swagger2Feature-Swagger2Feature">Swagger2Feature</a></li><li><a 
shape="rect" href="#Swagger2Feature-Setup">Setup</a></li><li><a shape="rect" 
href="#Swagger2Feature-Properties">Properties</a></li><li><a shape="rect" 
href="#Swagger2Feature-ConfiguringfromCode">Configuring from 
Code</a></li><li><a shape="rect" 
href="#Swagger2Feature-ConfiguringinSpring">Configuring in 
Spring</a></li><li><a shape="rect" 
href="#Swagger2Feature-ConfiguringinBlueprint">Configuring in 
Blueprint</a></li><li><a shape="rect" 
href="#Swagger2Feature-ConfiguringinCXFNonSpringJaxrsServlet">Configuring in 
CXFNonSpringJaxrsServlet</a></li><li><a shape="rect" 
href="#Swagger2Feature-New:ConfiguringfromPropertiesfile">New: Configuring from 
Properties file</a></li><li><a shape="rect" 
href="#Swagger2Feature-EnablinginSpringBoot">Enabling in Spring 
Boot</a></li><li><a shape="rect" 
href="#Swagger2Feature-AccessingSwaggerDocuments">Accessing Swagger 
Documents</a></li><l
 i><a shape="rect" href="#Swagger2Feature-EnablingSwaggerUI">Enabling Swagger 
UI</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Swagger2Feature-AutomaticUIActivation">Automatic UI 
Activation</a></li><li><a shape="rect" 
href="#Swagger2Feature-UnpackingSwaggerUIresources">Unpacking Swagger UI 
resources</a></li></ul>
 </li><li><a shape="rect" href="#Swagger2Feature-ReverseProxy">Reverse 
Proxy</a></li><li><a shape="rect" 
href="#Swagger2Feature-SetaCXFServletinitparameter'use-x-forwarded-headers'to'true'ifyouaccessSwaggerJSONand/o">Set
 a CXFServlet init parameter 'use-x-forwarded-headers' to 'true' if you access 
Swagger JSON and/o</a></li><li><a shape="rect" 
href="#Swagger2Feature-Samples">Samples</a></li></ul>
 </div><p>&#160;</p><p>The CXF Swagger2Feature allows you to generate&#160;<a 
shape="rect" class="external-link" href="http://swagger.io/specification/"; 
rel="nofollow">Swagger 2.0</a>&#160;documents from JAX-RS service endpoints 
with a simple configuration.</p><p>For generating <a shape="rect" 
class="external-link" 
href="https://github.com/swagger-api/swagger-spec/blob/master/versions/1.2.md"; 
rel="nofollow">Swagger 1.2</a> documents, you can use SwaggerFeature instead of 
Swagger2Feature (for CXF versions &lt;= 3.1.x).</p><p>These features can be 
configured programatically in Java or using Spring or Blueprint beans.</p><h1 
id="Swagger2Feature-Setup">Setup</h1><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;dependency&gt;
+<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;dependency&gt;
     &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
     &lt;artifactId&gt;cxf-rt-rs-service-description-swagger&lt;/artifactId&gt;
     &lt;version&gt;3.1.11&lt;/version&gt;
@@ -135,7 +135,7 @@ div.rbtoc1505311212333 li {margin-left:
 
 </pre>
 </div></div><p>Note that a <strong>cxf-rt-rs-service-description</strong> 
needs to be used if older CXF 3.1.x versions are used.</p><p>&#160;</p><h1 
id="Swagger2Feature-Properties">Properties</h1><p><span style="line-height: 
1.4285715;">The following optional parameters can be configured in 
Swagger2Feature</span></p><p><span style="line-height: 1.4285715;">Note some 
properties listed below are not available or used differently in 
SwaggerFeature, as the corresponding properties are used differently in Swagger 
2.0 and Swagger 1.2. Please refer to the corresponding Swagger documentation 
for more information.)</span></p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh">Name</th><th colspan="1" rowspan="1" 
class="confluenceTh">Description</th><th colspan="1" rowspan="1" 
class="confluenceTh">Default</th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">basePath</td><td colspan="1" rowspan="1" 
class="confluenceTd">the
  context root path<sup>+</sup></td><td colspan="1" rowspan="1" 
class="confluenceTd">null</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">contact</td><td colspan="1" rowspan="1" 
class="confluenceTd">the contact information<span>+</span></td><td colspan="1" 
rowspan="1" class="confluenceTd">"[email protected]"</td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd">description</td><td colspan="1" 
rowspan="1" class="confluenceTd">the description<span>+</span></td><td 
colspan="1" rowspan="1" class="confluenceTd">"The Application"</td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd">filterClass</td><td colspan="1" 
rowspan="1" class="confluenceTd">a security filter<span>+</span></td><td 
colspan="1" rowspan="1" class="confluenceTd">null</td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd">host</td><td colspan="1" rowspan="1" 
class="confluenceTd">the host and port<span>+</span></td><td colspan="1" 
rowspan="1" class="confluenceTd">null</td></tr><tr><td
  colspan="1" rowspan="1" class="confluenceTd">ignoreRoutes</td><td colspan="1" 
rowspan="1" class="confluenceTd">excludes specific paths when scanning all 
resources (see scanAllResources)<span>+</span><span>+</span></td><td 
colspan="1" rowspan="1" class="confluenceTd">null</td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd">license</td><td colspan="1" rowspan="1" 
class="confluenceTd">the license<span>+</span></td><td colspan="1" rowspan="1" 
class="confluenceTd">"Apache 2.0 License"</td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd">licenceUrl</td><td colspan="1" rowspan="1" 
class="confluenceTd">the license URL<span>+</span></td><td colspan="1" 
rowspan="1" class="confluenceTd">"<span 
class="nolink">http://www.apache.org/licenses/LICENSE-2.0.html</span>"</td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd">prettyPrint</td><td colspan="1" 
rowspan="1" class="confluenceTd">when generating swagger.json, pretty-print the 
json document<span>+</span></td><td cols
 pan="1" rowspan="1" class="confluenceTd">false</td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd">resourcePackage</td><td colspan="1" 
rowspan="1" class="confluenceTd">a list of comma separated package names where 
resources must be scanned<span>+</span></td><td colspan="1" rowspan="1" 
class="confluenceTd">a list of service classes configured at the 
endpoint</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">runAsFilter</td><td colspan="1" rowspan="1" 
class="confluenceTd">runs the feature as a filter</td><td colspan="1" 
rowspan="1" class="confluenceTd">false</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">scan</td><td colspan="1" rowspan="1" 
class="confluenceTd">generates the swagger documentation<span>+</span></td><td 
colspan="1" rowspan="1" class="confluenceTd">true</td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd">scanAllResources</td><td colspan="1" 
rowspan="1" class="confluenceTd">scans all resources including non-annotated 
JAX-RS r
 esources<span>+</span><span>+</span></td><td colspan="1" rowspan="1" 
class="confluenceTd">false</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">schemes</td><td colspan="1" rowspan="1" 
class="confluenceTd">the protocol schemes<span>+</span></td><td colspan="1" 
rowspan="1" class="confluenceTd">null</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">termsOfServiceUrl</td><td colspan="1" rowspan="1" 
class="confluenceTd">the terms of service URL<span>+</span></td><td colspan="1" 
rowspan="1" class="confluenceTd">null</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">title</td><td colspan="1" rowspan="1" 
class="confluenceTd">the title<span>+</span></td><td colspan="1" rowspan="1" 
class="confluenceTd">"Sample REST Application"</td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd">version</td><td colspan="1" rowspan="1" 
class="confluenceTd">the version<span>+</span></td><td colspan="1" rowspan="1" 
class="confluenceTd">"1.0.0"</td></tr></tbody></ta
 ble></div><p>Note: those descriptions marked with&#160;<span>+ correspond to 
the properties defined in Swagger's BeanConfig, and those marked 
with&#160;<span>+</span><span>+ correspond to&#160;the properties defined in 
Swagger's ReaderConfig.</span></span></p><h1 
id="Swagger2Feature-ConfiguringfromCode">Configuring from 
Code</h1><p>&#160;</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">import org.apache.cxf.frontend.ServerFactoryBean;
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">import org.apache.cxf.frontend.ServerFactoryBean;
 import org.apache.cxf.jaxrs.swagger.Swagger2Feature;
 ...
 
@@ -148,7 +148,7 @@ import org.apache.cxf.jaxrs.swagger.Swag
        ServerFactoryBean sfb = new ServerFactoryBean();
        sfb.getFeatures().add(feature);</pre>
 </div></div><p>&#160;</p><h1 
id="Swagger2Feature-ConfiguringinSpring">Configuring in 
Spring</h1><p>&#160;</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;beans 
xmlns="http://www.springframework.org/schema/beans";
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">&lt;beans 
xmlns="http://www.springframework.org/schema/beans";
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:cxf="http://cxf.apache.org/core";
        xmlns:jaxrs="http://cxf.apache.org/jaxrs";
        xsi:schemaLocation="http://cxf.apache.org/core 
http://cxf.apache.org/schemas/core.xsd
@@ -183,7 +183,7 @@ import org.apache.cxf.jaxrs.swagger.Swag
 
 </pre>
 </div></div><p>&#160;</p><h1 
id="Swagger2Feature-ConfiguringinBlueprint">Configuring in 
Blueprint</h1><p>&#160;</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;blueprint 
xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">&lt;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";
@@ -219,7 +219,7 @@ import org.apache.cxf.jaxrs.swagger.Swag
 &lt;/blueprint&gt;
 &#160;</pre>
 </div></div><h1 
id="Swagger2Feature-ConfiguringinCXFNonSpringJaxrsServlet">Configuring in 
CXFNonSpringJaxrsServlet</h1><p>&#160;</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;web-app&gt;
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">&lt;web-app&gt;
     &lt;context-param&gt;
         &lt;param-name&gt;contextParam&lt;/param-name&gt;
         &lt;param-value&gt;contextParamValue&lt;/param-value&gt;
@@ -253,7 +253,7 @@ import org.apache.cxf.jaxrs.swagger.Swag
     
 &lt;/web-app&gt;</pre>
 </div></div><h1 id="Swagger2Feature-New:ConfiguringfromPropertiesfile">New: 
Configuring from Properties file</h1><p>Starting from CXF 3.1.13 and 3.2.0 it 
is possible to configure Swagger2Feature with a Properties file.</p><p>For 
example, while a <a shape="rect" class="external-link" 
href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/spring_boot";
 rel="nofollow">samples/jax_rs/spring_boot</a> demo configures the feature <a 
shape="rect" class="external-link" 
href="https://github.com/apache/cxf/blob/master/distribution/src/main/release/samples/jax_rs/spring_boot/src/main/java/sample/rs/service/SampleRestApplication.java#L54";
 rel="nofollow">from the code</a>, a &#160;<a shape="rect" 
class="external-link" 
href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/spring_boot_scan";
 rel="nofollow">samples/jax_rs/spring_boot_scan</a> demo has it configured from 
<a shape="rect" class="external-link" href="https://gith
 
ub.com/apache/cxf/blob/master/distribution/src/main/release/samples/jax_rs/spring_boot_scan/application/src/main/resources/swagger.properties"
 rel="nofollow">the properties file</a>.</p><p>Default location for a 
properties file is "<strong>/swagger.properties</strong>". Swagger2Feature will 
pick it up if it is available, and the location can be overridden with a new 
Swagger2Feature '<strong>swaggerPropertiesLocation</strong>' 
property.&#160;</p><p>Note that the properties, if available, do not override 
the properties which may have been set as suggested above from the code or 
Spring/Blueprint contexts or web.xml. Instead they complement and serve as the 
default configuration properties: for example, if some properties have been set 
from the code then the values for the same properties found in the properties 
file will not be used.</p><h1 
id="Swagger2Feature-EnablinginSpringBoot">Enabling in Spring Boot</h1><p>See <a 
shape="rect" class="external-link" href="https://github.com/apache/
 cxf/tree/master/distribution/src/main/release/samples/jax_rs/spring_boot" 
rel="nofollow">samples/jax_rs/spring_boot</a> and on how to create 
Swagger2Feature in a @Bean method and&#160;<a shape="rect" 
class="external-link" 
href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/spring_boot_scan";
 rel="nofollow">samples/jax_rs/spring_boot_scan</a> on how to auto-enable 
it.</p><p>&#160;</p><h1 
id="Swagger2Feature-AccessingSwaggerDocuments">Accessing Swagger 
Documents</h1><p>When Swagger is enabled by Swagger feature, the Swagger 
documents will be available at the location URL constructed of the service 
endpoint location followed by /swagger.json or /swagger.yaml.</p><p>For 
example, lets assume a JAX-RS endpoint is published at 
'http://host:port/context/services/' where 'context' is a web application 
context,&#160; "/services" is a servlet URL. In this case its Swagger documents 
are available at 'http://host:port/context/services/swagger.json' and 'ht
 tp://host:port/context/services/swagger.yaml'.</p><p>Starting from CXF 3.1.7 
the CXF Services page will link to Swagger documents if Swagger2Feature is 
active.&#160;</p><p>In the above example, go 
to&#160;'<span>http://host:port/context/services/</span>services' and follow a 
Swagger link which will return a Swagger JSON document.</p><p>If <a 
shape="rect" class="external-link" 
href="https://github.com/swagger-api/swagger-ui/blob/master/README.md#cors-support";
 rel="nofollow">CORS support</a> is needed to access the definition from a 
Swagger UI on another host, the <a shape="rect" 
href="jax-rs-cors.html">CrossOriginResourceSharingFilter from 
cxf-rt-rs-security-cors</a> can be added.</p><p>&#160;</p><h1 
id="Swagger2Feature-EnablingSwaggerUI">Enabling Swagger UI</h1><p>First one 
needs to add the following</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;dependency&gt;
+<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;dependency&gt;
     &lt;groupId&gt;org.webjars&lt;/groupId&gt;
     &lt;artifactId&gt;swagger-ui&lt;/artifactId&gt;
     &lt;version&gt;2.2.10-1&lt;/version&gt;


Reply via email to