JBossWS SVN: r17847 - in stack/cxf: tags and 1 other directory.
by jbossws-commits@lists.jboss.org
Author: alessio.soldano(a)jboss.com
Date: 2013-07-26 12:54:25 -0400 (Fri, 26 Jul 2013)
New Revision: 17847
Added:
stack/cxf/tags/jbossws-cxf-4.2.0.Final/
Removed:
stack/cxf/branches/jbossws-cxf-4.2.0.Final/
Log:
Tagging jbossws-cxf 4.2.0.Final
11 years, 2 months
JBossWS SVN: r17846 - stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/src/main/doc.
by jbossws-commits@lists.jboss.org
Author: alessio.soldano(a)jboss.com
Date: 2013-07-26 12:15:53 -0400 (Fri, 26 Jul 2013)
New Revision: 17846
Modified:
stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/src/main/doc/Revision_History.xml
stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/src/main/doc/chapter-4-JAX_WS_Tools.xml
stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/src/main/doc/chapter-5-Advanced_User_Guide.xml
stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/src/main/doc/chapter-6-JBoss_Modules.xml
Log:
Updating doc
Modified: stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/src/main/doc/Revision_History.xml
===================================================================
--- stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/src/main/doc/Revision_History.xml 2013-07-26 16:14:02 UTC (rev 17845)
+++ stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/src/main/doc/Revision_History.xml 2013-07-26 16:15:53 UTC (rev 17846)
@@ -74,6 +74,20 @@
</simplelist>
</revdescription>
</revision>
+ <revision>
+ <revnumber>4.2.0</revnumber>
+ <date>Fri Jul 26 2013</date>
+ <author>
+ <firstname>Alessio</firstname>
+ <surname>Soldano</surname>
+ <email>alessio.soldano(a)jboss.com</email>
+ </author>
+ <revdescription>
+ <simplelist>
+ <member>JBossWS-CXF 4.2.0 documentation</member>
+ </simplelist>
+ </revdescription>
+ </revision>
</revhistory>
</simpara>
</appendix>
Modified: stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/src/main/doc/chapter-4-JAX_WS_Tools.xml
===================================================================
--- stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/src/main/doc/chapter-4-JAX_WS_Tools.xml 2013-07-26 16:14:02 UTC (rev 17845)
+++ stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/src/main/doc/chapter-4-JAX_WS_Tools.xml 2013-07-26 16:15:53 UTC (rev 17846)
@@ -496,7 +496,8 @@
-b, --binding=<file> One or more JAX-WS or JAXB binding files
-k, --keep Keep/Generate Java source
-c --catalog=<file> Oasis XML Catalog file for entity resolution
- -p --package=<name> The target package for generated source
+ -j --clientjar=<name> Create a jar file of the generated artifacts for calling the webservice
+ -p --package=<name> The target package for generated source
-w --wsdlLocation=<loc> Value to use for @WebServiceClient.wsdlLocation
-o, --output=<directory> The directory to put generated artifacts
-s, --source=<directory> The directory to put Java source
@@ -669,7 +670,7 @@
<para>The output directory for Java source.</para>
</entry>
<entry>
- <para>${project.build.directory}/wsconsume/java</para>
+ <para>${project.build.directory}/generated-sources/wsconsume</para>
</entry>
</row>
<row>
@@ -1296,6 +1297,17 @@
</row>
<row>
<entry>
+ <para>portSoapAddress</para>
+ </entry>
+ <entry>
+ <para>The generated port soap:address in the WSDL</para>
+ </entry>
+ <entry>
+ <para> </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
<para>
<emphasis role="strong">endpointClass</emphasis>
</para>
Modified: stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/src/main/doc/chapter-5-Advanced_User_Guide.xml
===================================================================
--- stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/src/main/doc/chapter-5-Advanced_User_Guide.xml 2013-07-26 16:14:02 UTC (rev 17845)
+++ stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/src/main/doc/chapter-5-Advanced_User_Guide.xml 2013-07-26 16:15:53 UTC (rev 17846)
@@ -413,7 +413,7 @@
<para>
The
<code>configFile</code>
- attribute is used to specify with config file, if any, is to be used to load the configuration; if
+ attribute is used to specify which config file, if any, is to be used to load the configuration; if
<code>configFile</code>
is not set, the application server configurations are used.
</para>
@@ -747,13 +747,232 @@
<para>allowing using Apache CXF advanced features (including WS-*) on top of JBoss Application server without requiring the user to deal with / setup / care about the required integration steps for running in such a container.</para>
</listitem>
</itemizedlist>
- <para>In order for achieving the goals above, the JBossWS-CXF integration supports the JBoss endpoint deployment and comes with many internal customizations on top of Apache CXF.</para>
+ <para>In order for achieving the goals above, the JBossWS-CXF integration supports the JBoss ws endpoint deployment mechanism and comes with many internal customizations on top of Apache CXF.</para>
<para>
In the next sections a list of technical suggestions and notes on the integration is provided; please also refer to the
<ulink url="http://cxf.apache.org/docs/index.html">Apache CXF official documentation</ulink>
for in-depth details on the CXF architecture.
</para>
</section>
+ <section id="sid-3866786_ApacheCXFintegration-BuildingWSapplicationstheJBossway">
+
+ <title>Building WS applications the JBoss way</title>
+ <para>
+ The Apache CXF client and endpoint configuration as explained in the
+ <ulink url="http://cxf.apache.org/docs/index.html">Apache CXF official user guide</ulink>
+ is heavily based on Spring. Apache CXF basically parses Spring
+ <code>cxf.xml</code>
+ descriptors; those may contain any basic bean plus specific ws client and endpoint beans which CXF has custom parsers for. Apache CXF can be used to deploy webservice endpoints on any servlet container by including its libraries in the deployment; in such a scenario Spring basically serves as a convenient configuration option, given direct Apache CXF API usage won't be very handy. Similar reasoning applies on client side, where a Spring based descriptor offers a shortcut for setting up Apache CXF internals.
+ </para>
+ <para>This said, nowadays almost any Apache CXF functionality can be configured and used through direct API usage, without Spring.</para>
+ <section id="sid-3866786_ApacheCXFintegration-Portableapplications">
+
+ <title>Portable applications</title>
+ <para>The JBoss Application Server is much more then a servlet container; it actually provides users with a fully compliant target platform for Java EE applications.</para>
+ <para>
+ Generally speaking,
+ <emphasis role="italics">users are encouraged to write portable applications</emphasis>
+ by relying only on
+ <emphasis role="italics">JAX-WS specification</emphasis>
+ whenever possible. That would by the way ensure easy migrations to and from other compliant platforms. Being a Java EE container, JBoss Application Server already comes with a JAX-WS compliant implementation, which is basically Apache CXF plus the JBossWS-CXF integration layer. So users just need to write their JAX-WS application;
+ <emphasis role="italics">no need for embedding any Apache CXF or any ws related dependency library in user deployments</emphasis>
+ . Please refer to the
+ <xref linkend="sid-3866716"/>
+ section of the documentation for getting started.
+ </para>
+ <para>
+ WS-* usage (including WS-Security, WS-Addressing, WS-ReliableMessaging, ...) should also be configured in the most portable way; that is by
+ <emphasis role="italics">relying on proper WS-Policy assertions</emphasis>
+ on the endpoint WSDL contracts, so that client and endpoint configuration is basically a matter of setting few ws context properties. The WS-* related sections of this documentation cover all the details on configuring applications making use of WS-* through policies.
+ </para>
+ <para>
+ As a consequence of the reasoning above, the JBossWS-CXF integration is currently built directly on the Apache CXF API and aims at allowing users to configure webservice clients and endpoints
+ <emphasis role="italics">without Spring descriptors</emphasis>
+ .
+ </para>
+ <para>
+ <emphasis role="strong">The following two paragraphs provide few directions on how to deploy or use applications explicitly relying on Apache CXF, users should however prefer the portable application approach whenever possible.</emphasis>
+ </para>
+ </section>
+ <section id="sid-3866786_ApacheCXFintegration-DirectApacheCXFAPIusage">
+
+ <title>Direct Apache CXF API usage</title>
+ <para>Whenever users can't really meet their application requirements with JAX-WS plus WS-Policy, it is of course still possible to rely on direct Apache CXF API usage (given that's included in the AS), loosing the Java EE portability of the application. That could be the case of a user needing specific Apache CXF functionalities, or having to consume WS-* enabled endpoints advertised through legacy wsdl contracts without WS-Policy assertions.</para>
+ <para>
+ On server side, direct Apache CXF API usage might not be always possible or end up being not very easy. For this reason, the JBossWS integration comes with a convenient alternative through customization options in the
+ <code>jboss-webservices.xml</code>
+ descriptor described below on this page.
+ </para>
+ </section>
+ <section id="sid-3866786_ApacheCXFintegration-Springdescriptorsusage">
+
+ <title>Spring descriptors usage</title>
+ <para>
+ Finally, in some cases, users might still want to consume Spring descriptors (
+ <emphasis role="strong">discouraged approach</emphasis>
+ ); that's possibly the case of applications developed on and being migrated from different environments. For such scenarios, the installation of Spring Framework libraries on application server is the suggested approach. That can be performed using the JBossWS-CXF installation script or by manually populating a
+ <emphasis role="italics">org.springframework.spring</emphasis>
+ JBoss AS module with the required Spring jars. For writing the
+ <code>module.xml</code>
+ descriptor for such a module please refer the relevant JBoss AS documentation on creating modules; in any case it would look similar to:
+ </para>
+ <informalexample>
+ <programlisting><module xmlns="urn:jboss:module:1.1" name="org.springframework.spring">
+ <resources>
+ <!-- List references to jar resources here -->
+ </resources>
+ <dependencies>
+ <module name="javax.api" />
+ <module name="javax.jms.api" />
+ <module name="javax.annotation.api" />
+ <module name="org.apache.commons.logging" />
+ <module name="org.jboss.vfs" />
+ </dependencies>
+</module></programlisting>
+ </informalexample>
+ <para>
+ The other webservices modules on JBoss AS already have an optional dependency on
+ <emphasis role="italics">org.springframework.spring</emphasis>
+ module and will hence automatically consume it.
+ </para>
+ <para>Once the Spring module is available on target application server, Spring based Apache CXF buses can be built up.</para>
+ <section id="sid-3866786_ApacheCXFintegration-Clientside">
+
+ <title>Client side</title>
+ <para>
+ Whenever Spring is available in the current thread classloader (possibly as a consequence of having set a dependency to the above mentioned
+ <code>org.springframework.spring</code>
+ module) and the classloader can successfully locate a valid Spring descriptor resource, a Spring based
+ <code>Bus</code>
+ will be created if required. So user can either:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ programmatically use a
+ <code>SpringBusFactory</code>
+ (or the
+ <code>JBossWSBusFactory</code>
+ if the JBossWS additions are available) to load a Spring Bus from a given
+ <emphasis role="italics">cxf.xml</emphasis>
+ descriptor; that can include any CXF customization or client bean;
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ build a JAX-WS client and let the JAX-WS Provider implementation internally build a Spring based
+ <code>Bus</code>
+ using the available
+ <emphasis role="italics">cxf.xml</emphasis>
+ resource retrieved from the current classloader (usually found in
+ <emphasis role="italics">META-INF/cxf.xml</emphasis>
+ ).
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ Consider having a look at
+ <link linkend="sid-4784150">this page</link>
+ for directions on setting module dependencies, especially if willing to create a ws client within a Spring Bus and running in-container.
+ </para>
+ <para>
+ Finally please be sure to check the section below on
+ <code>Bus</code>
+ usage any time you're building a
+ <code>Bus</code>
+ on client side.
+ </para>
+ </section>
+ <section id="sid-3866786_ApacheCXFintegration-Serverside">
+
+ <title>Server side</title>
+ <para>It is possible to customize the JBossWS integration with Apache CXF by incorporating a CXF configuration file into the endpoint deployment archive. The convention is the following:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ the descriptor file name must be
+ <emphasis role="strong">jbossws-cxf.xml</emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ for POJO deployments it is located in
+ <emphasis role="strong">WEB-INF</emphasis>
+ directory
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ for EJB3 deployments it is located in
+ <emphasis role="strong">META-INF</emphasis>
+ directory
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ The
+ <emphasis role="italics">jbossws-cxf.xml</emphasis>
+ is parsed similarly to a common
+ <emphasis role="italics">cxf.xml</emphasis>
+ in order for building up a
+ <code>Bus</code>
+ for the WS deployment; the endpoint beans included in the deployment are to be specified using the
+ <code><jaxws:endpoint></code>
+ tag the same they would be specified in a
+ <emphasis role="italics">cxf.xml</emphasis>
+ descriptor (a example from the testsuite can be seen
+ <ulink url="http://anonsvn.jboss.org/repos/jbossws/stack/cxf/tags/jbossws-cxf-4.1.3.F...">here</ulink>
+ ). The application server HTTP engine will be serving the endpoints.
+ </para>
+ <para>
+ If there is no
+ <code><jaxws:endpoint></code>
+ defined in
+ <emphasis role="italics">jbossws-cxf.xml</emphasis>
+ , the endpoint classes mentioned in
+ <emphasis role="italics">WEB-INF/web.xml</emphasis>
+ will be automatically transformed to
+ <code><jaxws:endpoint></code>
+ entries in the Spring configuration and loaded by JBossWS-CXF. This allows using the jbossws-cxf.xml to customize the bus without having to manually duplicate the endpoint information in the descriptor. The following is an example of configuring an endpoint through
+ <emphasis role="italics">web.xml</emphasis>
+ with Aegis databinding setup from
+ <emphasis role="italics">jbossws-cxf.xml</emphasis>
+ :
+ </para>
+ <informalexample>
+ <programlisting><?xml version="1.0" encoding="UTF-8"?>
+<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
+ <servlet>
+ <servlet-name>AegisGroupQueryService</servlet-name>
+ <servlet-class>org.jboss.test.ws.jaxws.cxf.aegis.AegisGroupQueryImpl</servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>AegisGroupQueryService</servlet-name>
+ <url-pattern>/*</url-pattern>
+ </servlet-mapping>
+</web-app></programlisting>
+ </informalexample>
+ <informalexample>
+ <programlisting><beans xmlns='http://www.springframework.org/schema/beans'
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:beans='http://www.springframework.org/schema/beans'
+ xmlns:jaxws='http://cxf.apache.org/jaxws'
+ xsi:schemaLocation='http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+ http://www.w3.org/2006/07/ws-policy http://www.w3.org/2006/07/ws-policy.xsd
+ http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd'>
+ <bean id="aegisBean" class="org.apache.cxf.aegis.databinding.AegisDatabinding" scope="prototype" />
+ <bean name="{http://aegis.cxf.jaxws.ws.test.jboss.org/}AegisGroupQueryImplPort.jaxws-endpoint" abstract="true">
+ <property name="dataBinding" ref="aegisBean" />
+ </bean>
+</beans> </programlisting>
+ </informalexample>
+ <para>
+ The
+ <emphasis role="italics">jbossws-cxf.xml</emphasis>
+ approach can be used for the very few scenarios Apache CXF can be configured for only using Spring descriptor, e.g. for some advanced WS-RM customizations.
+ </para>
+ </section>
+ </section>
+ </section>
<section id="sid-3866786_ApacheCXFintegration-Bususage">
<title>Bus usage</title>
@@ -896,12 +1115,14 @@
<para>
The JBossWS-CXF server side integration takes care of internally creating proper Apache CXF structures (including a
<code>Bus</code>
- instance, of course) for the ws endpoint deployment.
+ instance, of course) for the provided ws deployment. Should the deployment include multiple endpoints, those would all live within the same Apache CXF Bus, which would of course be completely separated by the other deployments' bus instances.
</para>
<para>
While JBossWS sets sensible defaults for most of the Apache CXF configuration options on server side, users might want to fine tune the
<code>Bus</code>
- instance that's created for their deployments.
+ instance that's created for their deployment; a
+ <code>jboss-webservices.xml</code>
+ descriptor can be used for deployment level customizations.
</para>
<section id="sid-3866786_ApacheCXFintegration-Deploymentdescriptorproperties">
@@ -1069,40 +1290,18 @@
.
</para>
</section>
+ <section id="sid-3866786_ApacheCXFintegration-WSDiscoveryenablement">
+
+ <title>Discovery enablement</title>
+ <para>
+ WS-Discovery support can be turned on in
+ <code>jboss-webservices</code>
+ for the current deployment. Further details available
+ <link linkend="sid-66486377">here</link>
+ .
+ </para>
+ </section>
</section>
- <section id="sid-3866786_ApacheCXFintegration-Springbasedconfiguration">
-
- <title>Spring based configuration</title>
- <para>
- It is possible to customize the JBossWS and CXF integration by incorporating the CXF configuration file to the endpoint deployment archive. In order for that to be possible, JBossWS-CXF requires Spring to be installed in the application server. The Spring Framework libraries installation can be performed using the JBossWS-CXF installation or by manually populating the
- <emphasis role="italics">org.springframework.spring</emphasis>
- module that's in JBoss AS 7 and which the other webservices modules already have an optional dependency on.
- </para>
- <para>The convention is the following:</para>
- <itemizedlist>
- <listitem>
- <para>
- file name must be
- <emphasis role="strong">jbossws-cxf.xml</emphasis>
- </para>
- </listitem>
- <listitem>
- <para>
- for POJO deployments it is located in
- <emphasis role="strong">WEB-INF</emphasis>
- directory
- </para>
- </listitem>
- <listitem>
- <para>
- for EJB3 deployments it is located in
- <emphasis role="strong">META-INF</emphasis>
- directory
- </para>
- </listitem>
- </itemizedlist>
- <para>Providing custom CXF configuration to the endpoint deployment is useful in cases when users want to use features that are not part of standard JAX-WS specification (CXF specific) and that can't be setup in the application classes' code. An example are some advanced WS-RM customizations.</para>
- </section>
</section>
</section>
<section id="sid-3866793">
@@ -1387,7 +1586,7 @@
<para>Recent versions of Apache CXF, however, introduced support for WS-Security Policy, which aims at moving most of the security configuration into the service contract (through policies), so that clients can easily be configured almost completely automatically from that. This way users do not need to manually deal with configuring / installing the required interceptors; the Apache CXF WS-Policy engine internally takes care of that instead.</para>
<section id="sid-3866795_WS-Security-WSSecurityPolicysupport">
- <title>Security Policy support</title>
+ <title>WS-Security Policy support</title>
<para>
WS-SecurityPolicy describes the actions that are required to securely communicate with a service advertised in a given WSDL contract. The WSDL bindings / operations reference WS-Policy fragments with the security requirements to interact with the service. The
<ulink url="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/v1.3/ws-securitypolicy...">WS-SecurityPolicy specification</ulink>
@@ -3398,7 +3597,7 @@
</informalexample>
<para>Here is how the PicketLink STS endpoint is packaged:</para>
<informalexample>
- <programlisting>alessio@inuyasha /dati/jbossws/stack/cxf/trunk $ jar -tvf ./modules/testsuite/cxf-tests/target/test-libs/jaxws-samples-wsse-policy-trustPicketLink-sts.war
+ <programlisting>alessio@inuyasha /dati/jbossws/stack/cxf/trunk $ jar -tvf ./modules/testsuite/cxf-tests/target/test-libs/jaxws-samples-wsse-policy-trustPicketLink-sts.war
0 Mon Sep 03 17:38:38 CEST 2012 META-INF/
174 Mon Sep 03 17:38:36 CEST 2012 META-INF/MANIFEST.MF
0 Mon Sep 03 17:38:38 CEST 2012 WEB-INF/
@@ -4443,4 +4642,416 @@
</informalexample>
</section>
</section>
+ <section id="sid-66486377">
+
+ <title>WS-Discovery</title>
+ <para>
+ Apache CXF includes support for
+ <emphasis role="italics">Web Services Dynamic Discovery</emphasis>
+ (
+ <ulink url="http://docs.oasis-open.org/ws-dd/discovery/1.1/os/wsdd-discovery-1.1-spec...">WS-Discovery</ulink>
+ ), which is a protocol to enable dynamic discovery of services available on the local network. The protocol implies using a
+ <code>UDP</code>
+ based multicast transport to announce new services and probe for existing services. A managed mode where a discovery proxy is used to reduce the amount of required multicast traffic is also covered by the protocol.
+ </para>
+ <para>
+ JBossWS integrates the
+ <emphasis role="italics">WS-Discovery</emphasis>
+ <ulink url="http://cxf.apache.org/docs/ws-discovery.html">functionalities</ulink>
+ provided by Apache CXF into the application server.
+ </para>
+ <section id="sid-66486377_WS-Discovery-EnablingWSDiscovery">
+
+ <title>Enabling WS-Discovery</title>
+ <para>
+ Apache CXF enables
+ <emphasis role="italics">WS-Discovery</emphasis>
+ depending on the availability of its runtime component; given that's always shipped in the application server, JBossWS integration requires using the
+ <code>cxf.ws-discovery.enabled</code>
+ <ulink url="https://docs.jboss.org/author/display/JBWS/Advanced+User+Guide#AdvancedUs...">property</ulink>
+ usage for enabling
+ <emphasis role="italics">WS-Discovery</emphasis>
+ for a given deployment. By default
+ <emphasis role="italics">WS-Discovery</emphasis>
+ is disabled on the application server. Below is an example of
+ <emphasis role="italics">jboss-webservices.xml</emphasis>
+ descriptor to be used for enabling
+ <emphasis role="italics">WS-Discovery</emphasis>
+ :
+ </para>
+ <informalexample>
+ <programlisting><webservices xmlns="http://www.jboss.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ version="1.2" xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee">
+
+ <property>
+ <name>cxf.ws-discovery.enabled</name>
+ <value>true</value>
+ </property>
+
+</webservices></programlisting>
+ </informalexample>
+ <para>
+ By default, a
+ <emphasis role="italics">WS-Discovery</emphasis>
+ service endpoint (SOAP-over-UDP bound) will be started the first time a WS-Discovery enabled deployment is processed on the application server. Every ws endpoint belonging to
+ <emphasis role="italics">WS-Discovery</emphasis>
+ enabled deployments will be automatically registered into such a
+ <emphasis role="italics">WS-Discovery</emphasis>
+ service endpoint (
+ <code>Hello</code>
+ messages). The service will reply to
+ <code>Probe</code>
+ and
+ <code>Resolve</code>
+ messages received on
+ <code>UDP</code>
+ port
+ <code>3702</code>
+ (including multicast messages sent to
+ <code>IPv4</code>
+ address
+ <code>239.255.255.250</code>
+ , as per
+ <ulink url="http://docs.oasis-open.org/ws-dd/discovery/1.1/os/wsdd-discovery-1.1-spec...">specification</ulink>
+ ). Endpoints will eventually be automatically unregistered using
+ <code>Bye</code>
+ messages upon undeployment.
+ </para>
+ </section>
+ <section id="sid-66486377_WS-Discovery-Probingservices">
+
+ <title>Probing services</title>
+ <para>
+ Apache CXF comes with a
+ <emphasis role="italics">WS-Discovery</emphasis>
+ API that can be used to probe / resolve services. When running in-container, a JBoss module
+ <link linkend="sid-4784150">dependency</link>
+ to the the
+ <code>org.apache.cxf.impl</code>
+ module is to be set to have access to
+ <emphasis role="italics">WS-Discovery</emphasis>
+ client functionalities.
+ </para>
+ <para>
+ The
+ <ulink url="http://svn.apache.org/viewvc/cxf/tags/cxf-2.7.5/services/ws-discovery/ws-...">org.apache.cxf.ws.discovery.WSDiscoveryClient</ulink>
+ class provides the
+ <emphasis role="italics">probe</emphasis>
+ and
+ <emphasis role="italics">resolve</emphasis>
+ methods which also accepts filters on scopes. Users can rely on them for locating available endpoints on the network. Please have a look at the JBossWS testsuite which includes a
+ <ulink url="http://anonsvn.jboss.org/repos/jbossws/stack/cxf/tags/jbossws-cxf-4.2.0.B...">sample</ulink>
+ on CXF WS-Discovery usage.
+ </para>
+ </section>
+ </section>
+ <section id="sid-68354567">
+
+ <title>WS-Policy</title>
+ <section id="sid-68354567_WS-Policy-ApacheCXFWSPolicysupport">
+
+ <title>Apache CXF WS-Policy support</title>
+ <para>
+ JBossWS policy support rely on the Apache CXF WS-Policy framework, which is compliant with the
+ <ulink url="http://www.w3.org/TR/2007/REC-ws-policy-20070904/">Web Services Policy 1.5 - Framework</ulink>
+ and
+ <ulink url="http://www.w3.org/TR/2007/REC-ws-policy-attach-20070904/">Web Services Policy 1.5 - Attachment</ulink>
+ specifications.
+
+ Users can work with policies in different ways:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>by adding policy assertions to wsdl contracts and letting the runtime consume them and behave accordingly;</para>
+ </listitem>
+ <listitem>
+ <para>by specifying endpoint policy attachments using either CXF annotations or features.</para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ Of course users can also make direct use of the Apache CXF policy framework,
+ <ulink url="http://cxf.apache.org/docs/developing-assertions.html">defining custom assertions</ulink>
+ , etc.
+ </para>
+ <para>Finally, JBossWS provides some additional annotations for simplified policy attachment.</para>
+ <section id="sid-68354567_WS-Policy-Contractfirstapproach">
+
+ <title>Contract-first approach</title>
+ <para>WS-Policies can be attached and referenced in wsdl elements (the specifications describe all possible alternatives). Apache CXF automatically recognizes, reads and uses policies defined in the wsdl.</para>
+ <para>
+ Users should hence develop endpoints using the
+ <emphasis role="italics">contract-first</emphasis>
+ approach, that is explicitly providing the contract for their services. Here is a excerpt taken from a wsdl including a WS-Addressing policy:
+ </para>
+ <informalexample>
+ <programlisting><wsdl:definitions name="Foo" targetNamespace="http://ws.jboss.org/foo"
+...
+<wsdl:service name="FooService">
+ <wsdl:port binding="tns:FooBinding" name="FooPort">
+ <soap:address location="http://localhost:80800/foo"/>
+ <wsp:Policy xmlns:wsp="http://www.w3.org/ns/ws-policy">
+ <wsam:Addressing xmlns:wsam="http://www.w3.org/2007/02/addressing/metadata">
+ <wsp:Policy/>
+ </wsam:Addressing>
+ </wsp:Policy>
+ </wsdl:port>
+</wsdl:service>
+</wsdl:definitions></programlisting>
+ </informalexample>
+ <para>Of course, CXF also acts upon policies specified in wsdl documents consumed on client side.</para>
+ </section>
+ <section id="sid-68354567_WS-Policy-Codefirstapproach">
+
+ <title>Code-first approach</title>
+ <para>
+ For those preferring code-first (java-first) endpoint development, Apache CXF comes with
+ <code>org.apache.cxf.annotations.Policy</code>
+ and
+ <code>org.apache.cxf.annotations.Policies</code>
+ annotations to be used for attaching policy fragments to the wsdl generated at deploy time.
+ </para>
+ <para>Here is an example of a code-first endpoint including @Policy annotation:</para>
+ <informalexample>
+ <programlisting>import javax.jws.WebService;
+import org.apache.cxf.annotations.Policy;
+
+@WebService(portName = "MyServicePort",
+ serviceName = "MyService",
+ name = "MyServiceIface",
+ targetNamespace = "http://www.jboss.org/jbossws/foo")
+@Policy(placement = Policy.Placement.BINDING, uri = "JavaFirstPolicy.xml")
+public class MyServiceImpl {
+ public String sayHello() {
+ return "Hello World!";
+ }
+}</programlisting>
+ </informalexample>
+ <para>
+ The referenced descriptor is to be added to the deployment and will include the policy to be attached; the attachment position in the contracts is defined through the
+ <code>placement</code>
+ attribute. Here is a descriptor example:
+ </para>
+ <informalexample>
+ <programlisting><?xml version="1.0" encoding="UTF-8" ?>
+<wsp:Policy wsu:Id="MyPolicy" xmlns:wsp="http://www.w3.org/ns/ws-policy"
+ xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utilit...">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:SupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysT...">
+ <wsp:Policy>
+ <sp:WssUsernameToken10/>
+ </wsp:Policy>
+ </sp:UsernameToken>
+ </wsp:Policy>
+ </sp:SupportingTokens>
+ </wsp:All>
+ </wsp:ExactlyOne>
+</wsp:Policy></programlisting>
+ </informalexample>
+ </section>
+ </section>
+ <section id="sid-68354567_WS-Policy-JBossWSadditions">
+
+ <title>JBossWS additions</title>
+ <section id="sid-68354567_WS-Policy-Policysets">
+
+ <title>Policy sets</title>
+ <para>
+ Both approaches above require users to actually write their policies' assertions; while this offer great flexibility and control of the actual contract, providing the assertions might end up being quite a challenging task for complex policies. For this reason, the JBossWS integration provides
+ <emphasis role="italics">policy sets</emphasis>
+ , which are basically pre-defined groups of policy assertions corresponding to well known / common needs. Each set has a label allowing users to specify it in the
+ <code>@org.jboss.ws.api.annotation.PolicySets</code>
+ annotation to have the policy assertions for that set attached to the annotated endpoint. Multiple labels can also be specified. Here is an example of the @PolicySets annotation on a service endpoint interface:
+ </para>
+ <informalexample>
+ <programlisting>import javax.jws.WebService;
+import org.jboss.ws.api.annotation.PolicySets;
+
+@WebService(name = "EndpointTwo", targetNamespace = "http://org.jboss.ws.jaxws.cxf/jbws3648")
+@PolicySets({"WS-RM_Policy_spec_example", "WS-SP-EX223_WSS11_Anonymous_X509_Sign_Encrypt", "WS-Addressing"})
+public interface EndpointTwo
+{
+ String echo(String input);
+}</programlisting>
+ </informalexample>
+ <para>The three sets specified in @PolicySets will cause the wsdl generated for the endpoint having this interface to be enriched with some policy assertions for WS-RM, WS-Security and WS-Addressing.</para>
+ <para>
+ The labels' list of known sets is stored in the
+ <code>META-INF/policies/org.jboss.wsf.stack.cxf.extensions.policy.PolicyAttachmentStore</code>
+ file within the
+ <code>jbossws-cxf-client.jar</code>
+ (
+ <code>org.jboss.ws.cxf:jbossws-cxf-client</code>
+ maven artifact). Actual policy fragments for each set are also stored in the same artifact at
+ <code>META-INF/policies/<set-label>-<attachment-position>.xml</code>
+ .
+ </para>
+ <para>Here is a list of the available policy sets:</para>
+ <informaltable>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>
+ <para>Label</para>
+ </entry>
+ <entry>
+ <para>Description</para>
+ </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <para>WS-Addressing</para>
+ </entry>
+ <entry>
+ <para>Basic WS-Addressing policy</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ WS-RM_Policy_spec_example
+
+ </para>
+ </entry>
+ <entry>
+ <para>The basic WS-RM policy example in the WS-RM specification</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>WS-SP-EX2121_SSL_UT_Supporting_Token</para>
+ </entry>
+ <entry>
+ <para>
+ The group of policy assertions used in the section 2.1.2.1 example of the WS-Security Policy Examples 1.0 specification
+
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ WS-SP-EX213_WSS10_UT_Mutual_Auth_X509_Sign_Encrypt
+
+ </para>
+ </entry>
+ <entry>
+ <para>
+ The group of policy assertions used in the section 2.1.3 example of the WS-Security Policy Examples 1.0 specification
+
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ WS-SP-EX214_WSS11_User_Name_Cert_Sign_Encrypt
+
+ </para>
+ </entry>
+ <entry>
+ <para>
+ The group of policy assertions used in the section 2.1.4 example of the WS-Security Policy Examples 1.0 specification
+
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ WS-SP-EX221_WSS10_Mutual_Auth_X509_Sign_Encrypt
+
+ </para>
+ </entry>
+ <entry>
+ <para>The group of policy assertions used in the section 2.2.1 example of the WS-Security Policy Examples 1.0 specification</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ WS-SP-EX222_WSS10_Mutual_Auth_X509_Sign_Encrypt
+
+ </para>
+ </entry>
+ <entry>
+ <para>
+ The group of policy assertions used in the section 2.2.2 example of the WS-Security Policy Examples 1.0 specification
+
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ WS-SP-EX223_WSS11_Anonymous_X509_Sign_Encrypt
+
+ </para>
+ </entry>
+ <entry>
+ <para>
+ The group of policy assertions used in the section 2.2.3 example of the WS-Security Policy Examples 1.0 specification
+
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ WS-SP-EX224_WSS11_Mutual_Auth_X509_Sign_Encrypt
+
+ </para>
+ </entry>
+ <entry>
+ <para>
+ The group of policy assertions used in the section 2.2.4 example of the WS-Security Policy Examples 1.0 specification
+
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ AsymmetricBinding_X509v1_TripleDesRsa15_EncryptBeforeSigning_ProtectTokens
+
+ </para>
+ </entry>
+ <entry>
+ <para>A WS-Security policy for asymmetric binding (encrypt before signing) using X.509v1 tokens, 3DES + RSA 1.5 algorithms and with token protections enabled</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ AsymmetricBinding_X509v1_GCM256OAEP_ProtectTokens
+
+ </para>
+ </entry>
+ <entry>
+ <para>The same as before, but using custom Apache CXF algorithm suite including GCM 256 + RSA OAEP algorithms</para>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ <warning>
+ <para>Always verify the contents of the generated wsdl contract, as policy sets are potentially subject to updates between JBossWS releases. This is especially important when dealing with security related policies; the provided sets are to be considered as convenient configuration options only; users remain responsible for the policies in their contracts.</para>
+ </warning>
+ <tip>
+ <para>
+ The
+ <code>org.jboss.wsf.stack.cxf.extensions.policy.Constants</code>
+ interface has convenient String constants for the available policy set labels.
+ </para>
+ </tip>
+ <tip>
+ <para>If you feel a new set should be added, just propose it by writing the user forum!</para>
+ </tip>
+ </section>
+ </section>
+ </section>
</chapter>
Modified: stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/src/main/doc/chapter-6-JBoss_Modules.xml
===================================================================
--- stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/src/main/doc/chapter-6-JBoss_Modules.xml 2013-07-26 16:14:02 UTC (rev 17845)
+++ stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/src/main/doc/chapter-6-JBoss_Modules.xml 2013-07-26 16:15:53 UTC (rev 17846)
@@ -25,110 +25,158 @@
<important>
<para>The JBoss Web Services APIs are always available by default whenever the webservices subsystem is available on AS7. So users just use them, no need for explicit dependencies declaration for those modules.</para>
</important>
- <para>The convenient method for configuring deployment dependencies is adding them into the MANIFEST.MF file:</para>
- <informalexample>
- <programlisting>Manifest-Version: 1.0
-Dependencies: org.jboss.ws.cxf.jbossws-cxf-client services export,foo.bar</programlisting>
- </informalexample>
- <para>
- Here above
- <emphasis role="italics">org.jboss.ws.cxf.jbossws-cxf-client</emphasis>
- and
- <emphasis role="italics">foo.bar</emphasis>
- are the modules you want to set dependencies to;
- <emphasis role="italics">services</emphasis>
- tells the modules framework that you want to also import
- <emphasis role="italics">META-INF/services/..</emphasis>
- declarations from the dependency, while
- <emphasis role="italics">export</emphasis>
- exports the classes in the module so that you can actually use them in your code.
- </para>
- <note>
- <para>When using annotations on your endpoints / handlers such as the Apache CXF ones (@InInterceptor, @GZIP, ...) remember to add the proper module dependency in your manifest. Otherwise your annotations are not picked up and added to the annotation index by JBoss Application Server 7, resulting in them being completely and silently ignored.</para>
- </note>
- <section id="sid-4784150_JBossModules-UsingJAXB">
+ <section id="sid-4784150_JBossModules-UsingMANIFEST.MF">
- <title>Using JAXB</title>
- <para>In order for successfully use JAXB contexts, etc. in your client or endpoint running in-container, you need to properly setup a JAXB implementation; that is performed setting the following dependency:</para>
+ <title>Using MANIFEST.MF</title>
+ <para>The convenient method for configuring deployment dependencies is adding them into the MANIFEST.MF file:</para>
<informalexample>
- <programlisting>Dependencies: com.sun.xml.bind services export</programlisting>
+ <programlisting>Manifest-Version: 1.0
+Dependencies: org.jboss.ws.cxf.jbossws-cxf-client services export,foo.bar</programlisting>
</informalexample>
- </section>
- <section id="sid-4784150_JBossModules-UsingApacheCXF">
-
- <title>Using Apache CXF</title>
<para>
- In order for using Apache CXF APIs and implementation classes you need to add a dependency to the
- <emphasis role="italics">org.apache.cxf</emphasis>
- module:
- </para>
- <informalexample>
- <programlisting>Dependencies: org.apache.cxf services</programlisting>
- </informalexample>
- <para>However, please note that would not come with any JBossWS-CXF customizations nor additional extensions. For this reason, and generally speaking for simplifying user configuration, a client side aggregation module is available with all the WS dependencies users might need.</para>
- </section>
- <section id="sid-4784150_JBossModules-ClientsideWSaggregationmodule">
-
- <title>Client side WS aggregation module</title>
- </section>
- </section>
- <section id="sid-4784150_JBossModules-">
-
- <title/>
- <para>Whenever you simply want to use all the JBoss Web Services feature/functionalities, you can set a dependency to the convenient client module.</para>
- <informalexample>
- <programlisting>Dependencies: org.jboss.ws.cxf.jbossws-cxf-client services export</programlisting>
- </informalexample>
- <para>
- Please note the
- <emphasis role="italics">services</emphasis>
- option above: that's strictly required in order for you to get the JBossWS-CXF version of classes that are retrieved using the
- <emphasis role="italics">Service API</emphasis>
- , the
- <code>Bus</code>
- for instance.
- </para>
- <note>
- <para>Be careful as issues because of misconfiguration here can be quite hard to track down, because the Apache CXF behaviour would be sensibly different.</para>
- </note>
- <para>
-
- </para>
- <important>
- <para>
- The
- <emphasis role="italics">services</emphasis>
- option is almost always needed when declaring dependencies on
+ Here above
<emphasis role="italics">org.jboss.ws.cxf.jbossws-cxf-client</emphasis>
and
- <emphasis role="italics">org.apache.cxf</emphasis>
- modules. The reason for this is in it affecting the loading of classes through the
- <emphasis role="italics">Service API</emphasis>
- , which is what is used to wire most of the JBossWS components as well as all Apache CXF Bus extensions.
+ <emphasis role="italics">foo.bar</emphasis>
+ are the modules you want to set dependencies to;
+ <emphasis role="italics">services</emphasis>
+ tells the modules framework that you want to also import
+ <emphasis role="italics">META-INF/services/..</emphasis>
+ declarations from the dependency, while
+ <emphasis role="italics">export</emphasis>
+ exports the classes from the module to any other module that might be depending on the module implicitly created for your deployment.
</para>
- </important>
- <section id="sid-4784150_JBossModules-UsingSpring">
-
- <title>Using Spring</title>
- <para>
- The JBossWS-CXF modules have optional dependencies to the
- <emphasis role="italics">org.springframework.spring</emphasis>
- module. So either create that manually in the application server or use the JBossWS-CXF installation scripts for doing that.
- </para>
+ <note>
+ <para>When using annotations on your endpoints / handlers such as the Apache CXF ones (@InInterceptor, @GZIP, ...) remember to add the proper module dependency in your manifest. Otherwise your annotations are not picked up and added to the annotation index by JBoss Application Server 7, resulting in them being completely and silently ignored.</para>
+ </note>
+ <section id="sid-4784150_JBossModules-UsingJAXB">
+
+ <title>Using JAXB</title>
+ <para>In order for successfully directly using JAXB contexts, etc. in your client or endpoint running in-container, you need to properly setup a JAXB implementation; that is performed setting the following dependency:</para>
+ <informalexample>
+ <programlisting>Dependencies: com.sun.xml.bind services export</programlisting>
+ </informalexample>
+ </section>
+ <section id="sid-4784150_JBossModules-UsingApacheCXF">
+
+ <title>Using Apache CXF</title>
+ <para>
+ In order for using Apache CXF APIs and implementation classes you need to add a dependency to the
+ <emphasis role="italics">org.apache.cxf</emphasis>
+ (API) module and / or
+ <emphasis role="italics">org.apache.cxf.impl</emphasis>
+ (implementation) module:
+ </para>
+ <informalexample>
+ <programlisting>Dependencies: org.apache.cxf services</programlisting>
+ </informalexample>
+ <para>However, please note that would not come with any JBossWS-CXF customizations nor additional extensions. For this reason, and generally speaking for simplifying user configuration, a client side aggregation module is available with all the WS dependencies users might need.</para>
+ </section>
+ <section id="sid-4784150_JBossModules-ClientsideWSaggregationmodule">
+
+ <title>Client side WS aggregation module</title>
+ <para>Whenever you simply want to use all the JBoss Web Services feature/functionalities, you can set a dependency to the convenient client module.</para>
+ <informalexample>
+ <programlisting>Dependencies: org.jboss.ws.cxf.jbossws-cxf-client services</programlisting>
+ </informalexample>
+ <para>
+ Please note the
+ <emphasis role="italics">services</emphasis>
+ option above: that's strictly required in order for you to get the JBossWS-CXF version of classes that are retrieved using the
+ <emphasis role="italics">Service API</emphasis>
+ , the
+ <code>Bus</code>
+ for instance.
+ </para>
+ <note>
+ <para>Be careful as issues because of misconfiguration here can be quite hard to track down, because the Apache CXF behaviour would be sensibly different.</para>
+ </note>
+ <para>
+
+ </para>
+ <important>
+ <para>
+ The
+ <emphasis role="italics">services</emphasis>
+ option is almost always needed when declaring dependencies on
+ <emphasis role="italics">org.jboss.ws.cxf.jbossws-cxf-client</emphasis>
+ and
+ <emphasis role="italics">org.apache.cxf</emphasis>
+ modules. The reason for this is in it affecting the loading of classes through the
+ <emphasis role="italics">Service API</emphasis>
+ , which is what is used to wire most of the JBossWS components as well as all Apache CXF Bus extensions.
+ </para>
+ </important>
+ </section>
+ <section id="sid-4784150_JBossModules-UsingSpring">
+
+ <title>Using Spring</title>
+ <para>
+ The JBossWS-CXF modules have optional dependencies to the
+ <emphasis role="italics">org.springframework.spring</emphasis>
+ module. So either create that manually in the application server or use the JBossWS-CXF installation scripts for doing that.
+ </para>
+ </section>
+ <section id="sid-4784150_JBossModules-Annotationscanning">
+
+ <title>Annotation scanning</title>
+ <para>
+ The application server uses an annotation index for detecting JAX-WS endpoints in user deployments. When declaring WS endpoints whose class belongs to a different module (for instance referring that in the
+ <code>web.xml</code>
+ descriptor), be sure to have an
+ <code>annotations</code>
+ type dependency in place. Without that, your endpoints would simply be ignored as they won't appear as annotated classes to the webservices subsystem.
+ </para>
+ <informalexample>
+ <programlisting>Dependencies: org.foo annotations</programlisting>
+ </informalexample>
+ </section>
</section>
- <section id="sid-4784150_JBossModules-Annotationscanning">
+ <section id="sid-4784150_JBossModules-Usingjbossdeploymentdescriptor.xml">
- <title>Annotation scanning</title>
- <para>
- The application server uses an annotation index for detecting JAX-WS endpoints in user deployments. When declaring WS endpoints whose class belongs to a different module (for instance referring that in the
- <code>web.xml</code>
- descriptor), be sure to have an
- <code>annotations</code>
- type dependency in place. Without that, your endpoints would simply be ignored as they won't appear as annotated classes to the webservices subsystem.
- </para>
- <informalexample>
- <programlisting>Dependencies: org.foo annotations</programlisting>
- </informalexample>
+ <title>Using jboss-deployment-descriptor.xml</title>
+ <para>In some circumstances, the convenient approach of setting module dependencies in MANIFEST.MF might not work. An example is the need for importing/exporting specific resources from a given module dependency. Users should hence add a jboss-deployment-structure.xml descriptor to their deployment and set module dependencies in it.</para>
+ <section id="sid-4784150_JBossModules-SpringbasedincontainerBuscreation">
+
+ <title>Spring based in-container Bus creation</title>
+ <para>
+ A noteworthy scenario requiring explicit module dependencies declaration is whenever a Spring beans descriptor based Bus is created by users in a in-container client. Spring basically resolves any beans declared in the descriptor (e.g.
+ <emphasis role="italics">cxf.xml</emphasis>
+ ), as well as any transitively referenced internal CXF descriptor, using the thread context classloader. That is the classloader associated to the deployment, which is different from the classloader used by JBossWS internally. As a consequence, in this scenario a
+ <emphasis role="italics">jboss-deployment-structure.xml</emphasis>
+ as follows is required:
+
+ </para>
+ <informalexample>
+ <programlisting><jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
+ <deployment>
+ <dependencies>
+ <module name="org.jboss.ws.cxf.jbossws-cxf-client" services="import" />
+ <module name="org.apache.cxf.impl">
+ <imports>
+ <include path="META-INF"/>
+ <include path="META-INF/cxf"/>
+ </imports>
+ </module>
+ <module name="org.springframework.spring">
+ <imports>
+ <include path="META-INF"/>
+ </imports>
+ </module>
+ </dependencies>
+ </deployment>
+</jboss-deployment-structure></programlisting>
+ </informalexample>
+ <para>
+ The first dependency (
+ <emphasis role="italics">org.jboss.ws.cxf.jbossws-cxf-client</emphasis>
+ ) loads JBossWS customizations as well as Apache CXF APIs first. The second dependency (
+ <emphasis role="italics">org.apache.cxf.impl</emphasis>
+ ) loads the Apache CXF internals (in particular the CXF SpringBus class), required by Spring to load the Bus using the deployment classloader. Finally, the third dependency (
+ <emphasis role="italics">org.springframework.spring</emphasis>
+ ) is needed to allow resolution of Spring schemas when running offline.
+ </para>
+ </section>
</section>
</section>
</chapter>
11 years, 2 months
JBossWS SVN: r17845 - stack/cxf/trunk/modules/dist/src/main/distro.
by jbossws-commits@lists.jboss.org
Author: alessio.soldano(a)jboss.com
Date: 2013-07-26 12:14:02 -0400 (Fri, 26 Jul 2013)
New Revision: 17845
Modified:
stack/cxf/trunk/modules/dist/src/main/distro/ReleaseNotes.txt
Log:
Updating release notes
Modified: stack/cxf/trunk/modules/dist/src/main/distro/ReleaseNotes.txt
===================================================================
--- stack/cxf/trunk/modules/dist/src/main/distro/ReleaseNotes.txt 2013-07-26 16:13:44 UTC (rev 17844)
+++ stack/cxf/trunk/modules/dist/src/main/distro/ReleaseNotes.txt 2013-07-26 16:14:02 UTC (rev 17845)
@@ -58,6 +58,81 @@
Previous Releases ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-----------------------
+jbossws-cxf-4.2.0.Final
+-----------------------
+
+Feature Request
+
+ * [JBWS-3138] - Better support for local WSDL deployment configurations (e.g., wsimport -clientjar)
+ * [JBWS-3396] - Partial generation of jbossws-cxf.xml descriptor
+ * [JBWS-3524] - Resolve system property references in jboss-webservices.xml
+ * [JBWS-3589] - Set custom CXF compiler instance to be used in WSDLToJava
+ * [JBWS-3591] - Provide WebServiceFeature for initializing JAXWS Port
+ * [JBWS-3592] - Provide WebServiceFeature for setting predefined client configs
+ * [JBWS-3595] - Provide alternative SOAP-over-UDP transport
+ * [JBWS-3596] - Provide support for WS-Discovery
+ * [JBWS-3611] - Allow JBossWebservicesMetaData to be passed to EndpointPublisher.publish in SPI
+ * [JBWS-3648] - WS-Policy code-first improvements
+
+Bug
+
+ * [JBWS-3541] - SubjectCreatingInterceptor.createSubject does not return principals in the correct order
+ * [JBWS-3585] - @XMLJavaTypeAdapter ignored when used on setters in Exception Classes
+ * [JBWS-3594] - WSConsume fails when invoked from Ant task on JDK7
+ * [JBWS-3597] - JBWS2241TestCase assumes AS allows invocation of no security role restricted methods
+ * [JBWS-3601] - SOAPFaultException cannot render SOAP 1.2 Fault Subcode in CXF
+ * [JBWS-3602] - Missing javax.servlet.api dependency in org.jboss.ws.jaxws-client AS module
+ * [JBWS-3603] - JBossWS client configuration not working on Dispatch
+ * [JBWS-3608] - JBWS1702TestCase testInheritanceBare failure on IBM JDK 7
+ * [JBWS-3609] - ClientSpringAppTestCase failures on IBM JDK
+ * [JBWS-3613] - WSConsume fails on IBM JDK6
+ * [JBWS-3638] - Fix SecurityDomainTestCase failure only happens with IBM JDK6
+ * [JBWS-3639] - Add more timeout value for the thread join to fix the JBWS1666TestCase failure on Windows
+ * [JBWS-3640] - Failed to get jmx connection in JBWS2150TestCaseForked on Windows
+ * [JBWS-3645] - WorkQueueManager is not registered in JMX Server when cxf.management is enabled
+ * [JBWS-3647] - Client/EndpointConfig in ServerConfig should be fully thread-safe lists
+ * [JBWS-3650] - CXF XSD resolution is not working
+ * [JBWS-3653] - soap:address of generated WSDLs never uses the wsdl-host defined in webservices subsystem
+ * [JBWS-3654] - Intermittent failure in EndpointPublisherImpl
+ * [JBWS-3655] - wsdlLocation in ejb-jar throws error for schema import
+ * [JBWS-3659] - XTS services start endpoint with error JBWS022103: Cannot start endpoint in state STARTED
+ * [JBWS-3660] - Intermittent failure in ResourceResolverDeploymentAspect
+ * [JBWS-3669] - DelegateClassLoader: avoid needing read permission when getting resources through ModuleClassLoader
+ * [JBWS-3671] - AbstractServerConfig keep stale reference to server config after reboot
+
+Task
+
+ * [JBWS-3560] - Unlock FastInfoset feature in CXF on top of JBossAS
+ * [JBWS-3566] - Upgrade to Apache CXF 2.7
+ * [JBWS-3587] - WS-I BP 1.2 testsuite
+ * [JBWS-3600] - Support for AS 8 as target container
+ * [JBWS-3606] - Add proper way to identify the cxf and native stack
+ * [JBWS-3614] - Move to WSS4J 1.6.10
+ * [JBWS-3618] - Add wstx dependency to org.apache.cxf module
+ * [JBWS-3619] - Backport the RemoteDeployer timeout setting to AS 7.2 integration layer
+ * [JBWS-3621] - Replace HttpServletResponseExt with HttpServletResponseWrapper
+ * [JBWS-3622] - Restore HTTPS tests w/ Undertow
+ * [JBWS-3627] - JBoss AS -> WildFly scripts migration
+ * [JBWS-3629] - Add Woodstox 4.2.0 to binary distro
+ * [JBWS-3634] - Add kerberos token test
+ * [JBWS-3636] - Dismantle jbossws-shared-testsuite
+ * [JBWS-3642] - Replace gnu-getopt:getopt with gnu.getopt:java-getopt
+ * [JBWS-3643] - Review EndpointRegistry container integration
+ * [JBWS-3644] - Review SPI resolution mechanism
+ * [JBWS-3649] - Invoke LifecycleHandler in EndpointService
+ * [JBWS-3651] - Reduce need for explicit dependency on org.apache.ws.security module
+ * [JBWS-3656] - Upgrade Apache Santuario to 1.5.5
+ * [JBWS-3665] - Upgrade to PicketLink 2.1.7.Final
+ * [JBWS-3674] - Allow WebSerivceFactory to parse new {http://xmlns.jcp.org/xml/ns/javaee}webservice element
+
+Errata
+
+ See: https://issues.jboss.org/browse/JBWS-3675
+
+This version of "JBoss Web Services - Stack CXF Distribution" is based on Apache CXF 2.7.6
+
+
+-----------------------
jbossws-cxf-4.1.1.Final
-----------------------
11 years, 2 months
JBossWS SVN: r17844 - in stack/cxf/branches/jbossws-cxf-4.2.0.Final: modules/addons and 12 other directories.
by jbossws-commits@lists.jboss.org
Author: alessio.soldano(a)jboss.com
Date: 2013-07-26 12:13:44 -0400 (Fri, 26 Jul 2013)
New Revision: 17844
Modified:
stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/addons/pom.xml
stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/addons/transports/http/httpserver/pom.xml
stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/addons/transports/udp/pom.xml
stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/client/pom.xml
stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/pom.xml
stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/endorsed/pom.xml
stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/resources/pom.xml
stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/server/pom.xml
stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/testsuite/cxf-spring-tests/pom.xml
stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/testsuite/cxf-tests/pom.xml
stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/testsuite/pom.xml
stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/testsuite/shared-tests/pom.xml
stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/testsuite/test-utils/pom.xml
stack/cxf/branches/jbossws-cxf-4.2.0.Final/pom.xml
Log:
Updating poms
Modified: stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/addons/pom.xml
===================================================================
--- stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/addons/pom.xml 2013-07-26 16:13:24 UTC (rev 17843)
+++ stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/addons/pom.xml 2013-07-26 16:13:44 UTC (rev 17844)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.jboss.ws.cxf</groupId>
<artifactId>jbossws-cxf</artifactId>
- <version>4.2.0-SNAPSHOT</version>
+ <version>4.2.0.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/addons/transports/http/httpserver/pom.xml
===================================================================
--- stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/addons/transports/http/httpserver/pom.xml 2013-07-26 16:13:24 UTC (rev 17843)
+++ stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/addons/transports/http/httpserver/pom.xml 2013-07-26 16:13:44 UTC (rev 17844)
@@ -8,7 +8,7 @@
<parent>
<groupId>org.jboss.ws.cxf</groupId>
<artifactId>jbossws-cxf-addons</artifactId>
- <version>4.2.0-SNAPSHOT</version>
+ <version>4.2.0.Final</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
Modified: stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/addons/transports/udp/pom.xml
===================================================================
--- stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/addons/transports/udp/pom.xml 2013-07-26 16:13:24 UTC (rev 17843)
+++ stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/addons/transports/udp/pom.xml 2013-07-26 16:13:44 UTC (rev 17844)
@@ -8,7 +8,7 @@
<parent>
<groupId>org.jboss.ws.cxf</groupId>
<artifactId>jbossws-cxf-addons</artifactId>
- <version>4.2.0-SNAPSHOT</version>
+ <version>4.2.0.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/client/pom.xml
===================================================================
--- stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/client/pom.xml 2013-07-26 16:13:24 UTC (rev 17843)
+++ stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/client/pom.xml 2013-07-26 16:13:44 UTC (rev 17844)
@@ -8,7 +8,7 @@
<parent>
<groupId>org.jboss.ws.cxf</groupId>
<artifactId>jbossws-cxf</artifactId>
- <version>4.2.0-SNAPSHOT</version>
+ <version>4.2.0.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/pom.xml
===================================================================
--- stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/pom.xml 2013-07-26 16:13:24 UTC (rev 17843)
+++ stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/pom.xml 2013-07-26 16:13:44 UTC (rev 17844)
@@ -8,7 +8,7 @@
<parent>
<groupId>org.jboss.ws.cxf</groupId>
<artifactId>jbossws-cxf</artifactId>
- <version>4.2.0-SNAPSHOT</version>
+ <version>4.2.0.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/endorsed/pom.xml
===================================================================
--- stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/endorsed/pom.xml 2013-07-26 16:13:24 UTC (rev 17843)
+++ stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/endorsed/pom.xml 2013-07-26 16:13:44 UTC (rev 17844)
@@ -9,7 +9,7 @@
<parent>
<groupId>org.jboss.ws.cxf</groupId>
<artifactId>jbossws-cxf</artifactId>
- <version>4.2.0-SNAPSHOT</version>
+ <version>4.2.0.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/resources/pom.xml
===================================================================
--- stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/resources/pom.xml 2013-07-26 16:13:24 UTC (rev 17843)
+++ stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/resources/pom.xml 2013-07-26 16:13:44 UTC (rev 17844)
@@ -9,7 +9,7 @@
<parent>
<groupId>org.jboss.ws.cxf</groupId>
<artifactId>jbossws-cxf</artifactId>
- <version>4.2.0-SNAPSHOT</version>
+ <version>4.2.0.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/server/pom.xml
===================================================================
--- stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/server/pom.xml 2013-07-26 16:13:24 UTC (rev 17843)
+++ stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/server/pom.xml 2013-07-26 16:13:44 UTC (rev 17844)
@@ -9,7 +9,7 @@
<parent>
<groupId>org.jboss.ws.cxf</groupId>
<artifactId>jbossws-cxf</artifactId>
- <version>4.2.0-SNAPSHOT</version>
+ <version>4.2.0.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/testsuite/cxf-spring-tests/pom.xml
===================================================================
--- stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/testsuite/cxf-spring-tests/pom.xml 2013-07-26 16:13:24 UTC (rev 17843)
+++ stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/testsuite/cxf-spring-tests/pom.xml 2013-07-26 16:13:44 UTC (rev 17844)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.jboss.ws.cxf</groupId>
<artifactId>jbossws-cxf-testsuite</artifactId>
- <version>4.2.0-SNAPSHOT</version>
+ <version>4.2.0.Final</version>
<relativePath>../pom.xml</relativePath>
</parent>
Modified: stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/testsuite/cxf-tests/pom.xml
===================================================================
--- stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/testsuite/cxf-tests/pom.xml 2013-07-26 16:13:24 UTC (rev 17843)
+++ stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/testsuite/cxf-tests/pom.xml 2013-07-26 16:13:44 UTC (rev 17844)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.jboss.ws.cxf</groupId>
<artifactId>jbossws-cxf-testsuite</artifactId>
- <version>4.2.0-SNAPSHOT</version>
+ <version>4.2.0.Final</version>
<relativePath>../pom.xml</relativePath>
</parent>
Modified: stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/testsuite/pom.xml
===================================================================
--- stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/testsuite/pom.xml 2013-07-26 16:13:24 UTC (rev 17843)
+++ stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/testsuite/pom.xml 2013-07-26 16:13:44 UTC (rev 17844)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.jboss.ws.cxf</groupId>
<artifactId>jbossws-cxf</artifactId>
- <version>4.2.0-SNAPSHOT</version>
+ <version>4.2.0.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/testsuite/shared-tests/pom.xml
===================================================================
--- stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/testsuite/shared-tests/pom.xml 2013-07-26 16:13:24 UTC (rev 17843)
+++ stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/testsuite/shared-tests/pom.xml 2013-07-26 16:13:44 UTC (rev 17844)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.jboss.ws.cxf</groupId>
<artifactId>jbossws-cxf-testsuite</artifactId>
- <version>4.2.0-SNAPSHOT</version>
+ <version>4.2.0.Final</version>
<relativePath>../pom.xml</relativePath>
</parent>
Modified: stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/testsuite/test-utils/pom.xml
===================================================================
--- stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/testsuite/test-utils/pom.xml 2013-07-26 16:13:24 UTC (rev 17843)
+++ stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/testsuite/test-utils/pom.xml 2013-07-26 16:13:44 UTC (rev 17844)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.jboss.ws.cxf</groupId>
<artifactId>jbossws-cxf-testsuite</artifactId>
- <version>4.2.0-SNAPSHOT</version>
+ <version>4.2.0.Final</version>
<relativePath>../pom.xml</relativePath>
</parent>
Modified: stack/cxf/branches/jbossws-cxf-4.2.0.Final/pom.xml
===================================================================
--- stack/cxf/branches/jbossws-cxf-4.2.0.Final/pom.xml 2013-07-26 16:13:24 UTC (rev 17843)
+++ stack/cxf/branches/jbossws-cxf-4.2.0.Final/pom.xml 2013-07-26 16:13:44 UTC (rev 17844)
@@ -32,7 +32,7 @@
<description>JBossWS CXF stack</description>
- <version>4.2.0-SNAPSHOT</version>
+ <version>4.2.0.Final</version>
<!-- Parent -->
<parent>
@@ -43,9 +43,9 @@
<!-- Source Control Management -->
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/jbossws/stack/cxf/trunk</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/jbossws/stack/cxf/trunk</developerConnection>
- <url>http://fisheye.jboss.com/viewrep/JBossWS/stack/cxf/trunk</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/jbossws/stack/cxf/tags/jbossws-cxf...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/jbossws/stack/cxf/tags/jbossws-cxf-4....</developerConnection>
+ <url>http://fisheye.jboss.com/viewrep/JBossWS/stack/cxf/tags/jbossws-cxf-4.2.0...</url>
</scm>
<!-- Modules -->
@@ -59,13 +59,13 @@
<!-- Properties -->
<properties>
- <jbossws.api.version>1.0.2-SNAPSHOT</jbossws.api.version>
- <jbossws.spi.version>2.2.0-SNAPSHOT</jbossws.spi.version>
- <jbossws.common.version>2.2.0-SNAPSHOT</jbossws.common.version>
- <jbossws.common.tools.version>1.2.0-SNAPSHOT</jbossws.common.tools.version>
- <jbossws.jboss712.version>4.2.0-SNAPSHOT</jbossws.jboss712.version>
- <jbossws.jboss713.version>4.2.0-SNAPSHOT</jbossws.jboss713.version>
- <jbossws.jboss720.version>4.2.0-SNAPSHOT</jbossws.jboss720.version>
+ <jbossws.api.version>1.0.2.Final</jbossws.api.version>
+ <jbossws.spi.version>2.2.0.Final</jbossws.spi.version>
+ <jbossws.common.version>2.2.0.Final</jbossws.common.version>
+ <jbossws.common.tools.version>1.2.0.Final</jbossws.common.tools.version>
+ <jbossws.jboss712.version>4.2.0.Final</jbossws.jboss712.version>
+ <jbossws.jboss713.version>4.2.0.Final</jbossws.jboss713.version>
+ <jbossws.jboss720.version>4.2.0.Final</jbossws.jboss720.version>
<jbossws.native.version>4.1.1.Final</jbossws.native.version>
<jboss712.version>7.1.2.Final</jboss712.version>
<jboss713.version>7.1.3.Final</jboss713.version>
11 years, 2 months
JBossWS SVN: r17843 - stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/src/main/distro.
by jbossws-commits@lists.jboss.org
Author: alessio.soldano(a)jboss.com
Date: 2013-07-26 12:13:24 -0400 (Fri, 26 Jul 2013)
New Revision: 17843
Modified:
stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/src/main/distro/ReleaseNotes.txt
Log:
Setting release notes
Modified: stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/src/main/distro/ReleaseNotes.txt
===================================================================
--- stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/src/main/distro/ReleaseNotes.txt 2013-07-26 16:07:47 UTC (rev 17842)
+++ stack/cxf/branches/jbossws-cxf-4.2.0.Final/modules/dist/src/main/distro/ReleaseNotes.txt 2013-07-26 16:13:24 UTC (rev 17843)
@@ -26,29 +26,73 @@
What's new in jbossws-cxf-${project.version}
-------------------------------------
-Bug
+Feature Request
- [JBWS-???] - ...
+ * [JBWS-3138] - Better support for local WSDL deployment configurations (e.g., wsimport -clientjar)
+ * [JBWS-3396] - Partial generation of jbossws-cxf.xml descriptor
+ * [JBWS-3524] - Resolve system property references in jboss-webservices.xml
+ * [JBWS-3589] - Set custom CXF compiler instance to be used in WSDLToJava
+ * [JBWS-3591] - Provide WebServiceFeature for initializing JAXWS Port
+ * [JBWS-3592] - Provide WebServiceFeature for setting predefined client configs
+ * [JBWS-3595] - Provide alternative SOAP-over-UDP transport
+ * [JBWS-3596] - Provide support for WS-Discovery
+ * [JBWS-3611] - Allow JBossWebservicesMetaData to be passed to EndpointPublisher.publish in SPI
+ * [JBWS-3648] - WS-Policy code-first improvements
-Enhancement
+Bug
- [JBWS-???] - ...
+ * [JBWS-3541] - SubjectCreatingInterceptor.createSubject does not return principals in the correct order
+ * [JBWS-3585] - @XMLJavaTypeAdapter ignored when used on setters in Exception Classes
+ * [JBWS-3594] - WSConsume fails when invoked from Ant task on JDK7
+ * [JBWS-3597] - JBWS2241TestCase assumes AS allows invocation of no security role restricted methods
+ * [JBWS-3601] - SOAPFaultException cannot render SOAP 1.2 Fault Subcode in CXF
+ * [JBWS-3602] - Missing javax.servlet.api dependency in org.jboss.ws.jaxws-client AS module
+ * [JBWS-3603] - JBossWS client configuration not working on Dispatch
+ * [JBWS-3608] - JBWS1702TestCase testInheritanceBare failure on IBM JDK 7
+ * [JBWS-3609] - ClientSpringAppTestCase failures on IBM JDK
+ * [JBWS-3613] - WSConsume fails on IBM JDK6
+ * [JBWS-3638] - Fix SecurityDomainTestCase failure only happens with IBM JDK6
+ * [JBWS-3639] - Add more timeout value for the thread join to fix the JBWS1666TestCase failure on Windows
+ * [JBWS-3640] - Failed to get jmx connection in JBWS2150TestCaseForked on Windows
+ * [JBWS-3645] - WorkQueueManager is not registered in JMX Server when cxf.management is enabled
+ * [JBWS-3647] - Client/EndpointConfig in ServerConfig should be fully thread-safe lists
+ * [JBWS-3650] - CXF XSD resolution is not working
+ * [JBWS-3653] - soap:address of generated WSDLs never uses the wsdl-host defined in webservices subsystem
+ * [JBWS-3654] - Intermittent failure in EndpointPublisherImpl
+ * [JBWS-3655] - wsdlLocation in ejb-jar throws error for schema import
+ * [JBWS-3659] - XTS services start endpoint with error JBWS022103: Cannot start endpoint in state STARTED
+ * [JBWS-3660] - Intermittent failure in ResourceResolverDeploymentAspect
+ * [JBWS-3669] - DelegateClassLoader: avoid needing read permission when getting resources through ModuleClassLoader
+ * [JBWS-3671] - AbstractServerConfig keep stale reference to server config after reboot
-Feature Request
-
- [JBWS-???] - ...
-
Task
- [JBWS-???] - ...
+ * [JBWS-3560] - Unlock FastInfoset feature in CXF on top of JBossAS
+ * [JBWS-3566] - Upgrade to Apache CXF 2.7
+ * [JBWS-3587] - WS-I BP 1.2 testsuite
+ * [JBWS-3600] - Support for AS 8 as target container
+ * [JBWS-3606] - Add proper way to identify the cxf and native stack
+ * [JBWS-3614] - Move to WSS4J 1.6.10
+ * [JBWS-3618] - Add wstx dependency to org.apache.cxf module
+ * [JBWS-3619] - Backport the RemoteDeployer timeout setting to AS 7.2 integration layer
+ * [JBWS-3621] - Replace HttpServletResponseExt with HttpServletResponseWrapper
+ * [JBWS-3622] - Restore HTTPS tests w/ Undertow
+ * [JBWS-3627] - JBoss AS -> WildFly scripts migration
+ * [JBWS-3629] - Add Woodstox 4.2.0 to binary distro
+ * [JBWS-3634] - Add kerberos token test
+ * [JBWS-3636] - Dismantle jbossws-shared-testsuite
+ * [JBWS-3642] - Replace gnu-getopt:getopt with gnu.getopt:java-getopt
+ * [JBWS-3643] - Review EndpointRegistry container integration
+ * [JBWS-3644] - Review SPI resolution mechanism
+ * [JBWS-3649] - Invoke LifecycleHandler in EndpointService
+ * [JBWS-3651] - Reduce need for explicit dependency on org.apache.ws.security module
+ * [JBWS-3656] - Upgrade Apache Santuario to 1.5.5
+ * [JBWS-3665] - Upgrade to PicketLink 2.1.7.Final
+ * [JBWS-3674] - Allow WebSerivceFactory to parse new {http://xmlns.jcp.org/xml/ns/javaee}webservice element
-Sub-task
-
- [JBWS-???] - ...
-
Errata
- See: https://issues.jboss.org/browse/JBWS-???
+ See: https://issues.jboss.org/browse/JBWS-3675
This version of "${project.name}" is based on Apache CXF ${cxf.version}
11 years, 2 months
JBossWS SVN: r17842 - common-tools/trunk.
by jbossws-commits@lists.jboss.org
Author: alessio.soldano(a)jboss.com
Date: 2013-07-26 12:07:47 -0400 (Fri, 26 Jul 2013)
New Revision: 17842
Modified:
common-tools/trunk/pom.xml
Log:
Preparing for next dev cycle
Modified: common-tools/trunk/pom.xml
===================================================================
--- common-tools/trunk/pom.xml 2013-07-26 16:06:47 UTC (rev 17841)
+++ common-tools/trunk/pom.xml 2013-07-26 16:07:47 UTC (rev 17842)
@@ -9,7 +9,7 @@
<packaging>jar</packaging>
<description>JBossWS Common Tools</description>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.2.1-SNAPSHOT</version>
<parent>
<groupId>org.jboss.ws</groupId>
@@ -24,8 +24,8 @@
</scm>
<properties>
- <jbossws.api.version>1.0.2-SNAPSHOT</jbossws.api.version>
- <jbossws.spi.version>2.2.0-SNAPSHOT</jbossws.spi.version>
+ <jbossws.api.version>1.0.3-SNAPSHOT</jbossws.api.version>
+ <jbossws.spi.version>2.2.1-SNAPSHOT</jbossws.spi.version>
<ant.version>1.7.1</ant.version>
<getopt.version>1.0.13</getopt.version>
<junit.version>3.8.2</junit.version>
11 years, 2 months
JBossWS SVN: r17840 - common-tools/tags.
by jbossws-commits@lists.jboss.org
Author: alessio.soldano(a)jboss.com
Date: 2013-07-26 12:04:08 -0400 (Fri, 26 Jul 2013)
New Revision: 17840
Added:
common-tools/tags/jbossws-common-tools-1.2.0.Final/
Log:
Tagging jbossws-common-tools-1.2.0.Final
11 years, 2 months
JBossWS SVN: r17839 - stack/cxf/trunk/modules/dist/src/main/doc.
by jbossws-commits@lists.jboss.org
Author: alessio.soldano(a)jboss.com
Date: 2013-07-26 11:39:19 -0400 (Fri, 26 Jul 2013)
New Revision: 17839
Modified:
stack/cxf/trunk/modules/dist/src/main/doc/Revision_History.xml
stack/cxf/trunk/modules/dist/src/main/doc/chapter-4-JAX_WS_Tools.xml
stack/cxf/trunk/modules/dist/src/main/doc/chapter-5-Advanced_User_Guide.xml
stack/cxf/trunk/modules/dist/src/main/doc/chapter-6-JBoss_Modules.xml
Log:
Updating documentation
Modified: stack/cxf/trunk/modules/dist/src/main/doc/Revision_History.xml
===================================================================
--- stack/cxf/trunk/modules/dist/src/main/doc/Revision_History.xml 2013-07-26 15:06:50 UTC (rev 17838)
+++ stack/cxf/trunk/modules/dist/src/main/doc/Revision_History.xml 2013-07-26 15:39:19 UTC (rev 17839)
@@ -74,6 +74,20 @@
</simplelist>
</revdescription>
</revision>
+ <revision>
+ <revnumber>4.2.0</revnumber>
+ <date>Fri Jul 26 2013</date>
+ <author>
+ <firstname>Alessio</firstname>
+ <surname>Soldano</surname>
+ <email>alessio.soldano(a)jboss.com</email>
+ </author>
+ <revdescription>
+ <simplelist>
+ <member>JBossWS-CXF 4.2.0 documentation</member>
+ </simplelist>
+ </revdescription>
+ </revision>
</revhistory>
</simpara>
</appendix>
Modified: stack/cxf/trunk/modules/dist/src/main/doc/chapter-4-JAX_WS_Tools.xml
===================================================================
--- stack/cxf/trunk/modules/dist/src/main/doc/chapter-4-JAX_WS_Tools.xml 2013-07-26 15:06:50 UTC (rev 17838)
+++ stack/cxf/trunk/modules/dist/src/main/doc/chapter-4-JAX_WS_Tools.xml 2013-07-26 15:39:19 UTC (rev 17839)
@@ -496,7 +496,8 @@
-b, --binding=<file> One or more JAX-WS or JAXB binding files
-k, --keep Keep/Generate Java source
-c --catalog=<file> Oasis XML Catalog file for entity resolution
- -p --package=<name> The target package for generated source
+ -j --clientjar=<name> Create a jar file of the generated artifacts for calling the webservice
+ -p --package=<name> The target package for generated source
-w --wsdlLocation=<loc> Value to use for @WebServiceClient.wsdlLocation
-o, --output=<directory> The directory to put generated artifacts
-s, --source=<directory> The directory to put Java source
@@ -669,7 +670,7 @@
<para>The output directory for Java source.</para>
</entry>
<entry>
- <para>${project.build.directory}/wsconsume/java</para>
+ <para>${project.build.directory}/generated-sources/wsconsume</para>
</entry>
</row>
<row>
@@ -1296,6 +1297,17 @@
</row>
<row>
<entry>
+ <para>portSoapAddress</para>
+ </entry>
+ <entry>
+ <para>The generated port soap:address in the WSDL</para>
+ </entry>
+ <entry>
+ <para> </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
<para>
<emphasis role="strong">endpointClass</emphasis>
</para>
Modified: stack/cxf/trunk/modules/dist/src/main/doc/chapter-5-Advanced_User_Guide.xml
===================================================================
--- stack/cxf/trunk/modules/dist/src/main/doc/chapter-5-Advanced_User_Guide.xml 2013-07-26 15:06:50 UTC (rev 17838)
+++ stack/cxf/trunk/modules/dist/src/main/doc/chapter-5-Advanced_User_Guide.xml 2013-07-26 15:39:19 UTC (rev 17839)
@@ -413,7 +413,7 @@
<para>
The
<code>configFile</code>
- attribute is used to specify with config file, if any, is to be used to load the configuration; if
+ attribute is used to specify which config file, if any, is to be used to load the configuration; if
<code>configFile</code>
is not set, the application server configurations are used.
</para>
@@ -747,13 +747,232 @@
<para>allowing using Apache CXF advanced features (including WS-*) on top of JBoss Application server without requiring the user to deal with / setup / care about the required integration steps for running in such a container.</para>
</listitem>
</itemizedlist>
- <para>In order for achieving the goals above, the JBossWS-CXF integration supports the JBoss endpoint deployment and comes with many internal customizations on top of Apache CXF.</para>
+ <para>In order for achieving the goals above, the JBossWS-CXF integration supports the JBoss ws endpoint deployment mechanism and comes with many internal customizations on top of Apache CXF.</para>
<para>
In the next sections a list of technical suggestions and notes on the integration is provided; please also refer to the
<ulink url="http://cxf.apache.org/docs/index.html">Apache CXF official documentation</ulink>
for in-depth details on the CXF architecture.
</para>
</section>
+ <section id="sid-3866786_ApacheCXFintegration-BuildingWSapplicationstheJBossway">
+
+ <title>Building WS applications the JBoss way</title>
+ <para>
+ The Apache CXF client and endpoint configuration as explained in the
+ <ulink url="http://cxf.apache.org/docs/index.html">Apache CXF official user guide</ulink>
+ is heavily based on Spring. Apache CXF basically parses Spring
+ <code>cxf.xml</code>
+ descriptors; those may contain any basic bean plus specific ws client and endpoint beans which CXF has custom parsers for. Apache CXF can be used to deploy webservice endpoints on any servlet container by including its libraries in the deployment; in such a scenario Spring basically serves as a convenient configuration option, given direct Apache CXF API usage won't be very handy. Similar reasoning applies on client side, where a Spring based descriptor offers a shortcut for setting up Apache CXF internals.
+ </para>
+ <para>This said, nowadays almost any Apache CXF functionality can be configured and used through direct API usage, without Spring.</para>
+ <section id="sid-3866786_ApacheCXFintegration-Portableapplications">
+
+ <title>Portable applications</title>
+ <para>The JBoss Application Server is much more then a servlet container; it actually provides users with a fully compliant target platform for Java EE applications.</para>
+ <para>
+ Generally speaking,
+ <emphasis role="italics">users are encouraged to write portable applications</emphasis>
+ by relying only on
+ <emphasis role="italics">JAX-WS specification</emphasis>
+ whenever possible. That would by the way ensure easy migrations to and from other compliant platforms. Being a Java EE container, JBoss Application Server already comes with a JAX-WS compliant implementation, which is basically Apache CXF plus the JBossWS-CXF integration layer. So users just need to write their JAX-WS application;
+ <emphasis role="italics">no need for embedding any Apache CXF or any ws related dependency library in user deployments</emphasis>
+ . Please refer to the
+ <xref linkend="sid-3866716"/>
+ section of the documentation for getting started.
+ </para>
+ <para>
+ WS-* usage (including WS-Security, WS-Addressing, WS-ReliableMessaging, ...) should also be configured in the most portable way; that is by
+ <emphasis role="italics">relying on proper WS-Policy assertions</emphasis>
+ on the endpoint WSDL contracts, so that client and endpoint configuration is basically a matter of setting few ws context properties. The WS-* related sections of this documentation cover all the details on configuring applications making use of WS-* through policies.
+ </para>
+ <para>
+ As a consequence of the reasoning above, the JBossWS-CXF integration is currently built directly on the Apache CXF API and aims at allowing users to configure webservice clients and endpoints
+ <emphasis role="italics">without Spring descriptors</emphasis>
+ .
+ </para>
+ <para>
+ <emphasis role="strong">The following two paragraphs provide few directions on how to deploy or use applications explicitly relying on Apache CXF, users should however prefer the portable application approach whenever possible.</emphasis>
+ </para>
+ </section>
+ <section id="sid-3866786_ApacheCXFintegration-DirectApacheCXFAPIusage">
+
+ <title>Direct Apache CXF API usage</title>
+ <para>Whenever users can't really meet their application requirements with JAX-WS plus WS-Policy, it is of course still possible to rely on direct Apache CXF API usage (given that's included in the AS), loosing the Java EE portability of the application. That could be the case of a user needing specific Apache CXF functionalities, or having to consume WS-* enabled endpoints advertised through legacy wsdl contracts without WS-Policy assertions.</para>
+ <para>
+ On server side, direct Apache CXF API usage might not be always possible or end up being not very easy. For this reason, the JBossWS integration comes with a convenient alternative through customization options in the
+ <code>jboss-webservices.xml</code>
+ descriptor described below on this page.
+ </para>
+ </section>
+ <section id="sid-3866786_ApacheCXFintegration-Springdescriptorsusage">
+
+ <title>Spring descriptors usage</title>
+ <para>
+ Finally, in some cases, users might still want to consume Spring descriptors (
+ <emphasis role="strong">discouraged approach</emphasis>
+ ); that's possibly the case of applications developed on and being migrated from different environments. For such scenarios, the installation of Spring Framework libraries on application server is the suggested approach. That can be performed using the JBossWS-CXF installation script or by manually populating a
+ <emphasis role="italics">org.springframework.spring</emphasis>
+ JBoss AS module with the required Spring jars. For writing the
+ <code>module.xml</code>
+ descriptor for such a module please refer the relevant JBoss AS documentation on creating modules; in any case it would look similar to:
+ </para>
+ <informalexample>
+ <programlisting><module xmlns="urn:jboss:module:1.1" name="org.springframework.spring">
+ <resources>
+ <!-- List references to jar resources here -->
+ </resources>
+ <dependencies>
+ <module name="javax.api" />
+ <module name="javax.jms.api" />
+ <module name="javax.annotation.api" />
+ <module name="org.apache.commons.logging" />
+ <module name="org.jboss.vfs" />
+ </dependencies>
+</module></programlisting>
+ </informalexample>
+ <para>
+ The other webservices modules on JBoss AS already have an optional dependency on
+ <emphasis role="italics">org.springframework.spring</emphasis>
+ module and will hence automatically consume it.
+ </para>
+ <para>Once the Spring module is available on target application server, Spring based Apache CXF buses can be built up.</para>
+ <section id="sid-3866786_ApacheCXFintegration-Clientside">
+
+ <title>Client side</title>
+ <para>
+ Whenever Spring is available in the current thread classloader (possibly as a consequence of having set a dependency to the above mentioned
+ <code>org.springframework.spring</code>
+ module) and the classloader can successfully locate a valid Spring descriptor resource, a Spring based
+ <code>Bus</code>
+ will be created if required. So user can either:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ programmatically use a
+ <code>SpringBusFactory</code>
+ (or the
+ <code>JBossWSBusFactory</code>
+ if the JBossWS additions are available) to load a Spring Bus from a given
+ <emphasis role="italics">cxf.xml</emphasis>
+ descriptor; that can include any CXF customization or client bean;
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ build a JAX-WS client and let the JAX-WS Provider implementation internally build a Spring based
+ <code>Bus</code>
+ using the available
+ <emphasis role="italics">cxf.xml</emphasis>
+ resource retrieved from the current classloader (usually found in
+ <emphasis role="italics">META-INF/cxf.xml</emphasis>
+ ).
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ Consider having a look at
+ <link linkend="sid-4784150">this page</link>
+ for directions on setting module dependencies, especially if willing to create a ws client within a Spring Bus and running in-container.
+ </para>
+ <para>
+ Finally please be sure to check the section below on
+ <code>Bus</code>
+ usage any time you're building a
+ <code>Bus</code>
+ on client side.
+ </para>
+ </section>
+ <section id="sid-3866786_ApacheCXFintegration-Serverside">
+
+ <title>Server side</title>
+ <para>It is possible to customize the JBossWS integration with Apache CXF by incorporating a CXF configuration file into the endpoint deployment archive. The convention is the following:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ the descriptor file name must be
+ <emphasis role="strong">jbossws-cxf.xml</emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ for POJO deployments it is located in
+ <emphasis role="strong">WEB-INF</emphasis>
+ directory
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ for EJB3 deployments it is located in
+ <emphasis role="strong">META-INF</emphasis>
+ directory
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ The
+ <emphasis role="italics">jbossws-cxf.xml</emphasis>
+ is parsed similarly to a common
+ <emphasis role="italics">cxf.xml</emphasis>
+ in order for building up a
+ <code>Bus</code>
+ for the WS deployment; the endpoint beans included in the deployment are to be specified using the
+ <code><jaxws:endpoint></code>
+ tag the same they would be specified in a
+ <emphasis role="italics">cxf.xml</emphasis>
+ descriptor (a example from the testsuite can be seen
+ <ulink url="http://anonsvn.jboss.org/repos/jbossws/stack/cxf/tags/jbossws-cxf-4.1.3.F...">here</ulink>
+ ). The application server HTTP engine will be serving the endpoints.
+ </para>
+ <para>
+ If there is no
+ <code><jaxws:endpoint></code>
+ defined in
+ <emphasis role="italics">jbossws-cxf.xml</emphasis>
+ , the endpoint classes mentioned in
+ <emphasis role="italics">WEB-INF/web.xml</emphasis>
+ will be automatically transformed to
+ <code><jaxws:endpoint></code>
+ entries in the Spring configuration and loaded by JBossWS-CXF. This allows using the jbossws-cxf.xml to customize the bus without having to manually duplicate the endpoint information in the descriptor. The following is an example of configuring an endpoint through
+ <emphasis role="italics">web.xml</emphasis>
+ with Aegis databinding setup from
+ <emphasis role="italics">jbossws-cxf.xml</emphasis>
+ :
+ </para>
+ <informalexample>
+ <programlisting><?xml version="1.0" encoding="UTF-8"?>
+<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
+ <servlet>
+ <servlet-name>AegisGroupQueryService</servlet-name>
+ <servlet-class>org.jboss.test.ws.jaxws.cxf.aegis.AegisGroupQueryImpl</servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>AegisGroupQueryService</servlet-name>
+ <url-pattern>/*</url-pattern>
+ </servlet-mapping>
+</web-app></programlisting>
+ </informalexample>
+ <informalexample>
+ <programlisting><beans xmlns='http://www.springframework.org/schema/beans'
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:beans='http://www.springframework.org/schema/beans'
+ xmlns:jaxws='http://cxf.apache.org/jaxws'
+ xsi:schemaLocation='http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+ http://www.w3.org/2006/07/ws-policy http://www.w3.org/2006/07/ws-policy.xsd
+ http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd'>
+ <bean id="aegisBean" class="org.apache.cxf.aegis.databinding.AegisDatabinding" scope="prototype" />
+ <bean name="{http://aegis.cxf.jaxws.ws.test.jboss.org/}AegisGroupQueryImplPort.jaxws-endpoint" abstract="true">
+ <property name="dataBinding" ref="aegisBean" />
+ </bean>
+</beans> </programlisting>
+ </informalexample>
+ <para>
+ The
+ <emphasis role="italics">jbossws-cxf.xml</emphasis>
+ approach can be used for the very few scenarios Apache CXF can be configured for only using Spring descriptor, e.g. for some advanced WS-RM customizations.
+ </para>
+ </section>
+ </section>
+ </section>
<section id="sid-3866786_ApacheCXFintegration-Bususage">
<title>Bus usage</title>
@@ -896,12 +1115,14 @@
<para>
The JBossWS-CXF server side integration takes care of internally creating proper Apache CXF structures (including a
<code>Bus</code>
- instance, of course) for the ws endpoint deployment.
+ instance, of course) for the provided ws deployment. Should the deployment include multiple endpoints, those would all live within the same Apache CXF Bus, which would of course be completely separated by the other deployments' bus instances.
</para>
<para>
While JBossWS sets sensible defaults for most of the Apache CXF configuration options on server side, users might want to fine tune the
<code>Bus</code>
- instance that's created for their deployments.
+ instance that's created for their deployment; a
+ <code>jboss-webservices.xml</code>
+ descriptor can be used for deployment level customizations.
</para>
<section id="sid-3866786_ApacheCXFintegration-Deploymentdescriptorproperties">
@@ -1069,40 +1290,18 @@
.
</para>
</section>
+ <section id="sid-3866786_ApacheCXFintegration-WSDiscoveryenablement">
+
+ <title>Discovery enablement</title>
+ <para>
+ WS-Discovery support can be turned on in
+ <code>jboss-webservices</code>
+ for the current deployment. Further details available
+ <link linkend="sid-66486377">here</link>
+ .
+ </para>
+ </section>
</section>
- <section id="sid-3866786_ApacheCXFintegration-Springbasedconfiguration">
-
- <title>Spring based configuration</title>
- <para>
- It is possible to customize the JBossWS and CXF integration by incorporating the CXF configuration file to the endpoint deployment archive. In order for that to be possible, JBossWS-CXF requires Spring to be installed in the application server. The Spring Framework libraries installation can be performed using the JBossWS-CXF installation or by manually populating the
- <emphasis role="italics">org.springframework.spring</emphasis>
- module that's in JBoss AS 7 and which the other webservices modules already have an optional dependency on.
- </para>
- <para>The convention is the following:</para>
- <itemizedlist>
- <listitem>
- <para>
- file name must be
- <emphasis role="strong">jbossws-cxf.xml</emphasis>
- </para>
- </listitem>
- <listitem>
- <para>
- for POJO deployments it is located in
- <emphasis role="strong">WEB-INF</emphasis>
- directory
- </para>
- </listitem>
- <listitem>
- <para>
- for EJB3 deployments it is located in
- <emphasis role="strong">META-INF</emphasis>
- directory
- </para>
- </listitem>
- </itemizedlist>
- <para>Providing custom CXF configuration to the endpoint deployment is useful in cases when users want to use features that are not part of standard JAX-WS specification (CXF specific) and that can't be setup in the application classes' code. An example are some advanced WS-RM customizations.</para>
- </section>
</section>
</section>
<section id="sid-3866793">
@@ -1387,7 +1586,7 @@
<para>Recent versions of Apache CXF, however, introduced support for WS-Security Policy, which aims at moving most of the security configuration into the service contract (through policies), so that clients can easily be configured almost completely automatically from that. This way users do not need to manually deal with configuring / installing the required interceptors; the Apache CXF WS-Policy engine internally takes care of that instead.</para>
<section id="sid-3866795_WS-Security-WSSecurityPolicysupport">
- <title>Security Policy support</title>
+ <title>WS-Security Policy support</title>
<para>
WS-SecurityPolicy describes the actions that are required to securely communicate with a service advertised in a given WSDL contract. The WSDL bindings / operations reference WS-Policy fragments with the security requirements to interact with the service. The
<ulink url="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/v1.3/ws-securitypolicy...">WS-SecurityPolicy specification</ulink>
@@ -3398,7 +3597,7 @@
</informalexample>
<para>Here is how the PicketLink STS endpoint is packaged:</para>
<informalexample>
- <programlisting>alessio@inuyasha /dati/jbossws/stack/cxf/trunk $ jar -tvf ./modules/testsuite/cxf-tests/target/test-libs/jaxws-samples-wsse-policy-trustPicketLink-sts.war
+ <programlisting>alessio@inuyasha /dati/jbossws/stack/cxf/trunk $ jar -tvf ./modules/testsuite/cxf-tests/target/test-libs/jaxws-samples-wsse-policy-trustPicketLink-sts.war
0 Mon Sep 03 17:38:38 CEST 2012 META-INF/
174 Mon Sep 03 17:38:36 CEST 2012 META-INF/MANIFEST.MF
0 Mon Sep 03 17:38:38 CEST 2012 WEB-INF/
@@ -4443,4 +4642,416 @@
</informalexample>
</section>
</section>
+ <section id="sid-66486377">
+
+ <title>WS-Discovery</title>
+ <para>
+ Apache CXF includes support for
+ <emphasis role="italics">Web Services Dynamic Discovery</emphasis>
+ (
+ <ulink url="http://docs.oasis-open.org/ws-dd/discovery/1.1/os/wsdd-discovery-1.1-spec...">WS-Discovery</ulink>
+ ), which is a protocol to enable dynamic discovery of services available on the local network. The protocol implies using a
+ <code>UDP</code>
+ based multicast transport to announce new services and probe for existing services. A managed mode where a discovery proxy is used to reduce the amount of required multicast traffic is also covered by the protocol.
+ </para>
+ <para>
+ JBossWS integrates the
+ <emphasis role="italics">WS-Discovery</emphasis>
+ <ulink url="http://cxf.apache.org/docs/ws-discovery.html">functionalities</ulink>
+ provided by Apache CXF into the application server.
+ </para>
+ <section id="sid-66486377_WS-Discovery-EnablingWSDiscovery">
+
+ <title>Enabling WS-Discovery</title>
+ <para>
+ Apache CXF enables
+ <emphasis role="italics">WS-Discovery</emphasis>
+ depending on the availability of its runtime component; given that's always shipped in the application server, JBossWS integration requires using the
+ <code>cxf.ws-discovery.enabled</code>
+ <ulink url="https://docs.jboss.org/author/display/JBWS/Advanced+User+Guide#AdvancedUs...">property</ulink>
+ usage for enabling
+ <emphasis role="italics">WS-Discovery</emphasis>
+ for a given deployment. By default
+ <emphasis role="italics">WS-Discovery</emphasis>
+ is disabled on the application server. Below is an example of
+ <emphasis role="italics">jboss-webservices.xml</emphasis>
+ descriptor to be used for enabling
+ <emphasis role="italics">WS-Discovery</emphasis>
+ :
+ </para>
+ <informalexample>
+ <programlisting><webservices xmlns="http://www.jboss.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ version="1.2" xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee">
+
+ <property>
+ <name>cxf.ws-discovery.enabled</name>
+ <value>true</value>
+ </property>
+
+</webservices></programlisting>
+ </informalexample>
+ <para>
+ By default, a
+ <emphasis role="italics">WS-Discovery</emphasis>
+ service endpoint (SOAP-over-UDP bound) will be started the first time a WS-Discovery enabled deployment is processed on the application server. Every ws endpoint belonging to
+ <emphasis role="italics">WS-Discovery</emphasis>
+ enabled deployments will be automatically registered into such a
+ <emphasis role="italics">WS-Discovery</emphasis>
+ service endpoint (
+ <code>Hello</code>
+ messages). The service will reply to
+ <code>Probe</code>
+ and
+ <code>Resolve</code>
+ messages received on
+ <code>UDP</code>
+ port
+ <code>3702</code>
+ (including multicast messages sent to
+ <code>IPv4</code>
+ address
+ <code>239.255.255.250</code>
+ , as per
+ <ulink url="http://docs.oasis-open.org/ws-dd/discovery/1.1/os/wsdd-discovery-1.1-spec...">specification</ulink>
+ ). Endpoints will eventually be automatically unregistered using
+ <code>Bye</code>
+ messages upon undeployment.
+ </para>
+ </section>
+ <section id="sid-66486377_WS-Discovery-Probingservices">
+
+ <title>Probing services</title>
+ <para>
+ Apache CXF comes with a
+ <emphasis role="italics">WS-Discovery</emphasis>
+ API that can be used to probe / resolve services. When running in-container, a JBoss module
+ <link linkend="sid-4784150">dependency</link>
+ to the the
+ <code>org.apache.cxf.impl</code>
+ module is to be set to have access to
+ <emphasis role="italics">WS-Discovery</emphasis>
+ client functionalities.
+ </para>
+ <para>
+ The
+ <ulink url="http://svn.apache.org/viewvc/cxf/tags/cxf-2.7.5/services/ws-discovery/ws-...">org.apache.cxf.ws.discovery.WSDiscoveryClient</ulink>
+ class provides the
+ <emphasis role="italics">probe</emphasis>
+ and
+ <emphasis role="italics">resolve</emphasis>
+ methods which also accepts filters on scopes. Users can rely on them for locating available endpoints on the network. Please have a look at the JBossWS testsuite which includes a
+ <ulink url="http://anonsvn.jboss.org/repos/jbossws/stack/cxf/tags/jbossws-cxf-4.2.0.B...">sample</ulink>
+ on CXF WS-Discovery usage.
+ </para>
+ </section>
+ </section>
+ <section id="sid-68354567">
+
+ <title>WS-Policy</title>
+ <section id="sid-68354567_WS-Policy-ApacheCXFWSPolicysupport">
+
+ <title>Apache CXF WS-Policy support</title>
+ <para>
+ JBossWS policy support rely on the Apache CXF WS-Policy framework, which is compliant with the
+ <ulink url="http://www.w3.org/TR/2007/REC-ws-policy-20070904/">Web Services Policy 1.5 - Framework</ulink>
+ and
+ <ulink url="http://www.w3.org/TR/2007/REC-ws-policy-attach-20070904/">Web Services Policy 1.5 - Attachment</ulink>
+ specifications.
+
+ Users can work with policies in different ways:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>by adding policy assertions to wsdl contracts and letting the runtime consume them and behave accordingly;</para>
+ </listitem>
+ <listitem>
+ <para>by specifying endpoint policy attachments using either CXF annotations or features.</para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ Of course users can also make direct use of the Apache CXF policy framework,
+ <ulink url="http://cxf.apache.org/docs/developing-assertions.html">defining custom assertions</ulink>
+ , etc.
+ </para>
+ <para>Finally, JBossWS provides some additional annotations for simplified policy attachment.</para>
+ <section id="sid-68354567_WS-Policy-Contractfirstapproach">
+
+ <title>Contract-first approach</title>
+ <para>WS-Policies can be attached and referenced in wsdl elements (the specifications describe all possible alternatives). Apache CXF automatically recognizes, reads and uses policies defined in the wsdl.</para>
+ <para>
+ Users should hence develop endpoints using the
+ <emphasis role="italics">contract-first</emphasis>
+ approach, that is explicitly providing the contract for their services. Here is a excerpt taken from a wsdl including a WS-Addressing policy:
+ </para>
+ <informalexample>
+ <programlisting><wsdl:definitions name="Foo" targetNamespace="http://ws.jboss.org/foo"
+...
+<wsdl:service name="FooService">
+ <wsdl:port binding="tns:FooBinding" name="FooPort">
+ <soap:address location="http://localhost:80800/foo"/>
+ <wsp:Policy xmlns:wsp="http://www.w3.org/ns/ws-policy">
+ <wsam:Addressing xmlns:wsam="http://www.w3.org/2007/02/addressing/metadata">
+ <wsp:Policy/>
+ </wsam:Addressing>
+ </wsp:Policy>
+ </wsdl:port>
+</wsdl:service>
+</wsdl:definitions></programlisting>
+ </informalexample>
+ <para>Of course, CXF also acts upon policies specified in wsdl documents consumed on client side.</para>
+ </section>
+ <section id="sid-68354567_WS-Policy-Codefirstapproach">
+
+ <title>Code-first approach</title>
+ <para>
+ For those preferring code-first (java-first) endpoint development, Apache CXF comes with
+ <code>org.apache.cxf.annotations.Policy</code>
+ and
+ <code>org.apache.cxf.annotations.Policies</code>
+ annotations to be used for attaching policy fragments to the wsdl generated at deploy time.
+ </para>
+ <para>Here is an example of a code-first endpoint including @Policy annotation:</para>
+ <informalexample>
+ <programlisting>import javax.jws.WebService;
+import org.apache.cxf.annotations.Policy;
+
+@WebService(portName = "MyServicePort",
+ serviceName = "MyService",
+ name = "MyServiceIface",
+ targetNamespace = "http://www.jboss.org/jbossws/foo")
+@Policy(placement = Policy.Placement.BINDING, uri = "JavaFirstPolicy.xml")
+public class MyServiceImpl {
+ public String sayHello() {
+ return "Hello World!";
+ }
+}</programlisting>
+ </informalexample>
+ <para>
+ The referenced descriptor is to be added to the deployment and will include the policy to be attached; the attachment position in the contracts is defined through the
+ <code>placement</code>
+ attribute. Here is a descriptor example:
+ </para>
+ <informalexample>
+ <programlisting><?xml version="1.0" encoding="UTF-8" ?>
+<wsp:Policy wsu:Id="MyPolicy" xmlns:wsp="http://www.w3.org/ns/ws-policy"
+ xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utilit...">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:SupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysT...">
+ <wsp:Policy>
+ <sp:WssUsernameToken10/>
+ </wsp:Policy>
+ </sp:UsernameToken>
+ </wsp:Policy>
+ </sp:SupportingTokens>
+ </wsp:All>
+ </wsp:ExactlyOne>
+</wsp:Policy></programlisting>
+ </informalexample>
+ </section>
+ </section>
+ <section id="sid-68354567_WS-Policy-JBossWSadditions">
+
+ <title>JBossWS additions</title>
+ <section id="sid-68354567_WS-Policy-Policysets">
+
+ <title>Policy sets</title>
+ <para>
+ Both approaches above require users to actually write their policies' assertions; while this offer great flexibility and control of the actual contract, providing the assertions might end up being quite a challenging task for complex policies. For this reason, the JBossWS integration provides
+ <emphasis role="italics">policy sets</emphasis>
+ , which are basically pre-defined groups of policy assertions corresponding to well known / common needs. Each set has a label allowing users to specify it in the
+ <code>@org.jboss.ws.api.annotation.PolicySets</code>
+ annotation to have the policy assertions for that set attached to the annotated endpoint. Multiple labels can also be specified. Here is an example of the @PolicySets annotation on a service endpoint interface:
+ </para>
+ <informalexample>
+ <programlisting>import javax.jws.WebService;
+import org.jboss.ws.api.annotation.PolicySets;
+
+@WebService(name = "EndpointTwo", targetNamespace = "http://org.jboss.ws.jaxws.cxf/jbws3648")
+@PolicySets({"WS-RM_Policy_spec_example", "WS-SP-EX223_WSS11_Anonymous_X509_Sign_Encrypt", "WS-Addressing"})
+public interface EndpointTwo
+{
+ String echo(String input);
+}</programlisting>
+ </informalexample>
+ <para>The three sets specified in @PolicySets will cause the wsdl generated for the endpoint having this interface to be enriched with some policy assertions for WS-RM, WS-Security and WS-Addressing.</para>
+ <para>
+ The labels' list of known sets is stored in the
+ <code>META-INF/policies/org.jboss.wsf.stack.cxf.extensions.policy.PolicyAttachmentStore</code>
+ file within the
+ <code>jbossws-cxf-client.jar</code>
+ (
+ <code>org.jboss.ws.cxf:jbossws-cxf-client</code>
+ maven artifact). Actual policy fragments for each set are also stored in the same artifact at
+ <code>META-INF/policies/<set-label>-<attachment-position>.xml</code>
+ .
+ </para>
+ <para>Here is a list of the available policy sets:</para>
+ <informaltable>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>
+ <para>Label</para>
+ </entry>
+ <entry>
+ <para>Description</para>
+ </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <para>WS-Addressing</para>
+ </entry>
+ <entry>
+ <para>Basic WS-Addressing policy</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ WS-RM_Policy_spec_example
+
+ </para>
+ </entry>
+ <entry>
+ <para>The basic WS-RM policy example in the WS-RM specification</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>WS-SP-EX2121_SSL_UT_Supporting_Token</para>
+ </entry>
+ <entry>
+ <para>
+ The group of policy assertions used in the section 2.1.2.1 example of the WS-Security Policy Examples 1.0 specification
+
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ WS-SP-EX213_WSS10_UT_Mutual_Auth_X509_Sign_Encrypt
+
+ </para>
+ </entry>
+ <entry>
+ <para>
+ The group of policy assertions used in the section 2.1.3 example of the WS-Security Policy Examples 1.0 specification
+
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ WS-SP-EX214_WSS11_User_Name_Cert_Sign_Encrypt
+
+ </para>
+ </entry>
+ <entry>
+ <para>
+ The group of policy assertions used in the section 2.1.4 example of the WS-Security Policy Examples 1.0 specification
+
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ WS-SP-EX221_WSS10_Mutual_Auth_X509_Sign_Encrypt
+
+ </para>
+ </entry>
+ <entry>
+ <para>The group of policy assertions used in the section 2.2.1 example of the WS-Security Policy Examples 1.0 specification</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ WS-SP-EX222_WSS10_Mutual_Auth_X509_Sign_Encrypt
+
+ </para>
+ </entry>
+ <entry>
+ <para>
+ The group of policy assertions used in the section 2.2.2 example of the WS-Security Policy Examples 1.0 specification
+
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ WS-SP-EX223_WSS11_Anonymous_X509_Sign_Encrypt
+
+ </para>
+ </entry>
+ <entry>
+ <para>
+ The group of policy assertions used in the section 2.2.3 example of the WS-Security Policy Examples 1.0 specification
+
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ WS-SP-EX224_WSS11_Mutual_Auth_X509_Sign_Encrypt
+
+ </para>
+ </entry>
+ <entry>
+ <para>
+ The group of policy assertions used in the section 2.2.4 example of the WS-Security Policy Examples 1.0 specification
+
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ AsymmetricBinding_X509v1_TripleDesRsa15_EncryptBeforeSigning_ProtectTokens
+
+ </para>
+ </entry>
+ <entry>
+ <para>A WS-Security policy for asymmetric binding (encrypt before signing) using X.509v1 tokens, 3DES + RSA 1.5 algorithms and with token protections enabled</para>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ AsymmetricBinding_X509v1_GCM256OAEP_ProtectTokens
+
+ </para>
+ </entry>
+ <entry>
+ <para>The same as before, but using custom Apache CXF algorithm suite including GCM 256 + RSA OAEP algorithms</para>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ <warning>
+ <para>Always verify the contents of the generated wsdl contract, as policy sets are potentially subject to updates between JBossWS releases. This is especially important when dealing with security related policies; the provided sets are to be considered as convenient configuration options only; users remain responsible for the policies in their contracts.</para>
+ </warning>
+ <tip>
+ <para>
+ The
+ <code>org.jboss.wsf.stack.cxf.extensions.policy.Constants</code>
+ interface has convenient String constants for the available policy set labels.
+ </para>
+ </tip>
+ <tip>
+ <para>If you feel a new set should be added, just propose it by writing the user forum!</para>
+ </tip>
+ </section>
+ </section>
+ </section>
</chapter>
Modified: stack/cxf/trunk/modules/dist/src/main/doc/chapter-6-JBoss_Modules.xml
===================================================================
--- stack/cxf/trunk/modules/dist/src/main/doc/chapter-6-JBoss_Modules.xml 2013-07-26 15:06:50 UTC (rev 17838)
+++ stack/cxf/trunk/modules/dist/src/main/doc/chapter-6-JBoss_Modules.xml 2013-07-26 15:39:19 UTC (rev 17839)
@@ -25,110 +25,158 @@
<important>
<para>The JBoss Web Services APIs are always available by default whenever the webservices subsystem is available on AS7. So users just use them, no need for explicit dependencies declaration for those modules.</para>
</important>
- <para>The convenient method for configuring deployment dependencies is adding them into the MANIFEST.MF file:</para>
- <informalexample>
- <programlisting>Manifest-Version: 1.0
-Dependencies: org.jboss.ws.cxf.jbossws-cxf-client services export,foo.bar</programlisting>
- </informalexample>
- <para>
- Here above
- <emphasis role="italics">org.jboss.ws.cxf.jbossws-cxf-client</emphasis>
- and
- <emphasis role="italics">foo.bar</emphasis>
- are the modules you want to set dependencies to;
- <emphasis role="italics">services</emphasis>
- tells the modules framework that you want to also import
- <emphasis role="italics">META-INF/services/..</emphasis>
- declarations from the dependency, while
- <emphasis role="italics">export</emphasis>
- exports the classes in the module so that you can actually use them in your code.
- </para>
- <note>
- <para>When using annotations on your endpoints / handlers such as the Apache CXF ones (@InInterceptor, @GZIP, ...) remember to add the proper module dependency in your manifest. Otherwise your annotations are not picked up and added to the annotation index by JBoss Application Server 7, resulting in them being completely and silently ignored.</para>
- </note>
- <section id="sid-4784150_JBossModules-UsingJAXB">
+ <section id="sid-4784150_JBossModules-UsingMANIFEST.MF">
- <title>Using JAXB</title>
- <para>In order for successfully use JAXB contexts, etc. in your client or endpoint running in-container, you need to properly setup a JAXB implementation; that is performed setting the following dependency:</para>
+ <title>Using MANIFEST.MF</title>
+ <para>The convenient method for configuring deployment dependencies is adding them into the MANIFEST.MF file:</para>
<informalexample>
- <programlisting>Dependencies: com.sun.xml.bind services export</programlisting>
+ <programlisting>Manifest-Version: 1.0
+Dependencies: org.jboss.ws.cxf.jbossws-cxf-client services export,foo.bar</programlisting>
</informalexample>
- </section>
- <section id="sid-4784150_JBossModules-UsingApacheCXF">
-
- <title>Using Apache CXF</title>
<para>
- In order for using Apache CXF APIs and implementation classes you need to add a dependency to the
- <emphasis role="italics">org.apache.cxf</emphasis>
- module:
- </para>
- <informalexample>
- <programlisting>Dependencies: org.apache.cxf services</programlisting>
- </informalexample>
- <para>However, please note that would not come with any JBossWS-CXF customizations nor additional extensions. For this reason, and generally speaking for simplifying user configuration, a client side aggregation module is available with all the WS dependencies users might need.</para>
- </section>
- <section id="sid-4784150_JBossModules-ClientsideWSaggregationmodule">
-
- <title>Client side WS aggregation module</title>
- </section>
- </section>
- <section id="sid-4784150_JBossModules-">
-
- <title/>
- <para>Whenever you simply want to use all the JBoss Web Services feature/functionalities, you can set a dependency to the convenient client module.</para>
- <informalexample>
- <programlisting>Dependencies: org.jboss.ws.cxf.jbossws-cxf-client services export</programlisting>
- </informalexample>
- <para>
- Please note the
- <emphasis role="italics">services</emphasis>
- option above: that's strictly required in order for you to get the JBossWS-CXF version of classes that are retrieved using the
- <emphasis role="italics">Service API</emphasis>
- , the
- <code>Bus</code>
- for instance.
- </para>
- <note>
- <para>Be careful as issues because of misconfiguration here can be quite hard to track down, because the Apache CXF behaviour would be sensibly different.</para>
- </note>
- <para>
-
- </para>
- <important>
- <para>
- The
- <emphasis role="italics">services</emphasis>
- option is almost always needed when declaring dependencies on
+ Here above
<emphasis role="italics">org.jboss.ws.cxf.jbossws-cxf-client</emphasis>
and
- <emphasis role="italics">org.apache.cxf</emphasis>
- modules. The reason for this is in it affecting the loading of classes through the
- <emphasis role="italics">Service API</emphasis>
- , which is what is used to wire most of the JBossWS components as well as all Apache CXF Bus extensions.
+ <emphasis role="italics">foo.bar</emphasis>
+ are the modules you want to set dependencies to;
+ <emphasis role="italics">services</emphasis>
+ tells the modules framework that you want to also import
+ <emphasis role="italics">META-INF/services/..</emphasis>
+ declarations from the dependency, while
+ <emphasis role="italics">export</emphasis>
+ exports the classes from the module to any other module that might be depending on the module implicitly created for your deployment.
</para>
- </important>
- <section id="sid-4784150_JBossModules-UsingSpring">
-
- <title>Using Spring</title>
- <para>
- The JBossWS-CXF modules have optional dependencies to the
- <emphasis role="italics">org.springframework.spring</emphasis>
- module. So either create that manually in the application server or use the JBossWS-CXF installation scripts for doing that.
- </para>
+ <note>
+ <para>When using annotations on your endpoints / handlers such as the Apache CXF ones (@InInterceptor, @GZIP, ...) remember to add the proper module dependency in your manifest. Otherwise your annotations are not picked up and added to the annotation index by JBoss Application Server 7, resulting in them being completely and silently ignored.</para>
+ </note>
+ <section id="sid-4784150_JBossModules-UsingJAXB">
+
+ <title>Using JAXB</title>
+ <para>In order for successfully directly using JAXB contexts, etc. in your client or endpoint running in-container, you need to properly setup a JAXB implementation; that is performed setting the following dependency:</para>
+ <informalexample>
+ <programlisting>Dependencies: com.sun.xml.bind services export</programlisting>
+ </informalexample>
+ </section>
+ <section id="sid-4784150_JBossModules-UsingApacheCXF">
+
+ <title>Using Apache CXF</title>
+ <para>
+ In order for using Apache CXF APIs and implementation classes you need to add a dependency to the
+ <emphasis role="italics">org.apache.cxf</emphasis>
+ (API) module and / or
+ <emphasis role="italics">org.apache.cxf.impl</emphasis>
+ (implementation) module:
+ </para>
+ <informalexample>
+ <programlisting>Dependencies: org.apache.cxf services</programlisting>
+ </informalexample>
+ <para>However, please note that would not come with any JBossWS-CXF customizations nor additional extensions. For this reason, and generally speaking for simplifying user configuration, a client side aggregation module is available with all the WS dependencies users might need.</para>
+ </section>
+ <section id="sid-4784150_JBossModules-ClientsideWSaggregationmodule">
+
+ <title>Client side WS aggregation module</title>
+ <para>Whenever you simply want to use all the JBoss Web Services feature/functionalities, you can set a dependency to the convenient client module.</para>
+ <informalexample>
+ <programlisting>Dependencies: org.jboss.ws.cxf.jbossws-cxf-client services</programlisting>
+ </informalexample>
+ <para>
+ Please note the
+ <emphasis role="italics">services</emphasis>
+ option above: that's strictly required in order for you to get the JBossWS-CXF version of classes that are retrieved using the
+ <emphasis role="italics">Service API</emphasis>
+ , the
+ <code>Bus</code>
+ for instance.
+ </para>
+ <note>
+ <para>Be careful as issues because of misconfiguration here can be quite hard to track down, because the Apache CXF behaviour would be sensibly different.</para>
+ </note>
+ <para>
+
+ </para>
+ <important>
+ <para>
+ The
+ <emphasis role="italics">services</emphasis>
+ option is almost always needed when declaring dependencies on
+ <emphasis role="italics">org.jboss.ws.cxf.jbossws-cxf-client</emphasis>
+ and
+ <emphasis role="italics">org.apache.cxf</emphasis>
+ modules. The reason for this is in it affecting the loading of classes through the
+ <emphasis role="italics">Service API</emphasis>
+ , which is what is used to wire most of the JBossWS components as well as all Apache CXF Bus extensions.
+ </para>
+ </important>
+ </section>
+ <section id="sid-4784150_JBossModules-UsingSpring">
+
+ <title>Using Spring</title>
+ <para>
+ The JBossWS-CXF modules have optional dependencies to the
+ <emphasis role="italics">org.springframework.spring</emphasis>
+ module. So either create that manually in the application server or use the JBossWS-CXF installation scripts for doing that.
+ </para>
+ </section>
+ <section id="sid-4784150_JBossModules-Annotationscanning">
+
+ <title>Annotation scanning</title>
+ <para>
+ The application server uses an annotation index for detecting JAX-WS endpoints in user deployments. When declaring WS endpoints whose class belongs to a different module (for instance referring that in the
+ <code>web.xml</code>
+ descriptor), be sure to have an
+ <code>annotations</code>
+ type dependency in place. Without that, your endpoints would simply be ignored as they won't appear as annotated classes to the webservices subsystem.
+ </para>
+ <informalexample>
+ <programlisting>Dependencies: org.foo annotations</programlisting>
+ </informalexample>
+ </section>
</section>
- <section id="sid-4784150_JBossModules-Annotationscanning">
+ <section id="sid-4784150_JBossModules-Usingjbossdeploymentdescriptor.xml">
- <title>Annotation scanning</title>
- <para>
- The application server uses an annotation index for detecting JAX-WS endpoints in user deployments. When declaring WS endpoints whose class belongs to a different module (for instance referring that in the
- <code>web.xml</code>
- descriptor), be sure to have an
- <code>annotations</code>
- type dependency in place. Without that, your endpoints would simply be ignored as they won't appear as annotated classes to the webservices subsystem.
- </para>
- <informalexample>
- <programlisting>Dependencies: org.foo annotations</programlisting>
- </informalexample>
+ <title>Using jboss-deployment-descriptor.xml</title>
+ <para>In some circumstances, the convenient approach of setting module dependencies in MANIFEST.MF might not work. An example is the need for importing/exporting specific resources from a given module dependency. Users should hence add a jboss-deployment-structure.xml descriptor to their deployment and set module dependencies in it.</para>
+ <section id="sid-4784150_JBossModules-SpringbasedincontainerBuscreation">
+
+ <title>Spring based in-container Bus creation</title>
+ <para>
+ A noteworthy scenario requiring explicit module dependencies declaration is whenever a Spring beans descriptor based Bus is created by users in a in-container client. Spring basically resolves any beans declared in the descriptor (e.g.
+ <emphasis role="italics">cxf.xml</emphasis>
+ ), as well as any transitively referenced internal CXF descriptor, using the thread context classloader. That is the classloader associated to the deployment, which is different from the classloader used by JBossWS internally. As a consequence, in this scenario a
+ <emphasis role="italics">jboss-deployment-structure.xml</emphasis>
+ as follows is required:
+
+ </para>
+ <informalexample>
+ <programlisting><jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
+ <deployment>
+ <dependencies>
+ <module name="org.jboss.ws.cxf.jbossws-cxf-client" services="import" />
+ <module name="org.apache.cxf.impl">
+ <imports>
+ <include path="META-INF"/>
+ <include path="META-INF/cxf"/>
+ </imports>
+ </module>
+ <module name="org.springframework.spring">
+ <imports>
+ <include path="META-INF"/>
+ </imports>
+ </module>
+ </dependencies>
+ </deployment>
+</jboss-deployment-structure></programlisting>
+ </informalexample>
+ <para>
+ The first dependency (
+ <emphasis role="italics">org.jboss.ws.cxf.jbossws-cxf-client</emphasis>
+ ) loads JBossWS customizations as well as Apache CXF APIs first. The second dependency (
+ <emphasis role="italics">org.apache.cxf.impl</emphasis>
+ ) loads the Apache CXF internals (in particular the CXF SpringBus class), required by Spring to load the Bus using the deployment classloader. Finally, the third dependency (
+ <emphasis role="italics">org.springframework.spring</emphasis>
+ ) is needed to allow resolution of Spring schemas when running offline.
+ </para>
+ </section>
</section>
</section>
</chapter>
11 years, 2 months
JBossWS SVN: r17838 - stack/cxf/branches.
by jbossws-commits@lists.jboss.org
Author: alessio.soldano(a)jboss.com
Date: 2013-07-26 11:06:50 -0400 (Fri, 26 Jul 2013)
New Revision: 17838
Added:
stack/cxf/branches/jbossws-cxf-4.2.0.Final/
Log:
Creating jbossws-cxf-4.2.0.Final release branch
11 years, 2 months