<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:old.nabble.com,2006:forum-23851</id>
	<title>Nabble - cxf-commits</title>
	<updated>2009-12-06T03:59:48Z</updated>
	<link rel="self" type="application/atom+xml" href="http://old.nabble.com/cxf-commits-f23851.xml" />
	<link rel="alternate" type="text/html" href="http://old.nabble.com/cxf-commits-f23851.html" />
	<subtitle type="html">&lt;a href=&quot;http://incubator.apache.org/cxf/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;CXF&lt;/a&gt;&amp;nbsp;Commits List.</subtitle>
	
<entry>
	<id>tag:old.nabble.com,2006:post-26664285</id>
	<title>svn commit: r887673 - in /cxf/branches/2.2.x-fixes: ./ systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java</title>
	<published>2009-12-06T03:59:48Z</published>
	<updated>2009-12-06T03:59:48Z</updated>
	<author>
		<name>eglynn</name>
	</author>
	<content type="html">Author: eglynn
&lt;br&gt;Date: Sun Dec &amp;nbsp;6 11:59:48 2009
&lt;br&gt;New Revision: 887673
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=887673&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=887673&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Merged revisions 887669 via svnmerge from 
&lt;br&gt;&lt;a href=&quot;https://svn.apache.org/repos/asf/cxf/trunk&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://svn.apache.org/repos/asf/cxf/trunk&lt;/a&gt;&lt;br&gt;&lt;br&gt;........
&lt;br&gt;&amp;nbsp; r887669 | eglynn | 2009-12-06 11:27:53 +0000 (Sun, 06 Dec 2009) | 2 lines
&lt;br&gt;&amp;nbsp; 
&lt;br&gt;&amp;nbsp; Unskipping a couple of tests that I'd inadvertantly left commented out
&lt;br&gt;........
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:mergeinfo (original)
&lt;br&gt;+++ svn:mergeinfo Sun Dec &amp;nbsp;6 11:59:48 2009
&lt;br&gt;@@ -1 +1 @@
&lt;br&gt;-/cxf/trunk:887328,887353
&lt;br&gt;+/cxf/trunk:887328,887353,887669
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Binary property 'svnmerge-integrated' - no diff available.
&lt;br&gt;&lt;br&gt;Modified: cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java?rev=887673&amp;r1=887672&amp;r2=887673&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java?rev=887673&amp;r1=887672&amp;r2=887673&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java (original)
&lt;br&gt;+++ cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java Sun Dec &amp;nbsp;6 11:59:48 2009
&lt;br&gt;@@ -104,7 +104,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;//@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testOverriddenSequentialStrategy() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;startTarget(REPLICA_C);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setupGreeterA();
&lt;br&gt;@@ -117,7 +117,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;stopTarget(REPLICA_C);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;//@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testOverriddenRandomStrategy() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;startTarget(REPLICA_B);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setupGreeterC();
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r887673---in--cxf-branches-2.2.x-fixes%3A-.--systests-uncategorized-src-test-java-org-apache-cxf-systest-clustering-FailoverAddressOverrideTest.java-tp26664285p26664285.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26664044</id>
	<title>svn commit: r887669 - /cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java</title>
	<published>2009-12-06T03:27:53Z</published>
	<updated>2009-12-06T03:27:53Z</updated>
	<author>
		<name>eglynn</name>
	</author>
	<content type="html">Author: eglynn
&lt;br&gt;Date: Sun Dec &amp;nbsp;6 11:27:53 2009
&lt;br&gt;New Revision: 887669
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=887669&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=887669&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Unskipping a couple of tests that I'd inadvertantly left commented out
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java?rev=887669&amp;r1=887668&amp;r2=887669&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java?rev=887669&amp;r1=887668&amp;r2=887669&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java (original)
&lt;br&gt;+++ cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java Sun Dec &amp;nbsp;6 11:27:53 2009
&lt;br&gt;@@ -104,7 +104,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;//@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testOverriddenSequentialStrategy() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;startTarget(REPLICA_C);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setupGreeterA();
&lt;br&gt;@@ -117,7 +117,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;stopTarget(REPLICA_C);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;//@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testOverriddenRandomStrategy() throws Exception {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;startTarget(REPLICA_B);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setupGreeterC();
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r887669----cxf-trunk-systests-uncategorized-src-test-java-org-apache-cxf-systest-clustering-FailoverAddressOverrideTest.java-tp26664044p26664044.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26650187</id>
	<title>svn commit: r887389 - /cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java</title>
	<published>2009-12-04T14:22:53Z</published>
	<updated>2009-12-04T14:22:53Z</updated>
	<author>
		<name>dkulp</name>
	</author>
	<content type="html">Author: dkulp
&lt;br&gt;Date: Fri Dec &amp;nbsp;4 22:22:53 2009
&lt;br&gt;New Revision: 887389
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=887389&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=887389&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Fix compile failure
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java
&lt;br&gt;&lt;br&gt;Modified: cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java?rev=887389&amp;r1=887388&amp;r2=887389&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java?rev=887389&amp;r1=887388&amp;r2=887389&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java (original)
&lt;br&gt;+++ cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java Fri Dec &amp;nbsp;4 22:22:53 2009
&lt;br&gt;@@ -91,8 +91,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static void testInterceptors(Bus b) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean hasServerIn = false;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean hasServerOut = false;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Interceptor&amp;lt;? extends Message&amp;gt;&amp;gt; inInterceptors = b.getInInterceptors();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Interceptor&amp;lt;? extends Message&amp;gt; i : inInterceptors) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Interceptor&amp;gt; inInterceptors = b.getInInterceptors();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Interceptor i : inInterceptors) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (i instanceof PolicyInInterceptor) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;hasServerIn = true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r887389----cxf-branches-2.2.x-fixes-systests-ws-specs-src-test-java-org-apache-cxf-systest-ws-addr_wsdl-jaxwsmm-WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java-tp26650187p26650187.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26649185</id>
	<title>svn commit: r887356 - in /cxf/branches/2.2.x-fixes: ./ rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/ systests/ws-specs/ systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/ systests/ws-specs/src/test/resourc...</title>
	<published>2009-12-04T13:01:09Z</published>
	<updated>2009-12-04T13:01:09Z</updated>
	<author>
		<name>dkulp</name>
	</author>
	<content type="html">Author: dkulp
&lt;br&gt;Date: Fri Dec &amp;nbsp;4 21:01:08 2009
&lt;br&gt;New Revision: 887356
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=887356&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=887356&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Merged revisions 887353 via svnmerge from 
&lt;br&gt;&lt;a href=&quot;https://svn.apache.org/repos/asf/cxf/trunk&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://svn.apache.org/repos/asf/cxf/trunk&lt;/a&gt;&lt;br&gt;&lt;br&gt;........
&lt;br&gt;&amp;nbsp; r887353 | dkulp | 2009-12-04 15:49:40 -0500 (Fri, 04 Dec 2009) | 2 lines
&lt;br&gt;&amp;nbsp; 
&lt;br&gt;&amp;nbsp; [CXF-2572] Fix problem of Message mode provider and oneway operations
&lt;br&gt;&amp;nbsp; with ws-addressing. &amp;nbsp;Test from Alexandros Karypidis provided.
&lt;br&gt;........
&lt;br&gt;&lt;br&gt;Added:
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied from r887353, cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/MessageProviderWithAddressingPolicy.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887353, cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/MessageProviderWithAddressingPolicy.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887353, cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/server.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887353, cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/server.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887353, cxf/trunk/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl
&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/systests/ws-specs/pom.xml
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:mergeinfo (original)
&lt;br&gt;+++ svn:mergeinfo Fri Dec &amp;nbsp;4 21:01:08 2009
&lt;br&gt;@@ -1 +1 @@
&lt;br&gt;-/cxf/trunk:887328
&lt;br&gt;+/cxf/trunk:887328,887353
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Binary property 'svnmerge-integrated' - no diff available.
&lt;br&gt;&lt;br&gt;Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java?rev=887356&amp;r1=887355&amp;r2=887356&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java?rev=887356&amp;r1=887355&amp;r2=887356&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java (original)
&lt;br&gt;+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java Fri Dec &amp;nbsp;4 21:01:08 2009
&lt;br&gt;@@ -147,6 +147,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private void doSoap(Message message) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MessageContentsList list = (MessageContentsList)message.getContent(List.class);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (list == null || list.isEmpty()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = list.get(0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (o instanceof SOAPMessage) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SOAPMessage soapMessage = (SOAPMessage)o;
&lt;br&gt;&lt;br&gt;Modified: cxf/branches/2.2.x-fixes/systests/ws-specs/pom.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/systests/ws-specs/pom.xml?rev=887356&amp;r1=887355&amp;r2=887356&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/systests/ws-specs/pom.xml?rev=887356&amp;r1=887355&amp;r2=887356&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/branches/2.2.x-fixes/systests/ws-specs/pom.xml (original)
&lt;br&gt;+++ cxf/branches/2.2.x-fixes/systests/ws-specs/pom.xml Fri Dec &amp;nbsp;4 21:01:08 2009
&lt;br&gt;@@ -74,6 +74,21 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;${project.version}&amp;lt;/version&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;executions&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;execution&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;generate-addr-jaxwsmm-sources&amp;lt;/id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;phase&amp;gt;generate-test-sources&amp;lt;/phase&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;testSourceRoot&amp;gt;${basedir}/target/generated/src/test/java&amp;lt;/testSourceRoot&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdlOptions&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdlOption&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl&amp;gt;${basedir}/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl&amp;lt;/wsdl&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdlOption&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdlOptions&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;goals&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;goal&amp;gt;wsdl2java&amp;lt;/goal&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/goals&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/execution&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;execution&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;generate-wssec10-test-sources&amp;lt;/id&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;phase&amp;gt;generate-test-sources&amp;lt;/phase&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r887356---in--cxf-branches-2.2.x-fixes%3A-.--rt-frontend-jaxws-src-main-java-org-apache-cxf-jaxws-interceptors--systests-ws-specs--systests-ws-specs-src-test-java-org-apache-cxf-systest-ws-addr_wsdl-jaxwsmm--systests-ws-specs-src-test-resourc...-tp26649185p26649185.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26649044</id>
	<title>svn commit: r887353 - in /cxf/trunk: rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/ systests/ws-specs/ systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/ systests/ws-specs/src/test/resources/wsdl_systest_ws...</title>
	<published>2009-12-04T12:49:40Z</published>
	<updated>2009-12-04T12:49:40Z</updated>
	<author>
		<name>dkulp</name>
	</author>
	<content type="html">Author: dkulp
&lt;br&gt;Date: Fri Dec &amp;nbsp;4 20:49:40 2009
&lt;br&gt;New Revision: 887353
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=887353&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=887353&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;[CXF-2572] Fix problem of Message mode provider and oneway operations
&lt;br&gt;with ws-addressing. &amp;nbsp;Test from Alexandros Karypidis provided.
&lt;br&gt;&lt;br&gt;Added:
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/MessageProviderWithAddressingPolicy.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/server.xml &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl &amp;nbsp; (with props)
&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/systests/ws-specs/pom.xml
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java?rev=887353&amp;r1=887352&amp;r2=887353&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java?rev=887353&amp;r1=887352&amp;r2=887353&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java (original)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java Fri Dec &amp;nbsp;4 20:49:40 2009
&lt;br&gt;@@ -147,6 +147,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private void doSoap(Message message) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MessageContentsList list = (MessageContentsList)message.getContent(List.class);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (list == null || list.isEmpty()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o = list.get(0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (o instanceof SOAPMessage) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SOAPMessage soapMessage = (SOAPMessage)o;
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/systests/ws-specs/pom.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/systests/ws-specs/pom.xml?rev=887353&amp;r1=887352&amp;r2=887353&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/systests/ws-specs/pom.xml?rev=887353&amp;r1=887352&amp;r2=887353&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/systests/ws-specs/pom.xml (original)
&lt;br&gt;+++ cxf/trunk/systests/ws-specs/pom.xml Fri Dec &amp;nbsp;4 20:49:40 2009
&lt;br&gt;@@ -74,6 +74,21 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;${project.version}&amp;lt;/version&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;executions&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;execution&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;generate-addr-jaxwsmm-sources&amp;lt;/id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;phase&amp;gt;generate-test-sources&amp;lt;/phase&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;testSourceRoot&amp;gt;${basedir}/target/generated/src/test/java&amp;lt;/testSourceRoot&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdlOptions&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdlOption&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl&amp;gt;${basedir}/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl&amp;lt;/wsdl&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdlOption&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdlOptions&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;goals&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;goal&amp;gt;wsdl2java&amp;lt;/goal&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/goals&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/execution&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;execution&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;generate-wssec10-test-sources&amp;lt;/id&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;phase&amp;gt;generate-test-sources&amp;lt;/phase&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/MessageProviderWithAddressingPolicy.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/MessageProviderWithAddressingPolicy.java?rev=887353&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/MessageProviderWithAddressingPolicy.java?rev=887353&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/MessageProviderWithAddressingPolicy.java (added)
&lt;br&gt;+++ cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/MessageProviderWithAddressingPolicy.java Fri Dec &amp;nbsp;4 20:49:40 2009
&lt;br&gt;@@ -0,0 +1,74 @@
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+
&lt;br&gt;+package org.apache.cxf.systest.ws.addr_wsdl.jaxwsmm;
&lt;br&gt;+
&lt;br&gt;+import java.io.StringWriter;
&lt;br&gt;+import java.util.logging.Logger;
&lt;br&gt;+
&lt;br&gt;+import javax.xml.transform.OutputKeys;
&lt;br&gt;+import javax.xml.transform.Source;
&lt;br&gt;+import javax.xml.transform.Transformer;
&lt;br&gt;+import javax.xml.transform.TransformerException;
&lt;br&gt;+import javax.xml.transform.TransformerFactory;
&lt;br&gt;+import javax.xml.transform.stream.StreamResult;
&lt;br&gt;+import javax.xml.ws.Provider;
&lt;br&gt;+import javax.xml.ws.Service;
&lt;br&gt;+import javax.xml.ws.ServiceMode;
&lt;br&gt;+import javax.xml.ws.WebServiceProvider;
&lt;br&gt;+
&lt;br&gt;+import org.apache.cxf.common.logging.LogUtils;
&lt;br&gt;+
&lt;br&gt;+@WebServiceProvider(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;targetNamespace = &amp;quot;&lt;a href=&quot;http://messaging/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://messaging/&lt;/a&gt;&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;serviceName = &amp;quot;AsyncMessagingService&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;portName = &amp;quot;AsyncMessagingImplPort&amp;quot;)
&lt;br&gt;+@ServiceMode(value = Service.Mode.MESSAGE)
&lt;br&gt;+//FIXME: When using &amp;quot;PAYLOAD&amp;quot; mode, it works; but when using &amp;quot;MESSAGE&amp;quot; mode, it breaks
&lt;br&gt;+//@ServiceMode(value = Service.Mode.PAYLOAD)
&lt;br&gt;+public class MessageProviderWithAddressingPolicy implements Provider&amp;lt;Source&amp;gt; {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final Logger LOG = LogUtils.getLogger(WSDLAddrPolicyAttachmentJaxwsMMProviderTest.class);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public MessageProviderWithAddressingPolicy() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LOG.info(&amp;quot;Creating provider object&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public Source invoke(Source request) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TransformerFactory tfactory = TransformerFactory.newInstance();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/*
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tfactory.setAttribute(&amp;quot;indent-number&amp;quot;, &amp;quot;2&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Transformer serializer = tfactory.newTransformer();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Setup indenting to &amp;quot;pretty print&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;serializer.setOutputProperty(OutputKeys.INDENT, &amp;quot;yes&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;serializer.setOutputProperty(&amp;quot;{&lt;a href=&quot;http://xml.apache.org/xslt&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xml.apache.org/xslt&lt;/a&gt;}indent-amount&amp;quot;, &amp;quot;2&amp;quot;);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringWriter swriter = new StringWriter();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;serializer.transform(request, new StreamResult(swriter));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;swriter.flush();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LOG.info(&amp;quot;Provider received a request\n&amp;quot; + swriter.toString());
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (TransformerException e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.printStackTrace();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/MessageProviderWithAddressingPolicy.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/MessageProviderWithAddressingPolicy.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java?rev=887353&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java?rev=887353&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java (added)
&lt;br&gt;+++ cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java Fri Dec &amp;nbsp;4 20:49:40 2009
&lt;br&gt;@@ -0,0 +1,130 @@
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+
&lt;br&gt;+package org.apache.cxf.systest.ws.addr_wsdl.jaxwsmm;
&lt;br&gt;+
&lt;br&gt;+import java.net.URL;
&lt;br&gt;+import java.util.List;
&lt;br&gt;+import java.util.logging.Logger;
&lt;br&gt;+import javax.xml.namespace.QName;
&lt;br&gt;+
&lt;br&gt;+import org.apache.cxf.Bus;
&lt;br&gt;+import org.apache.cxf.BusFactory;
&lt;br&gt;+import org.apache.cxf.bus.spring.SpringBusFactory;
&lt;br&gt;+import org.apache.cxf.common.logging.LogUtils;
&lt;br&gt;+import org.apache.cxf.interceptor.Interceptor;
&lt;br&gt;+import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
&lt;br&gt;+import org.apache.cxf.message.Message;
&lt;br&gt;+import org.apache.cxf.service.model.EndpointInfo;
&lt;br&gt;+import org.apache.cxf.systest.ws.util.ConnectionHelper;
&lt;br&gt;+import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
&lt;br&gt;+import org.apache.cxf.testutil.common.AbstractBusTestServerBase;
&lt;br&gt;+import org.apache.cxf.ws.policy.PolicyInInterceptor;
&lt;br&gt;+import org.apache.cxf.ws.policy.PolicyOutInterceptor;
&lt;br&gt;+
&lt;br&gt;+import org.junit.BeforeClass;
&lt;br&gt;+import org.junit.Test;
&lt;br&gt;+
&lt;br&gt;+import messaging.AsyncMessaging;
&lt;br&gt;+import messaging.AsyncMessagingService;
&lt;br&gt;+
&lt;br&gt;+public class WSDLAddrPolicyAttachmentJaxwsMMProviderTest extends AbstractBusClientServerTestBase {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final Logger LOG = LogUtils.getLogger(WSDLAddrPolicyAttachmentJaxwsMMProviderTest.class);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String ADDRESS = &amp;quot;&lt;a href=&quot;http://localhost:9000/AsyncMessagingServiceProvider&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:9000/AsyncMessagingServiceProvider&lt;/a&gt;&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String WSDL_ADDRESS = ADDRESS + &amp;quot;?wsdl&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final QName ENDPOINT_NAME = new QName(&amp;quot;&lt;a href=&quot;http://messaging/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://messaging/&lt;/a&gt;&amp;quot;, &amp;quot;AsyncMessagingService&amp;quot;);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static class Server extends AbstractBusTestServerBase {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;protected void run() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SpringBusFactory bf = new SpringBusFactory();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Bus bus = bf.createBus(&amp;quot;org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/server.xml&amp;quot;);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JaxWsServerFactoryBean serviceFactory = new JaxWsServerFactoryBean();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;serviceFactory.setBus(bus);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;serviceFactory.setServiceClass(MessageProviderWithAddressingPolicy.class);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;serviceFactory.setWsdlLocation(&amp;quot;wsdl_systest_wsspec/addr-jaxwsmm.wsdl&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;serviceFactory.setAddress(ADDRESS);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org.apache.cxf.endpoint.Server provider = serviceFactory.create();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EndpointInfo ei = provider.getEndpoint().getEndpointInfo();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LOG.info(&amp;quot;Started server at: &amp;quot; + ei.getAddress());
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;testInterceptors(bus);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public static void main(String[] args) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Server s = new Server();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;s.start();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ex.printStackTrace();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.exit(-1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} finally {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;done!&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@BeforeClass
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static void startServers() throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(&amp;quot;server did not launch correctly&amp;quot;, launchServer(Server.class, true));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static void testInterceptors(Bus b) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean hasServerIn = false;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean hasServerOut = false;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Interceptor&amp;lt;? extends Message&amp;gt;&amp;gt; inInterceptors = b.getInInterceptors();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Interceptor&amp;lt;? extends Message&amp;gt; i : inInterceptors) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (i instanceof PolicyInInterceptor) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;hasServerIn = true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(hasServerIn);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Interceptor&amp;lt;? extends Message&amp;gt; i : b.getOutInterceptors()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (i instanceof PolicyOutInterceptor) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;hasServerOut = true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(hasServerOut);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testUsingAddressing() throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SpringBusFactory bf = new SpringBusFactory();
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bus = bf.createBus(&amp;quot;org/apache/cxf/systest/ws/policy/addr-inline-policy-old.xml&amp;quot;);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BusFactory.setDefaultBus(bus);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL wsdlURL = new URL(WSDL_ADDRESS);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AsyncMessagingService ams = new AsyncMessagingService(wsdlURL, ENDPOINT_NAME);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AsyncMessaging am = ams.getAsyncMessagingImplPort();
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ConnectionHelper.setKeepAliveConnection(am, true);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;testInterceptors(bus);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// oneway
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;am.deliver(&amp;quot;This is a test&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;am.deliver(&amp;quot;This is another test&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/server.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/server.xml?rev=887353&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/server.xml?rev=887353&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/server.xml (added)
&lt;br&gt;+++ cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/server.xml Fri Dec &amp;nbsp;4 20:49:40 2009
&lt;br&gt;@@ -0,0 +1,43 @@
&lt;br&gt;+&amp;lt;beans xmlns=&amp;quot;&lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&amp;quot;
&lt;br&gt;+	xmlns:jee=&amp;quot;&lt;a href=&quot;http://www.springframework.org/schema/jee&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/jee&lt;/a&gt;&amp;quot;
&lt;br&gt;+	xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot;
&lt;br&gt;+	xmlns:cxf=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/core&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/core&lt;/a&gt;&amp;quot;
&lt;br&gt;+	xmlns:http=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/transports/http/configuration&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/transports/http/configuration&lt;/a&gt;&amp;quot;
&lt;br&gt;+	xmlns:jaxws=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxws&lt;/a&gt;&amp;quot;
&lt;br&gt;+	xmlns:wsa=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/ws/addressing&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/ws/addressing&lt;/a&gt;&amp;quot;
&lt;br&gt;+	xmlns:wsrm-mgr=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/ws/rm/manager&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/ws/rm/manager&lt;/a&gt;&amp;quot;
&lt;br&gt;+	xmlns:camel-transport=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/transports/camel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/transports/camel&lt;/a&gt;&amp;quot;
&lt;br&gt;+
&lt;br&gt;+	xsi:schemaLocation=&amp;quot;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.springframework.org/schema/beans/spring-beans.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans/spring-beans.xsd&lt;/a&gt;&lt;br&gt;+		&lt;a href=&quot;http://www.springframework.org/schema/jee&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/jee&lt;/a&gt;&lt;br&gt;+		&lt;a href=&quot;http://www.springframework.org/schema/jee/spring-jee.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/jee/spring-jee.xsd&lt;/a&gt;&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/core&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/core&lt;/a&gt;&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/schemas/core.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/core.xsd&lt;/a&gt;&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/transports/http/configuration&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/transports/http/configuration&lt;/a&gt;&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/schemas/configuration/http-conf.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/configuration/http-conf.xsd&lt;/a&gt;&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxws&lt;/a&gt;&lt;br&gt;+		&lt;a href=&quot;http://cxf.apache.org/schemas/jaxws.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/jaxws.xsd&lt;/a&gt;&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/ws/addressing&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/ws/addressing&lt;/a&gt;&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/schemas/ws-addr-conf.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/ws-addr-conf.xsd&lt;/a&gt;&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/ws/rm/manager&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/ws/rm/manager&lt;/a&gt;&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/schemas/configuration/wsrm-manager.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/configuration/wsrm-manager.xsd&lt;/a&gt;&lt;br&gt;+		&lt;a href=&quot;http://cxf.apache.org/transports/camel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/transports/camel&lt;/a&gt;&lt;br&gt;+		&lt;a href=&quot;http://cxf.apache.org/transports/camel.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/transports/camel.xsd&lt;/a&gt;&lt;br&gt;+	&amp;quot;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+	&amp;lt;import resource=&amp;quot;classpath:META-INF/cxf/cxf.xml&amp;quot; /&amp;gt;
&lt;br&gt;+	&amp;lt;import resource=&amp;quot;classpath:META-INF/cxf/cxf-extension-soap.xml&amp;quot; /&amp;gt;
&lt;br&gt;+	&amp;lt;import resource=&amp;quot;classpath:META-INF/cxf/cxf-extension-xml.xml&amp;quot; /&amp;gt;
&lt;br&gt;+	&amp;lt;import resource=&amp;quot;classpath:META-INF/cxf/cxf-extension-http.xml&amp;quot; /&amp;gt;
&lt;br&gt;+	&amp;lt;import resource=&amp;quot;classpath:META-INF/cxf/cxf-extension-addr.xml&amp;quot; /&amp;gt;
&lt;br&gt;+	&amp;lt;import resource=&amp;quot;classpath:META-INF/cxf/cxf-extension-jaxws.xml&amp;quot; /&amp;gt;
&lt;br&gt;+	&amp;lt;import resource=&amp;quot;classpath:META-INF/cxf/cxf-extension-policy.xml&amp;quot; /&amp;gt;
&lt;br&gt;+
&lt;br&gt;+	&amp;lt;jaxws:endpoint
&lt;br&gt;+		id=&amp;quot;asyncMessagingProvider&amp;quot;
&lt;br&gt;+		implementor=&amp;quot;org.apache.cxf.systest.ws.addr_wsdl.jaxwsmm.MessageProviderWithAddressingPolicy&amp;quot;
&lt;br&gt;+		createdFromAPI=&amp;quot;true&amp;quot;
&lt;br&gt;+	/&amp;gt;
&lt;br&gt;+&amp;lt;/beans&amp;gt;
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/server.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/server.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/server.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/xml
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl?rev=887353&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl?rev=887353&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl (added)
&lt;br&gt;+++ cxf/trunk/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl Fri Dec &amp;nbsp;4 20:49:40 2009
&lt;br&gt;@@ -0,0 +1,68 @@
&lt;br&gt;+&amp;lt;definitions
&lt;br&gt;+	name='AsyncMessagingService'
&lt;br&gt;+	targetNamespace='&lt;a href=&quot;http://messaging/'&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://messaging/'&lt;/a&gt;&lt;br&gt;+	xmlns:tns='&lt;a href=&quot;http://messaging/'&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://messaging/'&lt;/a&gt;&lt;br&gt;+	
&lt;br&gt;+	xmlns='&lt;a href=&quot;http://schemas.xmlsoap.org/wsdl/'&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/wsdl/'&lt;/a&gt;&lt;br&gt;+	xmlns:xsd='&lt;a href=&quot;http://www.w3.org/2001/XMLSchema'&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema'&lt;/a&gt;&lt;br&gt;+	xmlns:soap='&lt;a href=&quot;http://schemas.xmlsoap.org/wsdl/soap/'&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/wsdl/soap/'&lt;/a&gt;&lt;br&gt;+	xmlns:wsp='&lt;a href=&quot;http://www.w3.org/ns/ws-policy'&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/ns/ws-policy'&lt;/a&gt;&lt;br&gt;+	xmlns:wsam='&lt;a href=&quot;http://www.w3.org/2007/05/addressing/metadata'&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2007/05/addressing/metadata'&lt;/a&gt;&lt;br&gt;+
&lt;br&gt;+	xmlns:wsu='&lt;a href=&quot;http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd'&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd'&lt;/a&gt;&lt;br&gt;+	xmlns:sp='&lt;a href=&quot;http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702'&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702'&lt;/a&gt;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+	&amp;lt;types&amp;gt;
&lt;br&gt;+		&amp;lt;xs:schema targetNamespace='&lt;a href=&quot;http://messaging/'&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://messaging/'&lt;/a&gt;&amp;nbsp;version='1.0'
&lt;br&gt;+			xmlns:tns='&lt;a href=&quot;http://messaging/'&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://messaging/'&lt;/a&gt;&amp;nbsp;xmlns:xs='&lt;a href=&quot;http://www.w3.org/2001/XMLSchema'&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema'&lt;/a&gt;&amp;gt;
&lt;br&gt;+			&amp;lt;xs:element name='deliver' type='tns:deliver' /&amp;gt;
&lt;br&gt;+			&amp;lt;xs:complexType name='deliver'&amp;gt;
&lt;br&gt;+				&amp;lt;xs:sequence&amp;gt;
&lt;br&gt;+					&amp;lt;xs:element minOccurs='1' name='message' type='xs:string' /&amp;gt;
&lt;br&gt;+				&amp;lt;/xs:sequence&amp;gt;
&lt;br&gt;+			&amp;lt;/xs:complexType&amp;gt;
&lt;br&gt;+		&amp;lt;/xs:schema&amp;gt;
&lt;br&gt;+	&amp;lt;/types&amp;gt;
&lt;br&gt;+
&lt;br&gt;+	&amp;lt;message name='AsyncMessaging_deliver'&amp;gt;
&lt;br&gt;+		&amp;lt;part element='tns:deliver' name='deliver' /&amp;gt;
&lt;br&gt;+	&amp;lt;/message&amp;gt;
&lt;br&gt;+
&lt;br&gt;+	&amp;lt;portType name='AsyncMessaging'&amp;gt;
&lt;br&gt;+		&amp;lt;operation name='deliver'&amp;gt;
&lt;br&gt;+			&amp;lt;input message='tns:AsyncMessaging_deliver'&amp;gt;&amp;lt;/input&amp;gt;
&lt;br&gt;+		&amp;lt;/operation&amp;gt;
&lt;br&gt;+	&amp;lt;/portType&amp;gt;
&lt;br&gt;+
&lt;br&gt;+	&amp;lt;binding name='AsyncMessagingBinding' type='tns:AsyncMessaging'&amp;gt;
&lt;br&gt;+		&amp;lt;!-- ALX: comment out the binding below if you don't want RM --&amp;gt;
&lt;br&gt;+		&amp;lt;wsp:PolicyReference URI='#testPolicy' /&amp;gt;
&lt;br&gt;+
&lt;br&gt;+		&amp;lt;soap:binding style='document'
&lt;br&gt;+			transport='&lt;a href=&quot;http://schemas.xmlsoap.org/soap/http'&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/soap/http'&lt;/a&gt;&amp;nbsp;/&amp;gt;
&lt;br&gt;+		&amp;lt;operation name='deliver'&amp;gt;
&lt;br&gt;+			&amp;lt;!--
&lt;br&gt;+				ALX: SOAP action must NOT be declared; the WS stack will have it
&lt;br&gt;+				match the HTTP header &amp;lt;soap:operation soapAction='deliver' /&amp;gt;
&lt;br&gt;+			--&amp;gt;
&lt;br&gt;+			&amp;lt;input&amp;gt;
&lt;br&gt;+				&amp;lt;soap:body parts='deliver' use='literal' /&amp;gt;
&lt;br&gt;+			&amp;lt;/input&amp;gt;
&lt;br&gt;+		&amp;lt;/operation&amp;gt;
&lt;br&gt;+	&amp;lt;/binding&amp;gt;
&lt;br&gt;+
&lt;br&gt;+	&amp;lt;service name='AsyncMessagingService'&amp;gt;
&lt;br&gt;+		&amp;lt;port binding='tns:AsyncMessagingBinding' name='AsyncMessagingImplPort'&amp;gt;
&lt;br&gt;+			&amp;lt;soap:address
&lt;br&gt;+				location='&lt;a href=&quot;http://localhost:8180/jboss-Ecxf.wsrm.recipient/AsyncMessagingService'&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:8180/jboss-Ecxf.wsrm.recipient/AsyncMessagingService'&lt;/a&gt;&amp;nbsp;/&amp;gt;
&lt;br&gt;+		&amp;lt;/port&amp;gt;
&lt;br&gt;+	&amp;lt;/service&amp;gt;
&lt;br&gt;+
&lt;br&gt;+	&amp;lt;wsp:UsingPolicy /&amp;gt;
&lt;br&gt;+	&amp;lt;wsp:Policy wsu:Id='testPolicy'&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;&amp;lt;wsam:Addressing&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsp:Policy/&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;&amp;lt;/wsam:Addressing&amp;gt;
&lt;br&gt;+	&amp;lt;/wsp:Policy&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;/definitions&amp;gt;
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/xml
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r887353---in--cxf-trunk%3A-rt-frontend-jaxws-src-main-java-org-apache-cxf-jaxws-interceptors--systests-ws-specs--systests-ws-specs-src-test-java-org-apache-cxf-systest-ws-addr_wsdl-jaxwsmm--systests-ws-specs-src-test-resources-wsdl_systest_ws...-tp26649044p26649044.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26648019</id>
	<title>svn commit: r887329 - in /cxf/branches/2.2.x-fixes: ./ distribution/src/main/release/samples/ws_security/ut_policy/ distribution/src/main/release/samples/ws_security/ut_policy/bin/ distribution/src/main/release/samples/ws_security/ut_policy/certs/ dist...</title>
	<published>2009-12-04T11:34:52Z</published>
	<updated>2009-12-04T11:34:52Z</updated>
	<author>
		<name>dkulp</name>
	</author>
	<content type="html">Author: dkulp
&lt;br&gt;Date: Fri Dec &amp;nbsp;4 19:34:50 2009
&lt;br&gt;New Revision: 887329
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=887329&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=887329&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Merged revisions 887328 via svnmerge from 
&lt;br&gt;&lt;a href=&quot;https://svn.apache.org/repos/asf/cxf/trunk&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://svn.apache.org/repos/asf/cxf/trunk&lt;/a&gt;&lt;br&gt;&lt;br&gt;........
&lt;br&gt;&amp;nbsp; r887328 | dkulp | 2009-12-04 14:28:17 -0500 (Fri, 04 Dec 2009) | 2 lines
&lt;br&gt;&amp;nbsp; 
&lt;br&gt;&amp;nbsp; [CXF-2553] Add WS-SecPolicy based UsernameToken sample.
&lt;br&gt;&amp;nbsp; Contribution from Oliver Wulff
&lt;br&gt;........
&lt;br&gt;&lt;br&gt;Added:
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/README.txt
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/README.txt
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/bin/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/bin/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/bin/gencerts.sh
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/bin/gencerts.sh
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/build.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/build.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/ca.crl
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/ca.crl
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/cacert.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cacert.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/caprivkey.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/caprivkey.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry-ra-cert.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry-ra-cert.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.chain
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.chain
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.jks
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.jks
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrcherry.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrcherry.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrra.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrra.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrwibble.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrwibble.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr.old
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr.old
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.old
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.old
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1345.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1345.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1346.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1346.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1347.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1347.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial.old
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial.old
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/exts
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/exts
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/ra-ca-cert.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/ra-ca-cert.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/raprivkey.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/raprivkey.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/truststore.jks
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/truststore.jks
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble-ra-cert.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble-ra-cert.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.chain
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.chain
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.jks
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.jks
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/pom.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/pom.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/Client.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/Client.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/UTPasswordCallback.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/UTPasswordCallback.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/wssec.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/wssec.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/abigcompany_ca.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/abigcompany_ca.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtix.p12
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtix.p12
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtixp12.truststore
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtixp12.truststore
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/GreeterImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/GreeterImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/Server.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/Server.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/UTPasswordCallback.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/UTPasswordCallback.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/wssec.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/wssec.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world.wsdl
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world.wsdl
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world_no_policy.wsdl
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world_no_policy.wsdl
&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/ &amp;nbsp; (props changed)
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mergeinfo = /cxf/trunk:887328
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Binary property 'svnmerge-integrated' - no diff available.
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r887329---in--cxf-branches-2.2.x-fixes%3A-.--distribution-src-main-release-samples-ws_security-ut_policy--distribution-src-main-release-samples-ws_security-ut_policy-bin--distribution-src-main-release-samples-ws_security-ut_policy-certs--dist...-tp26648019p26648019.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26647925</id>
	<title>svn commit: r887328 [1/2] - in /cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy: ./ bin/ certs/ certs/demoCA/ certs/demoCA/newcerts/ src/ src/demo/ src/demo/wssec/ src/demo/wssec/client/ src/demo/wssec/resources/ src/demo/wssec/se...</title>
	<published>2009-12-04T11:28:19Z</published>
	<updated>2009-12-04T11:28:19Z</updated>
	<author>
		<name>dkulp</name>
	</author>
	<content type="html">Author: dkulp
&lt;br&gt;Date: Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;New Revision: 887328
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=887328&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=887328&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;[CXF-2553] Add WS-SecPolicy based UsernameToken sample.
&lt;br&gt;Contribution from Oliver Wulff
&lt;br&gt;&lt;br&gt;Added:
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/README.txt &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/bin/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/bin/gencerts.sh &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/build.xml &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/ca.crl
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cacert.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/caprivkey.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry-ra-cert.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.chain
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.jks
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrcherry.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrra.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrwibble.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr.old
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.old
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1345.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1346.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1347.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial.old
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/exts
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/ra-ca-cert.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/raprivkey.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/truststore.jks
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble-ra-cert.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.chain
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.jks
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/pom.xml &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/Client.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/UTPasswordCallback.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/wssec.xml &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/abigcompany_ca.pem
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtix.p12
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtixp12.truststore
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/GreeterImpl.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/Server.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/UTPasswordCallback.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/wssec.xml &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world.wsdl &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world_no_policy.wsdl &amp;nbsp; (with props)
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/README.txt
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/README.txt?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/README.txt?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/README.txt (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/README.txt Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,148 @@
&lt;br&gt;+WS-Security Demo &amp;nbsp;(UsernameToken and Timestamp)
&lt;br&gt;+=================
&lt;br&gt;+
&lt;br&gt;+This demo shows how WS-Security support in Apache CXF may be enabled.
&lt;br&gt;+
&lt;br&gt;+WS-Security can be configured to the Client and Server endpoints by adding
&lt;br&gt;+WS-SecurityPolicies into the WSDL.
&lt;br&gt;+
&lt;br&gt;+The logging feature is used to log the inbound and outbound
&lt;br&gt;+SOAP messages and display these to the console.
&lt;br&gt;+
&lt;br&gt;+In all other respects this demo is based on the basic hello_world sample.
&lt;br&gt;+
&lt;br&gt;+Please review the README in the samples directory before continuing.
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+Prerequisite
&lt;br&gt;+------------
&lt;br&gt;+
&lt;br&gt;+If your environment already includes cxf-manifest.jar on the CLASSPATH,
&lt;br&gt;+and the JDK and ant bin directories on the PATH, it is not necessary to
&lt;br&gt;+run the environment script described in the samples directory README.
&lt;br&gt;+If your environment is not properly configured, or if you are planning
&lt;br&gt;+on using wsdl2java, javac, and java to build and run the demos, you must
&lt;br&gt;+set the environment by running the script.
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+*** Requirements ***
&lt;br&gt;+
&lt;br&gt;+The samples in this directory use STRONG encryption. &amp;nbsp;The default encryption algorithms
&lt;br&gt;+included in a JRE is not adequate for these samples. &amp;nbsp; The Java Cryptography Extension
&lt;br&gt;+(JCE) Unlimited Strength Jurisdiction Policy Files available on Sun's JDK download
&lt;br&gt;+page[3] *must* be installed for the examples to work. &amp;nbsp; If you get errors about invalid
&lt;br&gt;+key lengths, the Unlimited Strength files are not installed.
&lt;br&gt;+
&lt;br&gt;+[3] &lt;a href=&quot;http://java.sun.com/javase/downloads/index.jsp&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/javase/downloads/index.jsp&lt;/a&gt;&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+Building and running the demo using Ant
&lt;br&gt;+---------------------------------------
&lt;br&gt;+
&lt;br&gt;+From the base directory of this sample (i.e., where this README file is
&lt;br&gt;+located), the Ant build.xml file can be used to build and run the demo.
&lt;br&gt;+The server and client targets automatically build the demo.
&lt;br&gt;+
&lt;br&gt;+Using either UNIX or Windows:
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;ant server &amp;nbsp;(from one command line window)
&lt;br&gt;+ &amp;nbsp;ant client &amp;nbsp;(from a second command line window)
&lt;br&gt;+
&lt;br&gt;+On startup, the client makes one invocation.
&lt;br&gt;+
&lt;br&gt;+You can use the target client.unauthenticated to show that the policy UsernameToken is enforced by the server.
&lt;br&gt;+
&lt;br&gt;+To remove the code generated from the WSDL file and the .class
&lt;br&gt;+files, run &amp;quot;ant clean&amp;quot;.
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+Building and running the demo using Maven
&lt;br&gt;+---------------------------------------
&lt;br&gt;+
&lt;br&gt;+From the base directory of this sample (i.e., where this README file is
&lt;br&gt;+located), the maven pom.xml file can be used to build and run the demo.
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+Using either UNIX or Windows:
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;mvn install (builds the demo)
&lt;br&gt;+ &amp;nbsp;mvn -Pserver &amp;nbsp;(from one command line window)
&lt;br&gt;+ &amp;nbsp;Mvn -Pclient &amp;nbsp;(from a second command line window)
&lt;br&gt;+
&lt;br&gt;+On startup, the client makes one invocation.
&lt;br&gt;+
&lt;br&gt;+You can use the profile client.unauthenticated to show that the policy UsernameToken is enforced by the server.
&lt;br&gt;+
&lt;br&gt;+To remove the code generated from the WSDL file and the .class
&lt;br&gt;+files, run &amp;quot;mvn clean&amp;quot;.
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+Building the demo using wsdl2java and javac
&lt;br&gt;+-------------------------------------------
&lt;br&gt;+
&lt;br&gt;+From the base directory of this sample (i.e., where this README file is
&lt;br&gt;+located) first create the target directory build/classes and then
&lt;br&gt;+generate code from the WSDL file.
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+For UNIX:
&lt;br&gt;+ &amp;nbsp;mkdir -p build/classes
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;wsdl2java -d build/classes -compile ./wsdl/hello_world_wssec.wsdl
&lt;br&gt;+
&lt;br&gt;+For Windows:
&lt;br&gt;+ &amp;nbsp;mkdir build\classes
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Must use back slashes.
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;wsdl2java -d build\classes -compile .\wsdl\hello_world_wssec.wsdl
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;May use either forward or back slashes.
&lt;br&gt;+
&lt;br&gt;+Now compile the provided client and server applications with the commands:
&lt;br&gt;+
&lt;br&gt;+For UNIX:
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;export CLASSPATH=$CLASSPATH:$CXF_HOME/lib/cxf-manifest.jar:./build/classes
&lt;br&gt;+ &amp;nbsp;javac -d build/classes src/demo/wssec/common/*.java
&lt;br&gt;+ &amp;nbsp;javac -d build/classes src/demo/wssec/client/*.java
&lt;br&gt;+ &amp;nbsp;javac -d build/classes src/demo/wssec/server/*.java
&lt;br&gt;+
&lt;br&gt;+For Windows:
&lt;br&gt;+ &amp;nbsp;set classpath=%classpath%;%CXF_HOME%\lib\cxf-manifest.jar;.\build\classes
&lt;br&gt;+ &amp;nbsp;javac -d build\classes src\demo\wssec\common\*.java
&lt;br&gt;+ &amp;nbsp;javac -d build\classes src\demo\wssec\client\*.java
&lt;br&gt;+ &amp;nbsp;javac -d build\classes src\demo\wssec\server\*.java
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+Running the demo using java
&lt;br&gt;+---------------------------
&lt;br&gt;+
&lt;br&gt;+From the base directory of this sample (i.e., where this README file is
&lt;br&gt;+located) run the commands, entered on a single command line:
&lt;br&gt;+
&lt;br&gt;+For UNIX (must use forward slashes):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;java -Djava.util.logging.config.file=./logging.properties
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; demo.wssec.server.Server &amp;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;java -Djava.util.logging.config.file=./logging.properties
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; demo.wssec.client.Client ./wsdl/hello_world_wssec.wsdl
&lt;br&gt;+
&lt;br&gt;+The server process starts in the background.
&lt;br&gt;+
&lt;br&gt;+For Windows (may use either forward or back slashes):
&lt;br&gt;+ &amp;nbsp;start
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;java -Djava.util.logging.config.file=.\logging.properties
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; demo.wssec.server.Server
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;java -Djava.util.logging.config.file=.\logging.properties
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; demo.wssec.client.Client .\wsdl\hello_world_wssec.wsdl
&lt;br&gt;+
&lt;br&gt;+The server process starts in a new command window.
&lt;br&gt;+
&lt;br&gt;+After running the client, terminate the server process.
&lt;br&gt;+
&lt;br&gt;+To remove the code generated from the WSDL file and the .class
&lt;br&gt;+files, either delete the build directory and its contents or run:
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;ant clean
&lt;br&gt;+
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/README.txt
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/README.txt
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/plain
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/bin/gencerts.sh
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/bin/gencerts.sh?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/bin/gencerts.sh?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/bin/gencerts.sh (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/bin/gencerts.sh Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,163 @@
&lt;br&gt;+#!/bin/sh
&lt;br&gt;+#
&lt;br&gt;+# Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+# or more contributor license agreements. See the NOTICE file
&lt;br&gt;+# distributed with this work for additional information
&lt;br&gt;+# regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+# to you under the Apache License, Version 2.0 (the
&lt;br&gt;+# &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+# with the License. You may obtain a copy of the License at
&lt;br&gt;+#
&lt;br&gt;+# &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+#
&lt;br&gt;+# Unless required by applicable law or agreed to in writing,
&lt;br&gt;+# software distributed under the License is distributed on an
&lt;br&gt;+# &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+# KIND, either express or implied. See the License for the
&lt;br&gt;+# specific language governing permissions and limitations
&lt;br&gt;+# under the License.
&lt;br&gt;+#
&lt;br&gt;+#
&lt;br&gt;+#
&lt;br&gt;+# This file uses openssl and keytool to generate 2 chains of 3 certificates 
&lt;br&gt;+# CN=Wibble &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CN=Cherry
&lt;br&gt;+# &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CN=TheRA
&lt;br&gt;+# &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CN=TheCA
&lt;br&gt;+# and generates a CRL to revoke the &amp;quot;CN=TheRA&amp;quot; certificate.
&lt;br&gt;+#
&lt;br&gt;+# This file also serves as a specification on what needs to be done to
&lt;br&gt;+# get the underlying CXF to work correctly.
&lt;br&gt;+# For the most part, you need to use only JKS (Java Key Store) formatted
&lt;br&gt;+# keystores and truststores.
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+# Initialize the default openssl DataBase.
&lt;br&gt;+# According to a default /usr/lib/ssl/openssl.cnf file it is ./demoCA
&lt;br&gt;+# Depending on the Openssl version, comment out &amp;quot;crlnumber&amp;quot; in config file.
&lt;br&gt;+# We echo 1345 to start the certificate serial number counter.
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;rm -rf demoCA
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;mkdir -p demoCA/newcerts
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;cp /dev/null demoCA/index.txt
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;echo &amp;quot;1345&amp;quot; &amp;gt; demoCA/serial
&lt;br&gt;+
&lt;br&gt;+# This file makes sure that the certificate for CN=TheRA can be a Certificate
&lt;br&gt;+# Authority, i.e. can sign the user certificates, e.g. &amp;quot;CN=Wibble&amp;quot;.
&lt;br&gt;+
&lt;br&gt;+cat &amp;lt;&amp;lt;EOF &amp;gt; exts
&lt;br&gt;+[x509_extensions]
&lt;br&gt;+basicConstraints=CA:TRUE
&lt;br&gt;+EOF
&lt;br&gt;+
&lt;br&gt;+# Create the CA's keypair and self-signed certificate
&lt;br&gt;+# &amp;nbsp; -x509 means create self-sign cert
&lt;br&gt;+# &amp;nbsp; -keyout means generate keypair
&lt;br&gt;+# &amp;nbsp; -nodes means do not encrypt private key.
&lt;br&gt;+# &amp;nbsp; -set_serial sets the serial number of the certificate
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;openssl req -verbose -x509 -new -nodes -set_serial 1234 \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;-subj &amp;quot;/CN=TheCA/OU=NOT FOR PRODUCTION/O=Apache/ST=NY/C=US&amp;quot; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;-days 7300 -out cacert.pem -keyout caprivkey.pem 
&lt;br&gt;+
&lt;br&gt;+# Create the RA's keypair and Certificate Request
&lt;br&gt;+# &amp;nbsp; &amp;nbsp;without -x509, we generate an x509 cert request.
&lt;br&gt;+# &amp;nbsp; -keyout means generate keypair
&lt;br&gt;+# &amp;nbsp; -nodes means do not encrypt private key.
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;openssl req -verbose -new -nodes \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;-subj &amp;quot;/CN=TheRA/OU=NOT FOR PRODUCTION/O=Apache/ST=NY/C=US&amp;quot; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;-days 7300 -out csrra.pem -keyout raprivkey.pem 
&lt;br&gt;+
&lt;br&gt;+# Have the CN=TheCA issue a certificate for the CN=TheRA
&lt;br&gt;+# We need -extfile exts -extenstions x509_extensions to make sure 
&lt;br&gt;+# CN=TheRA can be a Certificate Authority.
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;openssl ca -batch -days 7300 -cert cacert.pem -keyfile caprivkey.pem \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;-in csrra.pem -out ra-ca-cert.pem -extfile exts -extensions x509_extensions
&lt;br&gt;+
&lt;br&gt;+# Create keypairs and Cert Request for a certificate for CN=Wibble and CN=Cherry
&lt;br&gt;+# This procedure must be done in JKS, because we need to use a JKS keystore.
&lt;br&gt;+# The current version of CXF using PCKS12 will not work for a number of 
&lt;br&gt;+# internal CXF reasons.
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;rm -f wibble.jks
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;keytool -genkey \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;-dname &amp;quot;CN=Wibble, OU=NOT FOR PRODUCTION, O=Apache, ST=NY, C=US&amp;quot; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;-keystore wibble.jks -storetype jks -storepass password -keypass password
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;keytool -certreq -keystore wibble.jks -storetype jks -storepass password \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;-keypass password -file csrwibble.pem
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;rm -f cherry.jks
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;keytool -genkey \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;-dname &amp;quot;CN=Cherry, OU=NOT FOR PRODUCTION, O=Apache, ST=NY, C=US&amp;quot; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;-keystore cherry.jks -storetype jks -storepass password -keypass password
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;keytool -certreq -keystore cherry.jks -storetype jks -storepass password \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;-keypass password -file csrcherry.pem
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+# Have the CN=TheRA issue a certificate for CN=Wibble and CN=Cherry via
&lt;br&gt;+# their Certificate Requests.
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; openssl ca -batch -days 7300 -cert ra-ca-cert.pem -keyfile raprivkey.pem \
&lt;br&gt;+ &amp;nbsp; -in csrwibble.pem -out wibble-ra-cert.pem 
&lt;br&gt;+ &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; openssl ca -batch -days 7300 -cert ra-ca-cert.pem -keyfile raprivkey.pem \
&lt;br&gt;+ &amp;nbsp; -in csrcherry.pem -out cherry-ra-cert.pem
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+# Rewrite the certificates in PEM only format. This allows us to concatenate
&lt;br&gt;+# them into chains.
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;openssl x509 -in cacert.pem -out cacert.pem -outform PEM
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;openssl x509 -in ra-ca-cert.pem -out ra-ca-cert.pem -outform PEM
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;openssl x509 -in wibble-ra-cert.pem -out wibble-ra-cert.pem -outform PEM
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;openssl x509 -in cherry-ra-cert.pem -out cherry-ra-cert.pem -outform PEM
&lt;br&gt;+
&lt;br&gt;+# Create a chain readable by CertificateFactory.getCertificates.
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;cat wibble-ra-cert.pem ra-ca-cert.pem cacert.pem &amp;gt; wibble.chain
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;cat cherry-ra-cert.pem ra-ca-cert.pem cacert.pem &amp;gt; cherry.chain
&lt;br&gt;+
&lt;br&gt;+# Replace the certificate in the Wibble keystore with their respective
&lt;br&gt;+# full chains.
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;keytool -import -file wibble.chain -keystore wibble.jks -storetype jks \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;-storepass password -keypass password -noprompt
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;keytool -import -file cherry.chain -keystore cherry.jks -storetype jks \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;-storepass password -keypass password -noprompt
&lt;br&gt;+
&lt;br&gt;+# Revoke the CN=TheRA certificate (happens in the Openssl DB)
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;openssl ca -verbose -cert cacert.pem -keyfile caprivkey.pem \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;-revoke ra-ca-cert.pem -crl_reason keyCompromise 
&lt;br&gt;+
&lt;br&gt;+# Create the CRL from that revocation (from the Openssl DB)
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;openssl ca -verbose -gencrl -out ca.crl -cert cacert.pem \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;-keyfile caprivkey.pem
&lt;br&gt;+
&lt;br&gt;+# Create the Truststore file containing the CA cert.
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;rm -f truststore.jks
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;keytool -import -file cacert.pem -alias TheCA -keystore truststore.jks \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;-storepass password -noprompt
&lt;br&gt;+
&lt;br&gt;+# Uncomment to see what's in the Keystores and CRL
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;keytool -v -list -keystore wibble.jks -storepass password
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;keytool -v -list -keystore cherry.jks -storepass password
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;keytool -v -list -keystore truststore.jks -storepass password
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;openssl crl -in ca.crl -text -noout
&lt;br&gt;+
&lt;br&gt;+# Get rid of everything but wibble.chain and ra.crl
&lt;br&gt;+#rm -rf *.pem exts demoCA *pk12
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/bin/gencerts.sh
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/build.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/build.xml?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/build.xml?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/build.xml (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/build.xml Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,45 @@
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+ &amp;nbsp;Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ &amp;nbsp;or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ &amp;nbsp;distributed with this work for additional information
&lt;br&gt;+ &amp;nbsp;regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ &amp;nbsp;to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ &amp;nbsp;&amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ &amp;nbsp;with the License. You may obtain a copy of the License at
&lt;br&gt;+ 
&lt;br&gt;+ &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ 
&lt;br&gt;+ &amp;nbsp;Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ &amp;nbsp;software distributed under the License is distributed on an
&lt;br&gt;+ &amp;nbsp;&amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ &amp;nbsp;KIND, either express or implied. See the License for the
&lt;br&gt;+ &amp;nbsp;specific language governing permissions and limitations
&lt;br&gt;+ &amp;nbsp;under the License.
&lt;br&gt;+--&amp;gt;
&lt;br&gt;+&amp;lt;project name=&amp;quot;Secure hello world demo&amp;quot; default=&amp;quot;build&amp;quot; basedir=&amp;quot;.&amp;quot;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;import file=&amp;quot;../../common_build.xml&amp;quot;/&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;target name=&amp;quot;unauthenticated.client&amp;quot; description=&amp;quot;run demo insecure client&amp;quot; depends=&amp;quot;build&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;param&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;cxfrun classname=&amp;quot;demo.wssec.client.Client&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;param1=&amp;quot;${basedir}/wsdl/hello_world.wsdl&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/target&amp;gt; 
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;target name=&amp;quot;client&amp;quot; description=&amp;quot;run demo secure client&amp;quot; depends=&amp;quot;build&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;param&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;cxfrun classname=&amp;quot;demo.wssec.client.Client&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;param1=&amp;quot;${basedir}/wsdl/hello_world.wsdl&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/target&amp;gt; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;target name=&amp;quot;server&amp;quot; description=&amp;quot;run demo server&amp;quot; depends=&amp;quot;build&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;cxfrun classname=&amp;quot;demo.wssec.server.Server&amp;quot; logging-properties-file=&amp;quot;${basedir}/logging.properties&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/target&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;target name=&amp;quot;generate.code&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;echo level=&amp;quot;info&amp;quot; message=&amp;quot;Generating code using wsdl2java...&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl2java file=&amp;quot;hello_world.wsdl&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/target&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+&amp;lt;/project&amp;gt;
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/build.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/build.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/build.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/xml
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/ca.crl
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/ca.crl?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/ca.crl?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;&amp;nbsp; &amp;nbsp; (empty)
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cacert.pem
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cacert.pem?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cacert.pem?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cacert.pem (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cacert.pem Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,18 @@
&lt;br&gt;+-----BEGIN CERTIFICATE-----
&lt;br&gt;+MIIC3DCCAkWgAwIBAgICBNIwDQYJKoZIhvcNAQEFBQAwWDEOMAwGA1UEAxMFVGhl
&lt;br&gt;+Q0ExGzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEChMGQXBhY2hl
&lt;br&gt;+MQswCQYDVQQIEwJOWTELMAkGA1UEBhMCVVMwHhcNMDkwNjIyMTUzNzA4WhcNMjkw
&lt;br&gt;+NjE3MTUzNzA4WjBYMQ4wDAYDVQQDEwVUaGVDQTEbMBkGA1UECxMSTk9UIEZPUiBQ
&lt;br&gt;+Uk9EVUNUSU9OMQ8wDQYDVQQKEwZBcGFjaGUxCzAJBgNVBAgTAk5ZMQswCQYDVQQG
&lt;br&gt;+EwJVUzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3st0/lxVtgRQMbMWvuQz
&lt;br&gt;+MHFv64qXPIm6sTvK3ff6ILGiOnx6wd98oQoJ+X1MuSVBv0ncf7qwZkxZ+imaf1zl
&lt;br&gt;+MwOw6Rha8yl0Uw2YbVYWFCldSXK/9+0KRTm3El5uzzGKT2dKJ2840Wh7LuYKGoEw
&lt;br&gt;+95xXfWb13K1SL13Ewn8Er1cCAwEAAaOBtDCBsTAdBgNVHQ4EFgQUj0/bfQrFQIB6
&lt;br&gt;+6jnKNpqmcGUjy7cwgYEGA1UdIwR6MHiAFI9P230KxUCAeuo5yjaapnBlI8u3oVyk
&lt;br&gt;+WjBYMQ4wDAYDVQQDEwVUaGVDQTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9O
&lt;br&gt;+MQ8wDQYDVQQKEwZBcGFjaGUxCzAJBgNVBAgTAk5ZMQswCQYDVQQGEwJVU4ICBNIw
&lt;br&gt;+DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQBnLYUUrajPw+Ku9Jr8oDte
&lt;br&gt;+KEe+zGDcEEa0uI8ld0XqLjcVcX1SGGYh13ophJCqn3kBwcXtgH1oxj9/M4fWr6pL
&lt;br&gt;+ml4oJMzrYGRi1M2bMgzWFhX5lhTTy/WCDRW05K9LDvTv94yRJV07uk1ztbYgpiyn
&lt;br&gt;+zjX4WJceNv6/6wzWTT7+Ow==
&lt;br&gt;+-----END CERTIFICATE-----
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/caprivkey.pem
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/caprivkey.pem?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/caprivkey.pem?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/caprivkey.pem (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/caprivkey.pem Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,15 @@
&lt;br&gt;+-----BEGIN RSA PRIVATE KEY-----
&lt;br&gt;+MIICWwIBAAKBgQDey3T+XFW2BFAxsxa+5DMwcW/ripc8ibqxO8rd9/ogsaI6fHrB
&lt;br&gt;+33yhCgn5fUy5JUG/Sdx/urBmTFn6KZp/XOUzA7DpGFrzKXRTDZhtVhYUKV1Jcr/3
&lt;br&gt;+7QpFObcSXm7PMYpPZ0onbzjRaHsu5goagTD3nFd9ZvXcrVIvXcTCfwSvVwIDAQAB
&lt;br&gt;+AoGAUCoK7Z8RpA2HQWq8C3GWzZ5zc+AJLNot16m5BAc+89aWlc7GaM3eTR+MmT2x
&lt;br&gt;+hojWUFrmQPtOj3B3i6C+m4c0XGuU8B9lFaKSdjz4NytWAsykQPxx+KsVfyNxt2mk
&lt;br&gt;+np8hoTQU0qoTG6XAZmvYaSOkqSC7s5gUCwEzK/J+mWbyYcECQQD9UqIhMLOrbFfT
&lt;br&gt;+1T/VNcAp7WkvW0Dqio1G/o11Yas1ZKhTfwxczA84Lpu5aSoUoKJwSRjEsfSHrqrV
&lt;br&gt;+GobsS813AkEA4SY62Krv4zW7PtEElJbUhzF0+Yc/SXmVFuq7C9sfiV9ko/lpAn2L
&lt;br&gt;+lWFzEeRE+3+o+khL5+PW5NYQBJUhHxslIQJABwfzHg62/ewM6AFEO0u5oLBJOhpD
&lt;br&gt;+S/86epz4Gijy0pGPpnmhQzYaugl5IwVLOLVYrNsqh9MUoWt0rGOHGSnlcwJAHYm8
&lt;br&gt;+cqyKaE6mUClv5mabX1k3tXzu6p7O1oDZJUcMLiObun+ALVl3NJPiWtiNzEkFTECr
&lt;br&gt;+5LJZgRAsbc162O/gwQJAJ0n+Sd2qJz5n0/iu9LYH+DH8Bjd88thq+PVYz9r5lYvl
&lt;br&gt;+ksRCCYECTkW8Q7pT8SlLEBePRBvVmENTnPlAENTwwQ==
&lt;br&gt;+-----END RSA PRIVATE KEY-----
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry-ra-cert.pem
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry-ra-cert.pem?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry-ra-cert.pem?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry-ra-cert.pem (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry-ra-cert.pem Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,24 @@
&lt;br&gt;+-----BEGIN CERTIFICATE-----
&lt;br&gt;+MIIECjCCA3OgAwIBAgICE0cwDQYJKoZIhvcNAQEFBQAwWDELMAkGA1UEBhMCVVMx
&lt;br&gt;+CzAJBgNVBAgTAk5ZMQ8wDQYDVQQKEwZBcGFjaGUxGzAZBgNVBAsTEk5PVCBGT1Ig
&lt;br&gt;+UFJPRFVDVElPTjEOMAwGA1UEAxMFVGhlUkEwHhcNMDkwNjIyMTUzNzEwWhcNMjkw
&lt;br&gt;+NjE3MTUzNzEwWjBZMQswCQYDVQQGEwJVUzELMAkGA1UECBMCTlkxDzANBgNVBAoT
&lt;br&gt;+BkFwYWNoZTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9OMQ8wDQYDVQQDEwZD
&lt;br&gt;+aGVycnkwggG3MIIBLAYHKoZIzjgEATCCAR8CgYEA/X9TgR11EilS30qcLuzk5/YR
&lt;br&gt;+t1I870QAwx4/gLZRJmlFXUAiUftZPY1Y+r/F9bow9subVWzXgTuAHTRv8mZgt2uZ
&lt;br&gt;+UKWkn5/oBHsQIsJPu6nX/rfGG/g7V+fGqKYVDwT7g/bTxR7DAjVUE1oWkTL2dfOu
&lt;br&gt;+K2HXKu/yIgMZndFIAccCFQCXYFCPFSMLzLKSuYKi64QL8Fgc9QKBgQD34aCF1ps9
&lt;br&gt;+3su8q1w2uFe5eZSvu/o66oL5V0wLPQeCZ1FZV4661FlP5nEHEIGAtEkWcSPoTCgW
&lt;br&gt;+E7fPCTKMyKbhPBZ6i1R8jSjgo64eK7OmdZFuo38L+iE1YvH7YnoBJDvMpPG+qFGQ
&lt;br&gt;+iaiD3+Fa5Z8GkotmXoB7VSVkAUw7/s9JKgOBhAACgYBi7WDT5ifoKr+6CYNM4bgp
&lt;br&gt;+boGIDcm4gAzvN87riAREspwE1e/n7248yu3HUSO11IeO9Nry3yANg2yU93478ZKY
&lt;br&gt;+iMO4Vsf3otK3HX+RVRF7el2hcIxidpCwDn7+BRwaYEVJ+FICtzJJir7v9kVm+rc+
&lt;br&gt;+hkjllDDvS99Lv6OOiejBOqOByDCBxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQf
&lt;br&gt;+Fh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU75GNmqmw
&lt;br&gt;+1Y0VOsXjb3lTww8M4I4wawYDVR0jBGQwYqFcpFowWDEOMAwGA1UEAxMFVGhlQ0Ex
&lt;br&gt;+GzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEChMGQXBhY2hlMQsw
&lt;br&gt;+CQYDVQQIEwJOWTELMAkGA1UEBhMCVVOCAhNFMA0GCSqGSIb3DQEBBQUAA4GBAEyD
&lt;br&gt;+BUFePKRHtTlWIW8VH1gTfWm8vLDONxS8Xsk+rcXTG1PZCnVlgYBGRPmmxWApDJJT
&lt;br&gt;+bmp4A7ZnQL/jCP8rQCFlqRCGEHFOqxzqQy1H7klJ6NrzhgzpqqIwfkjk7UBWbaMR
&lt;br&gt;+lXEvynvUC0h0JieUdm6qHAaRuSs5ZQv5+sndW/g3
&lt;br&gt;+-----END CERTIFICATE-----
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.chain
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.chain?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.chain?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.chain (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.chain Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,56 @@
&lt;br&gt;+-----BEGIN CERTIFICATE-----
&lt;br&gt;+MIIECjCCA3OgAwIBAgICE0cwDQYJKoZIhvcNAQEFBQAwWDELMAkGA1UEBhMCVVMx
&lt;br&gt;+CzAJBgNVBAgTAk5ZMQ8wDQYDVQQKEwZBcGFjaGUxGzAZBgNVBAsTEk5PVCBGT1Ig
&lt;br&gt;+UFJPRFVDVElPTjEOMAwGA1UEAxMFVGhlUkEwHhcNMDkwNjIyMTUzNzEwWhcNMjkw
&lt;br&gt;+NjE3MTUzNzEwWjBZMQswCQYDVQQGEwJVUzELMAkGA1UECBMCTlkxDzANBgNVBAoT
&lt;br&gt;+BkFwYWNoZTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9OMQ8wDQYDVQQDEwZD
&lt;br&gt;+aGVycnkwggG3MIIBLAYHKoZIzjgEATCCAR8CgYEA/X9TgR11EilS30qcLuzk5/YR
&lt;br&gt;+t1I870QAwx4/gLZRJmlFXUAiUftZPY1Y+r/F9bow9subVWzXgTuAHTRv8mZgt2uZ
&lt;br&gt;+UKWkn5/oBHsQIsJPu6nX/rfGG/g7V+fGqKYVDwT7g/bTxR7DAjVUE1oWkTL2dfOu
&lt;br&gt;+K2HXKu/yIgMZndFIAccCFQCXYFCPFSMLzLKSuYKi64QL8Fgc9QKBgQD34aCF1ps9
&lt;br&gt;+3su8q1w2uFe5eZSvu/o66oL5V0wLPQeCZ1FZV4661FlP5nEHEIGAtEkWcSPoTCgW
&lt;br&gt;+E7fPCTKMyKbhPBZ6i1R8jSjgo64eK7OmdZFuo38L+iE1YvH7YnoBJDvMpPG+qFGQ
&lt;br&gt;+iaiD3+Fa5Z8GkotmXoB7VSVkAUw7/s9JKgOBhAACgYBi7WDT5ifoKr+6CYNM4bgp
&lt;br&gt;+boGIDcm4gAzvN87riAREspwE1e/n7248yu3HUSO11IeO9Nry3yANg2yU93478ZKY
&lt;br&gt;+iMO4Vsf3otK3HX+RVRF7el2hcIxidpCwDn7+BRwaYEVJ+FICtzJJir7v9kVm+rc+
&lt;br&gt;+hkjllDDvS99Lv6OOiejBOqOByDCBxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQf
&lt;br&gt;+Fh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU75GNmqmw
&lt;br&gt;+1Y0VOsXjb3lTww8M4I4wawYDVR0jBGQwYqFcpFowWDEOMAwGA1UEAxMFVGhlQ0Ex
&lt;br&gt;+GzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEChMGQXBhY2hlMQsw
&lt;br&gt;+CQYDVQQIEwJOWTELMAkGA1UEBhMCVVOCAhNFMA0GCSqGSIb3DQEBBQUAA4GBAEyD
&lt;br&gt;+BUFePKRHtTlWIW8VH1gTfWm8vLDONxS8Xsk+rcXTG1PZCnVlgYBGRPmmxWApDJJT
&lt;br&gt;+bmp4A7ZnQL/jCP8rQCFlqRCGEHFOqxzqQy1H7klJ6NrzhgzpqqIwfkjk7UBWbaMR
&lt;br&gt;+lXEvynvUC0h0JieUdm6qHAaRuSs5ZQv5+sndW/g3
&lt;br&gt;+-----END CERTIFICATE-----
&lt;br&gt;+-----BEGIN CERTIFICATE-----
&lt;br&gt;+MIICNzCCAaCgAwIBAgICE0UwDQYJKoZIhvcNAQEFBQAwWDEOMAwGA1UEAxMFVGhl
&lt;br&gt;+Q0ExGzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEChMGQXBhY2hl
&lt;br&gt;+MQswCQYDVQQIEwJOWTELMAkGA1UEBhMCVVMwHhcNMDkwNjIyMTUzNzA4WhcNMjkw
&lt;br&gt;+NjE3MTUzNzA4WjBYMQswCQYDVQQGEwJVUzELMAkGA1UECBMCTlkxDzANBgNVBAoT
&lt;br&gt;+BkFwYWNoZTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9OMQ4wDAYDVQQDEwVU
&lt;br&gt;+aGVSQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArUsKksqHsbd7Ncxapwvq
&lt;br&gt;+i8FAV+Ea6ZwfbiFs46ZXDcVEnvwbFWB8PkYrq1vEJGrBCLKS+QNpYh3QG06etm2A
&lt;br&gt;+frUwIGOJkJgGObQ9lFyHBbg27hmct+wYymx0Z3IGe6w1wD5EkK7nzF0Yg0Ph2xfd
&lt;br&gt;+rHaqNEbVL+RemqaABcNbltcCAwEAAaMQMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG
&lt;br&gt;+9w0BAQUFAAOBgQC14vN7a3bbfmqR2mAWDfS5z2+nO0i6M/z3Y7vAVZqyBuiHcUzW
&lt;br&gt;+RYyE4kKzMrxDHBES3zwTOXmW3NSbwMMKd61RRSF0W2cR4MF42etFoUUr0/NjRwIW
&lt;br&gt;+g9IYN2wGBwKYPrSCUSwCGMhxhOEaoqvAeg0sd1v5OezuZjCGQ9UR2myMvA==
&lt;br&gt;+-----END CERTIFICATE-----
&lt;br&gt;+-----BEGIN CERTIFICATE-----
&lt;br&gt;+MIIC3DCCAkWgAwIBAgICBNIwDQYJKoZIhvcNAQEFBQAwWDEOMAwGA1UEAxMFVGhl
&lt;br&gt;+Q0ExGzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEChMGQXBhY2hl
&lt;br&gt;+MQswCQYDVQQIEwJOWTELMAkGA1UEBhMCVVMwHhcNMDkwNjIyMTUzNzA4WhcNMjkw
&lt;br&gt;+NjE3MTUzNzA4WjBYMQ4wDAYDVQQDEwVUaGVDQTEbMBkGA1UECxMSTk9UIEZPUiBQ
&lt;br&gt;+Uk9EVUNUSU9OMQ8wDQYDVQQKEwZBcGFjaGUxCzAJBgNVBAgTAk5ZMQswCQYDVQQG
&lt;br&gt;+EwJVUzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3st0/lxVtgRQMbMWvuQz
&lt;br&gt;+MHFv64qXPIm6sTvK3ff6ILGiOnx6wd98oQoJ+X1MuSVBv0ncf7qwZkxZ+imaf1zl
&lt;br&gt;+MwOw6Rha8yl0Uw2YbVYWFCldSXK/9+0KRTm3El5uzzGKT2dKJ2840Wh7LuYKGoEw
&lt;br&gt;+95xXfWb13K1SL13Ewn8Er1cCAwEAAaOBtDCBsTAdBgNVHQ4EFgQUj0/bfQrFQIB6
&lt;br&gt;+6jnKNpqmcGUjy7cwgYEGA1UdIwR6MHiAFI9P230KxUCAeuo5yjaapnBlI8u3oVyk
&lt;br&gt;+WjBYMQ4wDAYDVQQDEwVUaGVDQTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9O
&lt;br&gt;+MQ8wDQYDVQQKEwZBcGFjaGUxCzAJBgNVBAgTAk5ZMQswCQYDVQQGEwJVU4ICBNIw
&lt;br&gt;+DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQBnLYUUrajPw+Ku9Jr8oDte
&lt;br&gt;+KEe+zGDcEEa0uI8ld0XqLjcVcX1SGGYh13ophJCqn3kBwcXtgH1oxj9/M4fWr6pL
&lt;br&gt;+ml4oJMzrYGRi1M2bMgzWFhX5lhTTy/WCDRW05K9LDvTv94yRJV07uk1ztbYgpiyn
&lt;br&gt;+zjX4WJceNv6/6wzWTT7+Ow==
&lt;br&gt;+-----END CERTIFICATE-----
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.jks
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.jks?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.jks?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Files cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.jks (added) and cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.jks Fri Dec &amp;nbsp;4 19:28:17 2009 differ
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrcherry.pem
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrcherry.pem?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrcherry.pem?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrcherry.pem (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrcherry.pem Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,13 @@
&lt;br&gt;+-----BEGIN NEW CERTIFICATE REQUEST-----
&lt;br&gt;+MIICXjCCAhsCAQAwWTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk5ZMQ8wDQYDVQQKEwZBcGFjaGUx
&lt;br&gt;+GzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEAxMGQ2hlcnJ5MIIBtzCCASwGByqG
&lt;br&gt;+SM44BAEwggEfAoGBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9EAMMeP4C2USZpRV1AIlH7WT2NWPq/
&lt;br&gt;+xfW6MPbLm1Vs14E7gB00b/JmYLdrmVClpJ+f6AR7ECLCT7up1/63xhv4O1fnxqimFQ8E+4P208Ue
&lt;br&gt;+wwI1VBNaFpEy9nXzrith1yrv8iIDGZ3RSAHHAhUAl2BQjxUjC8yykrmCouuEC/BYHPUCgYEA9+Gg
&lt;br&gt;+hdabPd7LvKtcNrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFnEj6EwoFhO3zwky
&lt;br&gt;+jMim4TwWeotUfI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTxvqhRkImog9/hWuWfBpKLZl6A
&lt;br&gt;+e1UlZAFMO/7PSSoDgYQAAoGAYu1g0+Yn6Cq/ugmDTOG4KW6BiA3JuIAM7zfO64gERLKcBNXv5+9u
&lt;br&gt;+PMrtx1EjtdSHjvTa8t8gDYNslPd+O/GSmIjDuFbH96LStx1/kVURe3pdoXCMYnaQsA5+/gUcGmBF
&lt;br&gt;+SfhSArcySYq+7/ZFZvq3PoZI5ZQw70vfS7+jjonowTqgADALBgcqhkjOOAQDBQADMAAwLQIUL/Kb
&lt;br&gt;+evVCJJJYu/t6x1a4hsqrjEACFQCVsCt5XBVEnBOMISaGVWJOfa0OoA==
&lt;br&gt;+-----END NEW CERTIFICATE REQUEST-----
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrra.pem
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrra.pem?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrra.pem?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrra.pem (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrra.pem Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,11 @@
&lt;br&gt;+-----BEGIN CERTIFICATE REQUEST-----
&lt;br&gt;+MIIBmDCCAQECAQAwWDEOMAwGA1UEAxMFVGhlUkExGzAZBgNVBAsTEk5PVCBGT1Ig
&lt;br&gt;+UFJPRFVDVElPTjEPMA0GA1UEChMGQXBhY2hlMQswCQYDVQQIEwJOWTELMAkGA1UE
&lt;br&gt;+BhMCVVMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAK1LCpLKh7G3ezXMWqcL
&lt;br&gt;+6ovBQFfhGumcH24hbOOmVw3FRJ78GxVgfD5GK6tbxCRqwQiykvkDaWId0BtOnrZt
&lt;br&gt;+gH61MCBjiZCYBjm0PZRchwW4Nu4ZnLfsGMpsdGdyBnusNcA+RJCu58xdGIND4dsX
&lt;br&gt;+3ax2qjRG1S/kXpqmgAXDW5bXAgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQCoR9+A
&lt;br&gt;+4a2uIYk4wJyKwV4ghskSrG/O7pR0wY+tkJN66YOci3C3x+nefdlUK73+SOqbdqL4
&lt;br&gt;+x5io/1fT5BLdFXfcwkWgpzoRzYAZVKj1zQAM7pqEotuxLVy3Bo/Bkij81RgRBtq1
&lt;br&gt;+pDEnDgzGOt3Ly/XVPzK4S4atQe6/fjmfCsfnVw==
&lt;br&gt;+-----END CERTIFICATE REQUEST-----
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrwibble.pem
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrwibble.pem?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrwibble.pem?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrwibble.pem (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrwibble.pem Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,13 @@
&lt;br&gt;+-----BEGIN NEW CERTIFICATE REQUEST-----
&lt;br&gt;+MIICXjCCAhwCAQAwWTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk5ZMQ8wDQYDVQQKEwZBcGFjaGUx
&lt;br&gt;+GzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEAxMGV2liYmxlMIIBuDCCASwGByqG
&lt;br&gt;+SM44BAEwggEfAoGBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9EAMMeP4C2USZpRV1AIlH7WT2NWPq/
&lt;br&gt;+xfW6MPbLm1Vs14E7gB00b/JmYLdrmVClpJ+f6AR7ECLCT7up1/63xhv4O1fnxqimFQ8E+4P208Ue
&lt;br&gt;+wwI1VBNaFpEy9nXzrith1yrv8iIDGZ3RSAHHAhUAl2BQjxUjC8yykrmCouuEC/BYHPUCgYEA9+Gg
&lt;br&gt;+hdabPd7LvKtcNrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFnEj6EwoFhO3zwky
&lt;br&gt;+jMim4TwWeotUfI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTxvqhRkImog9/hWuWfBpKLZl6A
&lt;br&gt;+e1UlZAFMO/7PSSoDgYUAAoGBAOVw/LSWWM/t6EdzPEKo9T/gHMbknoGwkfq+3wRhhHOtr45dVyPL
&lt;br&gt;+agrEmkKllHFoCCZc5Rw5PSXeTRGT2Zwt9YDPH/n97ju8OH8NIo1moyyL7F0iHOlUCnrFv3ok2SYA
&lt;br&gt;+WnVxW0giyjGWIEgtnrxLb1Hj84biGRx8IIDp//CJ6/8qoAAwCwYHKoZIzjgEAwUAAy8AMCwCFH2/
&lt;br&gt;+V9FvF0zHa3lUIL8NU7lbuX/yAhQxHI/8jJMJprrAhaQDSiys9sRfNA==
&lt;br&gt;+-----END NEW CERTIFICATE REQUEST-----
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,3 @@
&lt;br&gt;+R	290617153708Z	090622153711Z,keyCompromise	1345	unknown	/C=US/ST=NY/O=Apache/OU=NOT FOR PRODUCTION/CN=TheRA
&lt;br&gt;+V	290617153710Z		1346	unknown	/C=US/ST=NY/O=Apache/OU=NOT FOR PRODUCTION/CN=Wibble
&lt;br&gt;+V	290617153710Z		1347	unknown	/C=US/ST=NY/O=Apache/OU=NOT FOR PRODUCTION/CN=Cherry
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/plain
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1 @@
&lt;br&gt;+unique_subject = yes
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr.old
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr.old?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr.old?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr.old (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr.old Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1 @@
&lt;br&gt;+unique_subject = yes
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.old
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.old?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.old?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.old (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.old Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,3 @@
&lt;br&gt;+V	290617153708Z		1345	unknown	/C=US/ST=NY/O=Apache/OU=NOT FOR PRODUCTION/CN=TheRA
&lt;br&gt;+V	290617153710Z		1346	unknown	/C=US/ST=NY/O=Apache/OU=NOT FOR PRODUCTION/CN=Wibble
&lt;br&gt;+V	290617153710Z		1347	unknown	/C=US/ST=NY/O=Apache/OU=NOT FOR PRODUCTION/CN=Cherry
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1345.pem
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1345.pem?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1345.pem?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1345.pem (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1345.pem Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,50 @@
&lt;br&gt;+Certificate:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Data:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Version: 3 (0x2)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Serial Number: 4933 (0x1345)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Signature Algorithm: sha1WithRSAEncryption
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issuer: CN=TheCA, OU=NOT FOR PRODUCTION, O=Apache, ST=NY, C=US
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validity
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Not Before: Jun 22 15:37:08 2009 GMT
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Not After : Jun 17 15:37:08 2029 GMT
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Subject: C=US, ST=NY, O=Apache, OU=NOT FOR PRODUCTION, CN=TheRA
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Subject Public Key Info:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Public Key Algorithm: rsaEncryption
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RSA Public Key: (1024 bit)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Modulus (1024 bit):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;00:ad:4b:0a:92:ca:87:b1:b7:7b:35:cc:5a:a7:0b:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ea:8b:c1:40:57:e1:1a:e9:9c:1f:6e:21:6c:e3:a6:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;57:0d:c5:44:9e:fc:1b:15:60:7c:3e:46:2b:ab:5b:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c4:24:6a:c1:08:b2:92:f9:03:69:62:1d:d0:1b:4e:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;9e:b6:6d:80:7e:b5:30:20:63:89:90:98:06:39:b4:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3d:94:5c:87:05:b8:36:ee:19:9c:b7:ec:18:ca:6c:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;74:67:72:06:7b:ac:35:c0:3e:44:90:ae:e7:cc:5d:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;18:83:43:e1:db:17:dd:ac:76:aa:34:46:d5:2f:e4:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;5e:9a:a6:80:05:c3:5b:96:d7
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Exponent: 65537 (0x10001)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;X509v3 extensions:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;X509v3 Basic Constraints: 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CA:TRUE
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Signature Algorithm: sha1WithRSAEncryption
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;b5:e2:f3:7b:6b:76:db:7e:6a:91:da:60:16:0d:f4:b9:cf:6f:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;a7:3b:48:ba:33:fc:f7:63:bb:c0:55:9a:b2:06:e8:87:71:4c:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;d6:45:8c:84:e2:42:b3:32:bc:43:1c:11:12:df:3c:13:39:79:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;96:dc:d4:9b:c0:c3:0a:77:ad:51:45:21:74:5b:67:11:e0:c1:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;78:d9:eb:45:a1:45:2b:d3:f3:63:47:02:16:83:d2:18:37:6c:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;06:07:02:98:3e:b4:82:51:2c:02:18:c8:71:84:e1:1a:a2:ab:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c0:7a:0d:2c:77:5b:f9:39:ec:ee:66:30:86:43:d5:11:da:6c:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;8c:bc
&lt;br&gt;+-----BEGIN CERTIFICATE-----
&lt;br&gt;+MIICNzCCAaCgAwIBAgICE0UwDQYJKoZIhvcNAQEFBQAwWDEOMAwGA1UEAxMFVGhl
&lt;br&gt;+Q0ExGzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEChMGQXBhY2hl
&lt;br&gt;+MQswCQYDVQQIEwJOWTELMAkGA1UEBhMCVVMwHhcNMDkwNjIyMTUzNzA4WhcNMjkw
&lt;br&gt;+NjE3MTUzNzA4WjBYMQswCQYDVQQGEwJVUzELMAkGA1UECBMCTlkxDzANBgNVBAoT
&lt;br&gt;+BkFwYWNoZTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9OMQ4wDAYDVQQDEwVU
&lt;br&gt;+aGVSQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArUsKksqHsbd7Ncxapwvq
&lt;br&gt;+i8FAV+Ea6ZwfbiFs46ZXDcVEnvwbFWB8PkYrq1vEJGrBCLKS+QNpYh3QG06etm2A
&lt;br&gt;+frUwIGOJkJgGObQ9lFyHBbg27hmct+wYymx0Z3IGe6w1wD5EkK7nzF0Yg0Ph2xfd
&lt;br&gt;+rHaqNEbVL+RemqaABcNbltcCAwEAAaMQMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG
&lt;br&gt;+9w0BAQUFAAOBgQC14vN7a3bbfmqR2mAWDfS5z2+nO0i6M/z3Y7vAVZqyBuiHcUzW
&lt;br&gt;+RYyE4kKzMrxDHBES3zwTOXmW3NSbwMMKd61RRSF0W2cR4MF42etFoUUr0/NjRwIW
&lt;br&gt;+g9IYN2wGBwKYPrSCUSwCGMhxhOEaoqvAeg0sd1v5OezuZjCGQ9UR2myMvA==
&lt;br&gt;+-----END CERTIFICATE-----
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1346.pem
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1346.pem?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1346.pem?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1346.pem (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1346.pem Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,90 @@
&lt;br&gt;+Certificate:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Data:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Version: 3 (0x2)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Serial Number: 4934 (0x1346)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Signature Algorithm: sha1WithRSAEncryption
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issuer: C=US, ST=NY, O=Apache, OU=NOT FOR PRODUCTION, CN=TheRA
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validity
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Not Before: Jun 22 15:37:10 2009 GMT
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Not After : Jun 17 15:37:10 2029 GMT
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Subject: C=US, ST=NY, O=Apache, OU=NOT FOR PRODUCTION, CN=Wibble
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Subject Public Key Info:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Public Key Algorithm: dsaEncryption
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DSA Public Key:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pub: 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;00:e5:70:fc:b4:96:58:cf:ed:e8:47:73:3c:42:a8:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;f5:3f:e0:1c:c6:e4:9e:81:b0:91:fa:be:df:04:61:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;84:73:ad:af:8e:5d:57:23:cb:6a:0a:c4:9a:42:a5:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;94:71:68:08:26:5c:e5:1c:39:3d:25:de:4d:11:93:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;d9:9c:2d:f5:80:cf:1f:f9:fd:ee:3b:bc:38:7f:0d:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;22:8d:66:a3:2c:8b:ec:5d:22:1c:e9:54:0a:7a:c5:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bf:7a:24:d9:26:00:5a:75:71:5b:48:22:ca:31:96:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;20:48:2d:9e:bc:4b:6f:51:e3:f3:86:e2:19:1c:7c:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;20:80:e9:ff:f0:89:eb:ff:2a
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;P: &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;00:fd:7f:53:81:1d:75:12:29:52:df:4a:9c:2e:ec:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e4:e7:f6:11:b7:52:3c:ef:44:00:c3:1e:3f:80:b6:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;51:26:69:45:5d:40:22:51:fb:59:3d:8d:58:fa:bf:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c5:f5:ba:30:f6:cb:9b:55:6c:d7:81:3b:80:1d:34:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;6f:f2:66:60:b7:6b:99:50:a5:a4:9f:9f:e8:04:7b:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;10:22:c2:4f:bb:a9:d7:fe:b7:c6:1b:f8:3b:57:e7:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c6:a8:a6:15:0f:04:fb:83:f6:d3:c5:1e:c3:02:35:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;54:13:5a:16:91:32:f6:75:f3:ae:2b:61:d7:2a:ef:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;f2:22:03:19:9d:d1:48:01:c7
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Q: &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;00:97:60:50:8f:15:23:0b:cc:b2:92:b9:82:a2:eb:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;84:0b:f0:58:1c:f5
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;G: &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;00:f7:e1:a0:85:d6:9b:3d:de:cb:bc:ab:5c:36:b8:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;57:b9:79:94:af:bb:fa:3a:ea:82:f9:57:4c:0b:3d:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;07:82:67:51:59:57:8e:ba:d4:59:4f:e6:71:07:10:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;81:80:b4:49:16:71:23:e8:4c:28:16:13:b7:cf:09:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;32:8c:c8:a6:e1:3c:16:7a:8b:54:7c:8d:28:e0:a3:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ae:1e:2b:b3:a6:75:91:6e:a3:7f:0b:fa:21:35:62:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;f1:fb:62:7a:01:24:3b:cc:a4:f1:be:a8:51:90:89:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;a8:83:df:e1:5a:e5:9f:06:92:8b:66:5e:80:7b:55:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;25:64:01:4c:3b:fe:cf:49:2a
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;X509v3 extensions:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;X509v3 Basic Constraints: 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CA:FALSE
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Netscape Comment: 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OpenSSL Generated Certificate
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;X509v3 Subject Key Identifier: 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;91:4C:0A:EC:6C:E5:92:06:AE:3A:F8:96:32:EC:92:50:8C:CB:83:E7
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;X509v3 Authority Key Identifier: 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DirName:/CN=TheCA/OU=NOT FOR PRODUCTION/O=Apache/ST=NY/C=US
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;serial:13:45
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Signature Algorithm: sha1WithRSAEncryption
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2e:14:ab:c9:48:9c:b5:b6:16:af:d2:59:3b:2c:bd:79:e9:f6:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2c:e9:0b:ac:58:ab:82:e5:87:4a:6b:b4:ea:d4:d5:d8:5c:86:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cf:96:33:ec:f1:c2:60:7d:6b:64:05:6f:8b:37:64:4d:71:f0:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c6:75:82:f6:ba:8a:31:16:1e:5a:fa:93:35:ed:ee:a3:6f:98:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e9:06:09:12:dd:e7:c0:df:9c:a1:9b:9e:db:3a:43:35:ac:c4:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dd:e9:4d:6e:ba:88:b9:d5:c5:05:ea:7f:72:24:64:51:7c:b3:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;8d:24:bf:dd:9a:76:46:5a:c6:22:b4:bb:cd:c0:9c:96:3a:5c:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;6e:35
&lt;br&gt;+-----BEGIN CERTIFICATE-----
&lt;br&gt;+MIIECzCCA3SgAwIBAgICE0YwDQYJKoZIhvcNAQEFBQAwWDELMAkGA1UEBhMCVVMx
&lt;br&gt;+CzAJBgNVBAgTAk5ZMQ8wDQYDVQQKEwZBcGFjaGUxGzAZBgNVBAsTEk5PVCBGT1Ig
&lt;br&gt;+UFJPRFVDVElPTjEOMAwGA1UEAxMFVGhlUkEwHhcNMDkwNjIyMTUzNzEwWhcNMjkw
&lt;br&gt;+NjE3MTUzNzEwWjBZMQswCQYDVQQGEwJVUzELMAkGA1UECBMCTlkxDzANBgNVBAoT
&lt;br&gt;+BkFwYWNoZTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9OMQ8wDQYDVQQDEwZX
&lt;br&gt;+aWJibGUwggG4MIIBLAYHKoZIzjgEATCCAR8CgYEA/X9TgR11EilS30qcLuzk5/YR
&lt;br&gt;+t1I870QAwx4/gLZRJmlFXUAiUftZPY1Y+r/F9bow9subVWzXgTuAHTRv8mZgt2uZ
&lt;br&gt;+UKWkn5/oBHsQIsJPu6nX/rfGG/g7V+fGqKYVDwT7g/bTxR7DAjVUE1oWkTL2dfOu
&lt;br&gt;+K2HXKu/yIgMZndFIAccCFQCXYFCPFSMLzLKSuYKi64QL8Fgc9QKBgQD34aCF1ps9
&lt;br&gt;+3su8q1w2uFe5eZSvu/o66oL5V0wLPQeCZ1FZV4661FlP5nEHEIGAtEkWcSPoTCgW
&lt;br&gt;+E7fPCTKMyKbhPBZ6i1R8jSjgo64eK7OmdZFuo38L+iE1YvH7YnoBJDvMpPG+qFGQ
&lt;br&gt;+iaiD3+Fa5Z8GkotmXoB7VSVkAUw7/s9JKgOBhQACgYEA5XD8tJZYz+3oR3M8Qqj1
&lt;br&gt;+P+AcxuSegbCR+r7fBGGEc62vjl1XI8tqCsSaQqWUcWgIJlzlHDk9Jd5NEZPZnC31
&lt;br&gt;+gM8f+f3uO7w4fw0ijWajLIvsXSIc6VQKesW/eiTZJgBadXFbSCLKMZYgSC2evEtv
&lt;br&gt;+UePzhuIZHHwggOn/8Inr/yqjgcgwgcUwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0E
&lt;br&gt;+HxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFJFMCuxs
&lt;br&gt;+5ZIGrjr4ljLsklCMy4PnMGsGA1UdIwRkMGKhXKRaMFgxDjAMBgNVBAMTBVRoZUNB
&lt;br&gt;+MRswGQYDVQQLExJOT1QgRk9SIFBST0RVQ1RJT04xDzANBgNVBAoTBkFwYWNoZTEL
&lt;br&gt;+MAkGA1UECBMCTlkxCzAJBgNVBAYTAlVTggITRTANBgkqhkiG9w0BAQUFAAOBgQAu
&lt;br&gt;+FKvJSJy1thav0lk7LL156fYs6QusWKuC5YdKa7Tq1NXYXIbPljPs8cJgfWtkBW+L
&lt;br&gt;+N2RNcfDGdYL2uooxFh5a+pM17e6jb5jpBgkS3efA35yhm57bOkM1rMTd6U1uuoi5
&lt;br&gt;+1cUF6n9yJGRRfLONJL/dmnZGWsYitLvNwJyWOlxuNQ==
&lt;br&gt;+-----END CERTIFICATE-----
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1347.pem
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1347.pem?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1347.pem?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1347.pem (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1347.pem Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,90 @@
&lt;br&gt;+Certificate:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Data:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Version: 3 (0x2)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Serial Number: 4935 (0x1347)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Signature Algorithm: sha1WithRSAEncryption
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issuer: C=US, ST=NY, O=Apache, OU=NOT FOR PRODUCTION, CN=TheRA
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validity
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Not Before: Jun 22 15:37:10 2009 GMT
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Not After : Jun 17 15:37:10 2029 GMT
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Subject: C=US, ST=NY, O=Apache, OU=NOT FOR PRODUCTION, CN=Cherry
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Subject Public Key Info:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Public Key Algorithm: dsaEncryption
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DSA Public Key:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pub: 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62:ed:60:d3:e6:27:e8:2a:bf:ba:09:83:4c:e1:b8:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;29:6e:81:88:0d:c9:b8:80:0c:ef:37:ce:eb:88:04:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;44:b2:9c:04:d5:ef:e7:ef:6e:3c:ca:ed:c7:51:23:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;b5:d4:87:8e:f4:da:f2:df:20:0d:83:6c:94:f7:7e:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3b:f1:92:98:88:c3:b8:56:c7:f7:a2:d2:b7:1d:7f:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;91:55:11:7b:7a:5d:a1:70:8c:62:76:90:b0:0e:7e:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fe:05:1c:1a:60:45:49:f8:52:02:b7:32:49:8a:be:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ef:f6:45:66:fa:b7:3e:86:48:e5:94:30:ef:4b:df:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4b:bf:a3:8e:89:e8:c1:3a
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;P: &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;00:fd:7f:53:81:1d:75:12:29:52:df:4a:9c:2e:ec:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e4:e7:f6:11:b7:52:3c:ef:44:00:c3:1e:3f:80:b6:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;51:26:69:45:5d:40:22:51:fb:59:3d:8d:58:fa:bf:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c5:f5:ba:30:f6:cb:9b:55:6c:d7:81:3b:80:1d:34:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;6f:f2:66:60:b7:6b:99:50:a5:a4:9f:9f:e8:04:7b:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;10:22:c2:4f:bb:a9:d7:fe:b7:c6:1b:f8:3b:57:e7:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c6:a8:a6:15:0f:04:fb:83:f6:d3:c5:1e:c3:02:35:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;54:13:5a:16:91:32:f6:75:f3:ae:2b:61:d7:2a:ef:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;f2:22:03:19:9d:d1:48:01:c7
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Q: &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;00:97:60:50:8f:15:23:0b:cc:b2:92:b9:82:a2:eb:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;84:0b:f0:58:1c:f5
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;G: &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;00:f7:e1:a0:85:d6:9b:3d:de:cb:bc:ab:5c:36:b8:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;57:b9:79:94:af:bb:fa:3a:ea:82:f9:57:4c:0b:3d:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;07:82:67:51:59:57:8e:ba:d4:59:4f:e6:71:07:10:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;81:80:b4:49:16:71:23:e8:4c:28:16:13:b7:cf:09:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;32:8c:c8:a6:e1:3c:16:7a:8b:54:7c:8d:28:e0:a3:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ae:1e:2b:b3:a6:75:91:6e:a3:7f:0b:fa:21:35:62:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;f1:fb:62:7a:01:24:3b:cc:a4:f1:be:a8:51:90:89:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;a8:83:df:e1:5a:e5:9f:06:92:8b:66:5e:80:7b:55:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;25:64:01:4c:3b:fe:cf:49:2a
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;X509v3 extensions:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;X509v3 Basic Constraints: 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CA:FALSE
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Netscape Comment: 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OpenSSL Generated Certificate
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;X509v3 Subject Key Identifier: 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EF:91:8D:9A:A9:B0:D5:8D:15:3A:C5:E3:6F:79:53:C3:0F:0C:E0:8E
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;X509v3 Authority Key Identifier: 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DirName:/CN=TheCA/OU=NOT FOR PRODUCTION/O=Apache/ST=NY/C=US
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;serial:13:45
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Signature Algorithm: sha1WithRSAEncryption
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4c:83:05:41:5e:3c:a4:47:b5:39:56:21:6f:15:1f:58:13:7d:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;69:bc:bc:b0:ce:37:14:bc:5e:c9:3e:ad:c5:d3:1b:53:d9:0a:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;75:65:81:80:46:44:f9:a6:c5:60:29:0c:92:53:6e:6a:78:03:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;b6:67:40:bf:e3:08:ff:2b:40:21:65:a9:10:86:10:71:4e:ab:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1c:ea:43:2d:47:ee:49:49:e8:da:f3:86:0c:e9:aa:a2:30:7e:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;48:e4:ed:40:56:6d:a3:11:95:71:2f:ca:7b:d4:0b:48:74:26:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;27:94:76:6e:aa:1c:06:91:b9:2b:39:65:0b:f9:fa:c9:dd:5b:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;f8:37
&lt;br&gt;+-----BEGIN CERTIFICATE-----
&lt;br&gt;+MIIECjCCA3OgAwIBAgICE0cwDQYJKoZIhvcNAQEFBQAwWDELMAkGA1UEBhMCVVMx
&lt;br&gt;+CzAJBgNVBAgTAk5ZMQ8wDQYDVQQKEwZBcGFjaGUxGzAZBgNVBAsTEk5PVCBGT1Ig
&lt;br&gt;+UFJPRFVDVElPTjEOMAwGA1UEAxMFVGhlUkEwHhcNMDkwNjIyMTUzNzEwWhcNMjkw
&lt;br&gt;+NjE3MTUzNzEwWjBZMQswCQYDVQQGEwJVUzELMAkGA1UECBMCTlkxDzANBgNVBAoT
&lt;br&gt;+BkFwYWNoZTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9OMQ8wDQYDVQQDEwZD
&lt;br&gt;+aGVycnkwggG3MIIBLAYHKoZIzjgEATCCAR8CgYEA/X9TgR11EilS30qcLuzk5/YR
&lt;br&gt;+t1I870QAwx4/gLZRJmlFXUAiUftZPY1Y+r/F9bow9subVWzXgTuAHTRv8mZgt2uZ
&lt;br&gt;+UKWkn5/oBHsQIsJPu6nX/rfGG/g7V+fGqKYVDwT7g/bTxR7DAjVUE1oWkTL2dfOu
&lt;br&gt;+K2HXKu/yIgMZndFIAccCFQCXYFCPFSMLzLKSuYKi64QL8Fgc9QKBgQD34aCF1ps9
&lt;br&gt;+3su8q1w2uFe5eZSvu/o66oL5V0wLPQeCZ1FZV4661FlP5nEHEIGAtEkWcSPoTCgW
&lt;br&gt;+E7fPCTKMyKbhPBZ6i1R8jSjgo64eK7OmdZFuo38L+iE1YvH7YnoBJDvMpPG+qFGQ
&lt;br&gt;+iaiD3+Fa5Z8GkotmXoB7VSVkAUw7/s9JKgOBhAACgYBi7WDT5ifoKr+6CYNM4bgp
&lt;br&gt;+boGIDcm4gAzvN87riAREspwE1e/n7248yu3HUSO11IeO9Nry3yANg2yU93478ZKY
&lt;br&gt;+iMO4Vsf3otK3HX+RVRF7el2hcIxidpCwDn7+BRwaYEVJ+FICtzJJir7v9kVm+rc+
&lt;br&gt;+hkjllDDvS99Lv6OOiejBOqOByDCBxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQf
&lt;br&gt;+Fh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU75GNmqmw
&lt;br&gt;+1Y0VOsXjb3lTww8M4I4wawYDVR0jBGQwYqFcpFowWDEOMAwGA1UEAxMFVGhlQ0Ex
&lt;br&gt;+GzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEChMGQXBhY2hlMQsw
&lt;br&gt;+CQYDVQQIEwJOWTELMAkGA1UEBhMCVVOCAhNFMA0GCSqGSIb3DQEBBQUAA4GBAEyD
&lt;br&gt;+BUFePKRHtTlWIW8VH1gTfWm8vLDONxS8Xsk+rcXTG1PZCnVlgYBGRPmmxWApDJJT
&lt;br&gt;+bmp4A7ZnQL/jCP8rQCFlqRCGEHFOqxzqQy1H7klJ6NrzhgzpqqIwfkjk7UBWbaMR
&lt;br&gt;+lXEvynvUC0h0JieUdm6qHAaRuSs5ZQv5+sndW/g3
&lt;br&gt;+-----END CERTIFICATE-----
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1 @@
&lt;br&gt;+1348
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial.old
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial.old?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial.old?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial.old (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial.old Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1 @@
&lt;br&gt;+1347
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/exts
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/exts?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/exts?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/exts (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/exts Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,2 @@
&lt;br&gt;+[x509_extensions]
&lt;br&gt;+basicConstraints=CA:TRUE
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/ra-ca-cert.pem
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/ra-ca-cert.pem?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/ra-ca-cert.pem?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/ra-ca-cert.pem (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/ra-ca-cert.pem Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,14 @@
&lt;br&gt;+-----BEGIN CERTIFICATE-----
&lt;br&gt;+MIICNzCCAaCgAwIBAgICE0UwDQYJKoZIhvcNAQEFBQAwWDEOMAwGA1UEAxMFVGhl
&lt;br&gt;+Q0ExGzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEChMGQXBhY2hl
&lt;br&gt;+MQswCQYDVQQIEwJOWTELMAkGA1UEBhMCVVMwHhcNMDkwNjIyMTUzNzA4WhcNMjkw
&lt;br&gt;+NjE3MTUzNzA4WjBYMQswCQYDVQQGEwJVUzELMAkGA1UECBMCTlkxDzANBgNVBAoT
&lt;br&gt;+BkFwYWNoZTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9OMQ4wDAYDVQQDEwVU
&lt;br&gt;+aGVSQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArUsKksqHsbd7Ncxapwvq
&lt;br&gt;+i8FAV+Ea6ZwfbiFs46ZXDcVEnvwbFWB8PkYrq1vEJGrBCLKS+QNpYh3QG06etm2A
&lt;br&gt;+frUwIGOJkJgGObQ9lFyHBbg27hmct+wYymx0Z3IGe6w1wD5EkK7nzF0Yg0Ph2xfd
&lt;br&gt;+rHaqNEbVL+RemqaABcNbltcCAwEAAaMQMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG
&lt;br&gt;+9w0BAQUFAAOBgQC14vN7a3bbfmqR2mAWDfS5z2+nO0i6M/z3Y7vAVZqyBuiHcUzW
&lt;br&gt;+RYyE4kKzMrxDHBES3zwTOXmW3NSbwMMKd61RRSF0W2cR4MF42etFoUUr0/NjRwIW
&lt;br&gt;+g9IYN2wGBwKYPrSCUSwCGMhxhOEaoqvAeg0sd1v5OezuZjCGQ9UR2myMvA==
&lt;br&gt;+-----END CERTIFICATE-----
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/raprivkey.pem
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/raprivkey.pem?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/raprivkey.pem?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/raprivkey.pem (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/raprivkey.pem Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,15 @@
&lt;br&gt;+-----BEGIN RSA PRIVATE KEY-----
&lt;br&gt;+MIICXAIBAAKBgQCtSwqSyoext3s1zFqnC+qLwUBX4RrpnB9uIWzjplcNxUSe/BsV
&lt;br&gt;+YHw+RiurW8QkasEIspL5A2liHdAbTp62bYB+tTAgY4mQmAY5tD2UXIcFuDbuGZy3
&lt;br&gt;+7BjKbHRncgZ7rDXAPkSQrufMXRiDQ+HbF92sdqo0RtUv5F6apoAFw1uW1wIDAQAB
&lt;br&gt;+AoGAWcNEH9MuxJxxAuXukxa2EFwy0xJ0GUvYb/h6adUwxJ5JND0MXl9THALG/gUT
&lt;br&gt;+rXVqtfGh9cCRptQghvSLe51u79giGhDUJVntPv24XaHGRjP4a9WbRbHCf+wQtoiN
&lt;br&gt;+LwAyPz7epjmsLUzd/xboxHIw6b0yoDUHAKkXWhvJsQ6gQvkCQQDmR1th4beChxWR
&lt;br&gt;+UFW567G51Rf3TNEG7IQ8VHfAar7T2VYukmpyMCKiPkGtJLLNu9y/tXZhKtdm39a0
&lt;br&gt;+aoW8tu8lAkEAwKY5jFYMLq/rBRdYJ0d6YFow8c54eimN4KqNs61Aa6sUlr5w1PxT
&lt;br&gt;+VoPda5MHnTASf5fzxCxrBpQTQziNeC47SwJBAKgIfcgo+s2GYNiOdF+cey2NL1XH
&lt;br&gt;+eefBgqS7Rj7kJadUuix1rrLwKPWW1DnRw5+Ya/aAJYe1yURKJdO0vy37lvkCQDI8
&lt;br&gt;+ppEj9zVNhpnjRoenqg/qNQ05bE1e/LJzh1Qtf7kT+eB9dOr1ib3r0Re2Vav11z0S
&lt;br&gt;+oOytMJOclZFX8/w9AhUCQE9KNcvzylzJnnFkwm6F0cetxMLcAnPnbVrTjMLKEvV2
&lt;br&gt;+8QrzjD2oQtCXtbImtplvK7SwSqMu2FxH/5glziWCJf8=
&lt;br&gt;+-----END RSA PRIVATE KEY-----
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/truststore.jks
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/truststore.jks?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/truststore.jks?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Files cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/truststore.jks (added) and cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/truststore.jks Fri Dec &amp;nbsp;4 19:28:17 2009 differ
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble-ra-cert.pem
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble-ra-cert.pem?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble-ra-cert.pem?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble-ra-cert.pem (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble-ra-cert.pem Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,24 @@
&lt;br&gt;+-----BEGIN CERTIFICATE-----
&lt;br&gt;+MIIECzCCA3SgAwIBAgICE0YwDQYJKoZIhvcNAQEFBQAwWDELMAkGA1UEBhMCVVMx
&lt;br&gt;+CzAJBgNVBAgTAk5ZMQ8wDQYDVQQKEwZBcGFjaGUxGzAZBgNVBAsTEk5PVCBGT1Ig
&lt;br&gt;+UFJPRFVDVElPTjEOMAwGA1UEAxMFVGhlUkEwHhcNMDkwNjIyMTUzNzEwWhcNMjkw
&lt;br&gt;+NjE3MTUzNzEwWjBZMQswCQYDVQQGEwJVUzELMAkGA1UECBMCTlkxDzANBgNVBAoT
&lt;br&gt;+BkFwYWNoZTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9OMQ8wDQYDVQQDEwZX
&lt;br&gt;+aWJibGUwggG4MIIBLAYHKoZIzjgEATCCAR8CgYEA/X9TgR11EilS30qcLuzk5/YR
&lt;br&gt;+t1I870QAwx4/gLZRJmlFXUAiUftZPY1Y+r/F9bow9subVWzXgTuAHTRv8mZgt2uZ
&lt;br&gt;+UKWkn5/oBHsQIsJPu6nX/rfGG/g7V+fGqKYVDwT7g/bTxR7DAjVUE1oWkTL2dfOu
&lt;br&gt;+K2HXKu/yIgMZndFIAccCFQCXYFCPFSMLzLKSuYKi64QL8Fgc9QKBgQD34aCF1ps9
&lt;br&gt;+3su8q1w2uFe5eZSvu/o66oL5V0wLPQeCZ1FZV4661FlP5nEHEIGAtEkWcSPoTCgW
&lt;br&gt;+E7fPCTKMyKbhPBZ6i1R8jSjgo64eK7OmdZFuo38L+iE1YvH7YnoBJDvMpPG+qFGQ
&lt;br&gt;+iaiD3+Fa5Z8GkotmXoB7VSVkAUw7/s9JKgOBhQACgYEA5XD8tJZYz+3oR3M8Qqj1
&lt;br&gt;+P+AcxuSegbCR+r7fBGGEc62vjl1XI8tqCsSaQqWUcWgIJlzlHDk9Jd5NEZPZnC31
&lt;br&gt;+gM8f+f3uO7w4fw0ijWajLIvsXSIc6VQKesW/eiTZJgBadXFbSCLKMZYgSC2evEtv
&lt;br&gt;+UePzhuIZHHwggOn/8Inr/yqjgcgwgcUwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0E
&lt;br&gt;+HxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFJFMCuxs
&lt;br&gt;+5ZIGrjr4ljLsklCMy4PnMGsGA1UdIwRkMGKhXKRaMFgxDjAMBgNVBAMTBVRoZUNB
&lt;br&gt;+MRswGQYDVQQLExJOT1QgRk9SIFBST0RVQ1RJT04xDzANBgNVBAoTBkFwYWNoZTEL
&lt;br&gt;+MAkGA1UECBMCTlkxCzAJBgNVBAYTAlVTggITRTANBgkqhkiG9w0BAQUFAAOBgQAu
&lt;br&gt;+FKvJSJy1thav0lk7LL156fYs6QusWKuC5YdKa7Tq1NXYXIbPljPs8cJgfWtkBW+L
&lt;br&gt;+N2RNcfDGdYL2uooxFh5a+pM17e6jb5jpBgkS3efA35yhm57bOkM1rMTd6U1uuoi5
&lt;br&gt;+1cUF6n9yJGRRfLONJL/dmnZGWsYitLvNwJyWOlxuNQ==
&lt;br&gt;+-----END CERTIFICATE-----
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.chain
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.chain?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.chain?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.chain (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.chain Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,56 @@
&lt;br&gt;+-----BEGIN CERTIFICATE-----
&lt;br&gt;+MIIECzCCA3SgAwIBAgICE0YwDQYJKoZIhvcNAQEFBQAwWDELMAkGA1UEBhMCVVMx
&lt;br&gt;+CzAJBgNVBAgTAk5ZMQ8wDQYDVQQKEwZBcGFjaGUxGzAZBgNVBAsTEk5PVCBGT1Ig
&lt;br&gt;+UFJPRFVDVElPTjEOMAwGA1UEAxMFVGhlUkEwHhcNMDkwNjIyMTUzNzEwWhcNMjkw
&lt;br&gt;+NjE3MTUzNzEwWjBZMQswCQYDVQQGEwJVUzELMAkGA1UECBMCTlkxDzANBgNVBAoT
&lt;br&gt;+BkFwYWNoZTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9OMQ8wDQYDVQQDEwZX
&lt;br&gt;+aWJibGUwggG4MIIBLAYHKoZIzjgEATCCAR8CgYEA/X9TgR11EilS30qcLuzk5/YR
&lt;br&gt;+t1I870QAwx4/gLZRJmlFXUAiUftZPY1Y+r/F9bow9subVWzXgTuAHTRv8mZgt2uZ
&lt;br&gt;+UKWkn5/oBHsQIsJPu6nX/rfGG/g7V+fGqKYVDwT7g/bTxR7DAjVUE1oWkTL2dfOu
&lt;br&gt;+K2HXKu/yIgMZndFIAccCFQCXYFCPFSMLzLKSuYKi64QL8Fgc9QKBgQD34aCF1ps9
&lt;br&gt;+3su8q1w2uFe5eZSvu/o66oL5V0wLPQeCZ1FZV4661FlP5nEHEIGAtEkWcSPoTCgW
&lt;br&gt;+E7fPCTKMyKbhPBZ6i1R8jSjgo64eK7OmdZFuo38L+iE1YvH7YnoBJDvMpPG+qFGQ
&lt;br&gt;+iaiD3+Fa5Z8GkotmXoB7VSVkAUw7/s9JKgOBhQACgYEA5XD8tJZYz+3oR3M8Qqj1
&lt;br&gt;+P+AcxuSegbCR+r7fBGGEc62vjl1XI8tqCsSaQqWUcWgIJlzlHDk9Jd5NEZPZnC31
&lt;br&gt;+gM8f+f3uO7w4fw0ijWajLIvsXSIc6VQKesW/eiTZJgBadXFbSCLKMZYgSC2evEtv
&lt;br&gt;+UePzhuIZHHwggOn/8Inr/yqjgcgwgcUwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0E
&lt;br&gt;+HxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFJFMCuxs
&lt;br&gt;+5ZIGrjr4ljLsklCMy4PnMGsGA1UdIwRkMGKhXKRaMFgxDjAMBgNVBAMTBVRoZUNB
&lt;br&gt;+MRswGQYDVQQLExJOT1QgRk9SIFBST0RVQ1RJT04xDzANBgNVBAoTBkFwYWNoZTEL
&lt;br&gt;+MAkGA1UECBMCTlkxCzAJBgNVBAYTAlVTggITRTANBgkqhkiG9w0BAQUFAAOBgQAu
&lt;br&gt;+FKvJSJy1thav0lk7LL156fYs6QusWKuC5YdKa7Tq1NXYXIbPljPs8cJgfWtkBW+L
&lt;br&gt;+N2RNcfDGdYL2uooxFh5a+pM17e6jb5jpBgkS3efA35yhm57bOkM1rMTd6U1uuoi5
&lt;br&gt;+1cUF6n9yJGRRfLONJL/dmnZGWsYitLvNwJyWOlxuNQ==
&lt;br&gt;+-----END CERTIFICATE-----
&lt;br&gt;+-----BEGIN CERTIFICATE-----
&lt;br&gt;+MIICNzCCAaCgAwIBAgICE0UwDQYJKoZIhvcNAQEFBQAwWDEOMAwGA1UEAxMFVGhl
&lt;br&gt;+Q0ExGzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEChMGQXBhY2hl
&lt;br&gt;+MQswCQYDVQQIEwJOWTELMAkGA1UEBhMCVVMwHhcNMDkwNjIyMTUzNzA4WhcNMjkw
&lt;br&gt;+NjE3MTUzNzA4WjBYMQswCQYDVQQGEwJVUzELMAkGA1UECBMCTlkxDzANBgNVBAoT
&lt;br&gt;+BkFwYWNoZTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9OMQ4wDAYDVQQDEwVU
&lt;br&gt;+aGVSQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArUsKksqHsbd7Ncxapwvq
&lt;br&gt;+i8FAV+Ea6ZwfbiFs46ZXDcVEnvwbFWB8PkYrq1vEJGrBCLKS+QNpYh3QG06etm2A
&lt;br&gt;+frUwIGOJkJgGObQ9lFyHBbg27hmct+wYymx0Z3IGe6w1wD5EkK7nzF0Yg0Ph2xfd
&lt;br&gt;+rHaqNEbVL+RemqaABcNbltcCAwEAAaMQMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG
&lt;br&gt;+9w0BAQUFAAOBgQC14vN7a3bbfmqR2mAWDfS5z2+nO0i6M/z3Y7vAVZqyBuiHcUzW
&lt;br&gt;+RYyE4kKzMrxDHBES3zwTOXmW3NSbwMMKd61RRSF0W2cR4MF42etFoUUr0/NjRwIW
&lt;br&gt;+g9IYN2wGBwKYPrSCUSwCGMhxhOEaoqvAeg0sd1v5OezuZjCGQ9UR2myMvA==
&lt;br&gt;+-----END CERTIFICATE-----
&lt;br&gt;+-----BEGIN CERTIFICATE-----
&lt;br&gt;+MIIC3DCCAkWgAwIBAgICBNIwDQYJKoZIhvcNAQEFBQAwWDEOMAwGA1UEAxMFVGhl
&lt;br&gt;+Q0ExGzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEChMGQXBhY2hl
&lt;br&gt;+MQswCQYDVQQIEwJOWTELMAkGA1UEBhMCVVMwHhcNMDkwNjIyMTUzNzA4WhcNMjkw
&lt;br&gt;+NjE3MTUzNzA4WjBYMQ4wDAYDVQQDEwVUaGVDQTEbMBkGA1UECxMSTk9UIEZPUiBQ
&lt;br&gt;+Uk9EVUNUSU9OMQ8wDQYDVQQKEwZBcGFjaGUxCzAJBgNVBAgTAk5ZMQswCQYDVQQG
&lt;br&gt;+EwJVUzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3st0/lxVtgRQMbMWvuQz
&lt;br&gt;+MHFv64qXPIm6sTvK3ff6ILGiOnx6wd98oQoJ+X1MuSVBv0ncf7qwZkxZ+imaf1zl
&lt;br&gt;+MwOw6Rha8yl0Uw2YbVYWFCldSXK/9+0KRTm3El5uzzGKT2dKJ2840Wh7LuYKGoEw
&lt;br&gt;+95xXfWb13K1SL13Ewn8Er1cCAwEAAaOBtDCBsTAdBgNVHQ4EFgQUj0/bfQrFQIB6
&lt;br&gt;+6jnKNpqmcGUjy7cwgYEGA1UdIwR6MHiAFI9P230KxUCAeuo5yjaapnBlI8u3oVyk
&lt;br&gt;+WjBYMQ4wDAYDVQQDEwVUaGVDQTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9O
&lt;br&gt;+MQ8wDQYDVQQKEwZBcGFjaGUxCzAJBgNVBAgTAk5ZMQswCQYDVQQGEwJVU4ICBNIw
&lt;br&gt;+DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQBnLYUUrajPw+Ku9Jr8oDte
&lt;br&gt;+KEe+zGDcEEa0uI8ld0XqLjcVcX1SGGYh13ophJCqn3kBwcXtgH1oxj9/M4fWr6pL
&lt;br&gt;+ml4oJMzrYGRi1M2bMgzWFhX5lhTTy/WCDRW05K9LDvTv94yRJV07uk1ztbYgpiyn
&lt;br&gt;+zjX4WJceNv6/6wzWTT7+Ow==
&lt;br&gt;+-----END CERTIFICATE-----
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.jks
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.jks?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.jks?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Files cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.jks (added) and cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.jks Fri Dec &amp;nbsp;4 19:28:17 2009 differ
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/pom.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/pom.xml?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/pom.xml?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/pom.xml (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/pom.xml Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,221 @@
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+ &amp;nbsp;Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ &amp;nbsp;or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ &amp;nbsp;distributed with this work for additional information
&lt;br&gt;+ &amp;nbsp;regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ &amp;nbsp;to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ &amp;nbsp;&amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ &amp;nbsp;with the License. You may obtain a copy of the License at
&lt;br&gt;+ 
&lt;br&gt;+ &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ 
&lt;br&gt;+ &amp;nbsp;Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ &amp;nbsp;software distributed under the License is distributed on an
&lt;br&gt;+ &amp;nbsp;&amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ &amp;nbsp;KIND, either express or implied. See the License for the
&lt;br&gt;+ &amp;nbsp;specific language governing permissions and limitations
&lt;br&gt;+ &amp;nbsp;under the License.
&lt;br&gt;+--&amp;gt;
&lt;br&gt;+&amp;lt;project xmlns=&amp;quot;&lt;a href=&quot;http://maven.apache.org/POM/4.0.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://maven.apache.org/POM/4.0.0&lt;/a&gt;&amp;quot; xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot; xsi:schemaLocation=&amp;quot;&lt;a href=&quot;http://maven.apache.org/POM/4.0.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://maven.apache.org/POM/4.0.0&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://maven.apache.org/maven-v4_0_0.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://maven.apache.org/maven-v4_0_0.xsd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.cxf.samples&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;wssec&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;1.0&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;WS-Security Demo&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;properties&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;cxf.version&amp;gt;[2,)&amp;lt;/cxf.version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/properties&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;build&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sourceDirectory&amp;gt;src&amp;lt;/sourceDirectory&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugins&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;maven-compiler-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;source&amp;gt;1.5&amp;lt;/source&amp;gt; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;target&amp;gt;1.5&amp;lt;/target&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;cxf-codegen-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;LATEST&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;executions&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;execution&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;generate-sources&amp;lt;/id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;phase&amp;gt;generate-sources&amp;lt;/phase&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdlOptions&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdlOption&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl&amp;gt;${basedir}/wsdl/hello_world.wsdl&amp;lt;/wsdl&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdlOption&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdlOptions&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;goals&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;goal&amp;gt;wsdl2java&amp;lt;/goal&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/goals&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/execution&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/executions&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;maven-antrun-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;executions&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;execution&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;copyxmlfiles&amp;lt;/id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;phase&amp;gt;generate-sources&amp;lt;/phase&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;goals&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;goal&amp;gt;run&amp;lt;/goal&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/goals&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tasks&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;copy file=&amp;quot;${basedir}/src/demo/wssec/server/wssec.xml&amp;quot; todir=&amp;quot;${basedir}/target/classes/demo/wssec/server&amp;quot;/&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;copy file=&amp;quot;${basedir}/src/demo/wssec/client/wssec.xml&amp;quot; todir=&amp;quot;${basedir}/target/classes/demo/wssec/client&amp;quot;/&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;copy todir=&amp;quot;${basedir}/target/classes/certs&amp;quot;&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;fileset dir=&amp;quot;${basedir}/certs&amp;quot;/&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/copy&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tasks&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/configuration&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp;&amp;lt;/execution&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;	&amp;lt;/executions&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugin&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/plugins&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/build&amp;gt; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;profiles&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;profile&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;server&amp;lt;/id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;build&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;defaultGoal&amp;gt;test&amp;lt;/defaultGoal&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugins&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.codehaus.mojo&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;exec-maven-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;executions&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;execution&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;phase&amp;gt;test&amp;lt;/phase&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;goals&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;goal&amp;gt;exec&amp;lt;/goal&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/goals&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;executable&amp;gt;java&amp;lt;/executable&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;arguments&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;argument&amp;gt;-classpath&amp;lt;/argument&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;classpath/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;argument&amp;gt;demo.wssec.server.Server&amp;lt;/argument&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/arguments&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/execution&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/executions&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugins&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/build&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/profile&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;profile&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;client&amp;lt;/id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;build&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;defaultGoal&amp;gt;test&amp;lt;/defaultGoal&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugins&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.codehaus.mojo&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;exec-maven-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;executions&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;execution&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;phase&amp;gt;test&amp;lt;/phase&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;goals&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;goal&amp;gt;java&amp;lt;/goal&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/goals&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;mainClass&amp;gt;demo.wssec.client.Client&amp;lt;/mainClass&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;arguments&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;argument&amp;gt;${basedir}/wsdl/hello_world.wsdl&amp;lt;/argument&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;argument&amp;gt;secure&amp;lt;/argument&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/arguments&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/execution&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/executions&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/plugins&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/build&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/profile&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;profile&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;client.unauthenticated&amp;lt;/id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;build&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;defaultGoal&amp;gt;test&amp;lt;/defaultGoal&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugins&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.codehaus.mojo&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;exec-maven-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;executions&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;execution&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;phase&amp;gt;test&amp;lt;/phase&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;goals&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;goal&amp;gt;java&amp;lt;/goal&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/goals&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;mainClass&amp;gt;demo.wssec.client.Client&amp;lt;/mainClass&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;arguments&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;argument&amp;gt;${basedir}/wsdl/hello_world_no_policy.wsdl&amp;lt;/argument&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;argument&amp;gt;secure&amp;lt;/argument&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/arguments&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/execution&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/executions&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/plugins&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/build&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/profile&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/profiles&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;repositories&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;repository&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;apache-snapshots&amp;lt;/id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;Apache Snapshot Repository&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;url&amp;gt;&lt;a href=&quot;http://repository.apache.org/content/groups/snapshots-group/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://repository.apache.org/content/groups/snapshots-group/&lt;/a&gt;&amp;lt;/url&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;releases&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;enabled&amp;gt;false&amp;lt;/enabled&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/releases&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;snapshots&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/snapshots&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/repository&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/repositories&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;pluginRepositories&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;pluginRepository&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;apache-plugin-snapshots&amp;lt;/id&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;Apache Maven Plugin Snapshots&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;url&amp;gt;&lt;a href=&quot;http://repository.apache.org/content/groups/snapshots-group/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://repository.apache.org/content/groups/snapshots-group/&lt;/a&gt;&amp;lt;/url&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;releases&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;enabled&amp;gt;false&amp;lt;/enabled&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/releases&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;snapshots&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/snapshots&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/pluginRepository&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/pluginRepositories&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;dependencies&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;cxf-rt-frontend-jaxws&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;${cxf.version}&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;cxf-rt-transports-http&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;${cxf.version}&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;artifactId&amp;gt;cxf-rt-transports-http-jetty&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;version&amp;gt;${cxf.version}&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;cxf-rt-ws-security&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;${cxf.version}&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;cxf-rt-ws-policy&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;${cxf.version}&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/dependency&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;lt;/dependencies&amp;gt;
&lt;br&gt;+&amp;lt;/project&amp;gt;
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/pom.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/pom.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/pom.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/xml
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/Client.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/Client.java?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/Client.java?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/Client.java (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/Client.java Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,81 @@
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+
&lt;br&gt;+package demo.wssec.client;
&lt;br&gt;+
&lt;br&gt;+import java.io.File;
&lt;br&gt;+import java.net.URL;
&lt;br&gt;+import javax.xml.namespace.QName;
&lt;br&gt;+import org.apache.cxf.Bus;
&lt;br&gt;+import org.apache.cxf.bus.spring.SpringBusFactory;
&lt;br&gt;+import org.apache.hello_world_soap_http.Greeter;
&lt;br&gt;+import org.apache.hello_world_soap_http.SOAPService;
&lt;br&gt;+
&lt;br&gt;+public final class Client {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final QName SERVICE_NAME
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= new QName(&amp;quot;&lt;a href=&quot;http://apache.org/hello_world_soap_http&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://apache.org/hello_world_soap_http&lt;/a&gt;&amp;quot;, &amp;quot;SOAPService&amp;quot;);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final QName PORT_NAME =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new QName(&amp;quot;&lt;a href=&quot;http://apache.org/hello_world_soap_http&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://apache.org/hello_world_soap_http&lt;/a&gt;&amp;quot;, &amp;quot;SoapPort&amp;quot;);
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private Client() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static void main(String args[]) throws Exception {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (args.length == 0) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;please specify wsdl&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.exit(1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL wsdlURL;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File wsdlFile = new File(args[0]);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (wsdlFile.exists()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;wsdlURL = wsdlFile.toURL();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;wsdlURL = new URL(args[0]);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SpringBusFactory bf = new SpringBusFactory();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL busFile = Client.class.getResource(&amp;quot;wssec.xml&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Bus bus = bf.createBus(busFile.toString());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bf.setDefaultBus(bus);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(wsdlURL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SOAPService ss = new SOAPService(wsdlURL, SERVICE_NAME);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Greeter port = ss.getPort(PORT_NAME, Greeter.class);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Invoking greetMe...&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String resp = port.greetMe(System.getProperty(&amp;quot;user.name&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Server responded with: &amp;quot; + resp);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println();
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Invocation failed with the following: &amp;quot; + e.getCause());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.exit(0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/Client.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/Client.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/UTPasswordCallback.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/UTPasswordCallback.java?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/UTPasswordCallback.java?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/UTPasswordCallback.java (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/UTPasswordCallback.java Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,71 @@
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package demo.wssec.client;
&lt;br&gt;+
&lt;br&gt;+import java.io.IOException;
&lt;br&gt;+import java.util.HashMap;
&lt;br&gt;+import java.util.Map;
&lt;br&gt;+
&lt;br&gt;+import javax.security.auth.callback.Callback;
&lt;br&gt;+import javax.security.auth.callback.CallbackHandler;
&lt;br&gt;+import javax.security.auth.callback.UnsupportedCallbackException;
&lt;br&gt;+
&lt;br&gt;+import org.apache.ws.security.WSPasswordCallback;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ */
&lt;br&gt;+
&lt;br&gt;+public class UTPasswordCallback implements CallbackHandler {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private Map&amp;lt;String, String&amp;gt; passwords =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new HashMap&amp;lt;String, String&amp;gt;();
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public UTPasswordCallback() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;passwords.put(&amp;quot;Alice&amp;quot;, &amp;quot;ecilA&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;passwords.put(&amp;quot;abcd&amp;quot;, &amp;quot;dcba&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Here, we attempt to get the password from the private
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * alias/passwords map.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; callbacks.length; i++) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WSPasswordCallback pc = (WSPasswordCallback)callbacks[i];
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String pass = passwords.get(pc.getIdentifier());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (pass != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pc.setPassword(pass);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Password not found
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IOException();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Add an alias/password pair to the callback mechanism.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setAliasPassword(String alias, String password) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;passwords.put(alias, password);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/UTPasswordCallback.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/UTPasswordCallback.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/wssec.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/wssec.xml?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/wssec.xml?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/wssec.xml (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/wssec.xml Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,85 @@
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+ &amp;nbsp;Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ &amp;nbsp;or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ &amp;nbsp;distributed with this work for additional information
&lt;br&gt;+ &amp;nbsp;regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ &amp;nbsp;to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ &amp;nbsp;&amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ &amp;nbsp;with the License. You may obtain a copy of the License at
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ &amp;nbsp;software distributed under the License is distributed on an
&lt;br&gt;+ &amp;nbsp;&amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ &amp;nbsp;KIND, either express or implied. See the License for the
&lt;br&gt;+ &amp;nbsp;specific language governing permissions and limitations
&lt;br&gt;+ &amp;nbsp;under the License.
&lt;br&gt;+--&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;!-- 
&lt;br&gt;+ &amp;nbsp;** This file configures the Wibble Client
&lt;br&gt;+ &amp;nbsp;--&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;beans xmlns=&amp;quot;&lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp;xmlns:cxf=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/core&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/core&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp;xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp;xmlns:sec=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/configuration/security&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/configuration/security&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp;xmlns:http=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/transports/http/configuration&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/transports/http/configuration&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp;xmlns:jaxws=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxws&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp;xsi:schemaLocation=&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://cxf.apache.org/core&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/core&lt;/a&gt;&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://cxf.apache.org/schemas/core.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/core.xsd&lt;/a&gt;&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://cxf.apache.org/configuration/security&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/configuration/security&lt;/a&gt;&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://cxf.apache.org/schemas/configuration/security.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/configuration/security.xsd&lt;/a&gt;&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://cxf.apache.org/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxws&lt;/a&gt;&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://cxf.apache.org/schemas/jaxws.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/jaxws.xsd&lt;/a&gt;&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://cxf.apache.org/transports/http/configuration&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/transports/http/configuration&lt;/a&gt;&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://cxf.apache.org/schemas/configuration/http-conf.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/configuration/http-conf.xsd&lt;/a&gt;&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://www.springframework.org/schema/beans/spring-beans.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans/spring-beans.xsd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;cxf:bus&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;cxf:features&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;cxf:logging/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/cxf:features&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/cxf:bus&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;&amp;lt;http:conduit name=&amp;quot;{&lt;a href=&quot;http://apache.org/hello_world_soap_http&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://apache.org/hello_world_soap_http&lt;/a&gt;}SoapPort.http-conduit&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;http:tlsClientParameters disableCNCheck=&amp;quot;true&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sec:trustManagers&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sec:keyStore type=&amp;quot;JKS&amp;quot; password=&amp;quot;password&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; file=&amp;quot;certs/truststore.jks&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/sec:trustManagers&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sec:keyManagers keyPassword=&amp;quot;password&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;sec:keyStore type=&amp;quot;JKS&amp;quot; password=&amp;quot;password&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;file=&amp;quot;certs/wibble.jks&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/sec:keyManagers&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sec:cipherSuitesFilter&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;!-- these filters ensure that a ciphersuite with
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;export-suitable or null encryption is used,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;but exclude anonymous Diffie-Hellman key change as
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this is vulnerable to man-in-the-middle attacks --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sec:include&amp;gt;.*_EXPORT_.*&amp;lt;/sec:include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sec:include&amp;gt;.*_EXPORT1024_.*&amp;lt;/sec:include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sec:include&amp;gt;.*_WITH_DES_.*&amp;lt;/sec:include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sec:include&amp;gt;.*_WITH_NULL_.*&amp;lt;/sec:include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sec:exclude&amp;gt;.*_DH_anon_.*&amp;lt;/sec:exclude&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/sec:cipherSuitesFilter&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/http:tlsClientParameters&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;lt;/http:conduit&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;lt;jaxws:client name=&amp;quot;{&lt;a href=&quot;http://apache.org/hello_world_soap_http&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://apache.org/hello_world_soap_http&lt;/a&gt;}SoapPort&amp;quot; createdFromAPI=&amp;quot;true&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jaxws:properties&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;entry key=&amp;quot;ws-security.username&amp;quot; value=&amp;quot;Alice&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;entry key=&amp;quot;ws-security.callback-handler&amp;quot; value=&amp;quot;demo.wssec.client.UTPasswordCallback&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/jaxws:properties&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;lt;/jaxws:client&amp;gt;
&lt;br&gt;+ &amp;nbsp; 
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; 
&lt;br&gt;+&amp;lt;/beans&amp;gt; 
&lt;br&gt;+
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/wssec.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/wssec.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/wssec.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/xml
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/abigcompany_ca.pem
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/abigcompany_ca.pem?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/abigcompany_ca.pem?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/abigcompany_ca.pem (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/abigcompany_ca.pem Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,22 @@
&lt;br&gt;+-----BEGIN CERTIFICATE-----
&lt;br&gt;+MIIDlTCCAv6gAwIBAgIBADANBgkqhkiG9w0BAQQFADCBlDELMAkGA1UEBhMCSUUx
&lt;br&gt;+DTALBgNVBAgTBExlaW4xDzANBgNVBAcTBkR1YmxpbjEaMBgGA1UEChMRTGFyZ2Ug
&lt;br&gt;+V2lkZ2V0cyBJbmMxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRIwEAYDVQQDEwlsb2Nh
&lt;br&gt;+bGhvc3QxHzAdBgkqhkiG9w0BCQEWEGluZm9AbHdpZGdldHMuaWUwHhcNMDYwNDA2
&lt;br&gt;+MTMzMTU1WhcNMTYwNDAzMTMzMTU1WjCBlDELMAkGA1UEBhMCSUUxDTALBgNVBAgT
&lt;br&gt;+BExlaW4xDzANBgNVBAcTBkR1YmxpbjEaMBgGA1UEChMRTGFyZ2UgV2lkZ2V0cyBJ
&lt;br&gt;+bmMxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRIwEAYDVQQDEwlsb2NhbGhvc3QxHzAd
&lt;br&gt;+BgkqhkiG9w0BCQEWEGluZm9AbHdpZGdldHMuaWUwgZ8wDQYJKoZIhvcNAQEBBQAD
&lt;br&gt;+gY0AMIGJAoGBAKXQaKoeGRuv9Mt/j8oAlDjL29Rf0XKA0ylHTt9thQ9O6GPiUAzd
&lt;br&gt;+0djHAt0NbIV5f6DmlRfl+KQzri9d+BfywoCTSNoaclp1x5jM/dEjyaCXDPcNzr0l
&lt;br&gt;+7oT1e5V5nLVDJG6qMjxveiQ73kX+IV3EoY8dwiFJALzp4y+1Cslkn08pAgMBAAGj
&lt;br&gt;+gfQwgfEwHQYDVR0OBBYEFNvk101Zxkp0RlKVsvJpCvkcS99kMIHBBgNVHSMEgbkw
&lt;br&gt;+gbaAFNvk101Zxkp0RlKVsvJpCvkcS99koYGapIGXMIGUMQswCQYDVQQGEwJJRTEN
&lt;br&gt;+MAsGA1UECBMETGVpbjEPMA0GA1UEBxMGRHVibGluMRowGAYDVQQKExFMYXJnZSBX
&lt;br&gt;+aWRnZXRzIEluYzEUMBIGA1UECxMLRW5naW5lZXJpbmcxEjAQBgNVBAMTCWxvY2Fs
&lt;br&gt;+aG9zdDEfMB0GCSqGSIb3DQEJARYQaW5mb0Bsd2lkZ2V0cy5pZYIBADAMBgNVHRME
&lt;br&gt;+BTADAQH/MA0GCSqGSIb3DQEBBAUAA4GBAHEPllN7pvzOwvCZWUMsnPihjnMibTnk
&lt;br&gt;+26U1OTOxmKrLNUJ0FTqeygZk68SZjBsxyReW1LwXflAAWqBGhm9FlZIxEhceGQe+
&lt;br&gt;+Wxi/9yDfMi0yG6+pC+Tb++nwDaJwU88N8HxNM3ZLDiV4td1AM3dIzHLyVs5Bb+G2
&lt;br&gt;+jSrwuQwUi2F2
&lt;br&gt;+-----END CERTIFICATE-----
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r887328--1-2----in--cxf-trunk-distribution-src-main-release-samples-ws_security-ut_policy%3A-.--bin--certs--certs-demoCA--certs-demoCA-newcerts--src--src-demo--src-demo-wssec--src-demo-wssec-client--src-demo-wssec-resources--src-demo-wssec-se...-tp26647925p26647925.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26647928</id>
	<title>svn commit: r887328 [2/2] - in /cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy: ./ bin/ certs/ certs/demoCA/ certs/demoCA/newcerts/ src/ src/demo/ src/demo/wssec/ src/demo/wssec/client/ src/demo/wssec/resources/ src/demo/wssec/se...</title>
	<published>2009-12-04T11:28:19Z</published>
	<updated>2009-12-04T11:28:19Z</updated>
	<author>
		<name>dkulp</name>
	</author>
	<content type="html">Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtix.p12
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtix.p12?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtix.p12?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Files cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtix.p12 (added) and cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtix.p12 Fri Dec &amp;nbsp;4 19:28:17 2009 differ
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtixp12.truststore
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtixp12.truststore?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtixp12.truststore?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Files cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtixp12.truststore (added) and cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtixp12.truststore Fri Dec &amp;nbsp;4 19:28:17 2009 differ
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/GreeterImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/GreeterImpl.java?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/GreeterImpl.java?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/GreeterImpl.java (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/GreeterImpl.java Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,43 @@
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+
&lt;br&gt;+package demo.wssec.server;
&lt;br&gt;+
&lt;br&gt;+import java.util.logging.Logger;
&lt;br&gt;+import org.apache.hello_world_soap_http.Greeter;
&lt;br&gt;+
&lt;br&gt;+@javax.jws.WebService(name = &amp;quot;Greeter&amp;quot;, serviceName = &amp;quot;SOAPService&amp;quot;, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;targetNamespace = &amp;quot;&lt;a href=&quot;http://apache.org/hello_world_soap_http&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://apache.org/hello_world_soap_http&lt;/a&gt;&amp;quot;, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;wsdlLocation = &amp;quot;file:./wsdl/hello_world.wsdl&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+public class GreeterImpl implements Greeter {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final Logger LOG = 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Logger.getLogger(GreeterImpl.class.getPackage().getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/* (non-Javadoc)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see org.objectweb.hello_world_soap_http.Greeter#greetMe(java.lang.String)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String greetMe(String me) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LOG.info(&amp;quot;Executing operation greetMe&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Executing operation greetMe&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Message received: &amp;quot; + me + &amp;quot;\n&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return &amp;quot;Hello &amp;quot; + me;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/GreeterImpl.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/GreeterImpl.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/Server.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/Server.java?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/Server.java?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/Server.java (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/Server.java Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,56 @@
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+
&lt;br&gt;+package demo.wssec.server;
&lt;br&gt;+
&lt;br&gt;+import java.net.URL;
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+import org.apache.cxf.Bus;
&lt;br&gt;+import org.apache.cxf.bus.spring.SpringBusFactory;
&lt;br&gt;+
&lt;br&gt;+public class Server {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected Server() throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Starting Server&amp;quot;);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SpringBusFactory bf = new SpringBusFactory();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL busFile = Server.class.getResource(&amp;quot;wssec.xml&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Bus bus = bf.createBus(busFile.toString());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bf.setDefaultBus(bus);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//Object implementor = new GreeterImpl();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//String address = &amp;quot;&lt;a href=&quot;https://localhost:9001/SoapContext/SoapPort&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://localhost:9001/SoapContext/SoapPort&lt;/a&gt;&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//Endpoint.publish(address, implementor);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static void main(String args[]) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;The server's security configuration will be taken &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + &amp;quot;from server.xml using the bean name : &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + &amp;quot;\&amp;quot;{&lt;a href=&quot;http://apache.org/hello_world_soap_http&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://apache.org/hello_world_soap_http&lt;/a&gt;}&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + &amp;quot;GreeterImplPort.http-destination\&amp;quot;.&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new Server();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Server ready...&amp;quot;);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Thread.sleep(5 * 60 * 1000);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Server exiting&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.exit(0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/Server.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/Server.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/UTPasswordCallback.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/UTPasswordCallback.java?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/UTPasswordCallback.java?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/UTPasswordCallback.java (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/UTPasswordCallback.java Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,71 @@
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package demo.wssec.server;
&lt;br&gt;+
&lt;br&gt;+import java.io.IOException;
&lt;br&gt;+import java.util.HashMap;
&lt;br&gt;+import java.util.Map;
&lt;br&gt;+
&lt;br&gt;+import javax.security.auth.callback.Callback;
&lt;br&gt;+import javax.security.auth.callback.CallbackHandler;
&lt;br&gt;+import javax.security.auth.callback.UnsupportedCallbackException;
&lt;br&gt;+
&lt;br&gt;+import org.apache.ws.security.WSPasswordCallback;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ */
&lt;br&gt;+
&lt;br&gt;+public class UTPasswordCallback implements CallbackHandler {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private Map&amp;lt;String, String&amp;gt; passwords =
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new HashMap&amp;lt;String, String&amp;gt;();
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public UTPasswordCallback() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;passwords.put(&amp;quot;Alice&amp;quot;, &amp;quot;ecilA&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;passwords.put(&amp;quot;abcd&amp;quot;, &amp;quot;dcba&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Here, we attempt to get the password from the private
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * alias/passwords map.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; callbacks.length; i++) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WSPasswordCallback pc = (WSPasswordCallback)callbacks[i];
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String pass = passwords.get(pc.getIdentifier());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (pass != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pc.setPassword(pass);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Password not found
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IOException();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Add an alias/password pair to the callback mechanism.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setAliasPassword(String alias, String password) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;passwords.put(alias, password);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/UTPasswordCallback.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/UTPasswordCallback.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/wssec.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/wssec.xml?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/wssec.xml?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/wssec.xml (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/wssec.xml Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,105 @@
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+ &amp;nbsp;Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ &amp;nbsp;or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ &amp;nbsp;distributed with this work for additional information
&lt;br&gt;+ &amp;nbsp;regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ &amp;nbsp;to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ &amp;nbsp;&amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ &amp;nbsp;with the License. You may obtain a copy of the License at
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ &amp;nbsp;software distributed under the License is distributed on an
&lt;br&gt;+ &amp;nbsp;&amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ &amp;nbsp;KIND, either express or implied. See the License for the
&lt;br&gt;+ &amp;nbsp;specific language governing permissions and limitations
&lt;br&gt;+ &amp;nbsp;under the License.
&lt;br&gt;+--&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;!-- 
&lt;br&gt;+ &amp;nbsp;** This file configures the Cherry Server.
&lt;br&gt;+ --&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;beans xmlns=&amp;quot;&lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp;xmlns:cxf=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/core&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/core&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp;xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp;xmlns:sec=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/configuration/security&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/configuration/security&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp;xmlns:http=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/transports/http/configuration&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/transports/http/configuration&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp;xmlns:httpj=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/transports/http-jetty/configuration&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/transports/http-jetty/configuration&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp;xmlns:jaxws=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxws&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp;xsi:schemaLocation=&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/core&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/core&lt;/a&gt;&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/schemas/core.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/core.xsd&lt;/a&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/configuration/security&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/configuration/security&lt;/a&gt;&amp;nbsp; 		 &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/schemas/configuration/security.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/configuration/security.xsd&lt;/a&gt;&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxws&lt;/a&gt;&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/schemas/jaxws.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/jaxws.xsd&lt;/a&gt;&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/transports/http/configuration&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/transports/http/configuration&lt;/a&gt;&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/schemas/configuration/http-conf.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/configuration/http-conf.xsd&lt;/a&gt;&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/transports/http-jetty/configuration&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/transports/http-jetty/configuration&lt;/a&gt;&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/schemas/configuration/http-jetty.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/configuration/http-jetty.xsd&lt;/a&gt;&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.springframework.org/schema/beans/spring-beans-2.0.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans/spring-beans-2.0.xsd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;cxf:bus&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;cxf:features&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;cxf:logging/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/cxf:features&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/cxf:bus&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;&amp;lt;!--
&lt;br&gt;+ &amp;nbsp;&amp;lt;http:destination name=&amp;quot;{&lt;a href=&quot;http://apache.org/hello_world_soap_http&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://apache.org/hello_world_soap_http&lt;/a&gt;}GreeterPort.http-destination&amp;quot;&amp;gt; 
&lt;br&gt;+ &amp;nbsp;&amp;lt;/http:destination&amp;gt;
&lt;br&gt;+ &amp;nbsp;--&amp;gt;
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;&amp;lt;jaxws:endpoint id=&amp;quot;server&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;endpointName=&amp;quot;s:SoapPort&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;serviceName=&amp;quot;s:SOAPService&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;implementor=&amp;quot;demo.wssec.server.GreeterImpl&amp;quot; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;address=&amp;quot;&lt;a href=&quot;https://localhost:9001/SoapContext/SoapPort&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://localhost:9001/SoapContext/SoapPort&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;wsdlLocation=&amp;quot;wsdl/hello_world.wsdl&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;depends-on=&amp;quot;ClientAuthHttpsSettings&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns:s=&amp;quot;&lt;a href=&quot;http://apache.org/hello_world_soap_http&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://apache.org/hello_world_soap_http&lt;/a&gt;&amp;quot; &amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;jaxws:properties&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;entry key=&amp;quot;ws-security.callback-handler&amp;quot; value=&amp;quot;demo.wssec.server.UTPasswordCallback&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;!--&amp;lt;entry key=&amp;quot;passwordCallbackRef&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;ref bean=&amp;quot;myPasswordCallback&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/entry&amp;gt;--&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/jaxws:properties&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/jaxws:endpoint&amp;gt;
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;&amp;lt;!--
&lt;br&gt;+ &amp;nbsp;&amp;lt;bean id=&amp;quot;myPasswordCallback&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;class=&amp;quot;demo.hw_https.server.UTPasswordCallback&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp;--&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;&amp;lt;httpj:engine-factory id=&amp;quot;ClientAuthHttpsSettings&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;lt;httpj:engine port=&amp;quot;9001&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;httpj:tlsServerParameters&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sec:keyManagers keyPassword=&amp;quot;password&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;sec:keyStore type=&amp;quot;JKS&amp;quot; password=&amp;quot;password&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;file=&amp;quot;certs/cherry.jks&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/sec:keyManagers&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sec:trustManagers&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sec:keyStore type=&amp;quot;JKS&amp;quot; password=&amp;quot;password&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; file=&amp;quot;certs/truststore.jks&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/sec:trustManagers&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sec:cipherSuitesFilter&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;!-- these filters ensure that a ciphersuite with
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;export-suitable or null encryption is used,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;but exclude anonymous Diffie-Hellman key change as
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this is vulnerable to man-in-the-middle attacks --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sec:include&amp;gt;.*_EXPORT_.*&amp;lt;/sec:include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sec:include&amp;gt;.*_EXPORT1024_.*&amp;lt;/sec:include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sec:include&amp;gt;.*_WITH_DES_.*&amp;lt;/sec:include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sec:include&amp;gt;.*_WITH_NULL_.*&amp;lt;/sec:include&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sec:exclude&amp;gt;.*_DH_anon_.*&amp;lt;/sec:exclude&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/sec:cipherSuitesFilter&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sec:clientAuthentication want=&amp;quot;true&amp;quot; required=&amp;quot;true&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/httpj:tlsServerParameters&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;lt;/httpj:engine&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/httpj:engine-factory&amp;gt;
&lt;br&gt;+&amp;lt;/beans&amp;gt;
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/wssec.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/wssec.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/wssec.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/xml
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world.wsdl
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world.wsdl?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world.wsdl?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world.wsdl (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world.wsdl Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,106 @@
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+ &amp;nbsp;Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ &amp;nbsp;or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ &amp;nbsp;distributed with this work for additional information
&lt;br&gt;+ &amp;nbsp;regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ &amp;nbsp;to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ &amp;nbsp;&amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ &amp;nbsp;with the License. You may obtain a copy of the License at
&lt;br&gt;+ 
&lt;br&gt;+ &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ 
&lt;br&gt;+ &amp;nbsp;Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ &amp;nbsp;software distributed under the License is distributed on an
&lt;br&gt;+ &amp;nbsp;&amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ &amp;nbsp;KIND, either express or implied. See the License for the
&lt;br&gt;+ &amp;nbsp;specific language governing permissions and limitations
&lt;br&gt;+ &amp;nbsp;under the License.
&lt;br&gt;+--&amp;gt;
&lt;br&gt;+&amp;lt;wsdl:definitions name=&amp;quot;HelloWorld&amp;quot; targetNamespace=&amp;quot;&lt;a href=&quot;http://apache.org/hello_world_soap_http&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://apache.org/hello_world_soap_http&lt;/a&gt;&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/wsdl/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/wsdl/&lt;/a&gt;&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns:soap=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/wsdl/soap/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/wsdl/soap/&lt;/a&gt;&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns:tns=&amp;quot;&lt;a href=&quot;http://apache.org/hello_world_soap_http&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://apache.org/hello_world_soap_http&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns:x1=&amp;quot;&lt;a href=&quot;http://apache.org/hello_world_soap_http/types&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://apache.org/hello_world_soap_http/types&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns:wsdl=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/wsdl/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/wsdl/&lt;/a&gt;&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns:xsd=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:types&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;schema targetNamespace=&amp;quot;&lt;a href=&quot;http://apache.org/hello_world_soap_http/types&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://apache.org/hello_world_soap_http/types&lt;/a&gt;&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema&lt;/a&gt;&amp;quot;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;xmlns:tns=&amp;quot;&lt;a href=&quot;http://apache.org/hello_world_soap_http/types&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://apache.org/hello_world_soap_http/types&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;elementFormDefault=&amp;quot;qualified&amp;quot;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;&amp;lt;simpleType name=&amp;quot;MyStringType&amp;quot;&amp;gt;
&lt;br&gt;+		&amp;lt;restriction base=&amp;quot;string&amp;quot;&amp;gt;
&lt;br&gt;+		 &amp;nbsp; &amp;nbsp;&amp;lt;maxLength value=&amp;quot;30&amp;quot; /&amp;gt;
&lt;br&gt;+		&amp;lt;/restriction&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;&amp;lt;/simpleType&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;element name=&amp;quot;greetMe&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;complexType&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sequence&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;element name=&amp;quot;requestType&amp;quot; type=&amp;quot;tns:MyStringType&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/sequence&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/complexType&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/element&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;element name=&amp;quot;greetMeResponse&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;complexType&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sequence&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;element name=&amp;quot;responseType&amp;quot; type=&amp;quot;string&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/sequence&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/complexType&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/element&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/schema&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:types&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:message name=&amp;quot;greetMeRequest&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:part element=&amp;quot;x1:greetMe&amp;quot; name=&amp;quot;in&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:message&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:message name=&amp;quot;greetMeResponse&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:part element=&amp;quot;x1:greetMeResponse&amp;quot; name=&amp;quot;out&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:message&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:portType name=&amp;quot;Greeter&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:operation name=&amp;quot;greetMe&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:input message=&amp;quot;tns:greetMeRequest&amp;quot; name=&amp;quot;greetMeRequest&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:output message=&amp;quot;tns:greetMeResponse&amp;quot; name=&amp;quot;greetMeResponse&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:operation&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:portType&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:binding name=&amp;quot;Greeter_SOAPBinding&amp;quot; type=&amp;quot;tns:Greeter&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:binding style=&amp;quot;document&amp;quot; transport=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/soap/http&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/soap/http&lt;/a&gt;&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:operation name=&amp;quot;greetMe&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:operation soapAction=&amp;quot;&amp;quot; style=&amp;quot;document&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:input name=&amp;quot;greetMeRequest&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:body use=&amp;quot;literal&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:input&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:output name=&amp;quot;greetMeResponse&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:body use=&amp;quot;literal&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:output&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:operation&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:binding&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:service name=&amp;quot;SOAPService&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:port binding=&amp;quot;tns:Greeter_SOAPBinding&amp;quot; name=&amp;quot;SoapPort&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsp:PolicyReference xmlns:wsp=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/ws/2004/09/policy&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/ws/2004/09/policy&lt;/a&gt;&amp;quot; URI=&amp;quot;#UP_policy&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:address location=&amp;quot;&lt;a href=&quot;https://localhost:9001/SoapContext/SoapPort&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://localhost:9001/SoapContext/SoapPort&lt;/a&gt;&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:port&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:service&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsp:Policy wsu:Id=&amp;quot;UP_policy&amp;quot; xmlns:wsp=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/ws/2004/09/policy&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/ws/2004/09/policy&lt;/a&gt;&amp;quot; xmlns:wsu=&amp;quot;&lt;a href=&quot;http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;sp:TransportBinding xmlns:sp=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/ws/2005/07/securitypolicy&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/ws/2005/07/securitypolicy&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsp:Policy&amp;gt;&amp;lt;sp:TransportToken&amp;gt;&amp;lt;wsp:Policy&amp;gt;&amp;lt;sp:HttpsToken/&amp;gt;&amp;lt;/wsp:Policy&amp;gt;&amp;lt;/sp:TransportToken&amp;gt;&amp;lt;sp:Layout&amp;gt;&amp;lt;wsp:Policy&amp;gt;&amp;lt;sp:Strict/&amp;gt;&amp;lt;/wsp:Policy&amp;gt;&amp;lt;/sp:Layout&amp;gt;&amp;lt;sp:AlgorithmSuite&amp;gt;&amp;lt;wsp:Policy&amp;gt;&amp;lt;sp:Basic128/&amp;gt;&amp;lt;/wsp:Policy&amp;gt;&amp;lt;/sp:AlgorithmSuite&amp;gt;&amp;lt;/wsp:Policy&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/sp:TransportBinding&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;sp:SupportingTokens xmlns:sp=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/ws/2005/07/securitypolicy&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/ws/2005/07/securitypolicy&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsp:Policy&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;sp:UsernameToken xmlns:sp=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/ws/2005/07/securitypolicy&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/ws/2005/07/securitypolicy&lt;/a&gt;&amp;quot; sp:IncludeToken=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Always&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Always&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsp:Policy&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;sp:WssUsernameToken11/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsp:Policy&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/sp:UsernameToken&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsp:Policy&amp;gt;&amp;lt;/sp:SupportingTokens&amp;gt;&amp;lt;/wsp:Policy&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+&amp;lt;/wsdl:definitions&amp;gt;
&lt;br&gt;+
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world.wsdl
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world.wsdl
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world.wsdl
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/xml
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world_no_policy.wsdl
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world_no_policy.wsdl?rev=887328&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world_no_policy.wsdl?rev=887328&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world_no_policy.wsdl (added)
&lt;br&gt;+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world_no_policy.wsdl Fri Dec &amp;nbsp;4 19:28:17 2009
&lt;br&gt;@@ -0,0 +1,93 @@
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+ &amp;nbsp;Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ &amp;nbsp;or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ &amp;nbsp;distributed with this work for additional information
&lt;br&gt;+ &amp;nbsp;regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ &amp;nbsp;to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ &amp;nbsp;&amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ &amp;nbsp;with the License. You may obtain a copy of the License at
&lt;br&gt;+ 
&lt;br&gt;+ &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ 
&lt;br&gt;+ &amp;nbsp;Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ &amp;nbsp;software distributed under the License is distributed on an
&lt;br&gt;+ &amp;nbsp;&amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ &amp;nbsp;KIND, either express or implied. See the License for the
&lt;br&gt;+ &amp;nbsp;specific language governing permissions and limitations
&lt;br&gt;+ &amp;nbsp;under the License.
&lt;br&gt;+--&amp;gt;
&lt;br&gt;+&amp;lt;wsdl:definitions name=&amp;quot;HelloWorld&amp;quot; targetNamespace=&amp;quot;&lt;a href=&quot;http://apache.org/hello_world_soap_http&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://apache.org/hello_world_soap_http&lt;/a&gt;&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/wsdl/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/wsdl/&lt;/a&gt;&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns:soap=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/wsdl/soap/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/wsdl/soap/&lt;/a&gt;&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns:tns=&amp;quot;&lt;a href=&quot;http://apache.org/hello_world_soap_http&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://apache.org/hello_world_soap_http&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns:x1=&amp;quot;&lt;a href=&quot;http://apache.org/hello_world_soap_http/types&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://apache.org/hello_world_soap_http/types&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns:wsdl=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/wsdl/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/wsdl/&lt;/a&gt;&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns:xsd=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:types&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;schema targetNamespace=&amp;quot;&lt;a href=&quot;http://apache.org/hello_world_soap_http/types&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://apache.org/hello_world_soap_http/types&lt;/a&gt;&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema&lt;/a&gt;&amp;quot;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;xmlns:tns=&amp;quot;&lt;a href=&quot;http://apache.org/hello_world_soap_http/types&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://apache.org/hello_world_soap_http/types&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;elementFormDefault=&amp;quot;qualified&amp;quot;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;&amp;lt;simpleType name=&amp;quot;MyStringType&amp;quot;&amp;gt;
&lt;br&gt;+		&amp;lt;restriction base=&amp;quot;string&amp;quot;&amp;gt;
&lt;br&gt;+		 &amp;nbsp; &amp;nbsp;&amp;lt;maxLength value=&amp;quot;30&amp;quot; /&amp;gt;
&lt;br&gt;+		&amp;lt;/restriction&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;&amp;lt;/simpleType&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;element name=&amp;quot;greetMe&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;complexType&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sequence&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;element name=&amp;quot;requestType&amp;quot; type=&amp;quot;tns:MyStringType&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/sequence&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/complexType&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/element&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;element name=&amp;quot;greetMeResponse&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;complexType&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;sequence&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;element name=&amp;quot;responseType&amp;quot; type=&amp;quot;string&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/sequence&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/complexType&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/element&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/schema&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:types&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:message name=&amp;quot;greetMeRequest&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:part element=&amp;quot;x1:greetMe&amp;quot; name=&amp;quot;in&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:message&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:message name=&amp;quot;greetMeResponse&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:part element=&amp;quot;x1:greetMeResponse&amp;quot; name=&amp;quot;out&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:message&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:portType name=&amp;quot;Greeter&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:operation name=&amp;quot;greetMe&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:input message=&amp;quot;tns:greetMeRequest&amp;quot; name=&amp;quot;greetMeRequest&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:output message=&amp;quot;tns:greetMeResponse&amp;quot; name=&amp;quot;greetMeResponse&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:operation&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:portType&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:binding name=&amp;quot;Greeter_SOAPBinding&amp;quot; type=&amp;quot;tns:Greeter&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:binding style=&amp;quot;document&amp;quot; transport=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/soap/http&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/soap/http&lt;/a&gt;&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:operation name=&amp;quot;greetMe&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:operation soapAction=&amp;quot;&amp;quot; style=&amp;quot;document&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:input name=&amp;quot;greetMeRequest&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:body use=&amp;quot;literal&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:input&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:output name=&amp;quot;greetMeResponse&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:body use=&amp;quot;literal&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:output&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:operation&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:binding&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:service name=&amp;quot;SOAPService&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:port binding=&amp;quot;tns:Greeter_SOAPBinding&amp;quot; name=&amp;quot;SoapPort&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:address location=&amp;quot;&lt;a href=&quot;https://localhost:9001/SoapContext/SoapPort&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://localhost:9001/SoapContext/SoapPort&lt;/a&gt;&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:port&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:service&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+&amp;lt;/wsdl:definitions&amp;gt;
&lt;br&gt;+
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world_no_policy.wsdl
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world_no_policy.wsdl
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world_no_policy.wsdl
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/xml
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r887328--2-2----in--cxf-trunk-distribution-src-main-release-samples-ws_security-ut_policy%3A-.--bin--certs--certs-demoCA--certs-demoCA-newcerts--src--src-demo--src-demo-wssec--src-demo-wssec-client--src-demo-wssec-resources--src-demo-wssec-se...-tp26647928p26647928.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26647285</id>
	<title>svn commit: r887317 - in /cxf/trunk: rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ rt/frontend/jaxrs/src/main/java/...</title>
	<published>2009-12-04T10:46:08Z</published>
	<updated>2009-12-04T10:46:08Z</updated>
	<author>
		<name>sergeyb</name>
	</author>
	<content type="html">Author: sergeyb
&lt;br&gt;Date: Fri Dec &amp;nbsp;4 18:46:07 2009
&lt;br&gt;New Revision: 887317
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=887317&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=887317&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Adding AtomPojoProvider plus few minor fixes
&lt;br&gt;&lt;br&gt;Added:
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractAtomElementBuilder.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractEntryBuilder.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractFeedBuilder.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementReader.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementWriter.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AtomPojoProvider.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/AtomPojoProviderTest.java &amp;nbsp; (with props)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/servers.xml &amp;nbsp; (with props)
&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/HttpServletResponseFilter.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreSoapRestImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSSoapBookTest.java
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java?rev=887317&amp;r1=887316&amp;r2=887317&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java?rev=887317&amp;r1=887316&amp;r2=887317&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java (original)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java Fri Dec &amp;nbsp;4 18:46:07 2009
&lt;br&gt;@@ -371,7 +371,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;InputStream inputStream = (InputStream)r.getEntity();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (inputStream == null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return cls == Response.class ? cls : null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return cls == Response.class ? r : null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int status = conn.getResponseCode();
&lt;br&gt;@@ -379,7 +379,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object length = r.getMetadata().getFirst(HttpHeaders.CONTENT_LENGTH);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (length == null || Integer.parseInt(length.toString()) == 0
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|| status &amp;gt;= 400) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return cls == Response.class ? cls : null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return cls == Response.class ? r : cls == InputStream.class ? inputStream : null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IOException ex) {
&lt;br&gt;@@ -550,7 +550,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;m.put(Message.CONTENT_TYPE, headers.getFirst(HttpHeaders.CONTENT_TYPE));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Exchange exchange = new ExchangeImpl();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;exchange.setSynchronous(true);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;exchange.setOutMessage(m);
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java?rev=887317&amp;r1=887316&amp;r2=887317&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java?rev=887317&amp;r1=887316&amp;r2=887317&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java (original)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java Fri Dec &amp;nbsp;4 18:46:07 2009
&lt;br&gt;@@ -302,7 +302,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param memberClass expected type of collection member class
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return typed collection
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public &amp;lt;T&amp;gt; Collection&amp;lt;T&amp;gt; invokeAndGetCollection(String httpMethod, Object body, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public &amp;lt;T&amp;gt; Collection&amp;lt;? extends T&amp;gt; invokeAndGetCollection(String httpMethod, Object body, 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Class&amp;lt;T&amp;gt; memberClass) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Response r = doInvoke(httpMethod, body, Collection.class, memberClass);
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractAtomElementBuilder.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractAtomElementBuilder.java?rev=887317&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractAtomElementBuilder.java?rev=887317&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractAtomElementBuilder.java (added)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractAtomElementBuilder.java Fri Dec &amp;nbsp;4 18:46:07 2009
&lt;br&gt;@@ -0,0 +1,120 @@
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.cxf.jaxrs.ext.atom;
&lt;br&gt;+
&lt;br&gt;+import java.util.List;
&lt;br&gt;+import java.util.Map;
&lt;br&gt;+
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.MessageContext;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * A callback-style provider which can be used to map an object to Atom Feed or Entry
&lt;br&gt;+ * without having to deal directly with types representing Atom feeds or entries
&lt;br&gt;+ * 
&lt;br&gt;+ * @param &amp;lt;T&amp;gt; Type of objects which will be mapped to feeds or entries
&lt;br&gt;+ */
&lt;br&gt;+public abstract class AbstractAtomElementBuilder&amp;lt;T&amp;gt; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private MessageContext mc;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Sets MessageContext
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param context message context
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setMessageContext(MessageContext context) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mc = context;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * returns MessageContext
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return message context
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public MessageContext getMessageContext() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return mc;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param pojo Object which is being mapped
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return element title
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getTitle(T pojo) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param pojo Object which is being mapped
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return element author
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getAuthor(T pojo) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param pojo Object which is being mapped
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return element id
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getId(T pojo) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param pojo Object which is being mapped
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return base uri
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getBaseUri(T pojo) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param pojo Object which is being mapped
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return element updated date
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getUpdated(T pojo) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param pojo Object which is being mapped
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return element categories
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public List&amp;lt;String&amp;gt; getCategories(T pojo) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;//CHECKSTYLE:OFF
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Returns a map of link URI to link relations type pairs 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * See {@link &amp;lt;a href=&amp;quot;&lt;a href=&quot;http://www.iana.org/assignments/link-relations/link-relations.xml&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.iana.org/assignments/link-relations/link-relations.xml&lt;/a&gt;&amp;quot;&amp;gt;Atom Link Relations&amp;lt;/a&amp;gt;}.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param pojo Object which is being mapped
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return the map of link URI to link relations type pairs 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;//CHECKSTYLE:ON
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public Map&amp;lt;String, String&amp;gt; getLinks(T pojo) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractAtomElementBuilder.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractAtomElementBuilder.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractEntryBuilder.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractEntryBuilder.java?rev=887317&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractEntryBuilder.java?rev=887317&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractEntryBuilder.java (added)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractEntryBuilder.java Fri Dec &amp;nbsp;4 18:46:07 2009
&lt;br&gt;@@ -0,0 +1,45 @@
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.cxf.jaxrs.ext.atom;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * A callback-style provider which can be used to map an object to Atom Entry
&lt;br&gt;+ * without having to deal directly with types representing Atom entries
&lt;br&gt;+ * 
&lt;br&gt;+ * @param &amp;lt;T&amp;gt; Type of objects which will be mapped to entries
&lt;br&gt;+ */
&lt;br&gt;+public abstract class AbstractEntryBuilder&amp;lt;T&amp;gt; extends AbstractAtomElementBuilder&amp;lt;T&amp;gt; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param pojo Object which is being mapped
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return element publication date
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getPublished(T pojo) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param pojo Object which is being mapped
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return element summary
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getSummary(T pojo) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractEntryBuilder.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractEntryBuilder.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractFeedBuilder.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractFeedBuilder.java?rev=887317&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractFeedBuilder.java?rev=887317&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractFeedBuilder.java (added)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractFeedBuilder.java Fri Dec &amp;nbsp;4 18:46:07 2009
&lt;br&gt;@@ -0,0 +1,48 @@
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.cxf.jaxrs.ext.atom;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * A callback-style provider which can be used to map an object to Atom Feed
&lt;br&gt;+ * without having to deal directly with types representing Atom feeds
&lt;br&gt;+ * 
&lt;br&gt;+ * @param &amp;lt;T&amp;gt; Type of objects which will be mapped to feeds or entries
&lt;br&gt;+ */
&lt;br&gt;+public abstract class AbstractFeedBuilder&amp;lt;T&amp;gt; extends AbstractAtomElementBuilder&amp;lt;T&amp;gt; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param pojo Object which is being mapped
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return feed icon uri
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getIcon(T pojo) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param pojo Object which is being mapped
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return feed logo uri
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getLogo(T pojo) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractFeedBuilder.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractFeedBuilder.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementReader.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementReader.java?rev=887317&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementReader.java?rev=887317&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementReader.java (added)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementReader.java Fri Dec &amp;nbsp;4 18:46:07 2009
&lt;br&gt;@@ -0,0 +1,39 @@
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.cxf.jaxrs.ext.atom;
&lt;br&gt;+
&lt;br&gt;+import org.apache.abdera.model.Element;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.MessageContext;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * A callback-style interface which can be used to deserialize an Atom Feed or Entry into a custom object
&lt;br&gt;+ * without having to introduce direct dependencies on Abdera API in the 'main' service code &amp;nbsp;
&lt;br&gt;+ * 
&lt;br&gt;+ * @param &amp;lt;T&amp;gt; Type of Atom element, Feed or Entry
&lt;br&gt;+ * @param &amp;lt;E&amp;gt; Type of objects which will be deseriaized from feed or entry
&lt;br&gt;+ * &amp;nbsp;
&lt;br&gt;+ */
&lt;br&gt;+public interface AtomElementReader&amp;lt;T extends Element, E&amp;gt; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param element Feed or Entry instance 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param context current MessageContext
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return pojoElement 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;E readFrom(T element, MessageContext mc);
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementReader.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementReader.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementWriter.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementWriter.java?rev=887317&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementWriter.java?rev=887317&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementWriter.java (added)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementWriter.java Fri Dec &amp;nbsp;4 18:46:07 2009
&lt;br&gt;@@ -0,0 +1,40 @@
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.cxf.jaxrs.ext.atom;
&lt;br&gt;+
&lt;br&gt;+import org.apache.abdera.model.Element;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.MessageContext;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * A callback-style interface which can be used to map an object to an Atom Feed or Entry
&lt;br&gt;+ * without having to introduce direct dependencies on Abdera API in the 'main' service code &amp;nbsp;
&lt;br&gt;+ * 
&lt;br&gt;+ * @param &amp;lt;T&amp;gt; Type of Atom element, Feed or Entry
&lt;br&gt;+ * @param &amp;lt;E&amp;gt; Type of objects which will be mapped to feed or entry
&lt;br&gt;+ * &amp;nbsp;
&lt;br&gt;+ */
&lt;br&gt;+public interface AtomElementWriter&amp;lt;T extends Element, E&amp;gt; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param element Feed or Entry instance 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param pojoElement An object which needs to be mapped to the feed or entry
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param context modifiable output headers
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param context MessageContext which can be used for adding properties related to the current URI, etc
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;void writeTo(T element, E pojoElement, MessageContext mc);
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementWriter.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementWriter.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/HttpServletResponseFilter.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/HttpServletResponseFilter.java?rev=887317&amp;r1=887316&amp;r2=887317&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/HttpServletResponseFilter.java?rev=887317&amp;r1=887316&amp;r2=887317&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/HttpServletResponseFilter.java (original)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/HttpServletResponseFilter.java Fri Dec &amp;nbsp;4 18:46:07 2009
&lt;br&gt;@@ -19,6 +19,9 @@
&lt;br&gt;&amp;nbsp;package org.apache.cxf.jaxrs.impl;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import java.io.IOException;
&lt;br&gt;+import java.util.ArrayList;
&lt;br&gt;+import java.util.List;
&lt;br&gt;+import java.util.Map;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.servlet.ServletOutputStream;
&lt;br&gt;&amp;nbsp;import javax.servlet.http.HttpServletResponse;
&lt;br&gt;@@ -45,4 +48,29 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new ServletOutputStreamFilter(super.getOutputStream(), m);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setHeader(String name, String value) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setHeaderInternal(name, value, false);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void addHeader(String name, String value) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setHeaderInternal(name, value, true);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private void setHeaderInternal(String name, String value, boolean add) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;String, List&amp;lt;String&amp;gt;&amp;gt; headers = 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(Map&amp;lt;String, List&amp;lt;String&amp;gt;&amp;gt;)m.get(Message.PROTOCOL_HEADERS);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;String&amp;gt; values = headers.get(name);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (values == null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;values = new ArrayList&amp;lt;String&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;headers.put(name, values);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!add) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;values.clear();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;values.add(value);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java?rev=887317&amp;r1=887316&amp;r2=887317&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java?rev=887317&amp;r1=887316&amp;r2=887317&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java (original)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java Fri Dec &amp;nbsp;4 18:46:07 2009
&lt;br&gt;@@ -232,10 +232,19 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LOG.fine(&amp;quot;Response content type is: &amp;quot; + responseType.toString());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;message.put(Message.CONTENT_TYPE, responseType.toString());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Annotation[] annotations = invoked != null ? invoked.getAnnotations() : new Annotation[]{};
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;long size = writer.getSize(entity, targetType, genericType, annotations, responseType);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (size &amp;gt; 0) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LOG.fine(&amp;quot;Setting ContentLength to &amp;quot; + size + &amp;quot; as requested by &amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + writer.getClass().getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;responseHeaders.putSingle(HttpHeaders.CONTENT_LENGTH, Long.toString(size));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LOG.fine(&amp;quot;Response EntityProvider is: &amp;quot; + writer.getClass().getName());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;writer.writeTo(entity, targetType, genericType, 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; invoked != null ? invoked.getAnnotations() : new Annotation[]{}, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; annotations, 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; responseType, 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; responseHeaders, 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; message.getContent(OutputStream.class));
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AtomPojoProvider.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AtomPojoProvider.java?rev=887317&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AtomPojoProvider.java?rev=887317&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AtomPojoProvider.java (added)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AtomPojoProvider.java Fri Dec &amp;nbsp;4 18:46:07 2009
&lt;br&gt;@@ -0,0 +1,509 @@
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.cxf.jaxrs.provider;
&lt;br&gt;+
&lt;br&gt;+import java.io.IOException;
&lt;br&gt;+import java.io.InputStream;
&lt;br&gt;+import java.io.OutputStream;
&lt;br&gt;+import java.io.StringReader;
&lt;br&gt;+import java.io.StringWriter;
&lt;br&gt;+import java.lang.annotation.Annotation;
&lt;br&gt;+import java.lang.reflect.Method;
&lt;br&gt;+import java.lang.reflect.Type;
&lt;br&gt;+import java.util.ArrayList;
&lt;br&gt;+import java.util.Collection;
&lt;br&gt;+import java.util.Collections;
&lt;br&gt;+import java.util.Date;
&lt;br&gt;+import java.util.List;
&lt;br&gt;+import java.util.Map;
&lt;br&gt;+import java.util.UUID;
&lt;br&gt;+import java.util.logging.Logger;
&lt;br&gt;+
&lt;br&gt;+import javax.ws.rs.Consumes;
&lt;br&gt;+import javax.ws.rs.Produces;
&lt;br&gt;+import javax.ws.rs.WebApplicationException;
&lt;br&gt;+import javax.ws.rs.core.Context;
&lt;br&gt;+import javax.ws.rs.core.MediaType;
&lt;br&gt;+import javax.ws.rs.core.MultivaluedMap;
&lt;br&gt;+import javax.ws.rs.core.Response;
&lt;br&gt;+import javax.ws.rs.ext.MessageBodyReader;
&lt;br&gt;+import javax.ws.rs.ext.MessageBodyWriter;
&lt;br&gt;+import javax.ws.rs.ext.Provider;
&lt;br&gt;+import javax.xml.bind.JAXBContext;
&lt;br&gt;+import javax.xml.bind.Unmarshaller;
&lt;br&gt;+
&lt;br&gt;+import org.apache.abdera.Abdera;
&lt;br&gt;+import org.apache.abdera.factory.Factory;
&lt;br&gt;+import org.apache.abdera.model.Content;
&lt;br&gt;+import org.apache.abdera.model.Element;
&lt;br&gt;+import org.apache.abdera.model.Entry;
&lt;br&gt;+import org.apache.abdera.model.ExtensibleElement;
&lt;br&gt;+import org.apache.abdera.model.Feed;
&lt;br&gt;+import org.apache.abdera.writer.Writer;
&lt;br&gt;+import org.apache.cxf.common.logging.LogUtils;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.MessageContext;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.atom.AbstractAtomElementBuilder;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.atom.AbstractEntryBuilder;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.atom.AbstractFeedBuilder;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.atom.AtomElementReader;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.atom.AtomElementWriter;
&lt;br&gt;+import org.apache.cxf.jaxrs.utils.InjectionUtils;
&lt;br&gt;+
&lt;br&gt;+@Produces({&amp;quot;application/atom+xml&amp;quot;, &amp;quot;application/atom+xml;type=feed&amp;quot;, &amp;quot;application/atom+xml;type=entry&amp;quot; })
&lt;br&gt;+@Consumes({&amp;quot;application/atom+xml&amp;quot;, &amp;quot;application/atom+xml;type=feed&amp;quot;, &amp;quot;application/atom+xml;type=entry&amp;quot; })
&lt;br&gt;+@Provider
&lt;br&gt;+public class AtomPojoProvider extends AbstractConfigurableProvider
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;implements MessageBodyWriter&amp;lt;Object&amp;gt;, MessageBodyReader&amp;lt;Object&amp;gt; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final Logger LOG = LogUtils.getL7dLogger(AtomPojoProvider.class);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final Abdera ATOM_ENGINE = new Abdera();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private JAXBElementProvider jaxbProvider = new JAXBElementProvider();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private Map&amp;lt;String, String&amp;gt; collectionGetters = Collections.emptyMap();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private Map&amp;lt;String, String&amp;gt; collectionSetters = Collections.emptyMap();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private Map&amp;lt;String, AtomElementWriter&amp;lt;?, ?&amp;gt;&amp;gt; atomWriters = Collections.emptyMap();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private Map&amp;lt;String, AtomElementReader&amp;lt;?, ?&amp;gt;&amp;gt; atomReaders = Collections.emptyMap();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private Map&amp;lt;String, AbstractAtomElementBuilder&amp;lt;?&amp;gt;&amp;gt; atomBuilders = Collections.emptyMap();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private MessageContext mc; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private boolean formattedOutput;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Context
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setMessageContext(MessageContext context) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mc = context;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (AbstractAtomElementBuilder builder : atomBuilders.values()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;builder.setMessageContext(context);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public long getSize(Object t, Class&amp;lt;?&amp;gt; type, Type genericType, Annotation[] annotations, MediaType mt) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return -1;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setCollectionGetters(Map&amp;lt;String, String&amp;gt; methods) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;collectionGetters = methods;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setCollectionSetters(Map&amp;lt;String, String&amp;gt; methods) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;collectionSetters = methods;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public boolean isWriteable(Class&amp;lt;?&amp;gt; type, Type genericType, Annotation[] annotations, MediaType mt) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return !Feed.class.isAssignableFrom(type) &amp;&amp; !Entry.class.isAssignableFrom(type);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void writeTo(Object o, Class&amp;lt;?&amp;gt; clazz, Type genericType, Annotation[] annotations, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MediaType mt, MultivaluedMap&amp;lt;String, Object&amp;gt; headers, OutputStream os)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws IOException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean isFeed = isFeedRequested(mt); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean isCollection = InjectionUtils.isSupportedCollectionOrArray(clazz);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (isFeed &amp;&amp; isCollection) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;reportError(&amp;quot;Atom feed can only be created from a collection wrapper&amp;quot;, null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (!isFeed &amp;&amp; isCollection) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;reportError(&amp;quot;Atom entry can only be created from a single object&amp;quot;, null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Element atomElement = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (isFeed &amp;&amp; !isCollection) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;atomElement = createFeedFromCollectionWrapper(o);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (!isFeed &amp;&amp; !isCollection) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;atomElement = createEntryFromObject(o, clazz);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new WebApplicationException(ex);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;writeAtomElement(atomElement, os);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (IOException ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;reportError(&amp;quot;Atom element can not be serialized&amp;quot;, ex);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private void writeAtomElement(Element atomElement, OutputStream os) throws IOException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (formattedOutput) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Writer w = ATOM_ENGINE.getWriterFactory().getWriter(&amp;quot;prettyxml&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;atomElement.writeTo(w, os);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;atomElement.writeTo(os);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setFormattedOutput(boolean formattedOutput) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.formattedOutput = formattedOutput;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected Feed createFeedFromCollectionWrapper(Object o) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Factory factory = Abdera.getNewFactory();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Feed feed = factory.newFeed();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean writerUsed = buildFeed(feed, o);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (feed.getEntries().size() &amp;gt; 0) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return feed;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String methodName = getCollectionMethod(o.getClass(), true);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object collection = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Method m = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;m = o.getClass().getMethod(methodName, new Class[]{});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;collection = m.invoke(o, new Object[]{});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;reportError(&amp;quot;Collection for &amp;quot; + o.getClass().getName() + &amp;quot; can not be retrieved&amp;quot;, ex);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setFeedFromCollection(factory, feed, o, collection, m.getReturnType(), m.getGenericReturnType(), 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;writerUsed);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return feed;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String getCollectionMethod(Class&amp;lt;?&amp;gt; cls, boolean getter) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;String, String&amp;gt; map = getter ? collectionGetters : collectionSetters; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String methodName = map.get(cls.getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (methodName == null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;methodName = (getter ? &amp;quot;get&amp;quot; : &amp;quot;set&amp;quot;) + cls.getSimpleName();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Class[] params = getter ? new Class[]{} : new Class[]{List.class};
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cls.getMethod(methodName, params);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String type = getter ? &amp;quot;getter&amp;quot; : &amp;quot;setter&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;reportError(&amp;quot;Collection &amp;quot; + type + &amp;quot; method for &amp;quot; + cls.getName()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; has not been specified and no default &amp;quot; + methodName + &amp;quot; is available&amp;quot;, null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return methodName;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected boolean buildFeed(Feed feed, Object o) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AtomElementWriter&amp;lt;?, ?&amp;gt; builder = atomWriters.get(o.getClass().getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (builder != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;((AtomElementWriter)builder).writeTo(feed, o, mc);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected void setFeedFromCollection(Factory factory, Feed feed, Object wrapper, Object collection,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Class&amp;lt;?&amp;gt; collectionCls, Type collectionType, boolean writerUsed) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object[] arr = collectionCls.isArray() ? (Object[])collection : ((Collection)collection).toArray();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Class&amp;lt;?&amp;gt; memberClass = InjectionUtils.getActualType(collectionType);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Object o : arr) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Entry entry = createEntryFromObject(o, memberClass);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;feed.addEntry(entry);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!writerUsed) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setFeedProperties(factory, feed, wrapper, collection, collectionCls, collectionType);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected void setFeedProperties(Factory factory, Feed feed, Object wrapper, Object collection, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Class&amp;lt;?&amp;gt; collectionCls, Type collectionType) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AbstractAtomElementBuilder&amp;lt;?&amp;gt; builder = atomBuilders.get(wrapper.getClass().getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (builder == null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setCommonElementProperties(factory, feed, builder, wrapper);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AbstractFeedBuilder theBuilder = (AbstractFeedBuilder)builder;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// the hierarchy is a bit broken in that we can not set author/title.etc on some
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// common Feed/Entry super type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String author = theBuilder.getAuthor(wrapper);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (author != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;feed.addAuthor(author);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;feed.addAuthor(&amp;quot;CXF JAX-RS&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String title = theBuilder.getTitle(wrapper);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (title != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;feed.setTitle(title);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;feed.setTitle(String.format(wrapper.getClass().getSimpleName()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot; collection with %d entry(ies)&amp;quot;, feed.getEntries().size()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String id = theBuilder.getId(wrapper);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (id != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;feed.setId(id);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;feed.setId(&amp;quot;uuid:&amp;quot; + UUID.randomUUID().toString());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String updated = theBuilder.getUpdated(wrapper);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (updated != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;feed.setUpdated(updated);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;feed.setUpdated(new Date());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;String, String&amp;gt; links = theBuilder.getLinks(wrapper);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (links != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Map.Entry&amp;lt;String, String&amp;gt; entry : links.entrySet()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;feed.addLink(entry.getKey(), entry.getValue());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;String&amp;gt; terms = theBuilder.getCategories(wrapper);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (terms != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (String term : terms) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;feed.addCategory(term);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// feed specific
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String logo = theBuilder.getLogo(wrapper);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (logo != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;feed.setLogo(logo);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String icon = theBuilder.getLogo(wrapper);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (icon != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;feed.setIcon(icon);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected Entry createEntryFromObject(Object o, Class&amp;lt;?&amp;gt; cls) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Factory factory = Abdera.getNewFactory();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Entry entry = factory.getAbdera().newEntry();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!buildEntry(entry, o)) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setEntryProperties(factory, entry, o, cls);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (entry.getContentElement() == null 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; entry.getExtensions().size() == 0) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;createEntryContent(entry, o, cls); &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return entry;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected boolean buildEntry(Entry entry, Object o) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AtomElementWriter&amp;lt;?, ?&amp;gt; builder = atomWriters.get(o.getClass().getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (builder != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;((AtomElementWriter)builder).writeTo(entry, o, mc);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected void createEntryContent(Entry e, Object o, Class&amp;lt;?&amp;gt; cls) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Factory factory = Abdera.getNewFactory();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JAXBContext jc = jaxbProvider.getJAXBContext(cls, cls);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringWriter writer = new StringWriter();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jc.createMarshaller().marshal(o, writer);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.setContentElement(factory.newContent());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.getContentElement().setContentType(Content.Type.XML);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.getContentElement().setValue(writer.toString());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected void setEntryProperties(Factory factory, Entry entry, Object o, Class&amp;lt;?&amp;gt; cls) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AbstractAtomElementBuilder&amp;lt;?&amp;gt; builder = atomBuilders.get(o.getClass().getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (builder == null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setCommonElementProperties(factory, entry, builder, o);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AbstractEntryBuilder theBuilder = (AbstractEntryBuilder)builder;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String author = theBuilder.getAuthor(o);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (author != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;entry.addAuthor(author);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;entry.addAuthor(&amp;quot;CXF JAX-RS&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String title = theBuilder.getTitle(o);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (title != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;entry.setTitle(title);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;entry.setTitle(o.getClass().getSimpleName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String id = theBuilder.getId(o);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (id != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;entry.setId(id);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;entry.setId(&amp;quot;uuid:&amp;quot; + UUID.randomUUID().toString());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String updated = theBuilder.getUpdated(o);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (updated != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;entry.setUpdated(updated);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;entry.setUpdated(new Date());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;String, String&amp;gt; links = theBuilder.getLinks(o);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (links != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Map.Entry&amp;lt;String, String&amp;gt; e : links.entrySet()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;entry.addLink(e.getKey(), e.getValue());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// entry specific
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String published = theBuilder.getPublished(o);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (published != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;entry.setPublished(published); &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String summary = theBuilder.getSummary(o);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (summary != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;entry.setSummary(summary); &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;String&amp;gt; terms = theBuilder.getCategories(o);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (terms != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (String term : terms) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;entry.addCategory(term);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private void setCommonElementProperties(Factory factory, ExtensibleElement element, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AbstractAtomElementBuilder builder,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object o) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String baseUri = builder.getBaseUri(o);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (baseUri != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;element.setBaseUri(baseUri);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private void reportError(String message, Exception ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LOG.warning(message);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Response response = Response.status(500).type(&amp;quot;text/plain&amp;quot;).entity(message).build();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ex == null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new WebApplicationException(response);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new WebApplicationException(ex, response);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private boolean isFeedRequested(MediaType mt) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (&amp;quot;entry&amp;quot;.equals(mt.getParameters().get(&amp;quot;type&amp;quot;))) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setAtomWriters(Map&amp;lt;String, AtomElementWriter&amp;lt;?, ?&amp;gt;&amp;gt; writers) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.atomWriters = writers;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setAtomReaders(Map&amp;lt;String, AtomElementReader&amp;lt;?, ?&amp;gt;&amp;gt; readers) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.atomReaders = readers;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setAtomBuilders(Map&amp;lt;String, AbstractAtomElementBuilder&amp;lt;?&amp;gt;&amp;gt; builders) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.atomBuilders = builders;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public boolean isReadable(Class&amp;lt;?&amp;gt; type, Type genericType, Annotation[] annotations, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MediaType mediaType) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public Object readFrom(Class&amp;lt;Object&amp;gt; cls, Type type, Annotation[] anns, MediaType mt, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MultivaluedMap&amp;lt;String, String&amp;gt; headers, InputStream is) 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws IOException, WebApplicationException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean isFeed = isFeedRequested(mt);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (isFeed) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return readFromFeed(cls, mt, headers, is);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Entry entry = new AtomEntryProvider().readFrom(Entry.class, Entry.class, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; new Annotation[]{}, mt, headers, is);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return readFromEntry(entry, cls, mt, headers, is);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private Object readFromFeed(Class&amp;lt;Object&amp;gt; cls, MediaType mt, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MultivaluedMap&amp;lt;String, String&amp;gt; headers, InputStream is) 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws IOException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AtomFeedProvider p = new AtomFeedProvider();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Feed feed = p.readFrom(Feed.class, Feed.class, new Annotation[]{}, mt, headers, is);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AtomElementReader&amp;lt;?, ?&amp;gt; reader = atomReaders.get(cls.getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (reader != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ((AtomElementReader)reader).readFrom(feed, mc);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object instance = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String methodName = getCollectionMethod(cls, false);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Method m = cls.getMethod(methodName, new Class[]{List.class});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Class&amp;lt;?&amp;gt; realCls = InjectionUtils.getActualType(m.getGenericParameterTypes()[0]);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Object&amp;gt; objects = new ArrayList&amp;lt;Object&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Entry e : feed.getEntries()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;objects.add(readFromEntry(e, realCls, mt, headers, is));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance = cls.newInstance();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;m.invoke(instance, new Object[]{objects});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;reportError(&amp;quot;Object of type &amp;quot; + cls.getName() + &amp;quot; can not be deserialized from Feed&amp;quot;, ex);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return instance;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private Object readFromEntry(Entry entry, Class&amp;lt;?&amp;gt; cls, MediaType mt, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MultivaluedMap&amp;lt;String, String&amp;gt; headers, InputStream is) 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws IOException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AtomElementReader&amp;lt;?, ?&amp;gt; reader = atomReaders.get(cls.getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (reader != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ((AtomElementReader)reader).readFrom(entry, mc);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Unmarshaller um = 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new JAXBElementProvider().getJAXBContext(cls, cls).createUnmarshaller();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return um.unmarshal(new StringReader(entry.getContent()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;reportError(&amp;quot;Object of type &amp;quot; + cls.getName() + &amp;quot; can not be deserialized from Entry&amp;quot;, ex);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AtomPojoProvider.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AtomPojoProvider.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java?rev=887317&amp;r1=887316&amp;r2=887317&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java?rev=887317&amp;r1=887316&amp;r2=887317&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java (original)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java Fri Dec &amp;nbsp;4 18:46:07 2009
&lt;br&gt;@@ -41,6 +41,7 @@
&lt;br&gt;&amp;nbsp;import javax.ws.rs.core.PathSegment;
&lt;br&gt;&amp;nbsp;import javax.ws.rs.core.UriInfo;
&lt;br&gt;&amp;nbsp;import javax.ws.rs.ext.MessageBodyWriter;
&lt;br&gt;+import javax.ws.rs.ext.Provider;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.apache.cxf.common.i18n.BundleUtils;
&lt;br&gt;&amp;nbsp;import org.apache.cxf.common.logging.LogUtils;
&lt;br&gt;@@ -48,6 +49,7 @@
&lt;br&gt;&amp;nbsp;import org.apache.cxf.transport.http.AbstractHTTPDestination;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;@Produces(&amp;quot;text/html&amp;quot;)
&lt;br&gt;+@Provider
&lt;br&gt;&amp;nbsp;public class RequestDispatcherProvider extends AbstractConfigurableProvider
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;implements MessageBodyWriter&amp;lt;Object&amp;gt; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/AtomPojoProviderTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/AtomPojoProviderTest.java?rev=887317&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/AtomPojoProviderTest.java?rev=887317&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/AtomPojoProviderTest.java (added)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/AtomPojoProviderTest.java Fri Dec &amp;nbsp;4 18:46:07 2009
&lt;br&gt;@@ -0,0 +1,269 @@
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.cxf.jaxrs.provider;
&lt;br&gt;+
&lt;br&gt;+import java.io.ByteArrayInputStream;
&lt;br&gt;+import java.io.ByteArrayOutputStream;
&lt;br&gt;+import java.io.StringReader;
&lt;br&gt;+import java.lang.annotation.Annotation;
&lt;br&gt;+import java.util.ArrayList;
&lt;br&gt;+import java.util.List;
&lt;br&gt;+
&lt;br&gt;+import javax.ws.rs.core.MediaType;
&lt;br&gt;+import javax.xml.bind.Unmarshaller;
&lt;br&gt;+import javax.xml.bind.annotation.XmlRootElement;
&lt;br&gt;+
&lt;br&gt;+import org.apache.abdera.model.Entry;
&lt;br&gt;+import org.apache.abdera.model.Feed;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.MessageContext;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.atom.AbstractEntryBuilder;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.atom.AbstractFeedBuilder;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.atom.AtomElementReader;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.atom.AtomElementWriter;
&lt;br&gt;+
&lt;br&gt;+import org.junit.Assert;
&lt;br&gt;+import org.junit.Before;
&lt;br&gt;+import org.junit.Test;
&lt;br&gt;+
&lt;br&gt;+import org.springframework.context.support.ClassPathXmlApplicationContext;
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+public class AtomPojoProviderTest extends Assert {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private ClassPathXmlApplicationContext ctx;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Before
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setUp() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctx = 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new ClassPathXmlApplicationContext(new String[] {&amp;quot;/org/apache/cxf/jaxrs/provider/servers.xml&amp;quot;});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testWriteFeedWithBuilders() throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AtomPojoProvider provider = (AtomPojoProvider)ctx.getBean(&amp;quot;atom&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(provider);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;provider.setFormattedOutput(true);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ByteArrayOutputStream bos = new ByteArrayOutputStream();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Books books = new Books();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Book&amp;gt; bs = new ArrayList&amp;lt;Book&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bs.add(new Book(&amp;quot;a&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bs.add(new Book(&amp;quot;b&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;books.setBooks(bs);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;provider.writeTo(books, Books.class, Books.class, new Annotation[]{},
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MediaType.valueOf(&amp;quot;application/atom+xml&amp;quot;), null, bos);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Feed feed = new AtomFeedProvider().readFrom(Feed.class, null, null, null, null, bis);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Books&amp;quot;, feed.getTitle()); 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Entry&amp;gt; entries = feed.getEntries();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(2, entries.size());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;verifyEntry(getEntry(entries, &amp;quot;a&amp;quot;), &amp;quot;a&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;verifyEntry(getEntry(entries, &amp;quot;b&amp;quot;), &amp;quot;b&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testWriteEntryWithBuilders() throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AtomPojoProvider provider = (AtomPojoProvider)ctx.getBean(&amp;quot;atom2&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(provider);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;provider.setFormattedOutput(true);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ByteArrayOutputStream bos = new ByteArrayOutputStream();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;provider.writeTo(new Book(&amp;quot;a&amp;quot;), Book.class, Book.class, new Annotation[]{},
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MediaType.valueOf(&amp;quot;application/atom+xml;type=entry&amp;quot;), null, bos);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Entry entry = new AtomEntryProvider().readFrom(Entry.class, null, null, null, null, bis);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;verifyEntry(entry, &amp;quot;a&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testReadEntryWithBuilders() throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AtomPojoProvider provider = (AtomPojoProvider)ctx.getBean(&amp;quot;atom3&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(provider);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;doTestReadEntry(provider);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testReadEntryWithoutBuilders() throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;doTestReadEntry(new AtomPojoProvider());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private void doTestReadEntry(AtomPojoProvider provider) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;provider.setFormattedOutput(true);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ByteArrayOutputStream bos = new ByteArrayOutputStream();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MediaType mt = MediaType.valueOf(&amp;quot;application/atom+xml;type=entry&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;provider.writeTo(new Book(&amp;quot;a&amp;quot;), Book.class, Book.class, new Annotation[]{}, mt, null, bos);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(bos.toString());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Book book = (Book)provider.readFrom((Class)Book.class, Book.class, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new Annotation[]{}, mt, null, bis);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;a&amp;quot;, book.getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testReadFeedWithBuilders() throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AtomPojoProvider provider = (AtomPojoProvider)ctx.getBean(&amp;quot;atom4&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(provider);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;doTestReadFeed(provider);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testReadFeedWithoutBuilders() throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AtomPojoProvider provider = new AtomPojoProvider();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;doTestReadFeed(provider);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private void doTestReadFeed(AtomPojoProvider provider) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ByteArrayOutputStream bos = new ByteArrayOutputStream();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MediaType mt = MediaType.valueOf(&amp;quot;application/atom+xml;type=feed&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Books books = new Books();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Book&amp;gt; bs = new ArrayList&amp;lt;Book&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bs.add(new Book(&amp;quot;a&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bs.add(new Book(&amp;quot;b&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;books.setBooks(bs);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;provider.writeTo(books, Books.class, Books.class, new Annotation[]{}, mt, null, bos);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Books books2 = (Books)provider.readFrom((Class)Books.class, Books.class, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new Annotation[]{}, mt, null, bis);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Book&amp;gt; list = books2.getBooks();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(2, list.size());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(&amp;quot;a&amp;quot;.equals(list.get(0).getName()) || &amp;quot;a&amp;quot;.equals(list.get(1).getName()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(&amp;quot;b&amp;quot;.equals(list.get(0).getName()) || &amp;quot;b&amp;quot;.equals(list.get(1).getName())); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private Entry getEntry(List&amp;lt;Entry&amp;gt; entries, String title) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Entry e : entries) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (title.equals(e.getTitle())) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return e;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private void verifyEntry(Entry e, String title) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(e);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(title, e.getTitle());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static class CustomFeedWriter implements AtomElementWriter&amp;lt;Feed, Books&amp;gt; {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void writeTo(Feed feed, Books pojoFeed, MessageContext context) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;feed.setTitle(&amp;quot;Books&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static class CustomEntryWriter implements AtomElementWriter&amp;lt;Entry, Book&amp;gt; {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void writeTo(Entry entry, Book pojoEntry, MessageContext context) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;entry.setTitle(pojoEntry.getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static class CustomEntryReader implements AtomElementReader&amp;lt;Entry, Book&amp;gt; {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Book readFrom(Entry element, MessageContext mc) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String s = element.getContent();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Unmarshaller um = 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new JAXBElementProvider().getJAXBContext(Book.class, Book.class).createUnmarshaller();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (Book)um.unmarshal(new StringReader(s));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception ex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// ignore
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static class CustomFeedReader implements AtomElementReader&amp;lt;Feed, Books&amp;gt; {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Books readFrom(Feed element, MessageContext mc) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Books books = new Books();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Book&amp;gt; list = new ArrayList&amp;lt;Book&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CustomEntryReader entryReader = new CustomEntryReader();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Entry e : element.getEntries()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;list.add(entryReader.readFrom(e, mc));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;books.setBooks(list);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return books;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static class CustomFeedBuilder extends AbstractFeedBuilder&amp;lt;Books&amp;gt; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public String getBaseUri(Books books) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return &amp;quot;&lt;a href=&quot;http://books&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://books&lt;/a&gt;&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static class CustomEntryBuilder extends AbstractEntryBuilder&amp;lt;Book&amp;gt; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public String getBaseUri(Book books) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return &amp;quot;&lt;a href=&quot;http://book&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://book&lt;/a&gt;&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@XmlRootElement
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static class Book {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private String name = &amp;quot;Book&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Book() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Book(String name) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.name = name;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void setName(String name) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.name = name;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public String getName() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return name;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@XmlRootElement
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static class Books {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private List&amp;lt;Book&amp;gt; books;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Books() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public List&amp;lt;Book&amp;gt; getBooks() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return books;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void setBooks(List&amp;lt;Book&amp;gt; list) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;books = list;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/AtomPojoProviderTest.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/AtomPojoProviderTest.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Added: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/servers.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/servers.xml?rev=887317&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/servers.xml?rev=887317&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/servers.xml (added)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/servers.xml Fri Dec &amp;nbsp;4 18:46:07 2009
&lt;br&gt;@@ -0,0 +1,84 @@
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+ &amp;nbsp;Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ &amp;nbsp;or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ &amp;nbsp;distributed with this work for additional information
&lt;br&gt;+ &amp;nbsp;regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ &amp;nbsp;to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ &amp;nbsp;&amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ &amp;nbsp;with the License. You may obtain a copy of the License at
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ &amp;nbsp;software distributed under the License is distributed on an
&lt;br&gt;+ &amp;nbsp;&amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ &amp;nbsp;KIND, either express or implied. See the License for the
&lt;br&gt;+ &amp;nbsp;specific language governing permissions and limitations
&lt;br&gt;+ &amp;nbsp;under the License.
&lt;br&gt;+--&amp;gt;
&lt;br&gt;+&amp;lt;beans xmlns=&amp;quot;&lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:util=&amp;quot;&lt;a href=&quot;http://www.springframework.org/schema/util&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/util&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;xsi:schemaLocation=&amp;quot;
&lt;br&gt;+&lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&amp;nbsp;
&lt;br&gt;+&lt;a href=&quot;http://www.springframework.org/schema/beans/spring-beans.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans/spring-beans.xsd&lt;/a&gt;&lt;br&gt;+&lt;a href=&quot;http://www.springframework.org/schema/util&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/util&lt;/a&gt;&amp;nbsp;
&lt;br&gt;+&lt;a href=&quot;http://www.springframework.org/schema/util/spring-util-2.0.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/util/spring-util-2.0.xsd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;&amp;lt;bean id=&amp;quot;atom&amp;quot; class=&amp;quot;org.apache.cxf.jaxrs.provider.AtomPojoProvider&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;atomWriters&amp;quot; ref=&amp;quot;atomWriters&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;atomBuilders&amp;quot; ref=&amp;quot;atomBuilders&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/bean&amp;gt;
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;&amp;lt;bean id=&amp;quot;atom2&amp;quot; class=&amp;quot;org.apache.cxf.jaxrs.provider.AtomPojoProvider&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;atomWriters&amp;quot; ref=&amp;quot;atomWriters2&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;atomBuilders&amp;quot; ref=&amp;quot;atomBuilders2&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/bean&amp;gt;
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;&amp;lt;bean id=&amp;quot;atom3&amp;quot; class=&amp;quot;org.apache.cxf.jaxrs.provider.AtomPojoProvider&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;atomWriters&amp;quot; ref=&amp;quot;atomWriters2&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;atomReaders&amp;quot; ref=&amp;quot;atomReaders2&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/bean&amp;gt;
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;&amp;lt;bean id=&amp;quot;atom4&amp;quot; class=&amp;quot;org.apache.cxf.jaxrs.provider.AtomPojoProvider&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;atomWriters&amp;quot; ref=&amp;quot;atomWriters&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;atomReaders&amp;quot; ref=&amp;quot;atomReaders&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/bean&amp;gt;
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;&amp;lt;util:map id=&amp;quot;atomWriters&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;lt;entry key=&amp;quot;org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$Books&amp;quot; value-ref=&amp;quot;feedWriter&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;lt;entry key=&amp;quot;org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$Book&amp;quot; value-ref=&amp;quot;entryWriter&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/util:map&amp;gt; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;&amp;lt;util:map id=&amp;quot;atomWriters2&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;lt;entry key=&amp;quot;org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$Book&amp;quot; value-ref=&amp;quot;entryWriter&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/util:map&amp;gt; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;&amp;lt;util:map id=&amp;quot;atomReaders&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;lt;entry key=&amp;quot;org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$Books&amp;quot; value-ref=&amp;quot;feedReader&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/util:map&amp;gt;
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;&amp;lt;util:map id=&amp;quot;atomReaders2&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;lt;entry key=&amp;quot;org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$Book&amp;quot; value-ref=&amp;quot;entryReader&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/util:map&amp;gt;
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;&amp;lt;bean id=&amp;quot;feedWriter&amp;quot; class=&amp;quot;org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$CustomFeedWriter&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;bean id=&amp;quot;entryWriter&amp;quot; class=&amp;quot;org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$CustomEntryWriter&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;bean id=&amp;quot;entryReader&amp;quot; class=&amp;quot;org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$CustomEntryReader&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;bean id=&amp;quot;feedReader&amp;quot; class=&amp;quot;org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$CustomFeedReader&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;&amp;lt;util:map id=&amp;quot;atomBuilders&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;entry key=&amp;quot;org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$Books&amp;quot; value-ref=&amp;quot;simpleFeedBuilder&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;entry key=&amp;quot;org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$Book&amp;quot; value-ref=&amp;quot;simpleEntryBuilder&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/util:map&amp;gt; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;&amp;lt;bean id=&amp;quot;simpleFeedBuilder&amp;quot; class=&amp;quot;org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$CustomFeedBuilder&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;&amp;lt;util:map id=&amp;quot;atomBuilders2&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;entry key=&amp;quot;org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$Book&amp;quot; value-ref=&amp;quot;simpleEntryBuilder&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/util:map&amp;gt; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;&amp;lt;bean id=&amp;quot;simpleEntryBuilder&amp;quot; class=&amp;quot;org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$CustomEntryBuilder&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+&amp;lt;/beans&amp;gt;
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/servers.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/servers.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/servers.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/xml
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java?rev=887317&amp;r1=887316&amp;r2=887317&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java?rev=887317&amp;r1=887316&amp;r2=887317&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java (original)
&lt;br&gt;+++ cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java Fri Dec &amp;nbsp;4 18:46:07 2009
&lt;br&gt;@@ -63,6 +63,7 @@
&lt;br&gt;&amp;nbsp;import org.apache.cxf.message.ExchangeImpl;
&lt;br&gt;&amp;nbsp;import org.apache.cxf.message.Message;
&lt;br&gt;&amp;nbsp;import org.apache.cxf.message.MessageImpl;
&lt;br&gt;+import org.apache.cxf.message.MessageUtils;
&lt;br&gt;&amp;nbsp;import org.apache.cxf.service.model.EndpointInfo;
&lt;br&gt;&amp;nbsp;import org.apache.cxf.transport.AbstractConduit;
&lt;br&gt;&amp;nbsp;import org.apache.cxf.transport.Destination;
&lt;br&gt;@@ -2132,9 +2133,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (responseCode == HttpURLConnection.HTTP_NOT_FOUND) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (responseCode == HttpURLConnection.HTTP_NOT_FOUND
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; !MessageUtils.isTrue(outMessage.getContextualProperty(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;org.apache.cxf.http.no_io_exceptions&amp;quot;))) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IOException(&amp;quot;HTTP response '&amp;quot; + responseCode + &amp;quot;: &amp;quot; 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ connection.getResponseMessage() + &amp;quot;'&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ connection.getResponseMessage() + &amp;quot;'&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -2190,12 +2193,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;String&amp;gt; cookies = connection.getHeaderFields().get(&amp;quot;Set-Cookie&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Cookie.handleSetCookie(sessionCookies, cookies);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;in = in == null
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ? connection.getErrorStream() == null
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ? connection.getInputStream()
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : connection.getErrorStream()
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : in;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (responseCode != HttpURLConnection.HTTP_NOT_FOUND) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;in = in == null
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ? connection.getErrorStream() == null
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ? connection.getInputStream()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : connection.getErrorStream()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : in;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// if (in == null) : it's perfectly ok for non-soap http services
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// have no response body : those interceptors which do need it will check anyway &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreSoapRestImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreSoapRestImpl.java?rev=887317&amp;r1=887316&amp;r2=887317&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreSoapRestImpl.java?rev=887317&amp;r1=887316&amp;r2=887317&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreSoapRestImpl.java (original)
&lt;br&gt;+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreSoapRestImpl.java Fri Dec &amp;nbsp;4 18:46:07 2009
&lt;br&gt;@@ -29,6 +29,7 @@
&lt;br&gt;&amp;nbsp;import javax.servlet.http.HttpServletRequest;
&lt;br&gt;&amp;nbsp;import javax.ws.rs.WebApplicationException;
&lt;br&gt;&amp;nbsp;import javax.ws.rs.core.Response;
&lt;br&gt;+import javax.ws.rs.core.Response.ResponseBuilder;
&lt;br&gt;&amp;nbsp;import javax.xml.bind.JAXBContext;
&lt;br&gt;&amp;nbsp;import javax.xml.bind.Marshaller;
&lt;br&gt;&amp;nbsp;import javax.xml.ws.WebServiceContext;
&lt;br&gt;@@ -85,9 +86,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;details.setId(id);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new BookNotFoundFault(details);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Response r = Response.status(returnCode).header(&amp;quot;BOOK-HEADER&amp;quot;, 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;No Book with id &amp;quot; + id + &amp;quot; is available&amp;quot;).build();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new WebApplicationException(r);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String msg = &amp;quot;No Book with id &amp;quot; + id + &amp;quot; is available&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ResponseBuilder builder = Response.status(returnCode).header(&amp;quot;BOOK-HEADER&amp;quot;, msg);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (returnCode == 404) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;builder.type(&amp;quot;text/plain&amp;quot;).entity(msg);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new WebApplicationException(builder.build());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!invocationInProcess) {
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSSoapBookTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSSoapBookTest.java?rev=887317&amp;r1=887316&amp;r2=887317&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSSoapBookTest.java?rev=887317&amp;r1=887316&amp;r2=887317&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSSoapBookTest.java (original)
&lt;br&gt;+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSSoapBookTest.java Fri Dec &amp;nbsp;4 18:46:07 2009
&lt;br&gt;@@ -26,6 +26,7 @@
&lt;br&gt;&amp;nbsp;import java.net.URLConnection;
&lt;br&gt;&amp;nbsp;import java.util.ArrayList;
&lt;br&gt;&amp;nbsp;import java.util.Collections;
&lt;br&gt;+import java.util.HashMap;
&lt;br&gt;&amp;nbsp;import java.util.List;
&lt;br&gt;&amp;nbsp;import java.util.Map;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -177,6 +178,22 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testNoBook357WebClient() throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JAXRSClientFactoryBean bean = new JAXRSClientFactoryBean();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;String, Object&amp;gt; properties = new HashMap&amp;lt;String, Object&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;properties.put(&amp;quot;org.apache.cxf.http.throw_io_exceptions&amp;quot;, Boolean.TRUE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bean.setProperties(properties);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bean.setAddress(&amp;quot;&lt;a href=&quot;http://localhost:9092/test/services/rest/bookstore/356&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:9092/test/services/rest/bookstore/356&lt;/a&gt;&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WebClient wc = bean.createWebClient();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Response response = wc.get();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(404, response.getStatus());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String msg = IOUtils.readStringFromStream((InputStream)response.getEntity());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;No Book with id 356 is available&amp;quot;, msg);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void testOtherInterceptorDrainingStream() throws Exception {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String baseAddress = &amp;quot;&lt;a href=&quot;http://localhost:9092/test/services/rest&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:9092/test/services/rest&lt;/a&gt;&amp;quot;;
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r887317---in--cxf-trunk%3A-rt-frontend-jaxrs-src-main-java-org-apache-cxf-jaxrs-client--rt-frontend-jaxrs-src-main-java-org-apache-cxf-jaxrs-ext-atom--rt-frontend-jaxrs-src-main-java-org-apache-cxf-jaxrs-impl--rt-frontend-jaxrs-src-main-java-...-tp26647285p26647285.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26646940</id>
	<title>svn commit: r887310 - /cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java</title>
	<published>2009-12-04T10:25:21Z</published>
	<updated>2009-12-04T10:25:21Z</updated>
	<author>
		<name>sergeyb</name>
	</author>
	<content type="html">Author: sergeyb
&lt;br&gt;Date: Fri Dec &amp;nbsp;4 18:25:21 2009
&lt;br&gt;New Revision: 887310
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=887310&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=887310&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Restoring the old WADL namespace on the 2.2.x only
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java
&lt;br&gt;&lt;br&gt;Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java?rev=887310&amp;r1=887309&amp;r2=887310&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java?rev=887310&amp;r1=887309&amp;r2=887310&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java (original)
&lt;br&gt;+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java Fri Dec &amp;nbsp;4 18:25:21 2009
&lt;br&gt;@@ -88,7 +88,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static final String WADL_QUERY = &amp;quot;_wadl&amp;quot;; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static final MediaType WADL_TYPE = MediaType.valueOf(&amp;quot;application/vnd.sun.wadl+xml&amp;quot;); 
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static final String WADL_NS = &amp;quot;&lt;a href=&quot;http://wadl.dev.java.net/2009/02&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://wadl.dev.java.net/2009/02&lt;/a&gt;&amp;quot;; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static final String WADL_NS = &amp;quot;&lt;a href=&quot;http://research.sun.com/wadl/2006/10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://research.sun.com/wadl/2006/10&lt;/a&gt;&amp;quot;; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final Logger LOG = LogUtils.getL7dLogger(WadlGenerator.class);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final String JAXB_DEFAULT_NAMESPACE = &amp;quot;##default&amp;quot;;
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r887310----cxf-branches-2.2.x-fixes-rt-frontend-jaxrs-src-main-java-org-apache-cxf-jaxrs-model-wadl-WadlGenerator.java-tp26646940p26646940.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26645769</id>
	<title>svn commit: r887271 - in /cxf/trunk: parent/pom.xml testutils/src/main/java/org/apache/cxf/testutil/common/ServerLauncher.java</title>
	<published>2009-12-04T09:07:26Z</published>
	<updated>2009-12-04T09:07:26Z</updated>
	<author>
		<name>dkulp</name>
	</author>
	<content type="html">Author: dkulp
&lt;br&gt;Date: Fri Dec &amp;nbsp;4 17:07:20 2009
&lt;br&gt;New Revision: 887271
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=887271&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=887271&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Separate the flags for the surefire forking from the flags used for the
&lt;br&gt;ServerLauncher for forking.
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/parent/pom.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/trunk/testutils/src/main/java/org/apache/cxf/testutil/common/ServerLauncher.java
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/parent/pom.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/parent/pom.xml?rev=887271&amp;r1=887270&amp;r2=887271&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/parent/pom.xml?rev=887271&amp;r1=887270&amp;r2=887271&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/parent/pom.xml (original)
&lt;br&gt;+++ cxf/trunk/parent/pom.xml Fri Dec &amp;nbsp;4 17:07:20 2009
&lt;br&gt;@@ -37,6 +37,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;surefire.format&amp;gt;brief&amp;lt;/surefire.format&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;surefire.usefile&amp;gt;false&amp;lt;/surefire.usefile&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;surefire.fork.vmargs&amp;gt;-ea&amp;lt;/surefire.fork.vmargs&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;server.launcher.vmargs&amp;gt;-ea&amp;lt;/server.launcher.vmargs&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;surefire.extra.sysprop.name1&amp;gt;None&amp;lt;/surefire.extra.sysprop.name1&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;surefire.extra.sysprop.value1&amp;gt;None&amp;lt;/surefire.extra.sysprop.value1&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;compile.flags&amp;gt;-Xlint:unchecked,deprecation,fallthrough,finally&amp;lt;/compile.flags&amp;gt;
&lt;br&gt;@@ -299,8 +300,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;${spring.validation.mode}&amp;lt;/value&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/property&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;surefire.fork.vmargs&amp;lt;/name&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;${surefire.fork.vmargs}&amp;lt;/value&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;server.launcher.vmargs&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;${server.launcher.vmargs}&amp;lt;/value&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/property&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;${extra.surefire.syspropery.name}&amp;lt;/name&amp;gt;
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/testutils/src/main/java/org/apache/cxf/testutil/common/ServerLauncher.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/testutils/src/main/java/org/apache/cxf/testutil/common/ServerLauncher.java?rev=887271&amp;r1=887270&amp;r2=887271&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/testutils/src/main/java/org/apache/cxf/testutil/common/ServerLauncher.java?rev=887271&amp;r1=887270&amp;r2=887271&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/testutils/src/main/java/org/apache/cxf/testutil/common/ServerLauncher.java (original)
&lt;br&gt;+++ cxf/trunk/testutils/src/main/java/org/apache/cxf/testutil/common/ServerLauncher.java Fri Dec &amp;nbsp;4 17:07:20 2009
&lt;br&gt;@@ -343,7 +343,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (Boolean.getBoolean(&amp;quot;java.awt.headless&amp;quot;)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cmd.add(&amp;quot;-Djava.awt.headless=true&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String vmargs = System.getProperty(&amp;quot;surefire.fork.vmargs&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String vmargs = System.getProperty(&amp;quot;server.launcher.vmargs&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (StringUtils.isEmpty(vmargs)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cmd.add(&amp;quot;-ea&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r887271---in--cxf-trunk%3A-parent-pom.xml-testutils-src-main-java-org-apache-cxf-testutil-common-ServerLauncher.java-tp26645769p26645769.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26645471</id>
	<title>[CONF] Apache CXF &gt; DOSGi Discovery Demo page</title>
	<published>2009-12-04T08:50:00Z</published>
	<updated>2009-12-04T08:50:00Z</updated>
	<author>
		<name>confluence-2</name>
	</author>
	<content type="html">&lt;html&gt;
&lt;head&gt;
    &lt;base href=&quot;http://cwiki.apache.org/confluence&quot;&gt;
            &lt;link rel=&quot;stylesheet&quot; href=&quot;/confluence/s/1519/1/11/_/styles/combined.css?spaceKey=CXF&amp;amp;forWysiwyg=true&quot; type=&quot;text/css&quot;&gt;
    &lt;/head&gt;
&lt;body style=&quot;background-color: white&quot; bgcolor=&quot;white&quot;&gt;
&lt;div id=&quot;pageContent&quot;&gt;
&lt;div id=&quot;notificationFormat&quot;&gt;
&lt;div class=&quot;wiki-content&quot;&gt;
&lt;div class=&quot;email&quot;&gt;
     &lt;h2&gt;&lt;a href=&quot;http://cwiki.apache.org/confluence/display/CXF/DOSGi+Discovery+Demo+page&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;DOSGi Discovery Demo page&lt;/a&gt;&lt;/h2&gt;
     &lt;h4&gt;Page &lt;b&gt;edited&lt;/b&gt; by             &lt;a href=&quot;http://cwiki.apache.org/confluence/display/~davidb@apache.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;David Bosschaert&lt;/a&gt;
    &lt;/h4&gt;
     Update to new properties
          &lt;div id=&quot;versionComment&quot; class=&quot;noteMacro&quot; style=&quot;display:none; padding: 5px;&quot;&gt;
     Update to new properties&lt;br /&gt;
     &lt;/div&gt;
          &lt;br /&gt;
     &lt;div class=&quot;notificationGreySide&quot;&gt;
         &lt;p&gt;This page describes the demo that shows the Discovery functionality of Distributed OSGi.&lt;/p&gt;

&lt;p&gt;It assumes that you have set up your DOSGi/ZooKeeper based Discovery system as outlined in the &lt;a href=&quot;/confluence/display/CXF/DOSGi+Discovery&quot; title=&quot;DOSGi Discovery&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;DOSGi Discovery&lt;/a&gt; page.&lt;/p&gt;


&lt;h2&gt;&lt;a name=&quot;DOSGiDiscoveryDemopage-Demodesign&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;Demo design&lt;/h2&gt;

&lt;p&gt;This demo consists of a display controller node that writes messages on all the available display instances. Display instances are realized as remote OSGi services, which are registered with the ZooKeeper-based Discovery system. The discovery system informs the controller, which is a consumer of the DisplayServices, of any available remote instances of this service.&lt;br /&gt;
@@@ add an image here @@@&lt;/p&gt;

&lt;p&gt;As with most of the other demos, the actual implementation consists of 3 bundles.&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;A DisplayService interface bundle.&lt;/li&gt;
	&lt;li&gt;A DisplayService implementation bundle.&lt;/li&gt;
	&lt;li&gt;A DisplayService client bundle, which takes the role of the display controller.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The &lt;a href=&quot;http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/discovery/interface/src/main/java/org/apache/cxf/dosgi/samples/discovery/DisplayService.java&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;Display Service interface&lt;/a&gt; is as follows:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;&lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt; DisplayService {
    &lt;span class=&quot;code-object&quot;&gt;boolean&lt;/span&gt; displayText(&lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; text);
    &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; getID();
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;DOSGiDiscoveryDemopage-TheDisplayController%28serviceconsumer%29&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;The Display Controller (service consumer)&lt;/h2&gt;
&lt;p&gt;Let's start with the controller, which is a consumer to the the DisplayService. It's simply using an OSGi ServiceTracker to consume all DisplayService services. It also uses a Scheduled Executor to periodically send test messages to all registered displays. Here's the &lt;a href=&quot;http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/discovery/client/src/main/java/org/apache/cxf/dosgi/samples/discovery/consumer/Activator.java&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;Activator&lt;/a&gt;:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;&lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; class Activator &lt;span class=&quot;code-keyword&quot;&gt;implements&lt;/span&gt; BundleActivator {
    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; ServiceTracker tracker;
    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; Map&amp;lt;DisplayService, &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt;&amp;gt; displays = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; ConcurrentHashMap&amp;lt;DisplayService, &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt;&amp;gt;();

    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void start(BundleContext bc) &lt;span class=&quot;code-keyword&quot;&gt;throws&lt;/span&gt; Exception {
        tracker = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; ServiceTracker(bc, DisplayService.class.getName(), &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;) {
            &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;Object&lt;/span&gt; addingService(ServiceReference reference) {
                &lt;span class=&quot;code-object&quot;&gt;Object&lt;/span&gt; svc = &lt;span class=&quot;code-keyword&quot;&gt;super&lt;/span&gt;.addingService(reference);
                &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (svc &lt;span class=&quot;code-keyword&quot;&gt;instanceof&lt;/span&gt; DisplayService) {
                    DisplayService d = (DisplayService) svc;
                    &lt;span class=&quot;code-object&quot;&gt;System&lt;/span&gt;.out.println(&lt;span class=&quot;code-quote&quot;&gt;&quot;Adding display: &quot;&lt;/span&gt; + d.getID() + &lt;span class=&quot;code-quote&quot;&gt;&quot; (&quot;&lt;/span&gt; + d + &lt;span class=&quot;code-quote&quot;&gt;&quot;)&quot;&lt;/span&gt;);
                    displays.put(d, d.getID());
                }
                &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; svc;
            }

            &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void removedService(ServiceReference reference, &lt;span class=&quot;code-object&quot;&gt;Object&lt;/span&gt; service) {
                &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; value = displays.remove(service);
                &lt;span class=&quot;code-object&quot;&gt;System&lt;/span&gt;.out.println(&lt;span class=&quot;code-quote&quot;&gt;&quot;Removed display: &quot;&lt;/span&gt; + value);
                &lt;span class=&quot;code-keyword&quot;&gt;super&lt;/span&gt;.removedService(reference, service);
            }            
        };        
        tracker.open();
        &lt;span class=&quot;code-comment&quot;&gt;// ... scheduler stuff that sends messages to all registered displays ommitted
&lt;/span&gt;    }

    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void stop(BundleContext bc) &lt;span class=&quot;code-keyword&quot;&gt;throws&lt;/span&gt; Exception {
        tracker.close();
    }
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;h3&gt;&lt;a name=&quot;DOSGiDiscoveryDemopage-No%7B%7Bremoteservices.xml%7D%7Dfile%21&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;No &lt;tt&gt;remote-services.xml&lt;/tt&gt; file!&lt;/h3&gt;
&lt;p&gt;As we are using Discovery here, there is no static remote service metadata required. So no &lt;tt&gt;remote-services.xml&lt;/tt&gt; file. Discovery will dynamically inform the DOSGi implementation of the locations of available remote services. The DOSGi implemenation will in turn register proxies for the remote services in the local service registry. As a service consumer you simply depend on the service - e.g. by using a ServiceTracker as above, or through a component framework such as Blueprint or DS. &lt;/p&gt;

&lt;h3&gt;&lt;a name=&quot;DOSGiDiscoveryDemopage-Runningthecontroller&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;Running the controller&lt;/h3&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
-&amp;gt; install http:&lt;span class=&quot;code-comment&quot;&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-discovery-client/1.1/cxf-dosgi-ri-samples-discovery-client-1.1.jar
&lt;/span&gt;-&amp;gt; install http:&lt;span class=&quot;code-comment&quot;&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-discovery-&lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt;/1.1/cxf-dosgi-ri-samples-discovery-&lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt;-1.1.jar
&lt;/span&gt;-&amp;gt; start 7
-&amp;gt; start 8
-&amp;gt; ps
START LEVEL 1
   ID   State         Level  Name
[   0] [Active     ] [    0] &lt;span class=&quot;code-object&quot;&gt;System&lt;/span&gt; Bundle (1.8.0)
[   1] [Active     ] [    1] Apache Felix Shell Service (1.2.0)
[   2] [Active     ] [    1] Apache Felix Shell TUI (1.2.0)
[   3] [Active     ] [    1] Apache Felix Bundle Repository (1.4.0)
[   4] [Resolved   ] [    1] OSGi R4 Compendium Bundle (4.1.0)
[   5] [Active     ] [    1] Distributed OSGi Distribution Software Single-Bundle Distribution
[   6] [Active     ] [    1] Distributed OSGi Zookeeper-Based Discovery Single-Bundle Distribution
[   7] [Active     ] [    1] Distributed OSGI Discovery Sample Client Bundle
[   8] [Active     ] [    1] Distributed OSGI Discovery Sample Interface Bundle
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;After a brief moment, you will see messages appearing on the controller side. These are the messages sent to all registered displays. Since there are none, they won't show up anywhere just yet.&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;Sending text to displays: some text 1
Sending text to displays: some text 2
Sending text to displays: some text 3
...&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;DOSGiDiscoveryDemopage-TheRemoteDisplays%28serviceimplementation%29&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;The Remote Displays (service implementation)&lt;/h2&gt;
&lt;p&gt;Every Display in the system registers a &lt;a href=&quot;http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/discovery/impl/src/main/java/org/apache/cxf/dosgi/samples/discovery/impl/DisplayServiceImpl.java&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;Display Service implementation&lt;/a&gt; in the local Service Registry. This happens in the &lt;a href=&quot;http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/discovery/impl/src/main/java/org/apache/cxf/dosgi/samples/discovery/impl/Activator.java&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;Activator&lt;/a&gt; of the service implementation bundle. It adds the properties to make the service available remotely as well:
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;&lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; class Activator &lt;span class=&quot;code-keyword&quot;&gt;implements&lt;/span&gt; BundleActivator {
    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; ServiceRegistration reg;

    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void start(BundleContext bc) &lt;span class=&quot;code-keyword&quot;&gt;throws&lt;/span&gt; Exception {        
        Dictionary props = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; Hashtable();
        
        &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; host = getHostName(); &lt;span class=&quot;code-comment&quot;&gt;// obtain the current host name
&lt;/span&gt;        &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; port = getPort();        &lt;span class=&quot;code-comment&quot;&gt;// find a free port
&lt;/span&gt;        
        props.put(&lt;span class=&quot;code-quote&quot;&gt;&quot;service.exported.interfaces&quot;&lt;/span&gt;, &lt;span class=&quot;code-quote&quot;&gt;&quot;*&quot;&lt;/span&gt;);
        props.put(&lt;span class=&quot;code-quote&quot;&gt;&quot;service.exported.configs&quot;&lt;/span&gt;, &lt;span class=&quot;code-quote&quot;&gt;&quot;org.apache.cxf.ws&quot;&lt;/span&gt;);
        props.put(&lt;span class=&quot;code-quote&quot;&gt;&quot;org.apache.cxf.ws.address&quot;&lt;/span&gt;, &lt;span class=&quot;code-quote&quot;&gt;&quot;http:&lt;span class=&quot;code-comment&quot;&gt;//&quot;&lt;/span&gt; + host + &lt;span class=&quot;code-quote&quot;&gt;&quot;:&quot;&lt;/span&gt; + port + &lt;span class=&quot;code-quote&quot;&gt;&quot;/display&quot;&lt;/span&gt;);
&lt;/span&gt;
        reg = bc.registerService(DisplayService.class.getName(), 
                &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; DisplayServiceImpl(host + &lt;span class=&quot;code-quote&quot;&gt;&quot;:&quot;&lt;/span&gt; + port), props);
    }

    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void stop(BundleContext bc) &lt;span class=&quot;code-keyword&quot;&gt;throws&lt;/span&gt; Exception {
        reg.unregister();
    }
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;Note that the port where the service is made available is dynamically set to be any free port in the system. So you can safely run any number of remote Display Services on the same machine. Because we're using Discovery here, a well-known port is not needed. Registering the service as in the previous code snippet will make it available remotely &lt;em&gt;and&lt;/em&gt; publish it to the installed Discovery system.&lt;/p&gt;

&lt;p&gt;Once the provider side bundles are started:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;-&amp;gt; install http:&lt;span class=&quot;code-comment&quot;&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-discovery-&lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt;/1.1/cxf-dosgi-ri-samples-discovery-&lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt;-1.1.jar
&lt;/span&gt;-&amp;gt; start 7
-&amp;gt; install http:&lt;span class=&quot;code-comment&quot;&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-discovery-impl/1.1/cxf-dosgi-ri-samples-discovery-impl-1.1.jar
&lt;/span&gt;-&amp;gt; start 8
-&amp;gt; ps
START LEVEL 1
   ID   State         Level  Name
[   0] [Active     ] [    0] &lt;span class=&quot;code-object&quot;&gt;System&lt;/span&gt; Bundle (1.8.0)
[   1] [Active     ] [    1] Apache Felix Shell Service (1.2.0)
[   2] [Active     ] [    1] Apache Felix Shell TUI (1.2.0)
[   3] [Active     ] [    1] Apache Felix Bundle Repository (1.4.0)
[   4] [Resolved   ] [    1] OSGi R4 Compendium Bundle (4.1.0)
[   5] [Active     ] [    1] Distributed OSGi Distribution Software Single-Bundle Distribution (1.1.0.SNAPSHOT)
[   6] [Active     ] [    1] Distributed OSGi Zookeeper-Based Discovery Single-Bundle Distribution (1.1.0.SNAPSHOT)
[   7] [Active     ] [    1] Distributed OSGI Discovery Sample Interface Bundle
[   8] [Active     ] [    1] Distributed OSGI Discovery Sample Implementation Bundle
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;You will start seeing the messages appear on the remote display:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;DisplayService [myhost:1816]: some text 145
DisplayService [myhost:1816]: some text 146
... &lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;You can add more Display Services and they will also receive the messages. &lt;/p&gt;
&lt;h2&gt;&lt;a name=&quot;DOSGiDiscoveryDemopage-UnderthehoodintheZooKeeperserver&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;Under the hood in the ZooKeeper server&lt;/h2&gt;
&lt;p&gt;The Discovery system uses standard OSGi mechanisms to publish the metadata of the services that are exposed remotely in a centralized server, a ZooKeeper server. On the consumer side, the services are looked up in Discovery through standard OSGi mechanisms as well. These mechanisms are independent of ZooKeeper, so they will work with any Distributed OSGi standards-compliant Dicovery implementation.&lt;/p&gt;

&lt;p&gt;ZooKeeper comes with a client program (&lt;tt&gt;zkCli&lt;/tt&gt;) that allows you to look in the ZooKeeper virtual filesystem. All of the OSGi-registered services are stored in a virtual directory under the node &lt;tt&gt;/osgi/service_registry&lt;/tt&gt;. The virtual directory name is based on the fully qualified name of the interface that is implemented by the remote service. So in the case of the DisplayService the remote service metadata is stored under &lt;tt&gt;/osgi/service_registry/org/apache/cxf/dosgi/samples/discovery/DisplayService&lt;/tt&gt;:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
$ bin/zkCli localhost:2181

-&amp;gt; ls /osgi/service_registry/org/apache/cxf/dosgi/samples/discovery/DisplayService
Processing ls
[myhost#1816##display]
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Every instance of a remote service that implements the org.apache.cxf.dosgi.samples.discovery.DisplayService interface will get a virtual file in this location. The virtual file is only there for the lifetime of the service. If you stop the service, or kill the OSGi container that hosts it, its associated file in this directory will disappear.&lt;br /&gt;
You can obtain the information stored in the node, to get an idea of the metadata that's being communicated using the Discovery system:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;-&amp;gt; get /osgi/service_registry/org/apache/cxf/dosgi/samples/discovery/DisplayService/myhost#1816##display
Processing get
#
#Tue Jun 09 14:52:39 BST 2009
osgi.remote.endpoint.location=http\:&lt;span class=&quot;code-comment&quot;&gt;//myhost\:1816/display
&lt;/span&gt;osgi.remote.interfaces=*
osgi.remote.configuration.pojo.address=http\:&lt;span class=&quot;code-comment&quot;&gt;//myhost\:1816/display
&lt;/span&gt;osgi.remote.configuration.type=pojo
osgi.remote.endpoint.id=0ffe1fbf-c029-4096-bc14-3c7d77470dfd

cZxid = 511
ctime = Tue Jun 09 14:52:39 BST 2009
mZxid = 511
mtime = Tue Jun 09 14:52:39 BST 2009
pZxid = 511
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 81563124471365634
dataLength = 338
numChildren = 0
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;DOSGiDiscoveryDemopage-OtherResources&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;Other Resources&lt;/h2&gt;
&lt;p&gt;Introducing Dynamic Discovery into OSGi Distributed Applications - &lt;a href=&quot;http://blog.akquinet.de/2009/09/23/introducing-dynamic-discovery-into-osgi-distributed-applications/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://blog.akquinet.de/2009/09/23/introducing-dynamic-discovery-into-osgi-distributed-applications/&lt;/a&gt;&lt;/p&gt;
     &lt;/div&gt;
     &lt;div id=&quot;commentsSection&quot; class=&quot;wiki-content pageSection&quot;&gt;
       &lt;div style=&quot;float: right;&quot;&gt;
            &lt;a href=&quot;http://cwiki.apache.org/confluence/users/viewnotifications.action&quot; class=&quot;grey&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Change Notification Preferences&lt;/a&gt;
       &lt;/div&gt;

       &lt;a href=&quot;http://cwiki.apache.org/confluence/display/CXF/DOSGi+Discovery+Demo+page&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;View Online&lt;/a&gt;
       |
       &lt;a href=&quot;http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=119713&amp;revisedVersion=14&amp;originalVersion=13&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;View Change&lt;/a&gt;
              |
       &lt;a href=&quot;http://cwiki.apache.org/confluence/display/CXF/DOSGi+Discovery+Demo+page?showComments=true&amp;amp;showCommentArea=true#addcomment&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Add Comment&lt;/a&gt;
            &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-CONF--Apache-CXF-%3E-DOSGi-Discovery-Demo-page-tp26645471p26645471.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26645397</id>
	<title>[CONF] Apache CXF &gt; DOSGi Discovery Demo page</title>
	<published>2009-12-04T08:45:00Z</published>
	<updated>2009-12-04T08:45:00Z</updated>
	<author>
		<name>confluence-2</name>
	</author>
	<content type="html">&lt;html&gt;
&lt;head&gt;
    &lt;base href=&quot;http://cwiki.apache.org/confluence&quot;&gt;
            &lt;link rel=&quot;stylesheet&quot; href=&quot;/confluence/s/1519/1/11/_/styles/combined.css?spaceKey=CXF&amp;amp;forWysiwyg=true&quot; type=&quot;text/css&quot;&gt;
    &lt;/head&gt;
&lt;body style=&quot;background-color: white&quot; bgcolor=&quot;white&quot;&gt;
&lt;div id=&quot;pageContent&quot;&gt;
&lt;div id=&quot;notificationFormat&quot;&gt;
&lt;div class=&quot;wiki-content&quot;&gt;
&lt;div class=&quot;email&quot;&gt;
     &lt;h2&gt;&lt;a href=&quot;http://cwiki.apache.org/confluence/display/CXF/DOSGi+Discovery+Demo+page&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;DOSGi Discovery Demo page&lt;/a&gt;&lt;/h2&gt;
     &lt;h4&gt;Page &lt;b&gt;edited&lt;/b&gt; by             &lt;a href=&quot;http://cwiki.apache.org/confluence/display/~davidb@apache.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;David Bosschaert&lt;/a&gt;
    &lt;/h4&gt;
     Update to 1.1
          &lt;div id=&quot;versionComment&quot; class=&quot;noteMacro&quot; style=&quot;display:none; padding: 5px;&quot;&gt;
     Update to 1.1&lt;br /&gt;
     &lt;/div&gt;
          &lt;br /&gt;
     &lt;div class=&quot;notificationGreySide&quot;&gt;
         &lt;p&gt;This page describes the demo that shows the Discovery functionality of Distributed OSGi.&lt;/p&gt;

&lt;p&gt;It assumes that you have set up your DOSGi/ZooKeeper based Discovery system as outlined in the &lt;a href=&quot;/confluence/display/CXF/DOSGi+Discovery&quot; title=&quot;DOSGi Discovery&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;DOSGi Discovery&lt;/a&gt; page.&lt;/p&gt;


&lt;h2&gt;&lt;a name=&quot;DOSGiDiscoveryDemopage-Demodesign&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;Demo design&lt;/h2&gt;

&lt;p&gt;This demo consists of a display controller node that writes messages on all the available display instances. Display instances are realized as remote OSGi services, which are registered with the ZooKeeper-based Discovery system. The discovery system informs the controller, which is a consumer of the DisplayServices, of any available remote instances of this service.&lt;br /&gt;
@@@ add an image here @@@&lt;/p&gt;

&lt;p&gt;As with most of the other demos, the actual implementation consists of 3 bundles.&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;A DisplayService interface bundle.&lt;/li&gt;
	&lt;li&gt;A DisplayService implementation bundle.&lt;/li&gt;
	&lt;li&gt;A DisplayService client bundle, which takes the role of the display controller.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The &lt;a href=&quot;http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/discovery/interface/src/main/java/org/apache/cxf/dosgi/samples/discovery/DisplayService.java&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;Display Service interface&lt;/a&gt; is as follows:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;&lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt; DisplayService {
    &lt;span class=&quot;code-object&quot;&gt;boolean&lt;/span&gt; displayText(&lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; text);
    &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; getID();
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;DOSGiDiscoveryDemopage-TheDisplayController%28serviceconsumer%29&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;The Display Controller (service consumer)&lt;/h2&gt;
&lt;p&gt;Let's start with the controller, which is a consumer to the the DisplayService. It's simply using an OSGi ServiceTracker to consume all DisplayService services. It also uses a Scheduled Executor to periodically send test messages to all registered displays. Here's the &lt;a href=&quot;http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/discovery/client/src/main/java/org/apache/cxf/dosgi/samples/discovery/consumer/Activator.java&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;Activator&lt;/a&gt;:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;&lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; class Activator &lt;span class=&quot;code-keyword&quot;&gt;implements&lt;/span&gt; BundleActivator {
    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; ServiceTracker tracker;
    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; Map&amp;lt;DisplayService, &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt;&amp;gt; displays = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; ConcurrentHashMap&amp;lt;DisplayService, &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt;&amp;gt;();

    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void start(BundleContext bc) &lt;span class=&quot;code-keyword&quot;&gt;throws&lt;/span&gt; Exception {
        tracker = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; ServiceTracker(bc, DisplayService.class.getName(), &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;) {
            &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;Object&lt;/span&gt; addingService(ServiceReference reference) {
                &lt;span class=&quot;code-object&quot;&gt;Object&lt;/span&gt; svc = &lt;span class=&quot;code-keyword&quot;&gt;super&lt;/span&gt;.addingService(reference);
                &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (svc &lt;span class=&quot;code-keyword&quot;&gt;instanceof&lt;/span&gt; DisplayService) {
                    DisplayService d = (DisplayService) svc;
                    &lt;span class=&quot;code-object&quot;&gt;System&lt;/span&gt;.out.println(&lt;span class=&quot;code-quote&quot;&gt;&quot;Adding display: &quot;&lt;/span&gt; + d.getID() + &lt;span class=&quot;code-quote&quot;&gt;&quot; (&quot;&lt;/span&gt; + d + &lt;span class=&quot;code-quote&quot;&gt;&quot;)&quot;&lt;/span&gt;);
                    displays.put(d, d.getID());
                }
                &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; svc;
            }

            &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void removedService(ServiceReference reference, &lt;span class=&quot;code-object&quot;&gt;Object&lt;/span&gt; service) {
                &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; value = displays.remove(service);
                &lt;span class=&quot;code-object&quot;&gt;System&lt;/span&gt;.out.println(&lt;span class=&quot;code-quote&quot;&gt;&quot;Removed display: &quot;&lt;/span&gt; + value);
                &lt;span class=&quot;code-keyword&quot;&gt;super&lt;/span&gt;.removedService(reference, service);
            }            
        };        
        tracker.open();
        &lt;span class=&quot;code-comment&quot;&gt;// ... scheduler stuff that sends messages to all registered displays ommitted
&lt;/span&gt;    }

    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void stop(BundleContext bc) &lt;span class=&quot;code-keyword&quot;&gt;throws&lt;/span&gt; Exception {
        tracker.close();
    }
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;h3&gt;&lt;a name=&quot;DOSGiDiscoveryDemopage-No%7B%7Bremoteservices.xml%7D%7Dfile%21&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;No &lt;tt&gt;remote-services.xml&lt;/tt&gt; file!&lt;/h3&gt;
&lt;p&gt;As we are using Discovery here, there is no static remote service metadata required. So no &lt;tt&gt;remote-services.xml&lt;/tt&gt; file. Discovery will dynamically inform the DOSGi implementation of the locations of available remote services. The DOSGi implemenation will in turn register proxies for the remote services in the local service registry. As a service consumer you simply depend on the service - e.g. by using a ServiceTracker as above, or through a component framework such as Blueprint or DS. &lt;/p&gt;

&lt;h3&gt;&lt;a name=&quot;DOSGiDiscoveryDemopage-Runningthecontroller&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;Running the controller&lt;/h3&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
-&amp;gt; install http:&lt;span class=&quot;code-comment&quot;&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-discovery-client/1.1/cxf-dosgi-ri-samples-discovery-client-1.1.jar
&lt;/span&gt;-&amp;gt; install http:&lt;span class=&quot;code-comment&quot;&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-discovery-&lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt;/1.1/cxf-dosgi-ri-samples-discovery-&lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt;-1.1.jar
&lt;/span&gt;-&amp;gt; start 7
-&amp;gt; start 8
-&amp;gt; ps
START LEVEL 1
   ID   State         Level  Name
[   0] [Active     ] [    0] &lt;span class=&quot;code-object&quot;&gt;System&lt;/span&gt; Bundle (1.8.0)
[   1] [Active     ] [    1] Apache Felix Shell Service (1.2.0)
[   2] [Active     ] [    1] Apache Felix Shell TUI (1.2.0)
[   3] [Active     ] [    1] Apache Felix Bundle Repository (1.4.0)
[   4] [Resolved   ] [    1] OSGi R4 Compendium Bundle (4.1.0)
[   5] [Active     ] [    1] Distributed OSGi Distribution Software Single-Bundle Distribution
[   6] [Active     ] [    1] Distributed OSGi Zookeeper-Based Discovery Single-Bundle Distribution
[   7] [Active     ] [    1] Distributed OSGI Discovery Sample Client Bundle
[   8] [Active     ] [    1] Distributed OSGI Discovery Sample Interface Bundle
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;After a brief moment, you will see messages appearing on the controller side. These are the messages sent to all registered displays. Since there are none, they won't show up anywhere just yet.&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;Sending text to displays: some text 1
Sending text to displays: some text 2
Sending text to displays: some text 3
...&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;DOSGiDiscoveryDemopage-TheRemoteDisplays%28serviceimplementation%29&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;The Remote Displays (service implementation)&lt;/h2&gt;
&lt;p&gt;Every Display in the system registers a &lt;a href=&quot;http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/discovery/impl/src/main/java/org/apache/cxf/dosgi/samples/discovery/impl/DisplayServiceImpl.java&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;Display Service implementation&lt;/a&gt; in the local Service Registry. This happens in the &lt;a href=&quot;http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/discovery/impl/src/main/java/org/apache/cxf/dosgi/samples/discovery/impl/Activator.java&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;Activator&lt;/a&gt; of the service implementation bundle. It adds the properties to make the service available remotely as well:
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;&lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; class Activator &lt;span class=&quot;code-keyword&quot;&gt;implements&lt;/span&gt; BundleActivator {
    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; ServiceRegistration reg;

    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void start(BundleContext bc) &lt;span class=&quot;code-keyword&quot;&gt;throws&lt;/span&gt; Exception {        
        Dictionary props = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; Hashtable();
        
        &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; host = getHostName(); &lt;span class=&quot;code-comment&quot;&gt;// obtain the current host name
&lt;/span&gt;        &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; port = getPort();        &lt;span class=&quot;code-comment&quot;&gt;// find a free port
&lt;/span&gt;        
        props.put(&lt;span class=&quot;code-quote&quot;&gt;&quot;osgi.remote.interfaces&quot;&lt;/span&gt;, &lt;span class=&quot;code-quote&quot;&gt;&quot;*&quot;&lt;/span&gt;);
        props.put(&lt;span class=&quot;code-quote&quot;&gt;&quot;osgi.remote.configuration.type&quot;&lt;/span&gt;, &lt;span class=&quot;code-quote&quot;&gt;&quot;pojo&quot;&lt;/span&gt;);
        props.put(&lt;span class=&quot;code-quote&quot;&gt;&quot;osgi.remote.configuration.pojo.address&quot;&lt;/span&gt;, &lt;span class=&quot;code-quote&quot;&gt;&quot;http:&lt;span class=&quot;code-comment&quot;&gt;//&quot;&lt;/span&gt; + host + &lt;span class=&quot;code-quote&quot;&gt;&quot;:&quot;&lt;/span&gt; + port + &lt;span class=&quot;code-quote&quot;&gt;&quot;/display&quot;&lt;/span&gt;);
&lt;/span&gt;
        reg = bc.registerService(DisplayService.class.getName(), 
                &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; DisplayServiceImpl(host + &lt;span class=&quot;code-quote&quot;&gt;&quot;:&quot;&lt;/span&gt; + port), props);
    }

    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void stop(BundleContext bc) &lt;span class=&quot;code-keyword&quot;&gt;throws&lt;/span&gt; Exception {
        reg.unregister();
    }
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;Note that the port where the service is made available is dynamically set to be any free port in the system. So you can safely run any number of remote Display Services on the same machine. Because we're using Discovery here, a well-known port is not needed. Registering the service as in the previous code snippet will make it available remotely &lt;em&gt;and&lt;/em&gt; publish it to the installed Discovery system.&lt;/p&gt;

&lt;p&gt;Once the provider side bundles are started:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;-&amp;gt; install http:&lt;span class=&quot;code-comment&quot;&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-discovery-&lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt;/1.1/cxf-dosgi-ri-samples-discovery-&lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt;-1.1.jar
&lt;/span&gt;-&amp;gt; start 7
-&amp;gt; install http:&lt;span class=&quot;code-comment&quot;&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-discovery-impl/1.1/cxf-dosgi-ri-samples-discovery-impl-1.1.jar
&lt;/span&gt;-&amp;gt; start 8
-&amp;gt; ps
START LEVEL 1
   ID   State         Level  Name
[   0] [Active     ] [    0] &lt;span class=&quot;code-object&quot;&gt;System&lt;/span&gt; Bundle (1.8.0)
[   1] [Active     ] [    1] Apache Felix Shell Service (1.2.0)
[   2] [Active     ] [    1] Apache Felix Shell TUI (1.2.0)
[   3] [Active     ] [    1] Apache Felix Bundle Repository (1.4.0)
[   4] [Resolved   ] [    1] OSGi R4 Compendium Bundle (4.1.0)
[   5] [Active     ] [    1] Distributed OSGi Distribution Software Single-Bundle Distribution (1.1.0.SNAPSHOT)
[   6] [Active     ] [    1] Distributed OSGi Zookeeper-Based Discovery Single-Bundle Distribution (1.1.0.SNAPSHOT)
[   7] [Active     ] [    1] Distributed OSGI Discovery Sample Interface Bundle
[   8] [Active     ] [    1] Distributed OSGI Discovery Sample Implementation Bundle
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;You will start seeing the messages appear on the remote display:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;DisplayService [myhost:1816]: some text 145
DisplayService [myhost:1816]: some text 146
... &lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;You can add more Display Services and they will also receive the messages. &lt;/p&gt;
&lt;h2&gt;&lt;a name=&quot;DOSGiDiscoveryDemopage-UnderthehoodintheZooKeeperserver&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;Under the hood in the ZooKeeper server&lt;/h2&gt;
&lt;p&gt;The Discovery system uses standard OSGi mechanisms to publish the metadata of the services that are exposed remotely in a centralized server, a ZooKeeper server. On the consumer side, the services are looked up in Discovery through standard OSGi mechanisms as well. These mechanisms are independent of ZooKeeper, so they will work with any Distributed OSGi standards-compliant Dicovery implementation.&lt;/p&gt;

&lt;p&gt;ZooKeeper comes with a client program (&lt;tt&gt;zkCli&lt;/tt&gt;) that allows you to look in the ZooKeeper virtual filesystem. All of the OSGi-registered services are stored in a virtual directory under the node &lt;tt&gt;/osgi/service_registry&lt;/tt&gt;. The virtual directory name is based on the fully qualified name of the interface that is implemented by the remote service. So in the case of the DisplayService the remote service metadata is stored under &lt;tt&gt;/osgi/service_registry/org/apache/cxf/dosgi/samples/discovery/DisplayService&lt;/tt&gt;:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
$ bin/zkCli.cmd localhost:2181

-&amp;gt; ls /osgi/service_registry/org/apache/cxf/dosgi/samples/discovery/DisplayService
Processing ls
[myhost#1816##display]
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Every instance of a remote service that implements the org.apache.cxf.dosgi.samples.discovery.DisplayService interface will get a virtual file in this location. The virtual file is only there for the lifetime of the service. If you stop the service, or kill the OSGi container that hosts it, its associated file in this directory will disappear.&lt;br /&gt;
You can obtain the information stored in the node, to get an idea of the metadata that's being communicated using the Discovery system:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;-&amp;gt; get /osgi/service_registry/org/apache/cxf/dosgi/samples/discovery/DisplayService/myhost#1816##display
Processing get
#
#Tue Jun 09 14:52:39 BST 2009
osgi.remote.endpoint.location=http\:&lt;span class=&quot;code-comment&quot;&gt;//myhost\:1816/display
&lt;/span&gt;osgi.remote.interfaces=*
osgi.remote.configuration.pojo.address=http\:&lt;span class=&quot;code-comment&quot;&gt;//myhost\:1816/display
&lt;/span&gt;osgi.remote.configuration.type=pojo
osgi.remote.endpoint.id=0ffe1fbf-c029-4096-bc14-3c7d77470dfd

cZxid = 511
ctime = Tue Jun 09 14:52:39 BST 2009
mZxid = 511
mtime = Tue Jun 09 14:52:39 BST 2009
pZxid = 511
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 81563124471365634
dataLength = 338
numChildren = 0
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;DOSGiDiscoveryDemopage-OtherResources&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;Other Resources&lt;/h2&gt;
&lt;p&gt;Introducing Dynamic Discovery into OSGi Distributed Applications - &lt;a href=&quot;http://blog.akquinet.de/2009/09/23/introducing-dynamic-discovery-into-osgi-distributed-applications/&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://blog.akquinet.de/2009/09/23/introducing-dynamic-discovery-into-osgi-distributed-applications/&lt;/a&gt;&lt;/p&gt;
     &lt;/div&gt;
     &lt;div id=&quot;commentsSection&quot; class=&quot;wiki-content pageSection&quot;&gt;
       &lt;div style=&quot;float: right;&quot;&gt;
            &lt;a href=&quot;http://cwiki.apache.org/confluence/users/viewnotifications.action&quot; class=&quot;grey&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Change Notification Preferences&lt;/a&gt;
       &lt;/div&gt;

       &lt;a href=&quot;http://cwiki.apache.org/confluence/display/CXF/DOSGi+Discovery+Demo+page&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;View Online&lt;/a&gt;
       |
       &lt;a href=&quot;http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=119713&amp;revisedVersion=12&amp;originalVersion=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;View Change&lt;/a&gt;
              |
       &lt;a href=&quot;http://cwiki.apache.org/confluence/display/CXF/DOSGi+Discovery+Demo+page?showComments=true&amp;amp;showCommentArea=true#addcomment&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Add Comment&lt;/a&gt;
            &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-CONF--Apache-CXF-%3E-DOSGi-Discovery-Demo-page-tp26645397p26645397.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26645278</id>
	<title>[CONF] Apache CXF &gt; DOSGi Discovery</title>
	<published>2009-12-04T08:37:00Z</published>
	<updated>2009-12-04T08:37:00Z</updated>
	<author>
		<name>confluence-2</name>
	</author>
	<content type="html">&lt;html&gt;
&lt;head&gt;
    &lt;base href=&quot;http://cwiki.apache.org/confluence&quot;&gt;
            &lt;link rel=&quot;stylesheet&quot; href=&quot;/confluence/s/1519/1/11/_/styles/combined.css?spaceKey=CXF&amp;amp;forWysiwyg=true&quot; type=&quot;text/css&quot;&gt;
    &lt;/head&gt;
&lt;body style=&quot;background-color: white&quot; bgcolor=&quot;white&quot;&gt;
&lt;div id=&quot;pageContent&quot;&gt;
&lt;div id=&quot;notificationFormat&quot;&gt;
&lt;div class=&quot;wiki-content&quot;&gt;
&lt;div class=&quot;email&quot;&gt;
     &lt;h2&gt;&lt;a href=&quot;http://cwiki.apache.org/confluence/display/CXF/DOSGi+Discovery&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;DOSGi Discovery&lt;/a&gt;&lt;/h2&gt;
     &lt;h4&gt;Page &lt;b&gt;edited&lt;/b&gt; by             &lt;a href=&quot;http://cwiki.apache.org/confluence/display/~davidb@apache.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;David Bosschaert&lt;/a&gt;
    &lt;/h4&gt;
     Update to 1.1
          &lt;div id=&quot;versionComment&quot; class=&quot;noteMacro&quot; style=&quot;display:none; padding: 5px;&quot;&gt;
     Update to 1.1&lt;br /&gt;
     &lt;/div&gt;
          &lt;br /&gt;
     &lt;div class=&quot;notificationGreySide&quot;&gt;
         &lt;p&gt;This page outlines setting up the Discovery implementation that is part of CXF Distributed OSGi.&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;DOSGiDiscovery-Introduction&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The Distributed OSGi document RFC 119 also describes a standard way publish and obtain remote service metadata. A primary use-cases for this is a Discovery system. How the discovery system works is not described, but the interaction with the Discovery system is. This interaction happens through OSGi services. &lt;/p&gt;

&lt;p&gt;The CXF/DOSGi project comes with a RFC 119 compliant Discovery implementation that uses Apache ZooKeeper as the underlying technology for the Discovery Server. This page outlines how to get started with CXF DOSGi/Discovery.&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;DOSGiDiscovery-InstallingandruntheZooKeeperserver&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;Installing and run the ZooKeeper server&lt;/h2&gt;
&lt;p&gt;Read the ZooKeeper Getting Started page: &lt;a href=&quot;http://hadoop.apache.org/zookeeper/docs/current/zookeeperStarted.html&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://hadoop.apache.org/zookeeper/docs/current/zookeeperStarted.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The ZooKeeper distribution doesn't contain any Windows scripts yet. If you're on &lt;a href=&quot;https://issues.apache.org/jira/browse/ZOOKEEPER-426&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;Windows you can download scripts to start the ZooKeeper server and the client program from here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once you have ZooKeeper installed (the current version used is 3.2.1), run its server:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;$ bin/zkServer
... log messages ...
2009-06-10 13:23:27,288 - INFO  [main:FileTxnSnapLog@198] - Snapshotting: 0
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The ZooKeeper server is now ready.&lt;/p&gt;

&lt;p&gt;You can check that all is well by running the client program:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;$ bin/zkCli -server localhost:2181
--&amp;gt; ls /
Processing ls
[zookeeper]&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;So besides the zookeeper node, there is nothing in the ZooKeeper virtual filesystem yet.&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;DOSGiDiscovery-InstallingtheCXFDiscoveryBundles&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;Installing the CXF Discovery Bundles&lt;/h2&gt;
&lt;p&gt;The CXF/DOSGi Discovery implementation interacts with the ZooKeeper server. It's included in both the Single-bundle and Multi-bundle distributions of CXF-DOSGi.&lt;/p&gt;

&lt;h3&gt;&lt;a name=&quot;DOSGiDiscovery-SingleBundleDistribution&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;Single Bundle Distribution&lt;/h3&gt;
&lt;p&gt;When you are using the CXF-DOSGi Single-Bundle distro, you automatically get the Discovery functionality with that.&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
-&amp;gt; install http:&lt;span class=&quot;code-comment&quot;&gt;//repo1.maven.org/maven2/org/osgi/org.osgi.compendium/4.2.0/org.osgi.compendium-4.2.0.jar
&lt;/span&gt;Bundle ID: 4
-&amp;gt; install http:&lt;span class=&quot;code-comment&quot;&gt;//www.apache.org/dist/cxf/dosgi/1.1/cxf-dosgi-ri-singlebundle-distribution-1.1.jar
&lt;/span&gt;Bundle ID: 5
-&amp;gt; start 5
... log messages ...
-&amp;gt; ps
START LEVEL 1
   ID   State         Level  Name
[   0] [Active     ] [    0] &lt;span class=&quot;code-object&quot;&gt;System&lt;/span&gt; Bundle (1.8.0)
[   1] [Active     ] [    1] Apache Felix Shell Service (1.2.0)
[   2] [Active     ] [    1] Apache Felix Shell TUI (1.2.0)
[   3] [Active     ] [    1] Apache Felix Bundle Repository (1.4.0)
[   4] [Resolved   ] [    1] osgi.cmpn (4.2.0.200908310645)
[   5] [Active     ] [    1] Distributed OSGi Distribution Software Single-Bundle Distribution (1.1)&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The Discovery bundle is now active, but it doesn't do anything yet since it's not yet configured. &lt;/p&gt;

&lt;h3&gt;&lt;a name=&quot;DOSGiDiscovery-MultiBundleDistribution&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;Multi Bundle Distribution&lt;/h3&gt;
&lt;p&gt;TODO&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;DOSGiDiscovery-ConfiguringDiscovery&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;Configuring Discovery&lt;/h2&gt;
&lt;p&gt;The CXF/Discovery component is configured through the OSGi Configuration Admin Service. For convenience the CXF/Discovery distributions come with the Configuration Admin and FileInstall implementations from Felix, but you can also use another implementation of the Configuration Admin service.&lt;/p&gt;

&lt;p&gt;When you start up the bundle(s) in the CXF/Discovery distribution, the FileInstall bundle will create a 'load' directory in the current working directory. This is where you can put Config Admin configurations. &lt;/p&gt;

&lt;p&gt;To configure the ZooKeeper client in CXF/Discovery the following configuration variables apply. They need to be set on Configuration Admin PID &lt;tt&gt;org.apache.cxf.dosgi.discovery.zookeeper&lt;/tt&gt;.&lt;/p&gt;
&lt;table class='confluenceTable'&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;th class='confluenceTh'&gt; Configuration property &lt;/th&gt;
&lt;th class='confluenceTh'&gt; Default &lt;/th&gt;
&lt;th class='confluenceTh'&gt; Description &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class='confluenceTd'&gt; zookeeper.host &lt;/td&gt;
&lt;td class='confluenceTd'&gt; &lt;em&gt;no default&lt;/em&gt; &lt;/td&gt;
&lt;td class='confluenceTd'&gt; The host where the ZooKeeper server is running. &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class='confluenceTd'&gt; zookeeper.port &lt;/td&gt;
&lt;td class='confluenceTd'&gt; 2181 &lt;/td&gt;
&lt;td class='confluenceTd'&gt; The port of the ZooKeeper server. &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class='confluenceTd'&gt; zookeeper.timeout &lt;/td&gt;
&lt;td class='confluenceTd'&gt; 3000 &lt;/td&gt;
&lt;td class='confluenceTd'&gt; Sets the ZooKeeper tick time. &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;For more information on the ZooKeeper configuration variables see the ZooKeeper administration guide: &lt;a href=&quot;http://hadoop.apache.org/zookeeper/docs/current/zookeeperAdmin.html&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://hadoop.apache.org/zookeeper/docs/current/zookeeperAdmin.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An easy way to set the configuration, it by placing a file called &lt;tt&gt;org.apache.cxf.dosgi.discovery.zookeeper.cfg&lt;/tt&gt; in the load directory created by the FileInstall bundle with the following content:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
zookeeper.host = 127.0.0.1
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;As soon as you set the configuration, the Discovery will connect to the ZooKeeper server. You will see a few log messages on the ZooKeeper server console to reflect this.&lt;/p&gt;

&lt;p&gt;You can always check the configuration of the ZooKeeper client by looking at the ManagedService registered by the CXF/Discovery bundle:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;-&amp;gt; services 6

Distributed OSGi Zookeeper-Based Discovery Single-Bundle Distribution (6) provides:
-----------------------------------------------------------------------------------
... other services ...
----
objectClass = org.osgi.service.cm.ManagedService
felix.fileinstall.filename = org.apache.cxf.dosgi.discovery.zookeeper.cfg
service.id = 38
service.pid = org.apache.cxf.dosgi.discovery.zookeeper
zookeeper.host = localhost
zookeeper.port = 2181
zookeeper.timeout = 3000
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;For further information and a walkthrough of the Discovery demo see the &lt;a href=&quot;/confluence/display/CXF/DOSGi+Discovery+Demo+page&quot; title=&quot;DOSGi Discovery Demo page&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;DOSGi Discovery Demo page&lt;/a&gt;.&lt;/p&gt;
     &lt;/div&gt;
     &lt;div id=&quot;commentsSection&quot; class=&quot;wiki-content pageSection&quot;&gt;
       &lt;div style=&quot;float: right;&quot;&gt;
            &lt;a href=&quot;http://cwiki.apache.org/confluence/users/viewnotifications.action&quot; class=&quot;grey&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Change Notification Preferences&lt;/a&gt;
       &lt;/div&gt;

       &lt;a href=&quot;http://cwiki.apache.org/confluence/display/CXF/DOSGi+Discovery&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;View Online&lt;/a&gt;
       |
       &lt;a href=&quot;http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=119937&amp;revisedVersion=10&amp;originalVersion=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;View Change&lt;/a&gt;
              |
       &lt;a href=&quot;http://cwiki.apache.org/confluence/display/CXF/DOSGi+Discovery?showComments=true&amp;amp;showCommentArea=true#addcomment&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Add Comment&lt;/a&gt;
            &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-CONF--Apache-CXF-%3E-DOSGi-Discovery-tp26645278p26645278.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26644434</id>
	<title>[CONF] Apache CXF &gt; DOSGi DS Demo page</title>
	<published>2009-12-04T07:45:00Z</published>
	<updated>2009-12-04T07:45:00Z</updated>
	<author>
		<name>confluence-2</name>
	</author>
	<content type="html">&lt;html&gt;
&lt;head&gt;
    &lt;base href=&quot;http://cwiki.apache.org/confluence&quot;&gt;
            &lt;link rel=&quot;stylesheet&quot; href=&quot;/confluence/s/1519/1/11/_/styles/combined.css?spaceKey=CXF&amp;amp;forWysiwyg=true&quot; type=&quot;text/css&quot;&gt;
    &lt;/head&gt;
&lt;body style=&quot;background-color: white&quot; bgcolor=&quot;white&quot;&gt;
&lt;div id=&quot;pageContent&quot;&gt;
&lt;div id=&quot;notificationFormat&quot;&gt;
&lt;div class=&quot;wiki-content&quot;&gt;
&lt;div class=&quot;email&quot;&gt;
     &lt;h2&gt;&lt;a href=&quot;http://cwiki.apache.org/confluence/display/CXF/DOSGi+DS+Demo+page&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;DOSGi DS Demo page&lt;/a&gt;&lt;/h2&gt;
     &lt;h4&gt;Page &lt;b&gt;edited&lt;/b&gt; by             &lt;a href=&quot;http://cwiki.apache.org/confluence/display/~davidb@apache.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;David Bosschaert&lt;/a&gt;
    &lt;/h4&gt;
     Update to 1.1
          &lt;div id=&quot;versionComment&quot; class=&quot;noteMacro&quot; style=&quot;display:none; padding: 5px;&quot;&gt;
     Update to 1.1&lt;br /&gt;
     &lt;/div&gt;
          &lt;br /&gt;
     &lt;div class=&quot;notificationGreySide&quot;&gt;
         &lt;p&gt;This page describes the CXF Distributed OSGi with Declarative Services demo.&lt;/p&gt;

&lt;p&gt;The Declarative Services demo uses a DS implementation to create a remoted OSGi service from a DS component. The consumer side uses DS to create a component that consumes the remote OSGi service. By using Declarative Services, you don't need to write code to interact with the OSGi Service Registry. That's all handled through injection which hugely simpliefies the code. &lt;br /&gt;
Declarative Services is similar to Spring-DM/OSGi Blueprint in that service dependencies are satisfied through injection. There are a few differences as well. DS is lighter weight than Spring-DM but also has less features. Declarative Services have been part of the OSGi specifications since version 4.0.&lt;/p&gt;

&lt;p&gt;This demo can be used with any DOSGi distribution, in this document the single-bundle distribution is used with the Equinox implementation of DS.&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;DOSGiDSDemopage-Demodesign&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;Demo design&lt;/h2&gt;

&lt;p&gt;This demo is quite similar to the Spring-DM demo and the Greeter demo in structure. It consists of 3 bundles:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;An interface bundle defining the Adder Service interface.&lt;/li&gt;
	&lt;li&gt;An Adder Service implementation bundle.&lt;/li&gt;
	&lt;li&gt;An Adder Service consumer bundle.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The service implementation and consumer bundle are built using DS.&lt;br /&gt;
&lt;img src=&quot;/confluence/download/attachments/119430/dosgi_cxf_ds.png&quot; align=&quot;absmiddle&quot; border=&quot;0&quot; /&gt; &lt;br /&gt;
The &lt;a href=&quot;http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/ds/interface/src/main/java/org/apache/cxf/dosgi/samples/ds/AdderService.java&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;Adder Service interface&lt;/a&gt; is as follows:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;&lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt; AdderService {
    &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; add(&lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; a, &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; b);
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;DOSGiDSDemopage-TheAdderServiceImplementation&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;The Adder Service Implementation&lt;/h2&gt;
&lt;p&gt;The service implementation providers a &lt;a href=&quot;http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/ds/impl/src/main/java/org/apache/cxf/dosgi/samples/ds/impl/AdderServiceImpl.java&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;simplistic implementation of the AdderService interface&lt;/a&gt;, which is instantiated as a DS component.&lt;/p&gt;

&lt;p&gt;In the &lt;a href=&quot;http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/ds/impl/src/main/resources/OSGI-INF/component.xml&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;&lt;tt&gt;OSGI-INF/component.xml&lt;/tt&gt;&lt;/a&gt; file the AdderServiceImpl is instantiated and registered with the OSGi service registry with the distribution properties. These properties instruct. Distributed OSGi into making the service available on &lt;a href=&quot;http://localhost:9090/adder&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://localhost:9090/adder&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-xml&quot;&gt;&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;scr:component &lt;span class=&quot;code-keyword&quot;&gt;xmlns:scr&lt;/span&gt;=&lt;span class=&quot;code-quote&quot;&gt;&quot;http://www.osgi.org/xmlns/scr/v1.1.0&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;implementation class=&lt;span class=&quot;code-quote&quot;&gt;&quot;org.apache.cxf.dosgi.samples.ds.impl.AdderServiceImpl&quot;&lt;/span&gt;/&amp;gt;&lt;/span&gt;
  
  &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;property name=&lt;span class=&quot;code-quote&quot;&gt;&quot;osgi.remote.interfaces&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;*&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;property name=&lt;span class=&quot;code-quote&quot;&gt;&quot;osgi.remote.configuration.type&quot;&lt;/span&gt; value=&lt;span class=&quot;code-quote&quot;&gt;&quot;pojo&quot;&lt;/span&gt; /&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;property name=&lt;span class=&quot;code-quote&quot;&gt;&quot;osgi.remote.configuration.pojo.address&quot;&lt;/span&gt; value=&lt;span class=&quot;code-quote&quot;&gt;&quot;http://localhost:9090/adder&quot;&lt;/span&gt; /&amp;gt;&lt;/span&gt;
  
  &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;service&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;provide interface=&lt;span class=&quot;code-quote&quot;&gt;&quot;org.apache.cxf.dosgi.samples.ds.AdderService&quot;&lt;/span&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/service&amp;gt;&lt;/span&gt;
&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/scr:component&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Note that the &lt;tt&gt;META-INF/MANIFEST.MF&lt;/tt&gt; file needs to contain a special DS header that tells the system where to find this file. In case of this demo, this header is added by the Maven build system. The header used by the demo is:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;  Service-Component: OSGI-INF/component.xml&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;So let's install the server side in Equinox, together with the Equinox DS implementation. You can do this from the Equinox command line, but in this document I'll launch Equinox from within Eclipse.&lt;br /&gt;
I'm starting off by importing the Single Bundle Distribution as a binary project in Eclipse by going &lt;em&gt;File -&amp;gt; Import | Plug-ins and Fragments&lt;/em&gt; and then select the directory that contains the single bundle distribution JAR file. My workspace now looks like this:&lt;br /&gt;
&lt;img src=&quot;/confluence/download/attachments/119430/start.JPG&quot; align=&quot;absmiddle&quot; border=&quot;0&quot; /&gt;&lt;br /&gt;
Next I'll create an OSGi Framework launch configuration that includes DS. To do this&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;&lt;em&gt;deselect&lt;/em&gt; the 'Target Platform' tickbox in the Eclipse Launch configuration screen&lt;/li&gt;
	&lt;li&gt;select org.eclipse.equinox.ds&lt;/li&gt;
	&lt;li&gt;hit the 'Add Required Bundles' button&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;&lt;img src=&quot;/confluence/download/attachments/119430/launch.JPG&quot; align=&quot;absmiddle&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now run the OSGi container, you will get a setup like this:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;osgi&amp;gt; ss

Framework is launched.

id	State       Bundle
0	ACTIVE      org.eclipse.osgi_3.5.0.v20090520
1	ACTIVE      org.eclipse.equinox.util_1.0.100.v20090520-1800
2	ACTIVE      org.eclipse.osgi.services_3.2.0.v20090520-1800
3	ACTIVE      cxf-dosgi-ri-singlebundle-distribution_1.1.0.SNAPSHOT
4	ACTIVE      org.eclipse.equinox.ds_1.1.0.v20090520-1800&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Now I can install the DOSGi DS bundles in the OSGi container directly from the maven repository. &lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;osgi&amp;gt; install http:&lt;span class=&quot;code-comment&quot;&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-ds-&lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt;/1.1/cxf-dosgi-ri-samples-ds-&lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt;-1.1.jar
&lt;/span&gt;Bundle id is 5

osgi&amp;gt; install http:&lt;span class=&quot;code-comment&quot;&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-ds-impl/1.1/cxf-dosgi-ri-samples-ds-impl-1.1.jar
&lt;/span&gt;Bundle id is 6

osgi&amp;gt; start 6
... log messages may appear ...&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;div class='panelMacro'&gt;&lt;table class='tipMacro'&gt;&lt;colgroup&gt;&lt;col width='24'&gt;&lt;col&gt;&lt;/colgroup&gt;&lt;tr&gt;&lt;td valign='top'&gt;&lt;img src=&quot;/confluence/images/icons/emoticons/check.gif&quot; width=&quot;16&quot; height=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;&gt;&lt;/td&gt;&lt;td&gt;You can also import the maven projects of the DS demo into Eclipse, this would save you from installing it with a URL as above. To do this, check out the CXF/DOSGi source from SVN (&lt;a href=&quot;http://svn.apache.org/repos/asf/cxf/dosgi/trunk&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://svn.apache.org/repos/asf/cxf/dosgi/trunk&lt;/a&gt;), run &lt;tt&gt;mvn eclipse:eclipse&lt;/tt&gt; and import all Eclipse projects under the &lt;tt&gt;samples/ds&lt;/tt&gt; directory in Eclipse with &lt;em&gt;File -&amp;gt; Import | Existing Projects into Workspace&lt;/em&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;At this point, the service should be available remotely, you can check this by obtaining the WSDL:&lt;br /&gt;
&lt;img src=&quot;/confluence/download/attachments/119430/wsdl.JPG&quot; align=&quot;absmiddle&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;DOSGiDSDemopage-TheAdderServiceConsumer&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;The Adder Service Consumer&lt;/h2&gt;
&lt;p&gt;The service consumer is also created using DS. DS creates an AdderConsumer component which is injected with a reference to the remote AdderService. Like in Spring, the injection is done by DS, which makes the code nice and simple. When the injection is done, the start() method is called.&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;&lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; class AdderConsumer {
    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; AdderService adder;
    
    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void bindAdder(AdderService a) {
        adder = a;
    }
    
    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void unbindAdder(AdderService a) {
        adder = &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;;
    }
    
    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void start(ComponentContext cc) {
        &lt;span class=&quot;code-object&quot;&gt;System&lt;/span&gt;.out.println(&lt;span class=&quot;code-quote&quot;&gt;&quot;Using adder service: 1 + 1 = &quot;&lt;/span&gt; + adder.add(1, 1));
    }
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The client side bundle contains an &lt;a href=&quot;http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/ds/client/src/main/resources/OSGI-INF/component.xml&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;&lt;tt&gt;OSGI-INF/component.xml&lt;/tt&gt;&lt;/a&gt; which drives the component creation and injection:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-xml&quot;&gt;&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;scr:component &lt;span class=&quot;code-keyword&quot;&gt;xmlns:scr&lt;/span&gt;=&lt;span class=&quot;code-quote&quot;&gt;&quot;http://www.osgi.org/xmlns/scr/v1.1.0&quot;&lt;/span&gt; activate=&lt;span class=&quot;code-quote&quot;&gt;&quot;start&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
   &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;implementation class=&lt;span class=&quot;code-quote&quot;&gt;&quot;org.apache.cxf.dosgi.samples.ds.consumer.AdderConsumer&quot;&lt;/span&gt;/&amp;gt;&lt;/span&gt;
   &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;reference interface=&lt;span class=&quot;code-quote&quot;&gt;&quot;org.apache.cxf.dosgi.samples.ds.AdderService&quot;&lt;/span&gt; name=&lt;span class=&quot;code-quote&quot;&gt;&quot;AdderService&quot;&lt;/span&gt; cardinality=&lt;span class=&quot;code-quote&quot;&gt;&quot;1..1&quot;&lt;/span&gt; policy=&lt;span class=&quot;code-quote&quot;&gt;&quot;dynamic&quot;&lt;/span&gt; bind=&lt;span class=&quot;code-quote&quot;&gt;&quot;bindAdder&quot;&lt;/span&gt; unbind=&lt;span class=&quot;code-quote&quot;&gt;&quot;unbindAdder&quot;&lt;/span&gt;/&amp;gt;&lt;/span&gt;
&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/scr:component&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;As on the service provider side, the client side bundle needs to contain the DS header in the &lt;tt&gt;META-INF/MANIFEST.MF&lt;/tt&gt;:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;  Service-Component: OSGI-INF/component.xml&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;As in the Greeter demo, the client side needs to be configured to knoe where teh remote service actually is. This is one in the &lt;a href=&quot;http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/ds/client/src/main/resources/OSGI-INF/remote-service/remote-services.xml&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;&lt;tt&gt;OSGI-INF/remote-service/remote-services.xml&lt;/tt&gt;&lt;/a&gt; file:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-xml&quot;&gt;&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;service-descriptions xmlns=&lt;span class=&quot;code-quote&quot;&gt;&quot;http://www.osgi.org/xmlns/sd/v1.0.0&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;service-description&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;provide interface=&lt;span class=&quot;code-quote&quot;&gt;&quot;org.apache.cxf.dosgi.samples.ds.AdderService&quot;&lt;/span&gt; /&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;property name=&lt;span class=&quot;code-quote&quot;&gt;&quot;osgi.remote.interfaces&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;*&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;property name=&lt;span class=&quot;code-quote&quot;&gt;&quot;osgi.remote.configuration.type&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;pojo&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;property name=&lt;span class=&quot;code-quote&quot;&gt;&quot;osgi.remote.configuration.pojo.address&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;http://localhost:9090/adder&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/service-description&amp;gt;&lt;/span&gt;
&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/service-descriptions&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Install and run the consumer side of the demo in a separate Equinox instance (tip: you can duplicate the launch configuration used for the server side in the 'Run Configurations' dialog):&lt;/p&gt;


&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;osgi&amp;gt; install http:&lt;span class=&quot;code-comment&quot;&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-ds-&lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt;/1.1/cxf-dosgi-ri-samples-ds-&lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt;-1.1.jar
&lt;/span&gt;Bundle id is 5

osgi&amp;gt; install http:&lt;span class=&quot;code-comment&quot;&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-ds-client/1.1/cxf-dosgi-ri-samples-ds-client-1.1.jar
&lt;/span&gt;Bundle id is 6

osgi&amp;gt; start 6
... log messages may appear, after a little &lt;span class=&quot;code-keyword&quot;&gt;while&lt;/span&gt; the following message appears:
Using adder service: 1 + 1 = 2&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The remote adder service has now been invoked. You will see the following line on the server side Equinox window:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;Adder service invoked: 1 + 1 = 2&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
     &lt;/div&gt;
     &lt;div id=&quot;commentsSection&quot; class=&quot;wiki-content pageSection&quot;&gt;
       &lt;div style=&quot;float: right;&quot;&gt;
            &lt;a href=&quot;http://cwiki.apache.org/confluence/users/viewnotifications.action&quot; class=&quot;grey&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Change Notification Preferences&lt;/a&gt;
       &lt;/div&gt;

       &lt;a href=&quot;http://cwiki.apache.org/confluence/display/CXF/DOSGi+DS+Demo+page&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;View Online&lt;/a&gt;
       |
       &lt;a href=&quot;http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=119430&amp;revisedVersion=10&amp;originalVersion=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;View Change&lt;/a&gt;
              |
       &lt;a href=&quot;http://cwiki.apache.org/confluence/display/CXF/DOSGi+DS+Demo+page?showComments=true&amp;amp;showCommentArea=true#addcomment&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Add Comment&lt;/a&gt;
            &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-CONF--Apache-CXF-%3E-DOSGi-DS-Demo-page-tp26644434p26644434.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26644242</id>
	<title>[CONF] Apache CXF &gt; DOSGi DS Demo page</title>
	<published>2009-12-04T07:34:00Z</published>
	<updated>2009-12-04T07:34:00Z</updated>
	<author>
		<name>confluence-2</name>
	</author>
	<content type="html">&lt;html&gt;
&lt;head&gt;
    &lt;base href=&quot;http://cwiki.apache.org/confluence&quot;&gt;
            &lt;link rel=&quot;stylesheet&quot; href=&quot;/confluence/s/1519/1/11/_/styles/combined.css?spaceKey=CXF&amp;amp;forWysiwyg=true&quot; type=&quot;text/css&quot;&gt;
    &lt;/head&gt;
&lt;body style=&quot;background-color: white&quot; bgcolor=&quot;white&quot;&gt;
&lt;div id=&quot;pageContent&quot;&gt;
&lt;div id=&quot;notificationFormat&quot;&gt;
&lt;div class=&quot;wiki-content&quot;&gt;
&lt;div class=&quot;email&quot;&gt;
    &lt;h2&gt;&lt;a href=&quot;http://cwiki.apache.org/confluence/display/CXF/DOSGi+DS+Demo+page&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;DOSGi DS Demo page&lt;/a&gt;&lt;/h2&gt;
    &lt;h4&gt;File &lt;b&gt;attached&lt;/b&gt; by              &lt;a href=&quot;http://cwiki.apache.org/confluence/display/~davidb@apache.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;David Bosschaert&lt;/a&gt;
    &lt;/h4&gt;
    &lt;br /&gt;
    &lt;div class=&quot;notificationGreySide&quot;&gt;
    &lt;p&gt;
            &lt;a href=&quot;http://cwiki.apache.org/confluence/download/attachments/119430/start.JPG?version=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;start.JPG&lt;/a&gt;
        &lt;span class=&quot;smalltext&quot;&gt;(65 kB image/jpeg)&lt;/span&gt;
                    &lt;a href=&quot;http://cwiki.apache.org/confluence/download/attachments/119430/launch.JPG?version=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;launch.JPG&lt;/a&gt;
        &lt;span class=&quot;smalltext&quot;&gt;(115 kB image/jpeg)&lt;/span&gt;
                &lt;/p&gt;
    &lt;/div&gt;
    &lt;div id=&quot;commentsSection&quot; class=&quot;wiki-content pageSection&quot;&gt;
       &lt;div style=&quot;float: right;&quot;&gt;
            &lt;a href=&quot;http://cwiki.apache.org/confluence/users/viewnotifications.action&quot; class=&quot;grey&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Change Notification Preferences&lt;/a&gt;
       &lt;/div&gt;
       &lt;a href=&quot;http://cwiki.apache.org/confluence/pages/viewpageattachments.action?pageId=119430&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;View Attachments&lt;/a&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-CONF--Apache-CXF-%3E-DOSGi-DS-Demo-page-tp26644242p26644242.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26643859</id>
	<title>[CONF] Apache CXF &gt; DOSGi Multi Bundle Setup</title>
	<published>2009-12-04T07:08:00Z</published>
	<updated>2009-12-04T07:08:00Z</updated>
	<author>
		<name>confluence-2</name>
	</author>
	<content type="html">&lt;html&gt;
&lt;head&gt;
    &lt;base href=&quot;http://cwiki.apache.org/confluence&quot;&gt;
            &lt;link rel=&quot;stylesheet&quot; href=&quot;/confluence/s/1519/1/11/_/styles/combined.css?spaceKey=CXF&amp;amp;forWysiwyg=true&quot; type=&quot;text/css&quot;&gt;
    &lt;/head&gt;
&lt;body style=&quot;background-color: white&quot; bgcolor=&quot;white&quot;&gt;
&lt;div id=&quot;pageContent&quot;&gt;
&lt;div id=&quot;notificationFormat&quot;&gt;
&lt;div class=&quot;wiki-content&quot;&gt;
&lt;div class=&quot;email&quot;&gt;
     &lt;h2&gt;&lt;a href=&quot;http://cwiki.apache.org/confluence/display/CXF/DOSGi+Multi+Bundle+Setup&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;DOSGi Multi Bundle Setup&lt;/a&gt;&lt;/h2&gt;
     &lt;h4&gt;Page &lt;b&gt;edited&lt;/b&gt; by             &lt;a href=&quot;http://cwiki.apache.org/confluence/display/~davidb@apache.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;David Bosschaert&lt;/a&gt;
    &lt;/h4&gt;
     Update to 1.1
          &lt;div id=&quot;versionComment&quot; class=&quot;noteMacro&quot; style=&quot;display:none; padding: 5px;&quot;&gt;
     Update to 1.1&lt;br /&gt;
     &lt;/div&gt;
          &lt;br /&gt;
     &lt;div class=&quot;notificationGreySide&quot;&gt;
         &lt;h1&gt;&lt;a name=&quot;DOSGiMultiBundleSetup-SettinguptheMultiBundleDistributionofCXFDistributedOSGi&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;Setting up the Multi Bundle Distribution of CXF Distributed OSGi&lt;/h1&gt;
&lt;p&gt;The multi-bundle distribution of CXF/DOSGi contains all the DOSGi bundles plus their dependencies as individual bundles. While the single-bundle distribution is certainly easier to get started with, the multi-bundle distro is more flexible wrt to sharing bundles and updating dependencies. To obtain a multi bundle distribution see the &lt;a href=&quot;/confluence/display/CXF/DOSGi+Releases&quot; title=&quot;DOSGi Releases&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;DOSGi Releases&lt;/a&gt; page.&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;DOSGiMultiBundleSetup-SettingupFelix&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;Setting up Felix&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Verified with: Felix 1.8.0&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In the distribution you will find a file called: &lt;tt&gt;.../conf/felix.config.properties.append&lt;/tt&gt;. This file contains auto-start instructions for every bundle in the distribution.&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Simply copy the content of the whole file and append it to the &lt;tt&gt;conf/config.properties&lt;/tt&gt; file of the Felix distribution.&lt;/li&gt;
	&lt;li&gt;Fix the &lt;tt&gt;&lt;a href=&quot;file:apache-cxf-dosgi-ri&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;file:apache-cxf-dosgi-ri&lt;/a&gt;&lt;/tt&gt; URLs in the file to point to where you have unzipped the distribution.&lt;/li&gt;
	&lt;li&gt;Felix 1.8.0 has changed the startlevel property, which may need fixing in this file. Change from &lt;tt&gt;org.osgi.framework.startlevel=32&lt;/tt&gt; to &lt;tt&gt;org.osgi.framework.startlevel.beginning=32&lt;/tt&gt; (This step will not be needed in future releases of CXF/DOSGi).&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;At the end the &lt;tt&gt;conf/config.properties&lt;/tt&gt; file looks like this:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;... existing lines ...
org.ops4j.pax.web.session.timeout=30
org.osgi.framework.startlevel.beginning=81
felix.auto.start.50=http:&lt;span class=&quot;code-comment&quot;&gt;//repo2.maven.org/maven2/org/osgi/org.osgi.compendium/4.1.0/org.osgi.compendium-4.1.0.jar
&lt;/span&gt;    
felix.auto.start.51=file:&lt;span class=&quot;code-comment&quot;&gt;///c:/apache-cxf-dosgi-ri-1.1/dosgi_bundles/geronimo-annotation_1.0_spec-1.1.1.jar
&lt;/span&gt;felix.auto.start.52=file:&lt;span class=&quot;code-comment&quot;&gt;///c:/apache-cxf-dosgi-ri-1.1/dosgi_bundles/geronimo-activation_1.1_spec-1.0.2.jar
&lt;/span&gt;... and so on ...
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Now start Felix:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;.../felix-1.8.0&amp;gt; java -jar bin/felix.jar

Welcome to Felix.
=================
... some log messages may appear ...
-&amp;gt; ps
START LEVEL 81
   ID   State         Level  Name
[   0] [Active     ] [    0] &lt;span class=&quot;code-object&quot;&gt;System&lt;/span&gt; Bundle (1.8.0)
[   1] [Active     ] [   53] geronimo-javamail_1.4_spec (1.2)
[   2] [Active     ] [   52] geronimo-activation_1.1_spec (1.0.2)
[   3] [Active     ] [   51] geronimo-annotation_1.0_spec (1.1.1)
[   4] [Active     ] [   50] osgi.compendium (4.1.0.build-200702212030)
[   5] [Active     ] [   81] CXF Distributed Software Bundle (1.1)
[   6] [Active     ] [   80] CXF Local Discovery Service Bundle (1.1)
[   7] [Active     ] [   79] Apache ServiceMix Specs :: JSR311 API 1.0 (1.3.0)
[   8] [Active     ] [   78] Apache ServiceMix Specs :: JAXWS API 2.1 (1.3.0)
[   9] [Active     ] [   77] Apache ServiceMix Specs :: JAXB API 2.1 (1.3.0)
[  10] [Active     ] [   76] Apache ServiceMix Specs :: STAX API 1.0 (1.3.0)
[  11] [Active     ] [   75] Apache ServiceMix Specs :: SAAJ API 1.3 (1.3.0)
[  12] [Active     ] [   74] Apache CXF Minimal Bundle Jar (2.2.4)
[  13] [Active     ] [   73] Apache ServiceMix Bundles: woodstox-3.2.7 (3.2.7.1)
[  14] [Active     ] [   72] Apache ServiceMix Bundles: neethi-2.0.4 (2.0.4.1)
[  15] [Active     ] [   71] Apache ServiceMix Bundles: xmlresolver-1.2 (1.2.0.1)
[  16] [Active     ] [   70] Apache ServiceMix Bundles: asm-2.2.3 (2.2.3.1)
[  17] [Active     ] [   69] Apache ServiceMix Bundles: xmlschema-1.4.3 (1.4.3.1)
[  18] [Active     ] [   68] Apache ServiceMix Bundles: xmlsec-1.3.0 (1.3.0.1)
[  19] [Active     ] [   67] Apache ServiceMix Bundles: wsdl4j-1.6.1 (1.6.1.1)
[  20] [Active     ] [   66] Apache ServiceMix Bundles: jaxb-impl-2.1.6 (2.1.6.1)
[  21] [Active     ] [   65] OPS4J Pax Web - Service (0.5.1)
[  22] [Active     ] [   64] spring-osgi-extender (1.2.0)
[  23] [Active     ] [   63] spring-osgi-core (1.2.0)
[  24] [Active     ] [   62] spring-osgi-io (1.2.0)
[  25] [Active     ] [   61] Spring AOP (2.5.6)
[  26] [Active     ] [   60] AOP Alliance API (1.0.0)
[  27] [Active     ] [    1] Apache Felix Shell Service (1.2.0)
[  28] [Active     ] [    1] Apache Felix Shell TUI (1.2.0)
[  29] [Active     ] [    1] Apache Felix Bundle Repository (1.4.0)
[  30] [Active     ] [   59] Spring Context (2.5.6)
[  31] [Active     ] [   58] Spring Beans (2.5.6)
[  32] [Active     ] [   57] Spring Core (2.5.6)
[  33] [Active     ] [   56] JDOM DOM Processor (1.0.0)
[  34] [Active     ] [   55] Apache Commons Logging (1.1.1)
[  35] [Active     ] [   54] geronimo-ws-metadata_2.0_spec (1.1.2)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;DOSGiMultiBundleSetup-SettingupEquinox&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;Setting up Equinox&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Verified with: Eclipse/Equinox 3.5 RC 3&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In the distribution you will find a file called: &lt;tt&gt;.../conf/equinox.config.ini.append&lt;/tt&gt;. This file contains auto-start instructions for every bundle in the distribution.&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Create a directory in the Equinox installation, e.g. &lt;tt&gt;dosgi_conf&lt;/tt&gt; and create a file called &lt;tt&gt;config.ini&lt;/tt&gt; in this directory with the content of the &lt;tt&gt;equinox.config.ini.append&lt;/tt&gt; file.&lt;/li&gt;
	&lt;li&gt;Fix the &lt;tt&gt;../apache-cxf-dosgi-ri&lt;/tt&gt; path locations in the file to point to where you have unzipped the distribution.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;At the end the &lt;tt&gt;dosgi_conf/config.ini&lt;/tt&gt; file looks like this:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;org.ops4j.pax.web.session.timeout=30
osgi.bundles=org.eclipse.osgi.services@start, \
c:/apache-cxf-dosgi-ri-1.0/dosgi_bundles/geronimo-annotation_1.0_spec-1.1.1.jar@start, c:/apache-cxf-dosgi-ri-1.0/dosgi_bundles/geronimo-activation_1.1_spec-1.0.2.jar@start, 
... and so on ...&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Now start Equinox:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;.../eclipse&amp;gt; java -jar plugins/org.eclipse.osgi_3.5.0.v20090520.jar -console -configuration dosgi_conf
... some log messages may appear ...
osgi&amp;gt; ss

Framework is launched.

id      State       Bundle
0       ACTIVE      org.eclipse.osgi_3.5.0.v20090520
1       ACTIVE      org.eclipse.osgi.services_3.2.0.v20090520-1800
2       ACTIVE      org.apache.geronimo.specs.geronimo-annotation_1.0_spec_1.1.1
3       ACTIVE      org.apache.geronimo.specs.geronimo-activation_1.1_spec_1.0.2
4       ACTIVE      org.apache.geronimo.specs.geronimo-javamail_1.4_spec_1.2.0
5       ACTIVE      org.apache.geronimo.specs.geronimo-ws-metadata_2.0_spec_1.1.2
6       ACTIVE      com.springsource.org.apache.commons.logging_1.1.1
7       ACTIVE      com.springsource.org.jdom_1.0.0
8       ACTIVE      org.springframework.core_2.5.6
9       ACTIVE      org.springframework.beans_2.5.6
10      ACTIVE      org.springframework.context_2.5.6
11      ACTIVE      com.springsource.org.aopalliance_1.0.0
12      ACTIVE      org.springframework.aop_2.5.6
13      ACTIVE      org.springframework.osgi.io_1.2.0
14      ACTIVE      org.springframework.osgi.core_1.2.0
15      ACTIVE      org.springframework.osgi.extender_1.2.0
16      ACTIVE      org.ops4j.pax.web.service_0.5.1
17      ACTIVE      org.apache.servicemix.bundles.jaxb-impl_2.1.6.1
18      ACTIVE      org.apache.servicemix.bundles.wsdl4j_1.6.1.1
19      ACTIVE      org.apache.servicemix.bundles.xmlsec_1.3.0.1
20      ACTIVE      org.apache.servicemix.bundles.xmlschema_1.4.3.1
21      ACTIVE      org.apache.servicemix.bundles.asm_2.2.3.1
22      ACTIVE      org.apache.servicemix.bundles.xmlresolver_1.2.0.1
23      ACTIVE      org.apache.servicemix.bundles.neethi_2.0.4.1
24      ACTIVE      org.apache.servicemix.bundles.woodstox_3.2.7.1
25      ACTIVE      org.apache.cxf.bundle-minimal_2.2.1
26      ACTIVE      org.apache.servicemix.specs.saaj-api-1.3_1.1.1
27      ACTIVE      org.apache.servicemix.specs.stax-api-1.0_1.1.1
28      ACTIVE      org.apache.servicemix.specs.jaxb-api-2.1_1.1.1
29      ACTIVE      org.apache.servicemix.specs.jaxws-api-2.1_1.1.1
30      ACTIVE      cxf-dosgi-ri-discovery-local_1.0.0
31      ACTIVE      cxf-dosgi-ri-dsw-cxf_1.0.0
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
     &lt;/div&gt;
     &lt;div id=&quot;commentsSection&quot; class=&quot;wiki-content pageSection&quot;&gt;
       &lt;div style=&quot;float: right;&quot;&gt;
            &lt;a href=&quot;http://cwiki.apache.org/confluence/users/viewnotifications.action&quot; class=&quot;grey&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Change Notification Preferences&lt;/a&gt;
       &lt;/div&gt;

       &lt;a href=&quot;http://cwiki.apache.org/confluence/display/CXF/DOSGi+Multi+Bundle+Setup&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;View Online&lt;/a&gt;
       |
       &lt;a href=&quot;http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=119315&amp;revisedVersion=6&amp;originalVersion=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;View Change&lt;/a&gt;
              |
       &lt;a href=&quot;http://cwiki.apache.org/confluence/display/CXF/DOSGi+Multi+Bundle+Setup?showComments=true&amp;amp;showCommentArea=true#addcomment&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Add Comment&lt;/a&gt;
            &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-CONF--Apache-CXF-%3E-DOSGi-Multi-Bundle-Setup-tp26643859p26643859.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26643747</id>
	<title>[CONF] Apache CXF &gt; DOSGi Spring-DM Demo page</title>
	<published>2009-12-04T06:59:00Z</published>
	<updated>2009-12-04T06:59:00Z</updated>
	<author>
		<name>confluence-2</name>
	</author>
	<content type="html">&lt;html&gt;
&lt;head&gt;
    &lt;base href=&quot;http://cwiki.apache.org/confluence&quot;&gt;
            &lt;link rel=&quot;stylesheet&quot; href=&quot;/confluence/s/1519/1/11/_/styles/combined.css?spaceKey=CXF&amp;amp;forWysiwyg=true&quot; type=&quot;text/css&quot;&gt;
    &lt;/head&gt;
&lt;body style=&quot;background-color: white&quot; bgcolor=&quot;white&quot;&gt;
&lt;div id=&quot;pageContent&quot;&gt;
&lt;div id=&quot;notificationFormat&quot;&gt;
&lt;div class=&quot;wiki-content&quot;&gt;
&lt;div class=&quot;email&quot;&gt;
     &lt;h2&gt;&lt;a href=&quot;http://cwiki.apache.org/confluence/display/CXF/DOSGi+Spring-DM+Demo+page&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;DOSGi Spring-DM Demo page&lt;/a&gt;&lt;/h2&gt;
     &lt;h4&gt;Page &lt;b&gt;edited&lt;/b&gt; by             &lt;a href=&quot;http://cwiki.apache.org/confluence/display/~davidb@apache.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;David Bosschaert&lt;/a&gt;
    &lt;/h4&gt;
     Changing to version 1.1
          &lt;div id=&quot;versionComment&quot; class=&quot;noteMacro&quot; style=&quot;display:none; padding: 5px;&quot;&gt;
     Changing to version 1.1&lt;br /&gt;
     &lt;/div&gt;
          &lt;br /&gt;
     &lt;div class=&quot;notificationGreySide&quot;&gt;
         &lt;p&gt;This page describes the CXF Distributed OSGi with Spring-DM demo.&lt;/p&gt;

&lt;p&gt;The Spring-DM demo uses Spring-DM to create a remoted OSGi service from a Spring Bean. The consumer side uses Spring-DM to create a consumer to a remote OSGi service. By using Spring-DM you don't need to write code to interact with the OSGi Service Registry. That's all handled through injection which hugely simplifies the code. Besides, you can use all the features of Spring together with OSGi.&lt;/p&gt;

&lt;p&gt;It uses the CXF/DOSGi multi bundle distribution since that provides Spring-DM as a dependency. By installing the multi bundle distribution, you have all the prerequisites to run this demo. See &lt;a href=&quot;/confluence/display/CXF/DOSGi+Multi+Bundle+Setup&quot; title=&quot;DOSGi Multi Bundle Setup&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;here for instructions on installing the multi bundle distribution&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;&lt;a name=&quot;DOSGiSpring-DMDemopage-Demodesign&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;Demo design&lt;/h2&gt;
&lt;p&gt;From a high level the demo is very similar to the greeter demo. It comprises of 3 bundles:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;The demo interface bundle providing the Dinner Service interface.&lt;/li&gt;
	&lt;li&gt;The Dinner Service implementation bundle.&lt;/li&gt;
	&lt;li&gt;The Dinner Service consumer bundle.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;img src=&quot;/confluence/download/attachments/119322/dosgi_cxf_springdm.png&quot; align=&quot;absmiddle&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/spring_dm/interface/src/main/java/org/apache/cxf/dosgi/samples/springdm/DinnerService.java&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;Dinner Service interface&lt;/a&gt; is as follows:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;&lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt; DinnerService {
    List&amp;lt;Restaurant&amp;gt; findRestaurants(&lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; searchQuery);
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;DOSGiSpring-DMDemopage-TheDinnerServiceProvider&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;The Dinner Service Provider&lt;/h2&gt;

&lt;p&gt;The service implementation provides a &lt;a href=&quot;http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/spring_dm/impl/src/main/java/org/apache/cxf/dosgi/samples/springdm/impl/DinnerServiceImpl.java&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;simplistic implementation of the DinnerService interface&lt;/a&gt; which is instantiated via Spring as a bean. &lt;/p&gt;

&lt;p&gt;The interesting bit is in the &lt;a href=&quot;http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/spring_dm/impl/src/main/resources/META-INF/spring/spring.xml&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;&lt;tt&gt;META-INF/spring/spring.xml&lt;/tt&gt;&lt;/a&gt; file. This file creates the DinnerServiceImpl bean and registers it with the OSGi Service Registry. It also sets the &lt;tt&gt;osgi.remote.interfaces&lt;/tt&gt; property on the service to mark is as suitable for remoting. Here are the important parts of the &lt;tt&gt;spring.xml&lt;/tt&gt; file:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-xml&quot;&gt;
&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;beans &lt;span class=&quot;code-keyword&quot;&gt;xmlns:osgi&lt;/span&gt;=&lt;span class=&quot;code-quote&quot;&gt;&quot;...&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;osgi:service interface=&lt;span class=&quot;code-quote&quot;&gt;&quot;org.apache.cxf.dosgi.samples.springdm.DinnerService&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;osgi:service-properties&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;entry key=&lt;span class=&quot;code-quote&quot;&gt;&quot;osgi.remote.interfaces&quot;&lt;/span&gt; value=&lt;span class=&quot;code-quote&quot;&gt;&quot;*&quot;&lt;/span&gt; /&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/osgi:service-properties&amp;gt;&lt;/span&gt;
    
    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;bean class=&lt;span class=&quot;code-quote&quot;&gt;&quot;org.apache.cxf.dosgi.samples.springdm.impl.DinnerServiceImpl&quot;&lt;/span&gt; /&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/osgi:service&amp;gt;&lt;/span&gt;                      
&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/beans&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Unlike in the Greeter demo &lt;tt&gt;osgi.remote.configuration...&lt;/tt&gt; properties are not set in the configuration, this means that the service is exposed on the default location of &lt;tt&gt;&lt;a href=&quot;http://localhost:9000/org/apache/cxf/dosgi/samples/springdm/DinnerService&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;http://localhost:9000/org/apache/cxf/dosgi/samples/springdm/DinnerService&lt;/a&gt;&lt;/tt&gt;. The default location is based on the interface name of the service being remoted.&lt;/p&gt;

&lt;p&gt;In this example, the bundles are installed in Felix.&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;-&amp;gt; start http:&lt;span class=&quot;code-comment&quot;&gt;//repo2.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-spring-dm-&lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt;/1.1/cxf-dosgi-ri-samples-spring-dm-&lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt;-1.1.jar
&lt;/span&gt;-&amp;gt; start http:&lt;span class=&quot;code-comment&quot;&gt;//repo2.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-spring-dm-impl/1.1/cxf-dosgi-ri-samples-spring-dm-impl-1.1.jar
&lt;/span&gt;... log messages may appear ...
-&amp;gt; ps
START LEVEL 32
   ID   State         Level  Name
[   0] [Active     ] [    0] &lt;span class=&quot;code-object&quot;&gt;System&lt;/span&gt; Bundle (1.8.0)
... bundles ...
[  35] [Active     ] [    1] CXF Distributed OSGi Spring-DM Sample Interface Bundle
[  36] [Active     ] [    1] CXF Distributed OSGi Spring-DM Sample Implementation Bundle
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;At this point the service should be available. You can check this by obtaining the WSDL:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/confluence/download/attachments/119322/spring-dm-wsdl.jpeg&quot; align=&quot;absmiddle&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;DOSGiSpring-DMDemopage-TheDinnerServiceConsumer&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;The Dinner Service Consumer&lt;/h2&gt;
&lt;p&gt;As on the remote service provider side, the service consumer is also created using spring. Spring creates a &lt;a href=&quot;http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/spring_dm/client/src/main/java/org/apache/cxf/dosgi/samples/springdm/client/DinnerServiceConsumer.java&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;DinnerServiceConsumer&lt;/a&gt; bean which is injected with the a proxy to the remote DinnerService. The injection is all done by Spring, which makes the code extremely simple. When Spring is done injecting, it calls the &lt;tt&gt;start()&lt;/tt&gt; method where the remote service is used. &lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;&lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; class DinnerServiceConsumer {
    DinnerService dinnerService;
    
    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void setDinnerService(DinnerService ds) {
        dinnerService = ds;
    }
    
    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void start() {
        &lt;span class=&quot;code-object&quot;&gt;System&lt;/span&gt;.out.println(&lt;span class=&quot;code-quote&quot;&gt;&quot;Found the following restaurants:&quot;&lt;/span&gt;);
        &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; (Restaurant r : dinnerService.findRestaurants(&lt;span class=&quot;code-quote&quot;&gt;&quot;nice and not too expensive!&quot;&lt;/span&gt;)) {
            &lt;span class=&quot;code-object&quot;&gt;System&lt;/span&gt;.out.format(&lt;span class=&quot;code-quote&quot;&gt;&quot;  %s (%s) Rating: %d\n&quot;&lt;/span&gt;, r.getName(), r.getAddress(), r.getRating());
        }
    }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The client side &lt;a href=&quot;http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/spring_dm/client/src/main/resources/META-INF/spring/client-spring.xml&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;&lt;tt&gt;META-INF/spring/spring.xml&lt;/tt&gt;&lt;/a&gt; file is also really simple. It simply declares a dependency on the OSGi DinnerService, which is injected into the DinnerServiceConsumer bean. &lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-xml&quot;&gt;
&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;beans&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;osgi:reference id=&lt;span class=&quot;code-quote&quot;&gt;&quot;dinnerServiceRef&quot;&lt;/span&gt; interface=&lt;span class=&quot;code-quote&quot;&gt;&quot;org.apache.cxf.dosgi.samples.springdm.DinnerService&quot;&lt;/span&gt;/&amp;gt;&lt;/span&gt;
  
  &amp;lt;bean class=&lt;span class=&quot;code-quote&quot;&gt;&quot;org.apache.cxf.dosgi.samples.springdm.client.DinnerServiceConsumer&quot;&lt;/span&gt;
        init-method=&lt;span class=&quot;code-quote&quot;&gt;&quot;start&quot;&lt;/span&gt;&amp;gt;
    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;property name=&lt;span class=&quot;code-quote&quot;&gt;&quot;dinnerService&quot;&lt;/span&gt; ref=&lt;span class=&quot;code-quote&quot;&gt;&quot;dinnerServiceRef&quot;&lt;/span&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/bean&amp;gt;&lt;/span&gt;
&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/beans&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Like in the Greeter demo, the client side needs to be configured to know where the remote service actually is. When using a Discovery system this configuration is provided dynamically via Discovery (see the Discovery demo - TODO). In this demo this information is provided statically in a &lt;a href=&quot;http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/spring_dm/client/src/main/resources/OSGI-INF/remote-service/remote-services.xml&quot; rel=&quot;nofollow&quot; target=&quot;_top&quot;&gt;&lt;tt&gt;OSGI-INF/remote-service/remote-services.xml&lt;/tt&gt;&lt;/a&gt; file. &lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-xml&quot;&gt;
&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;service-descriptions xmlns=&lt;span class=&quot;code-quote&quot;&gt;&quot;http://www.osgi.org/xmlns/sd/v1.0.0&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;service-description&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;provide interface=&lt;span class=&quot;code-quote&quot;&gt;&quot;org.apache.cxf.dosgi.samples.springdm.DinnerService&quot;&lt;/span&gt; /&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;property name=&lt;span class=&quot;code-quote&quot;&gt;&quot;osgi.remote.interfaces&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;*&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;property name=&lt;span class=&quot;code-quote&quot;&gt;&quot;osgi.remote.configuration.type&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;pojo&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;property name=&lt;span class=&quot;code-quote&quot;&gt;&quot;osgi.remote.configuration.pojo.address&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;http://localhost:9000/org/apache/cxf/dosgi/samples/springdm/DinnerService&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/service-description&amp;gt;&lt;/span&gt;
&lt;span class=&quot;code-tag&quot;&gt;&amp;lt;/service-descriptions&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Install and run the consumer side of the demo in a separate Felix instance:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;-&amp;gt; start http:&lt;span class=&quot;code-comment&quot;&gt;//repo2.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-spring-dm-&lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt;/1.1/cxf-dosgi-ri-samples-spring-dm-&lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt;-1.1.jar
&lt;/span&gt;-&amp;gt; start http:&lt;span class=&quot;code-comment&quot;&gt;//repo2.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-spring-dm-client/1.1/cxf-dosgi-ri-samples-spring-dm-client-1.1.jar
&lt;/span&gt;... log messages may appear, at some point the consumer will make an invocation on the remote service, you will see:
Found the following restaurants:
  Jojo's (1 food way) Rating: 3
  Boohaa's (95 forage ave) Rating: 1
  MicMac (Plastic Plaza) Rating: 1&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;And on the service provider side, you can see that it has been invoked as the following message appears: &lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;-&amp;gt; Hey! Someone's using the Dinner Service! Query: nice and not too expensive!&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

     &lt;/div&gt;
     &lt;div id=&quot;commentsSection&quot; class=&quot;wiki-content pageSection&quot;&gt;
       &lt;div style=&quot;float: right;&quot;&gt;
            &lt;a href=&quot;http://cwiki.apache.org/confluence/users/viewnotifications.action&quot; class=&quot;grey&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Change Notification Preferences&lt;/a&gt;
       &lt;/div&gt;

       &lt;a href=&quot;http://cwiki.apache.org/confluence/display/CXF/DOSGi+Spring-DM+Demo+page&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;View Online&lt;/a&gt;
       |
       &lt;a href=&quot;http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=119322&amp;revisedVersion=8&amp;originalVersion=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;View Change&lt;/a&gt;
              |
       &lt;a href=&quot;http://cwiki.apache.org/confluence/display/CXF/DOSGi+Spring-DM+Demo+page?showComments=true&amp;amp;showCommentArea=true#addcomment&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Add Comment&lt;/a&gt;
            &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-CONF--Apache-CXF-%3E-DOSGi-Spring-DM-Demo-page-tp26643747p26643747.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26634615</id>
	<title>svn commit: r886968 [2/2] - in /cxf/branches/2.2.x-fixes: api/src/test/java/org/apache/cxf/databinding/ distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/ distribution/src/main/release/samples/wsdl_first/...</title>
	<published>2009-12-03T14:42:13Z</published>
	<updated>2009-12-03T14:42:13Z</updated>
	<author>
		<name>dkulp</name>
	</author>
	<content type="html">Modified: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java (original)
&lt;br&gt;+++ cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1,65 +1,65 @@
&lt;br&gt;-/**
&lt;br&gt;- * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- * or more contributor license agreements. See the NOTICE file
&lt;br&gt;- * distributed with this work for additional information
&lt;br&gt;- * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- * to you under the Apache License, Version 2.0 (the
&lt;br&gt;- * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- * with the License. You may obtain a copy of the License at
&lt;br&gt;- *
&lt;br&gt;- * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- *
&lt;br&gt;- * Unless required by applicable law or agreed to in writing,
&lt;br&gt;- * software distributed under the License is distributed on an
&lt;br&gt;- * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- * KIND, either express or implied. See the License for the
&lt;br&gt;- * specific language governing permissions and limitations
&lt;br&gt;- * under the License.
&lt;br&gt;- */
&lt;br&gt;-
&lt;br&gt;-package org.apache.cxf.maven_plugin;
&lt;br&gt;-
&lt;br&gt;-/**
&lt;br&gt;- * Represents a wsdl file that is stored in a maven repository
&lt;br&gt;- */
&lt;br&gt;-public class WsdlArtifact {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String groupId;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String artifactId;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String version;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String type;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public WsdlArtifact() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;type = &amp;quot;wsdl&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public String getGroupId() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return groupId;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setGroupId(String groupId) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.groupId = groupId;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public String getArtifactId() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return artifactId;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setArtifactId(String artifactId) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.artifactId = artifactId;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public String getVersion() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return version;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setVersion(String version) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.version = version;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public String getType() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return type;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setType(String type) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.type = type;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public boolean doesMatch(WsdlArtifact artifact) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return type.equals(artifact.getType()) &amp;&amp; groupId.equals(artifact.getGroupId())
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; artifactId.equals(artifact.getArtifactId()) 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; (version == null || version.equals(artifact.getVersion()));
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-}
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+
&lt;br&gt;+package org.apache.cxf.maven_plugin;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * Represents a wsdl file that is stored in a maven repository
&lt;br&gt;+ */
&lt;br&gt;+public class WsdlArtifact {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String groupId;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String artifactId;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String version;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String type;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public WsdlArtifact() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;type = &amp;quot;wsdl&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getGroupId() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return groupId;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setGroupId(String groupId) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.groupId = groupId;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getArtifactId() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return artifactId;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setArtifactId(String artifactId) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.artifactId = artifactId;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getVersion() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return version;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setVersion(String version) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.version = version;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getType() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return type;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setType(String type) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.type = type;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public boolean doesMatch(WsdlArtifact artifact) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return type.equals(artifact.getType()) &amp;&amp; groupId.equals(artifact.getGroupId())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; artifactId.equals(artifact.getArtifactId()) 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; (version == null || version.equals(artifact.getVersion()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Modified: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java (original)
&lt;br&gt;+++ cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1,81 +1,81 @@
&lt;br&gt;-/**
&lt;br&gt;- * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- * or more contributor license agreements. See the NOTICE file
&lt;br&gt;- * distributed with this work for additional information
&lt;br&gt;- * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- * to you under the Apache License, Version 2.0 (the
&lt;br&gt;- * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- * with the License. You may obtain a copy of the License at
&lt;br&gt;- *
&lt;br&gt;- * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- *
&lt;br&gt;- * Unless required by applicable law or agreed to in writing,
&lt;br&gt;- * software distributed under the License is distributed on an
&lt;br&gt;- * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- * KIND, either express or implied. See the License for the
&lt;br&gt;- * specific language governing permissions and limitations
&lt;br&gt;- * under the License.
&lt;br&gt;- */
&lt;br&gt;-package org.apache.cxf.maven_plugin;
&lt;br&gt;-
&lt;br&gt;-import java.io.File;
&lt;br&gt;-import java.io.FileInputStream;
&lt;br&gt;-import java.io.InputStream;
&lt;br&gt;-import java.net.URI;
&lt;br&gt;-
&lt;br&gt;-import org.w3c.dom.Document;
&lt;br&gt;-import org.w3c.dom.Element;
&lt;br&gt;-
&lt;br&gt;-import junit.framework.Assert;
&lt;br&gt;-import junit.framework.TestCase;
&lt;br&gt;-
&lt;br&gt;-import org.apache.maven.plugin.MojoExecutionException;
&lt;br&gt;-
&lt;br&gt;-public class BindingFileHelperTest extends TestCase {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private static final File OUTFILE = new File(&amp;quot;target/test-data/testbinding.xml&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private static final String TEST_WSDL_URL = &amp;quot;&lt;a href=&quot;http://testwsdl&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://testwsdl&lt;/a&gt;&amp;quot;;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void testBindingWithWsdlLocation() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OUTFILE.delete();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Do not fail if delete fails
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;InputStream is = this.getClass().getResourceAsStream(&amp;quot;/bindingWithWsdlLocation.xml&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean wasSet = BindingFileHelper.setWsdlLocationAndWrite(is, new URI(TEST_WSDL_URL), OUTFILE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertFalse(&amp;quot;This binding file should not be changed&amp;quot;, wasSet);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertFalse(OUTFILE.exists());
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void testBindingWithoutWsdlLocation() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OUTFILE.delete();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Do not fail if delete fails
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;InputStream is = this.getClass().getResourceAsStream(&amp;quot;/bindingWithoutWsdlLocation.xml&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BindingFileHelper.setWsdlLocationAndWrite(is, new URI(TEST_WSDL_URL), OUTFILE);
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Document doc = BindingFileHelper.readDocument(new FileInputStream(OUTFILE));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Element bindings = doc.getDocumentElement();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String location = bindings.getAttribute(BindingFileHelper.LOCATION_ATTR_NAME);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(TEST_WSDL_URL, location);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void testSetBindingForWsdlOption() throws MojoExecutionException {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WsdlOption o = new WsdlOption();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o.setWsdl(&amp;quot;test.wsdl&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File baseDir = new File(&amp;quot;.&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File tempDir = new File(baseDir, &amp;quot;target&amp;quot; + File.separator + &amp;quot;tempbindings&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File bindingFile = new File(baseDir, &amp;quot;src/test/resources/bindingWithoutWsdlLocation.xml&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o.setBindingFiles(new String[] {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bindingFile.getAbsolutePath()
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BindingFileHelper.setWsdlLocationInBindingsIfNotSet(baseDir, tempDir, o, null);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String bindingFilePath = o.getBindingFiles()[0];
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File expectedBindingFile = new File(tempDir, &amp;quot;0-bindingWithoutWsdlLocation.xml&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(&amp;quot;Binding file should be the temp file&amp;quot;, expectedBindingFile.getAbsolutePath(),
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bindingFilePath);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-}
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.cxf.maven_plugin;
&lt;br&gt;+
&lt;br&gt;+import java.io.File;
&lt;br&gt;+import java.io.FileInputStream;
&lt;br&gt;+import java.io.InputStream;
&lt;br&gt;+import java.net.URI;
&lt;br&gt;+
&lt;br&gt;+import org.w3c.dom.Document;
&lt;br&gt;+import org.w3c.dom.Element;
&lt;br&gt;+
&lt;br&gt;+import junit.framework.Assert;
&lt;br&gt;+import junit.framework.TestCase;
&lt;br&gt;+
&lt;br&gt;+import org.apache.maven.plugin.MojoExecutionException;
&lt;br&gt;+
&lt;br&gt;+public class BindingFileHelperTest extends TestCase {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final File OUTFILE = new File(&amp;quot;target/test-data/testbinding.xml&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String TEST_WSDL_URL = &amp;quot;&lt;a href=&quot;http://testwsdl&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://testwsdl&lt;/a&gt;&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testBindingWithWsdlLocation() throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OUTFILE.delete();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Do not fail if delete fails
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;InputStream is = this.getClass().getResourceAsStream(&amp;quot;/bindingWithWsdlLocation.xml&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean wasSet = BindingFileHelper.setWsdlLocationAndWrite(is, new URI(TEST_WSDL_URL), OUTFILE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertFalse(&amp;quot;This binding file should not be changed&amp;quot;, wasSet);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertFalse(OUTFILE.exists());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testBindingWithoutWsdlLocation() throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OUTFILE.delete();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Do not fail if delete fails
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;InputStream is = this.getClass().getResourceAsStream(&amp;quot;/bindingWithoutWsdlLocation.xml&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BindingFileHelper.setWsdlLocationAndWrite(is, new URI(TEST_WSDL_URL), OUTFILE);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Document doc = BindingFileHelper.readDocument(new FileInputStream(OUTFILE));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Element bindings = doc.getDocumentElement();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String location = bindings.getAttribute(BindingFileHelper.LOCATION_ATTR_NAME);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(TEST_WSDL_URL, location);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSetBindingForWsdlOption() throws MojoExecutionException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WsdlOption o = new WsdlOption();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o.setWsdl(&amp;quot;test.wsdl&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File baseDir = new File(&amp;quot;.&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File tempDir = new File(baseDir, &amp;quot;target&amp;quot; + File.separator + &amp;quot;tempbindings&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File bindingFile = new File(baseDir, &amp;quot;src/test/resources/bindingWithoutWsdlLocation.xml&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o.setBindingFiles(new String[] {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bindingFile.getAbsolutePath()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BindingFileHelper.setWsdlLocationInBindingsIfNotSet(baseDir, tempDir, o, null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String bindingFilePath = o.getBindingFiles()[0];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File expectedBindingFile = new File(tempDir, &amp;quot;0-bindingWithoutWsdlLocation.xml&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(&amp;quot;Binding file should be the temp file&amp;quot;, expectedBindingFile.getAbsolutePath(),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bindingFilePath);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/resources/bindingWithWsdlLocation.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/resources/bindingWithWsdlLocation.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:mime-type (original)
&lt;br&gt;+++ svn:mime-type Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1 +1 @@
&lt;br&gt;-text/plain
&lt;br&gt;+text/xml
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/resources/bindingWithoutWsdlLocation.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/resources/bindingWithoutWsdlLocation.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:mime-type (original)
&lt;br&gt;+++ svn:mime-type Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1 +1 @@
&lt;br&gt;-text/plain
&lt;br&gt;+text/xml
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/jaxws/AegisJaxwsGetTest.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/rt/transports/http-osgi/pom.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/rt/transports/http-osgi/pom.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/xml
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/rt/transports/http-osgi/src/main/resources/META-INF/cxf/osgi/cxf-extension-osgi.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/rt/transports/http-osgi/src/main/resources/META-INF/cxf/osgi/cxf-extension-osgi.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/xml
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/rt/transports/http-osgi/src/main/resources/META-INF/spring/cxf-transport-osgi.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/rt/transports/http-osgi/src/main/resources/META-INF/spring/cxf-transport-osgi.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/xml
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/failover_address_override.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/failover_address_override.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/xml
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/management/persistent-id.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/management/persistent-id.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/xml
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/codegen/pom.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/codegen/pom.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:mime-type (original)
&lt;br&gt;+++ svn:mime-type Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1 +1 @@
&lt;br&gt;-text/plain
&lt;br&gt;+text/xml
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/codegen/src/main/resources/defaultBinding.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/codegen/src/main/resources/defaultBinding.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:mime-type (original)
&lt;br&gt;+++ svn:mime-type Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1 +1 @@
&lt;br&gt;-text/plain
&lt;br&gt;+text/xml
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/pom.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/pom.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/pom.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:mime-type (original)
&lt;br&gt;+++ svn:mime-type Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1 +1 @@
&lt;br&gt;-text/plain
&lt;br&gt;+text/xml
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/java/org/apache/cxf/systests/java2ws/HelloWorld.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/java/org/apache/cxf/systests/java2ws/HelloWorld.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/beans.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/beans.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/beans.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:mime-type (original)
&lt;br&gt;+++ svn:mime-type Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1 +1 @@
&lt;br&gt;-text/plain
&lt;br&gt;+text/xml
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/web.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/web.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/web.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:mime-type (original)
&lt;br&gt;+++ svn:mime-type Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1 +1 @@
&lt;br&gt;-text/plain
&lt;br&gt;+text/xml
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/pom.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/pom.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/pom.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/xml
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r886968--2-2----in--cxf-branches-2.2.x-fixes%3A-api-src-test-java-org-apache-cxf-databinding--distribution-src-main-release-samples-wsdl_first-src-main-java-com-example-customerservice-client--distribution-src-main-release-samples-wsdl_first-...-tp26634615p26634615.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26634616</id>
	<title>svn commit: r886968 [1/2] - in /cxf/branches/2.2.x-fixes: api/src/test/java/org/apache/cxf/databinding/ distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/ distribution/src/main/release/samples/wsdl_first/...</title>
	<published>2009-12-03T14:42:13Z</published>
	<updated>2009-12-03T14:42:13Z</updated>
	<author>
		<name>dkulp</name>
	</author>
	<content type="html">Author: dkulp
&lt;br&gt;Date: Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;New Revision: 886968
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=886968&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=886968&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Merged revisions 886957 via svnmerge from 
&lt;br&gt;&lt;a href=&quot;https://svn.apache.org/repos/asf/cxf/trunk&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://svn.apache.org/repos/asf/cxf/trunk&lt;/a&gt;&lt;br&gt;&lt;br&gt;........
&lt;br&gt;&amp;nbsp; r886957 | dkulp | 2009-12-03 17:26:58 -0500 (Thu, 03 Dec 2009) | 2 lines
&lt;br&gt;&amp;nbsp; 
&lt;br&gt;&amp;nbsp; Set svn properties on everything to get svn:eol-style and such correct
&lt;br&gt;........
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/api/src/test/java/org/apache/cxf/databinding/AbstractDataBindingTest.java &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceClient.java &amp;nbsp; (contents, props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceSpringClient.java &amp;nbsp; (contents, props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceTester.java &amp;nbsp; (contents, props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/client-beans.xml &amp;nbsp; (contents, props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceImpl.java &amp;nbsp; (contents, props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceServer.java &amp;nbsp; (contents, props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceSpringServer.java &amp;nbsp; (contents, props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml &amp;nbsp; (contents, props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml &amp;nbsp; (contents, props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml &amp;nbsp; (contents, props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl &amp;nbsp; (contents, props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml &amp;nbsp; (contents, props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java &amp;nbsp; (contents, props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java &amp;nbsp; (contents, props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java &amp;nbsp; (contents, props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/resources/bindingWithWsdlLocation.xml &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/resources/bindingWithoutWsdlLocation.xml &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/jaxws/AegisJaxwsGetTest.java &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/rt/transports/http-osgi/pom.xml &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/rt/transports/http-osgi/src/main/resources/META-INF/cxf/osgi/cxf-extension-osgi.xml &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/rt/transports/http-osgi/src/main/resources/META-INF/spring/cxf-transport-osgi.xml &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/failover_address_override.xml &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/management/persistent-id.xml &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/systests/wsdl_maven/codegen/pom.xml &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/systests/wsdl_maven/codegen/src/main/resources/defaultBinding.xml &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/pom.xml &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/java/org/apache/cxf/systests/java2ws/HelloWorld.java &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/beans.xml &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/web.xml &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; cxf/branches/2.2.x-fixes/systests/wsdl_maven/pom.xml &amp;nbsp; (props changed)
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/api/src/test/java/org/apache/cxf/databinding/AbstractDataBindingTest.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceClient.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceClient.java?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceClient.java?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceClient.java (original)
&lt;br&gt;+++ cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceClient.java Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1,40 +1,40 @@
&lt;br&gt;-/**
&lt;br&gt;- * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- * or more contributor license agreements. See the NOTICE file
&lt;br&gt;- * distributed with this work for additional information
&lt;br&gt;- * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- * to you under the Apache License, Version 2.0 (the
&lt;br&gt;- * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- * with the License. You may obtain a copy of the License at
&lt;br&gt;- *
&lt;br&gt;- * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- *
&lt;br&gt;- * Unless required by applicable law or agreed to in writing,
&lt;br&gt;- * software distributed under the License is distributed on an
&lt;br&gt;- * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- * KIND, either express or implied. See the License for the
&lt;br&gt;- * specific language governing permissions and limitations
&lt;br&gt;- * under the License.
&lt;br&gt;- */
&lt;br&gt;-package com.example.customerservice.client;
&lt;br&gt;-
&lt;br&gt;-import com.example.customerservice.CustomerService;
&lt;br&gt;-import com.example.customerservice.CustomerServiceService;
&lt;br&gt;-import com.example.customerservice.NoSuchCustomerException;
&lt;br&gt;-
&lt;br&gt;-public class CustomerServiceClient {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;protected CustomerServiceClient() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static void main(String args[]) throws NoSuchCustomerException {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Create the service client with its default wsdlurl
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CustomerServiceService customerServiceService = new CustomerServiceService();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CustomerService customerService = customerServiceService.getCustomerServicePort();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Initialize the test class and call the tests
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CustomerServiceTester client = new CustomerServiceTester();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;client.setCustomerService(customerService);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;client.testCustomerService();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.exit(0); 
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-}
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package com.example.customerservice.client;
&lt;br&gt;+
&lt;br&gt;+import com.example.customerservice.CustomerService;
&lt;br&gt;+import com.example.customerservice.CustomerServiceService;
&lt;br&gt;+import com.example.customerservice.NoSuchCustomerException;
&lt;br&gt;+
&lt;br&gt;+public class CustomerServiceClient {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected CustomerServiceClient() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static void main(String args[]) throws NoSuchCustomerException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Create the service client with its default wsdlurl
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CustomerServiceService customerServiceService = new CustomerServiceService();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CustomerService customerService = customerServiceService.getCustomerServicePort();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Initialize the test class and call the tests
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CustomerServiceTester client = new CustomerServiceTester();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;client.setCustomerService(customerService);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;client.testCustomerService();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.exit(0); 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceClient.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceClient.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceSpringClient.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceSpringClient.java?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceSpringClient.java?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceSpringClient.java (original)
&lt;br&gt;+++ cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceSpringClient.java Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1,39 +1,39 @@
&lt;br&gt;-/**
&lt;br&gt;- * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- * or more contributor license agreements. See the NOTICE file
&lt;br&gt;- * distributed with this work for additional information
&lt;br&gt;- * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- * to you under the Apache License, Version 2.0 (the
&lt;br&gt;- * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- * with the License. You may obtain a copy of the License at
&lt;br&gt;- *
&lt;br&gt;- * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- *
&lt;br&gt;- * Unless required by applicable law or agreed to in writing,
&lt;br&gt;- * software distributed under the License is distributed on an
&lt;br&gt;- * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- * KIND, either express or implied. See the License for the
&lt;br&gt;- * specific language governing permissions and limitations
&lt;br&gt;- * under the License.
&lt;br&gt;- */
&lt;br&gt;-package com.example.customerservice.client;
&lt;br&gt;-
&lt;br&gt;-
&lt;br&gt;-
&lt;br&gt;-import org.springframework.context.support.ClassPathXmlApplicationContext;
&lt;br&gt;-
&lt;br&gt;-public final class CustomerServiceSpringClient {
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private CustomerServiceSpringClient() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static void main(String args[]) throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Initialize the spring context and fetch our test client
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ClassPathXmlApplicationContext context 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= new ClassPathXmlApplicationContext(new String[] {&amp;quot;classpath:client-applicationContext.xml&amp;quot;});
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CustomerServiceTester client = (CustomerServiceTester)context.getBean(&amp;quot;tester&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;client.testCustomerService();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.exit(0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-}
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package com.example.customerservice.client;
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+import org.springframework.context.support.ClassPathXmlApplicationContext;
&lt;br&gt;+
&lt;br&gt;+public final class CustomerServiceSpringClient {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private CustomerServiceSpringClient() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static void main(String args[]) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Initialize the spring context and fetch our test client
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ClassPathXmlApplicationContext context 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= new ClassPathXmlApplicationContext(new String[] {&amp;quot;classpath:client-applicationContext.xml&amp;quot;});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CustomerServiceTester client = (CustomerServiceTester)context.getBean(&amp;quot;tester&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;client.testCustomerService();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.exit(0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceSpringClient.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceSpringClient.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceTester.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceTester.java?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceTester.java?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceTester.java (original)
&lt;br&gt;+++ cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceTester.java Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1,75 +1,75 @@
&lt;br&gt;-/**
&lt;br&gt;- * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- * or more contributor license agreements. See the NOTICE file
&lt;br&gt;- * distributed with this work for additional information
&lt;br&gt;- * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- * to you under the Apache License, Version 2.0 (the
&lt;br&gt;- * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- * with the License. You may obtain a copy of the License at
&lt;br&gt;- *
&lt;br&gt;- * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- *
&lt;br&gt;- * Unless required by applicable law or agreed to in writing,
&lt;br&gt;- * software distributed under the License is distributed on an
&lt;br&gt;- * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- * KIND, either express or implied. See the License for the
&lt;br&gt;- * specific language governing permissions and limitations
&lt;br&gt;- * under the License.
&lt;br&gt;- */
&lt;br&gt;-
&lt;br&gt;-package com.example.customerservice.client;
&lt;br&gt;-
&lt;br&gt;-import java.util.List;
&lt;br&gt;-
&lt;br&gt;-import junit.framework.Assert;
&lt;br&gt;-
&lt;br&gt;-import com.example.customerservice.Customer;
&lt;br&gt;-import com.example.customerservice.CustomerService;
&lt;br&gt;-import com.example.customerservice.NoSuchCustomerException;
&lt;br&gt;-
&lt;br&gt;-public final class CustomerServiceTester {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;// The CustomerService proxy will be injected either by spring or by a direct call to the setter 
&lt;br&gt;- &amp;nbsp; &amp;nbsp;CustomerService customerService;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public CustomerService getCustomerService() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return customerService;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setCustomerService(CustomerService customerService) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.customerService = customerService;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void testCustomerService() throws NoSuchCustomerException {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Customer&amp;gt; customers = null;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// First we test the positive case where customers are found and we retreive
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// a list of customers
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Sending request for customers named Smith&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;customers = customerService.getCustomersByName(&amp;quot;Smith&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Response received&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(2, customers.size());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(&amp;quot;Smith&amp;quot;, customers.get(0).getName());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Then we test for an unknown Customer name and expect the NoSuchCustomerException
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;customers = customerService.getCustomersByName(&amp;quot;None&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.fail(&amp;quot;We should get a NoSuchCustomerException here&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (NoSuchCustomerException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(e.getMessage());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertNotNull(&amp;quot;FaultInfo must not be null&amp;quot;, e.getFaultInfo());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(&amp;quot;None&amp;quot;, e.getFaultInfo().getCustomerName());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;NoSuchCustomer exception was received as expected&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// The implementation of updateCustomer is set to sleep for some seconds. 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Still this method should return instantly as the method is declared
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// as a one way method in the WSDL
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Customer customer = new Customer();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;customer.setName(&amp;quot;Smith&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;customerService.updateCustomer(customer);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;All calls were successful&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;-}
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+
&lt;br&gt;+package com.example.customerservice.client;
&lt;br&gt;+
&lt;br&gt;+import java.util.List;
&lt;br&gt;+
&lt;br&gt;+import junit.framework.Assert;
&lt;br&gt;+
&lt;br&gt;+import com.example.customerservice.Customer;
&lt;br&gt;+import com.example.customerservice.CustomerService;
&lt;br&gt;+import com.example.customerservice.NoSuchCustomerException;
&lt;br&gt;+
&lt;br&gt;+public final class CustomerServiceTester {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// The CustomerService proxy will be injected either by spring or by a direct call to the setter 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;CustomerService customerService;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public CustomerService getCustomerService() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return customerService;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setCustomerService(CustomerService customerService) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.customerService = customerService;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testCustomerService() throws NoSuchCustomerException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Customer&amp;gt; customers = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// First we test the positive case where customers are found and we retreive
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// a list of customers
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Sending request for customers named Smith&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;customers = customerService.getCustomersByName(&amp;quot;Smith&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Response received&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(2, customers.size());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(&amp;quot;Smith&amp;quot;, customers.get(0).getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Then we test for an unknown Customer name and expect the NoSuchCustomerException
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;customers = customerService.getCustomersByName(&amp;quot;None&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.fail(&amp;quot;We should get a NoSuchCustomerException here&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (NoSuchCustomerException e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(e.getMessage());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertNotNull(&amp;quot;FaultInfo must not be null&amp;quot;, e.getFaultInfo());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(&amp;quot;None&amp;quot;, e.getFaultInfo().getCustomerName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;NoSuchCustomer exception was received as expected&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// The implementation of updateCustomer is set to sleep for some seconds. 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Still this method should return instantly as the method is declared
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// as a one way method in the WSDL
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Customer customer = new Customer();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;customer.setName(&amp;quot;Smith&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;customerService.updateCustomer(customer);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;All calls were successful&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceTester.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceTester.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/client-beans.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/client-beans.xml?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/client-beans.xml?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/client-beans.xml (original)
&lt;br&gt;+++ cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/client-beans.xml Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1,39 +1,39 @@
&lt;br&gt;-&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;-&amp;lt;!--
&lt;br&gt;-	Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;-	or more contributor license agreements. See the NOTICE file
&lt;br&gt;-	distributed with this work for additional information
&lt;br&gt;-	regarding copyright ownership. The ASF licenses this file
&lt;br&gt;-	to you under the Apache License, Version 2.0 (the
&lt;br&gt;-	&amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;-	with the License. You may obtain a copy of the License at
&lt;br&gt;-	
&lt;br&gt;-	&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;-	
&lt;br&gt;-	Unless required by applicable law or agreed to in writing,
&lt;br&gt;-	software distributed under the License is distributed on an
&lt;br&gt;-	&amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;-	KIND, either express or implied. See the License for the
&lt;br&gt;-	specific language governing permissions and limitations
&lt;br&gt;-	under the License.
&lt;br&gt;---&amp;gt;
&lt;br&gt;-&amp;lt;!-- START SNIPPET: beans --&amp;gt;
&lt;br&gt;-&amp;lt;beans xmlns=&amp;quot;&lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&amp;quot;
&lt;br&gt;-	xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot;
&lt;br&gt;-	xmlns:jaxws=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxws&lt;/a&gt;&amp;quot;
&lt;br&gt;-	xsi:schemaLocation=&amp;quot;
&lt;br&gt;-&lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://www.springframework.org/schema/beans/spring-beans-2.0.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans/spring-beans-2.0.xsd&lt;/a&gt;&lt;br&gt;-&lt;a href=&quot;http://cxf.apache.org/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxws&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/schemas/jaxws.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/jaxws.xsd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;lt;jaxws:client id=&amp;quot;customerService&amp;quot; 
&lt;br&gt;- &amp;nbsp; &amp;nbsp;serviceClass=&amp;quot;org.apache.hello_world_soap_http.Greeter&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;serviceName=&amp;quot;s:SOAPService&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;endpointName=&amp;quot;s:SoapPort&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;xmlns:s=&amp;quot;&lt;a href=&quot;http://apache.org/hello_world_soap_http&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://apache.org/hello_world_soap_http&lt;/a&gt;&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;wsdlLocation=&amp;quot;wsdl/hello_world.wsdl&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;address=&amp;quot;&lt;a href=&quot;http://localhost:9000/SoapContext/SoapPort&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:9000/SoapContext/SoapPort&lt;/a&gt;&amp;quot;/&amp;gt;	 &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;bean id=&amp;quot;client&amp;quot; class=&amp;quot;com.example.customerservice.Client&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;	&amp;lt;property name=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/property&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;/bean&amp;gt;
&lt;br&gt;-&amp;lt;/beans&amp;gt;
&lt;br&gt;-&amp;lt;!-- END SNIPPET: beans --&amp;gt;
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+	Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+	or more contributor license agreements. See the NOTICE file
&lt;br&gt;+	distributed with this work for additional information
&lt;br&gt;+	regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+	to you under the Apache License, Version 2.0 (the
&lt;br&gt;+	&amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+	with the License. You may obtain a copy of the License at
&lt;br&gt;+	
&lt;br&gt;+	&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+	
&lt;br&gt;+	Unless required by applicable law or agreed to in writing,
&lt;br&gt;+	software distributed under the License is distributed on an
&lt;br&gt;+	&amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+	KIND, either express or implied. See the License for the
&lt;br&gt;+	specific language governing permissions and limitations
&lt;br&gt;+	under the License.
&lt;br&gt;+--&amp;gt;
&lt;br&gt;+&amp;lt;!-- START SNIPPET: beans --&amp;gt;
&lt;br&gt;+&amp;lt;beans xmlns=&amp;quot;&lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&amp;quot;
&lt;br&gt;+	xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot;
&lt;br&gt;+	xmlns:jaxws=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxws&lt;/a&gt;&amp;quot;
&lt;br&gt;+	xsi:schemaLocation=&amp;quot;
&lt;br&gt;+&lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://www.springframework.org/schema/beans/spring-beans-2.0.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans/spring-beans-2.0.xsd&lt;/a&gt;&lt;br&gt;+&lt;a href=&quot;http://cxf.apache.org/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxws&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/schemas/jaxws.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/jaxws.xsd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;lt;jaxws:client id=&amp;quot;customerService&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;serviceClass=&amp;quot;org.apache.hello_world_soap_http.Greeter&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;serviceName=&amp;quot;s:SOAPService&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;endpointName=&amp;quot;s:SoapPort&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns:s=&amp;quot;&lt;a href=&quot;http://apache.org/hello_world_soap_http&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://apache.org/hello_world_soap_http&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;wsdlLocation=&amp;quot;wsdl/hello_world.wsdl&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;address=&amp;quot;&lt;a href=&quot;http://localhost:9000/SoapContext/SoapPort&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:9000/SoapContext/SoapPort&lt;/a&gt;&amp;quot;/&amp;gt;	 &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;bean id=&amp;quot;client&amp;quot; class=&amp;quot;com.example.customerservice.Client&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	&amp;lt;property name=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/property&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/bean&amp;gt;
&lt;br&gt;+&amp;lt;/beans&amp;gt;
&lt;br&gt;+&amp;lt;!-- END SNIPPET: beans --&amp;gt;
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/client-beans.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/client-beans.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/client-beans.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/xml
&lt;br&gt;&lt;br&gt;Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceImpl.java?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceImpl.java?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceImpl.java (original)
&lt;br&gt;+++ cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceImpl.java Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1,80 +1,80 @@
&lt;br&gt;-/**
&lt;br&gt;- * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- * or more contributor license agreements. See the NOTICE file
&lt;br&gt;- * distributed with this work for additional information
&lt;br&gt;- * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- * to you under the Apache License, Version 2.0 (the
&lt;br&gt;- * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- * with the License. You may obtain a copy of the License at
&lt;br&gt;- *
&lt;br&gt;- * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- *
&lt;br&gt;- * Unless required by applicable law or agreed to in writing,
&lt;br&gt;- * software distributed under the License is distributed on an
&lt;br&gt;- * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- * KIND, either express or implied. See the License for the
&lt;br&gt;- * specific language governing permissions and limitations
&lt;br&gt;- * under the License.
&lt;br&gt;- */
&lt;br&gt;-package com.example.customerservice.server;
&lt;br&gt;-
&lt;br&gt;-import java.math.BigDecimal;
&lt;br&gt;-import java.util.ArrayList;
&lt;br&gt;-import java.util.Date;
&lt;br&gt;-import java.util.GregorianCalendar;
&lt;br&gt;-import java.util.List;
&lt;br&gt;-
&lt;br&gt;-import javax.annotation.Resource;
&lt;br&gt;-import javax.xml.ws.WebServiceContext;
&lt;br&gt;-
&lt;br&gt;-import com.example.customerservice.Customer;
&lt;br&gt;-import com.example.customerservice.CustomerService;
&lt;br&gt;-import com.example.customerservice.CustomerType;
&lt;br&gt;-import com.example.customerservice.NoSuchCustomer;
&lt;br&gt;-import com.example.customerservice.NoSuchCustomerException;
&lt;br&gt;-
&lt;br&gt;-public class CustomerServiceImpl implements CustomerService {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * The WebServiceContext can be used to retrieve special attributes like the 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * user principal. Normally it is not needed
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@Resource
&lt;br&gt;- &amp;nbsp; &amp;nbsp;WebServiceContext wsContext;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public List&amp;lt;Customer&amp;gt; getCustomersByName(String name) throws NoSuchCustomerException {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (&amp;quot;None&amp;quot;.equals(name)) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NoSuchCustomer noSuchCustomer = new NoSuchCustomer();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;noSuchCustomer.setCustomerName(name);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new NoSuchCustomerException(&amp;quot;Did not find any matching customer for name=&amp;quot; + name,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;noSuchCustomer);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Customer&amp;gt; customers = new ArrayList&amp;lt;Customer&amp;gt;();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int c = 0; c &amp;lt; 2; c++) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Customer cust = new Customer();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cust.setName(name);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cust.getAddress().add(&amp;quot;Pine Street 200&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Date bDate = new GregorianCalendar(2009, 01, 01).getTime();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cust.setBirthDate(bDate);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cust.setNumOrders(1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cust.setRevenue(10000);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cust.setTest(new BigDecimal(1.5));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cust.setType(CustomerType.BUSINESS);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;customers.add(cust);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return customers;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void updateCustomer(Customer customer) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;update request was received&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Thread.sleep(10000);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (InterruptedException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Nothing to do here
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Customer was updated&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;-}
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package com.example.customerservice.server;
&lt;br&gt;+
&lt;br&gt;+import java.math.BigDecimal;
&lt;br&gt;+import java.util.ArrayList;
&lt;br&gt;+import java.util.Date;
&lt;br&gt;+import java.util.GregorianCalendar;
&lt;br&gt;+import java.util.List;
&lt;br&gt;+
&lt;br&gt;+import javax.annotation.Resource;
&lt;br&gt;+import javax.xml.ws.WebServiceContext;
&lt;br&gt;+
&lt;br&gt;+import com.example.customerservice.Customer;
&lt;br&gt;+import com.example.customerservice.CustomerService;
&lt;br&gt;+import com.example.customerservice.CustomerType;
&lt;br&gt;+import com.example.customerservice.NoSuchCustomer;
&lt;br&gt;+import com.example.customerservice.NoSuchCustomerException;
&lt;br&gt;+
&lt;br&gt;+public class CustomerServiceImpl implements CustomerService {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * The WebServiceContext can be used to retrieve special attributes like the 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * user principal. Normally it is not needed
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Resource
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;WebServiceContext wsContext;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public List&amp;lt;Customer&amp;gt; getCustomersByName(String name) throws NoSuchCustomerException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (&amp;quot;None&amp;quot;.equals(name)) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NoSuchCustomer noSuchCustomer = new NoSuchCustomer();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;noSuchCustomer.setCustomerName(name);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new NoSuchCustomerException(&amp;quot;Did not find any matching customer for name=&amp;quot; + name,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;noSuchCustomer);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Customer&amp;gt; customers = new ArrayList&amp;lt;Customer&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int c = 0; c &amp;lt; 2; c++) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Customer cust = new Customer();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cust.setName(name);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cust.getAddress().add(&amp;quot;Pine Street 200&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Date bDate = new GregorianCalendar(2009, 01, 01).getTime();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cust.setBirthDate(bDate);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cust.setNumOrders(1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cust.setRevenue(10000);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cust.setTest(new BigDecimal(1.5));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cust.setType(CustomerType.BUSINESS);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;customers.add(cust);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return customers;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void updateCustomer(Customer customer) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;update request was received&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Thread.sleep(10000);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (InterruptedException e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Nothing to do here
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Customer was updated&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceImpl.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceImpl.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceServer.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceServer.java?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceServer.java?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceServer.java (original)
&lt;br&gt;+++ cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceServer.java Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1,50 +1,50 @@
&lt;br&gt;-/**
&lt;br&gt;- * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- * or more contributor license agreements. See the NOTICE file
&lt;br&gt;- * distributed with this work for additional information
&lt;br&gt;- * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- * to you under the Apache License, Version 2.0 (the
&lt;br&gt;- * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- * with the License. You may obtain a copy of the License at
&lt;br&gt;- *
&lt;br&gt;- * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- *
&lt;br&gt;- * Unless required by applicable law or agreed to in writing,
&lt;br&gt;- * software distributed under the License is distributed on an
&lt;br&gt;- * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- * KIND, either express or implied. See the License for the
&lt;br&gt;- * specific language governing permissions and limitations
&lt;br&gt;- * under the License.
&lt;br&gt;- */
&lt;br&gt;-
&lt;br&gt;-package com.example.customerservice.server;
&lt;br&gt;-
&lt;br&gt;-import javax.xml.ws.Endpoint;
&lt;br&gt;-
&lt;br&gt;-import com.example.customerservice.CustomerService;
&lt;br&gt;-
&lt;br&gt;-import org.apache.cxf.interceptor.LoggingInInterceptor;
&lt;br&gt;-import org.apache.cxf.interceptor.LoggingOutInterceptor;
&lt;br&gt;-import org.apache.cxf.jaxws.EndpointImpl;
&lt;br&gt;-
&lt;br&gt;-public class CustomerServiceServer {
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;protected CustomerServiceServer() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Starting Server&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CustomerService implementor = new CustomerServiceImpl();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EndpointImpl ep = (EndpointImpl)Endpoint.publish(&amp;quot;&lt;a href=&quot;http://localhost:9090/CustomerServicePort&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:9090/CustomerServicePort&lt;/a&gt;&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; implementor);
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Adding logging for incoming and outgoing messages
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ep.getServer().getEndpoint().getInInterceptors().add(new LoggingInInterceptor());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ep.getServer().getEndpoint().getOutInterceptors().add(new LoggingOutInterceptor());
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static void main(String args[]) throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new CustomerServiceServer();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Server ready...&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Thread.sleep(5 * 60 * 1000);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Server exiting&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.exit(0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-}
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+
&lt;br&gt;+package com.example.customerservice.server;
&lt;br&gt;+
&lt;br&gt;+import javax.xml.ws.Endpoint;
&lt;br&gt;+
&lt;br&gt;+import com.example.customerservice.CustomerService;
&lt;br&gt;+
&lt;br&gt;+import org.apache.cxf.interceptor.LoggingInInterceptor;
&lt;br&gt;+import org.apache.cxf.interceptor.LoggingOutInterceptor;
&lt;br&gt;+import org.apache.cxf.jaxws.EndpointImpl;
&lt;br&gt;+
&lt;br&gt;+public class CustomerServiceServer {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected CustomerServiceServer() throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Starting Server&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CustomerService implementor = new CustomerServiceImpl();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EndpointImpl ep = (EndpointImpl)Endpoint.publish(&amp;quot;&lt;a href=&quot;http://localhost:9090/CustomerServicePort&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:9090/CustomerServicePort&lt;/a&gt;&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; implementor);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Adding logging for incoming and outgoing messages
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ep.getServer().getEndpoint().getInInterceptors().add(new LoggingInInterceptor());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ep.getServer().getEndpoint().getOutInterceptors().add(new LoggingOutInterceptor());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static void main(String args[]) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new CustomerServiceServer();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Server ready...&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Thread.sleep(5 * 60 * 1000);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Server exiting&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.exit(0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceServer.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceServer.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceSpringServer.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceSpringServer.java?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceSpringServer.java?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceSpringServer.java (original)
&lt;br&gt;+++ cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceSpringServer.java Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1,32 +1,32 @@
&lt;br&gt;-/**
&lt;br&gt;- * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- * or more contributor license agreements. See the NOTICE file
&lt;br&gt;- * distributed with this work for additional information
&lt;br&gt;- * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- * to you under the Apache License, Version 2.0 (the
&lt;br&gt;- * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- * with the License. You may obtain a copy of the License at
&lt;br&gt;- *
&lt;br&gt;- * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- *
&lt;br&gt;- * Unless required by applicable law or agreed to in writing,
&lt;br&gt;- * software distributed under the License is distributed on an
&lt;br&gt;- * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- * KIND, either express or implied. See the License for the
&lt;br&gt;- * specific language governing permissions and limitations
&lt;br&gt;- * under the License.
&lt;br&gt;- */
&lt;br&gt;-package com.example.customerservice.server;
&lt;br&gt;-
&lt;br&gt;-import org.springframework.context.support.ClassPathXmlApplicationContext;
&lt;br&gt;-
&lt;br&gt;-public class CustomerServiceSpringServer {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;protected CustomerServiceSpringServer() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static void main(String args[]) throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new ClassPathXmlApplicationContext(&amp;quot;server-applicationContext.xml&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.in.read();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-}
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package com.example.customerservice.server;
&lt;br&gt;+
&lt;br&gt;+import org.springframework.context.support.ClassPathXmlApplicationContext;
&lt;br&gt;+
&lt;br&gt;+public class CustomerServiceSpringServer {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected CustomerServiceSpringServer() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static void main(String args[]) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new ClassPathXmlApplicationContext(&amp;quot;server-applicationContext.xml&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.in.read();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceSpringServer.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceSpringServer.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml (original)
&lt;br&gt;+++ cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1,50 +1,50 @@
&lt;br&gt;-&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;-	&amp;lt;!--
&lt;br&gt;-		Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;-		contributor license agreements. See the NOTICE file distributed with
&lt;br&gt;-		this work for additional information regarding copyright ownership.
&lt;br&gt;-		The ASF licenses this file to You under the Apache License, Version
&lt;br&gt;-		2.0 (the &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;-		with the License. You may obtain a copy of the License at
&lt;br&gt;-
&lt;br&gt;-		&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&amp;nbsp;Unless required by
&lt;br&gt;-		applicable law or agreed to in writing, software distributed under the
&lt;br&gt;-		License is distributed on an &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR
&lt;br&gt;-		CONDITIONS OF ANY KIND, either express or implied. See the License for
&lt;br&gt;-		the specific language governing permissions and limitations under the
&lt;br&gt;-		License.
&lt;br&gt;-	--&amp;gt;
&lt;br&gt;-&amp;lt;beans xmlns=&amp;quot;&lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&amp;quot;
&lt;br&gt;-	xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot;
&lt;br&gt;-	xmlns:context=&amp;quot;&lt;a href=&quot;http://www.springframework.org/schema/context&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/context&lt;/a&gt;&amp;quot;
&lt;br&gt;-	xmlns:jaxws=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxws&lt;/a&gt;&amp;quot;
&lt;br&gt;-	xmlns:customer=&amp;quot;&lt;a href=&quot;http://customerservice.example.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://customerservice.example.com/&lt;/a&gt;&amp;quot;
&lt;br&gt;-	xsi:schemaLocation=&amp;quot;&lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://www.springframework.org/schema/beans/spring-beans-2.5.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans/spring-beans-2.5.xsd&lt;/a&gt;&lt;br&gt;-		&lt;a href=&quot;http://www.springframework.org/schema/context&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/context&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://www.springframework.org/schema/context/spring-context-2.5.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/context/spring-context-2.5.xsd&lt;/a&gt;&lt;br&gt;-		&lt;a href=&quot;http://cxf.apache.org/core&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/core&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/schemas/core.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/core.xsd&lt;/a&gt;&lt;br&gt;-		&lt;a href=&quot;http://cxf.apache.org/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxws&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/schemas/jaxws.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/jaxws.xsd&lt;/a&gt;&lt;br&gt;-&amp;quot;&amp;gt;
&lt;br&gt;-
&lt;br&gt;-	&amp;lt;import resource=&amp;quot;classpath:META-INF/cxf/cxf.xml&amp;quot; /&amp;gt;
&lt;br&gt;-	&amp;lt;import resource=&amp;quot;classpath:META-INF/cxf/cxf-extension-soap.xml&amp;quot; /&amp;gt;
&lt;br&gt;-	&amp;lt;import resource=&amp;quot;classpath:META-INF/cxf/cxf-extension-http.xml&amp;quot; /&amp;gt;
&lt;br&gt;-
&lt;br&gt;-	&amp;lt;!--
&lt;br&gt;-		Define a cxf endpoint based on client stub generated from a wsdl. It
&lt;br&gt;-		is important to provide serviceName and endpointName so the wsdl is
&lt;br&gt;-		not needed at runtime. As far as I know the serviceName and
&lt;br&gt;-		endpointName do not have to have a special convention but it is good
&lt;br&gt;-		practice to use the service namespace and Service Interface name in
&lt;br&gt;-		the names
&lt;br&gt;-	--&amp;gt;
&lt;br&gt;-	&amp;lt;jaxws:client id=&amp;quot;customerService&amp;quot; 
&lt;br&gt;-		serviceName=&amp;quot;customer:CustomerServiceService&amp;quot; 
&lt;br&gt;-		endpointName=&amp;quot;customer:CustomerServiceEndpoint&amp;quot;
&lt;br&gt;-		address=&amp;quot;&lt;a href=&quot;http://localhost:9090/CustomerServicePort&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:9090/CustomerServicePort&lt;/a&gt;&amp;quot; 
&lt;br&gt;-		serviceClass=&amp;quot;com.example.customerservice.CustomerService&amp;quot;&amp;gt;
&lt;br&gt;-	&amp;lt;/jaxws:client&amp;gt;
&lt;br&gt;-	
&lt;br&gt;-	&amp;lt;bean id=&amp;quot;tester&amp;quot; class=&amp;quot;com.example.customerservice.client.CustomerServiceTester&amp;quot;&amp;gt;
&lt;br&gt;-		&amp;lt;property name=&amp;quot;customerService&amp;quot; ref=&amp;quot;customerService&amp;quot;&amp;gt;&amp;lt;/property&amp;gt;
&lt;br&gt;-	&amp;lt;/bean&amp;gt;
&lt;br&gt;-&amp;lt;/beans&amp;gt;
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;+	&amp;lt;!--
&lt;br&gt;+		Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+		contributor license agreements. See the NOTICE file distributed with
&lt;br&gt;+		this work for additional information regarding copyright ownership.
&lt;br&gt;+		The ASF licenses this file to You under the Apache License, Version
&lt;br&gt;+		2.0 (the &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+		with the License. You may obtain a copy of the License at
&lt;br&gt;+
&lt;br&gt;+		&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&amp;nbsp;Unless required by
&lt;br&gt;+		applicable law or agreed to in writing, software distributed under the
&lt;br&gt;+		License is distributed on an &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR
&lt;br&gt;+		CONDITIONS OF ANY KIND, either express or implied. See the License for
&lt;br&gt;+		the specific language governing permissions and limitations under the
&lt;br&gt;+		License.
&lt;br&gt;+	--&amp;gt;
&lt;br&gt;+&amp;lt;beans xmlns=&amp;quot;&lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&amp;quot;
&lt;br&gt;+	xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot;
&lt;br&gt;+	xmlns:context=&amp;quot;&lt;a href=&quot;http://www.springframework.org/schema/context&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/context&lt;/a&gt;&amp;quot;
&lt;br&gt;+	xmlns:jaxws=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxws&lt;/a&gt;&amp;quot;
&lt;br&gt;+	xmlns:customer=&amp;quot;&lt;a href=&quot;http://customerservice.example.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://customerservice.example.com/&lt;/a&gt;&amp;quot;
&lt;br&gt;+	xsi:schemaLocation=&amp;quot;&lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://www.springframework.org/schema/beans/spring-beans-2.5.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans/spring-beans-2.5.xsd&lt;/a&gt;&lt;br&gt;+		&lt;a href=&quot;http://www.springframework.org/schema/context&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/context&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://www.springframework.org/schema/context/spring-context-2.5.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/context/spring-context-2.5.xsd&lt;/a&gt;&lt;br&gt;+		&lt;a href=&quot;http://cxf.apache.org/core&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/core&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/schemas/core.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/core.xsd&lt;/a&gt;&lt;br&gt;+		&lt;a href=&quot;http://cxf.apache.org/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxws&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/schemas/jaxws.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/jaxws.xsd&lt;/a&gt;&lt;br&gt;+&amp;quot;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+	&amp;lt;import resource=&amp;quot;classpath:META-INF/cxf/cxf.xml&amp;quot; /&amp;gt;
&lt;br&gt;+	&amp;lt;import resource=&amp;quot;classpath:META-INF/cxf/cxf-extension-soap.xml&amp;quot; /&amp;gt;
&lt;br&gt;+	&amp;lt;import resource=&amp;quot;classpath:META-INF/cxf/cxf-extension-http.xml&amp;quot; /&amp;gt;
&lt;br&gt;+
&lt;br&gt;+	&amp;lt;!--
&lt;br&gt;+		Define a cxf endpoint based on client stub generated from a wsdl. It
&lt;br&gt;+		is important to provide serviceName and endpointName so the wsdl is
&lt;br&gt;+		not needed at runtime. As far as I know the serviceName and
&lt;br&gt;+		endpointName do not have to have a special convention but it is good
&lt;br&gt;+		practice to use the service namespace and Service Interface name in
&lt;br&gt;+		the names
&lt;br&gt;+	--&amp;gt;
&lt;br&gt;+	&amp;lt;jaxws:client id=&amp;quot;customerService&amp;quot; 
&lt;br&gt;+		serviceName=&amp;quot;customer:CustomerServiceService&amp;quot; 
&lt;br&gt;+		endpointName=&amp;quot;customer:CustomerServiceEndpoint&amp;quot;
&lt;br&gt;+		address=&amp;quot;&lt;a href=&quot;http://localhost:9090/CustomerServicePort&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:9090/CustomerServicePort&lt;/a&gt;&amp;quot; 
&lt;br&gt;+		serviceClass=&amp;quot;com.example.customerservice.CustomerService&amp;quot;&amp;gt;
&lt;br&gt;+	&amp;lt;/jaxws:client&amp;gt;
&lt;br&gt;+	
&lt;br&gt;+	&amp;lt;bean id=&amp;quot;tester&amp;quot; class=&amp;quot;com.example.customerservice.client.CustomerServiceTester&amp;quot;&amp;gt;
&lt;br&gt;+		&amp;lt;property name=&amp;quot;customerService&amp;quot; ref=&amp;quot;customerService&amp;quot;&amp;gt;&amp;lt;/property&amp;gt;
&lt;br&gt;+	&amp;lt;/bean&amp;gt;
&lt;br&gt;+&amp;lt;/beans&amp;gt;
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/xml
&lt;br&gt;&lt;br&gt;Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml (original)
&lt;br&gt;+++ cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1,38 +1,38 @@
&lt;br&gt;-&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;-&amp;lt;!--
&lt;br&gt;- &amp;nbsp;Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- &amp;nbsp;or more contributor license agreements. See the NOTICE file
&lt;br&gt;- &amp;nbsp;distributed with this work for additional information
&lt;br&gt;- &amp;nbsp;regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- &amp;nbsp;to you under the Apache License, Version 2.0 (the
&lt;br&gt;- &amp;nbsp;&amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- &amp;nbsp;with the License. You may obtain a copy of the License at
&lt;br&gt;- 
&lt;br&gt;- &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- 
&lt;br&gt;- &amp;nbsp;Unless required by applicable law or agreed to in writing,
&lt;br&gt;- &amp;nbsp;software distributed under the License is distributed on an
&lt;br&gt;- &amp;nbsp;&amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- &amp;nbsp;KIND, either express or implied. See the License for the
&lt;br&gt;- &amp;nbsp;specific language governing permissions and limitations
&lt;br&gt;- &amp;nbsp;under the License.
&lt;br&gt;---&amp;gt;
&lt;br&gt;-&amp;lt;beans xmlns=&amp;quot;&lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:jaxws=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxws&lt;/a&gt;&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:soap=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/bindings/soap&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/bindings/soap&lt;/a&gt;&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;xsi:schemaLocation=&amp;quot;
&lt;br&gt;-&lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://www.springframework.org/schema/beans/spring-beans-2.0.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans/spring-beans-2.0.xsd&lt;/a&gt;&lt;br&gt;-&lt;a href=&quot;http://cxf.apache.org/bindings/soap&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/bindings/soap&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/schemas/configuration/soap.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/configuration/soap.xsd&lt;/a&gt;&lt;br&gt;-&lt;a href=&quot;http://cxf.apache.org/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxws&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/schemas/jaxws.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/jaxws.xsd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;jaxws:endpoint
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;id=&amp;quot;hello_world&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;implementor=&amp;quot;demo.hw.server.GreeterImpl&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;wsdlLocation=&amp;quot;WEB-INF/wsdl/hello_world.wsdl&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;address=&amp;quot;/hello_world&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jaxws:features&amp;gt;
&lt;br&gt;- 		 &amp;nbsp; &amp;nbsp;&amp;lt;bean class=&amp;quot;org.apache.cxf.feature.LoggingFeature&amp;quot;/&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/jaxws:features&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;/jaxws:endpoint&amp;gt;
&lt;br&gt;-&amp;lt;/beans&amp;gt;
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+ &amp;nbsp;Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ &amp;nbsp;or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ &amp;nbsp;distributed with this work for additional information
&lt;br&gt;+ &amp;nbsp;regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ &amp;nbsp;to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ &amp;nbsp;&amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ &amp;nbsp;with the License. You may obtain a copy of the License at
&lt;br&gt;+ 
&lt;br&gt;+ &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ 
&lt;br&gt;+ &amp;nbsp;Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ &amp;nbsp;software distributed under the License is distributed on an
&lt;br&gt;+ &amp;nbsp;&amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ &amp;nbsp;KIND, either express or implied. See the License for the
&lt;br&gt;+ &amp;nbsp;specific language governing permissions and limitations
&lt;br&gt;+ &amp;nbsp;under the License.
&lt;br&gt;+--&amp;gt;
&lt;br&gt;+&amp;lt;beans xmlns=&amp;quot;&lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:jaxws=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxws&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:soap=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/bindings/soap&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/bindings/soap&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;xsi:schemaLocation=&amp;quot;
&lt;br&gt;+&lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://www.springframework.org/schema/beans/spring-beans-2.0.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans/spring-beans-2.0.xsd&lt;/a&gt;&lt;br&gt;+&lt;a href=&quot;http://cxf.apache.org/bindings/soap&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/bindings/soap&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/schemas/configuration/soap.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/configuration/soap.xsd&lt;/a&gt;&lt;br&gt;+&lt;a href=&quot;http://cxf.apache.org/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxws&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/schemas/jaxws.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/jaxws.xsd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;jaxws:endpoint
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;id=&amp;quot;hello_world&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;implementor=&amp;quot;demo.hw.server.GreeterImpl&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;wsdlLocation=&amp;quot;WEB-INF/wsdl/hello_world.wsdl&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;address=&amp;quot;/hello_world&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jaxws:features&amp;gt;
&lt;br&gt;+ 		 &amp;nbsp; &amp;nbsp;&amp;lt;bean class=&amp;quot;org.apache.cxf.feature.LoggingFeature&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/jaxws:features&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/jaxws:endpoint&amp;gt;
&lt;br&gt;+&amp;lt;/beans&amp;gt;
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/xml
&lt;br&gt;&lt;br&gt;Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml (original)
&lt;br&gt;+++ cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1,40 +1,40 @@
&lt;br&gt;-&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;-	&amp;lt;!--
&lt;br&gt;-		Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;-		contributor license agreements. See the NOTICE file distributed with
&lt;br&gt;-		this work for additional information regarding copyright ownership.
&lt;br&gt;-		The ASF licenses this file to You under the Apache License, Version
&lt;br&gt;-		2.0 (the &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;-		with the License. You may obtain a copy of the License at
&lt;br&gt;-
&lt;br&gt;-		&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&amp;nbsp;Unless required by
&lt;br&gt;-		applicable law or agreed to in writing, software distributed under the
&lt;br&gt;-		License is distributed on an &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR
&lt;br&gt;-		CONDITIONS OF ANY KIND, either express or implied. See the License for
&lt;br&gt;-		the specific language governing permissions and limitations under the
&lt;br&gt;-		License.
&lt;br&gt;-	--&amp;gt;
&lt;br&gt;-&amp;lt;beans xmlns=&amp;quot;&lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&amp;quot;
&lt;br&gt;-	xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot; xmlns:jaxws=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxws&lt;/a&gt;&amp;quot;
&lt;br&gt;-	xsi:schemaLocation=&amp;quot;&lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://www.springframework.org/schema/beans/spring-beans-2.5.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans/spring-beans-2.5.xsd&lt;/a&gt;&lt;br&gt;-		&lt;a href=&quot;http://www.springframework.org/schema/context&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/context&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://www.springframework.org/schema/context/spring-context-2.5.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/context/spring-context-2.5.xsd&lt;/a&gt;&lt;br&gt;-		&lt;a href=&quot;http://cxf.apache.org/core&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/core&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/schemas/core.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/core.xsd&lt;/a&gt;&lt;br&gt;-		&lt;a href=&quot;http://cxf.apache.org/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxws&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/schemas/jaxws.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/jaxws.xsd&lt;/a&gt;&lt;br&gt;-&amp;quot;&amp;gt;
&lt;br&gt;-
&lt;br&gt;-	&amp;lt;import resource=&amp;quot;classpath:META-INF/cxf/cxf.xml&amp;quot; /&amp;gt;
&lt;br&gt;-	&amp;lt;import resource=&amp;quot;classpath:META-INF/cxf/cxf-extension-http.xml&amp;quot; /&amp;gt;
&lt;br&gt;-	&amp;lt;import resource=&amp;quot;classpath:META-INF/cxf/cxf-extension-http-jetty.xml&amp;quot; /&amp;gt;
&lt;br&gt;-	&amp;lt;import resource=&amp;quot;classpath:META-INF/cxf/cxf-extension-soap.xml&amp;quot; /&amp;gt;
&lt;br&gt;-
&lt;br&gt;-	&amp;lt;!-- HTTP Endpoint --&amp;gt;
&lt;br&gt;-	&amp;lt;jaxws:endpoint xmlns:customer=&amp;quot;&lt;a href=&quot;http://customerservice.example.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://customerservice.example.com/&lt;/a&gt;&amp;quot;
&lt;br&gt;-		id=&amp;quot;CustomerServiceHTTP&amp;quot; address=&amp;quot;&lt;a href=&quot;http://localhost:9090/CustomerServicePort&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:9090/CustomerServicePort&lt;/a&gt;&amp;quot;
&lt;br&gt;-		serviceName=&amp;quot;customer:CustomerServiceService&amp;quot; endpointName=&amp;quot;customer:CustomerServiceEndpoint&amp;quot;
&lt;br&gt;-		implementor=&amp;quot;com.example.customerservice.server.CustomerServiceImpl&amp;quot;&amp;gt;
&lt;br&gt;-		&amp;lt;jaxws:features&amp;gt;
&lt;br&gt;-			&amp;lt;bean class=&amp;quot;org.apache.cxf.feature.LoggingFeature&amp;quot; /&amp;gt;
&lt;br&gt;-		&amp;lt;/jaxws:features&amp;gt;
&lt;br&gt;-	&amp;lt;/jaxws:endpoint&amp;gt;
&lt;br&gt;-
&lt;br&gt;-&amp;lt;/beans&amp;gt;
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;+	&amp;lt;!--
&lt;br&gt;+		Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+		contributor license agreements. See the NOTICE file distributed with
&lt;br&gt;+		this work for additional information regarding copyright ownership.
&lt;br&gt;+		The ASF licenses this file to You under the Apache License, Version
&lt;br&gt;+		2.0 (the &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+		with the License. You may obtain a copy of the License at
&lt;br&gt;+
&lt;br&gt;+		&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&amp;nbsp;Unless required by
&lt;br&gt;+		applicable law or agreed to in writing, software distributed under the
&lt;br&gt;+		License is distributed on an &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR
&lt;br&gt;+		CONDITIONS OF ANY KIND, either express or implied. See the License for
&lt;br&gt;+		the specific language governing permissions and limitations under the
&lt;br&gt;+		License.
&lt;br&gt;+	--&amp;gt;
&lt;br&gt;+&amp;lt;beans xmlns=&amp;quot;&lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&amp;quot;
&lt;br&gt;+	xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot; xmlns:jaxws=&amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxws&lt;/a&gt;&amp;quot;
&lt;br&gt;+	xsi:schemaLocation=&amp;quot;&lt;a href=&quot;http://www.springframework.org/schema/beans&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://www.springframework.org/schema/beans/spring-beans-2.5.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/beans/spring-beans-2.5.xsd&lt;/a&gt;&lt;br&gt;+		&lt;a href=&quot;http://www.springframework.org/schema/context&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/context&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://www.springframework.org/schema/context/spring-context-2.5.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.springframework.org/schema/context/spring-context-2.5.xsd&lt;/a&gt;&lt;br&gt;+		&lt;a href=&quot;http://cxf.apache.org/core&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/core&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/schemas/core.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/core.xsd&lt;/a&gt;&lt;br&gt;+		&lt;a href=&quot;http://cxf.apache.org/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxws&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://cxf.apache.org/schemas/jaxws.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/schemas/jaxws.xsd&lt;/a&gt;&lt;br&gt;+&amp;quot;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+	&amp;lt;import resource=&amp;quot;classpath:META-INF/cxf/cxf.xml&amp;quot; /&amp;gt;
&lt;br&gt;+	&amp;lt;import resource=&amp;quot;classpath:META-INF/cxf/cxf-extension-http.xml&amp;quot; /&amp;gt;
&lt;br&gt;+	&amp;lt;import resource=&amp;quot;classpath:META-INF/cxf/cxf-extension-http-jetty.xml&amp;quot; /&amp;gt;
&lt;br&gt;+	&amp;lt;import resource=&amp;quot;classpath:META-INF/cxf/cxf-extension-soap.xml&amp;quot; /&amp;gt;
&lt;br&gt;+
&lt;br&gt;+	&amp;lt;!-- HTTP Endpoint --&amp;gt;
&lt;br&gt;+	&amp;lt;jaxws:endpoint xmlns:customer=&amp;quot;&lt;a href=&quot;http://customerservice.example.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://customerservice.example.com/&lt;/a&gt;&amp;quot;
&lt;br&gt;+		id=&amp;quot;CustomerServiceHTTP&amp;quot; address=&amp;quot;&lt;a href=&quot;http://localhost:9090/CustomerServicePort&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:9090/CustomerServicePort&lt;/a&gt;&amp;quot;
&lt;br&gt;+		serviceName=&amp;quot;customer:CustomerServiceService&amp;quot; endpointName=&amp;quot;customer:CustomerServiceEndpoint&amp;quot;
&lt;br&gt;+		implementor=&amp;quot;com.example.customerservice.server.CustomerServiceImpl&amp;quot;&amp;gt;
&lt;br&gt;+		&amp;lt;jaxws:features&amp;gt;
&lt;br&gt;+			&amp;lt;bean class=&amp;quot;org.apache.cxf.feature.LoggingFeature&amp;quot; /&amp;gt;
&lt;br&gt;+		&amp;lt;/jaxws:features&amp;gt;
&lt;br&gt;+	&amp;lt;/jaxws:endpoint&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;/beans&amp;gt;
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/xml
&lt;br&gt;&lt;br&gt;Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl (original)
&lt;br&gt;+++ cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1,123 +1,123 @@
&lt;br&gt;-&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;-&amp;lt;!--
&lt;br&gt;- &amp;nbsp;Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- &amp;nbsp;or more contributor license agreements. See the NOTICE file
&lt;br&gt;- &amp;nbsp;distributed with this work for additional information
&lt;br&gt;- &amp;nbsp;regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- &amp;nbsp;to you under the Apache License, Version 2.0 (the
&lt;br&gt;- &amp;nbsp;&amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- &amp;nbsp;with the License. You may obtain a copy of the License at
&lt;br&gt;- 
&lt;br&gt;- &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- 
&lt;br&gt;- &amp;nbsp;Unless required by applicable law or agreed to in writing,
&lt;br&gt;- &amp;nbsp;software distributed under the License is distributed on an
&lt;br&gt;- &amp;nbsp;&amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- &amp;nbsp;KIND, either express or implied. See the License for the
&lt;br&gt;- &amp;nbsp;specific language governing permissions and limitations
&lt;br&gt;- &amp;nbsp;under the License.
&lt;br&gt;---&amp;gt;
&lt;br&gt;-&amp;lt;wsdl:definitions name=&amp;quot;CustomerServiceService&amp;quot; targetNamespace=&amp;quot;&lt;a href=&quot;http://customerservice.example.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://customerservice.example.com/&lt;/a&gt;&amp;quot; xmlns:wsdl=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/wsdl/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/wsdl/&lt;/a&gt;&amp;quot; xmlns:tns=&amp;quot;&lt;a href=&quot;http://customerservice.example.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://customerservice.example.com/&lt;/a&gt;&amp;quot; xmlns:xsd=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema&lt;/a&gt;&amp;quot; xmlns:soap=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/wsdl/soap/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/wsdl/soap/&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;wsdl:types&amp;gt;
&lt;br&gt;-&amp;lt;xs:schema xmlns:xs=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema&lt;/a&gt;&amp;quot; xmlns:tns=&amp;quot;&lt;a href=&quot;http://customerservice.example.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://customerservice.example.com/&lt;/a&gt;&amp;quot; attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;unqualified&amp;quot; targetNamespace=&amp;quot;&lt;a href=&quot;http://customerservice.example.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://customerservice.example.com/&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;-&amp;lt;xs:element name=&amp;quot;getCustomersByName&amp;quot; type=&amp;quot;tns:getCustomersByName&amp;quot;/&amp;gt;
&lt;br&gt;-&amp;lt;xs:element name=&amp;quot;getCustomersByNameResponse&amp;quot; type=&amp;quot;tns:getCustomersByNameResponse&amp;quot;/&amp;gt;
&lt;br&gt;-&amp;lt;xs:element name=&amp;quot;updateCustomer&amp;quot; type=&amp;quot;tns:updateCustomer&amp;quot;/&amp;gt;
&lt;br&gt;-&amp;lt;xs:complexType name=&amp;quot;updateCustomer&amp;quot;&amp;gt;
&lt;br&gt;-&amp;lt;xs:sequence&amp;gt;
&lt;br&gt;-&amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;customer&amp;quot; type=&amp;quot;tns:customer&amp;quot;/&amp;gt;
&lt;br&gt;-&amp;lt;/xs:sequence&amp;gt;
&lt;br&gt;-&amp;lt;/xs:complexType&amp;gt;
&lt;br&gt;-&amp;lt;xs:complexType name=&amp;quot;customer&amp;quot;&amp;gt;
&lt;br&gt;-&amp;lt;xs:sequence&amp;gt;
&lt;br&gt;-&amp;lt;xs:element name=&amp;quot;customerId&amp;quot; type=&amp;quot;xs:int&amp;quot;/&amp;gt;
&lt;br&gt;-&amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;name&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;
&lt;br&gt;-&amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;address&amp;quot; nillable=&amp;quot;true&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;
&lt;br&gt;-&amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;numOrders&amp;quot; type=&amp;quot;xs:int&amp;quot;/&amp;gt;
&lt;br&gt;-&amp;lt;xs:element name=&amp;quot;revenue&amp;quot; type=&amp;quot;xs:double&amp;quot;/&amp;gt;
&lt;br&gt;-&amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;test&amp;quot; type=&amp;quot;xs:decimal&amp;quot;/&amp;gt;
&lt;br&gt;-&amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;birthDate&amp;quot; type=&amp;quot;xs:date&amp;quot;/&amp;gt;
&lt;br&gt;-&amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;type&amp;quot; type=&amp;quot;tns:customerType&amp;quot;/&amp;gt;
&lt;br&gt;-&amp;lt;/xs:sequence&amp;gt;
&lt;br&gt;-&amp;lt;/xs:complexType&amp;gt;
&lt;br&gt;-&amp;lt;xs:complexType name=&amp;quot;getCustomersByName&amp;quot;&amp;gt;
&lt;br&gt;-&amp;lt;xs:sequence&amp;gt;
&lt;br&gt;-&amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;name&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;
&lt;br&gt;-&amp;lt;/xs:sequence&amp;gt;
&lt;br&gt;-&amp;lt;/xs:complexType&amp;gt;
&lt;br&gt;-&amp;lt;xs:complexType name=&amp;quot;getCustomersByNameResponse&amp;quot;&amp;gt;
&lt;br&gt;-&amp;lt;xs:sequence&amp;gt;
&lt;br&gt;-&amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;return&amp;quot; type=&amp;quot;tns:customer&amp;quot;/&amp;gt;
&lt;br&gt;-&amp;lt;/xs:sequence&amp;gt;
&lt;br&gt;-&amp;lt;/xs:complexType&amp;gt;
&lt;br&gt;-&amp;lt;xs:simpleType name=&amp;quot;customerType&amp;quot;&amp;gt;
&lt;br&gt;-&amp;lt;xs:restriction base=&amp;quot;xs:string&amp;quot;&amp;gt;
&lt;br&gt;-&amp;lt;xs:enumeration value=&amp;quot;PRIVATE&amp;quot;/&amp;gt;
&lt;br&gt;-&amp;lt;xs:enumeration value=&amp;quot;BUSINESS&amp;quot;/&amp;gt;
&lt;br&gt;-&amp;lt;/xs:restriction&amp;gt;
&lt;br&gt;-&amp;lt;/xs:simpleType&amp;gt;
&lt;br&gt;-&amp;lt;xs:element name=&amp;quot;NoSuchCustomer&amp;quot; type=&amp;quot;tns:NoSuchCustomer&amp;quot;/&amp;gt;
&lt;br&gt;-&amp;lt;xs:complexType name=&amp;quot;NoSuchCustomer&amp;quot;&amp;gt;
&lt;br&gt;-&amp;lt;xs:sequence&amp;gt;
&lt;br&gt;-&amp;lt;xs:element name=&amp;quot;customerName&amp;quot; nillable=&amp;quot;true&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;
&lt;br&gt;-&amp;lt;/xs:sequence&amp;gt;
&lt;br&gt;-&amp;lt;/xs:complexType&amp;gt;
&lt;br&gt;-&amp;lt;/xs:schema&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;/wsdl:types&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;wsdl:message name=&amp;quot;getCustomersByNameResponse&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:part name=&amp;quot;parameters&amp;quot; element=&amp;quot;tns:getCustomersByNameResponse&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:part&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;/wsdl:message&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;wsdl:message name=&amp;quot;getCustomersByName&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:part name=&amp;quot;parameters&amp;quot; element=&amp;quot;tns:getCustomersByName&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:part&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;/wsdl:message&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;wsdl:message name=&amp;quot;updateCustomer&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:part name=&amp;quot;parameters&amp;quot; element=&amp;quot;tns:updateCustomer&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:part&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;/wsdl:message&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;wsdl:message name=&amp;quot;NoSuchCustomerException&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:part name=&amp;quot;NoSuchCustomerException&amp;quot; element=&amp;quot;tns:NoSuchCustomer&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:part&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;/wsdl:message&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;wsdl:portType name=&amp;quot;CustomerService&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:operation name=&amp;quot;updateCustomer&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:input name=&amp;quot;updateCustomer&amp;quot; message=&amp;quot;tns:updateCustomer&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:input&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:operation&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:operation name=&amp;quot;getCustomersByName&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:input name=&amp;quot;getCustomersByName&amp;quot; message=&amp;quot;tns:getCustomersByName&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:input&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:output name=&amp;quot;getCustomersByNameResponse&amp;quot; message=&amp;quot;tns:getCustomersByNameResponse&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:output&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:fault name=&amp;quot;NoSuchCustomerException&amp;quot; message=&amp;quot;tns:NoSuchCustomerException&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:fault&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:operation&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;/wsdl:portType&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;wsdl:binding name=&amp;quot;CustomerServiceServiceSoapBinding&amp;quot; type=&amp;quot;tns:CustomerService&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;soap:binding style=&amp;quot;document&amp;quot; transport=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/soap/http&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/soap/http&lt;/a&gt;&amp;quot;/&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:operation name=&amp;quot;updateCustomer&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:operation soapAction=&amp;quot;&amp;quot; style=&amp;quot;document&amp;quot;/&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:input name=&amp;quot;updateCustomer&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:body use=&amp;quot;literal&amp;quot;/&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:input&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:operation&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:operation name=&amp;quot;getCustomersByName&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:operation soapAction=&amp;quot;&amp;quot; style=&amp;quot;document&amp;quot;/&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:input name=&amp;quot;getCustomersByName&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:body use=&amp;quot;literal&amp;quot;/&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:input&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:output name=&amp;quot;getCustomersByNameResponse&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:body use=&amp;quot;literal&amp;quot;/&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:output&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:fault name=&amp;quot;NoSuchCustomerException&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:fault name=&amp;quot;NoSuchCustomerException&amp;quot; use=&amp;quot;literal&amp;quot;/&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:fault&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:operation&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;/wsdl:binding&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;wsdl:service name=&amp;quot;CustomerServiceService&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:port name=&amp;quot;CustomerServicePort&amp;quot; binding=&amp;quot;tns:CustomerServiceServiceSoapBinding&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:address location=&amp;quot;&lt;a href=&quot;http://localhost:9090/CustomerServicePort&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:9090/CustomerServicePort&lt;/a&gt;&amp;quot;/&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:port&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;/wsdl:service&amp;gt;
&lt;br&gt;-&amp;lt;/wsdl:definitions&amp;gt;
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+ &amp;nbsp;Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ &amp;nbsp;or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ &amp;nbsp;distributed with this work for additional information
&lt;br&gt;+ &amp;nbsp;regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ &amp;nbsp;to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ &amp;nbsp;&amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ &amp;nbsp;with the License. You may obtain a copy of the License at
&lt;br&gt;+ 
&lt;br&gt;+ &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ 
&lt;br&gt;+ &amp;nbsp;Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ &amp;nbsp;software distributed under the License is distributed on an
&lt;br&gt;+ &amp;nbsp;&amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ &amp;nbsp;KIND, either express or implied. See the License for the
&lt;br&gt;+ &amp;nbsp;specific language governing permissions and limitations
&lt;br&gt;+ &amp;nbsp;under the License.
&lt;br&gt;+--&amp;gt;
&lt;br&gt;+&amp;lt;wsdl:definitions name=&amp;quot;CustomerServiceService&amp;quot; targetNamespace=&amp;quot;&lt;a href=&quot;http://customerservice.example.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://customerservice.example.com/&lt;/a&gt;&amp;quot; xmlns:wsdl=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/wsdl/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/wsdl/&lt;/a&gt;&amp;quot; xmlns:tns=&amp;quot;&lt;a href=&quot;http://customerservice.example.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://customerservice.example.com/&lt;/a&gt;&amp;quot; xmlns:xsd=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema&lt;/a&gt;&amp;quot; xmlns:soap=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/wsdl/soap/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/wsdl/soap/&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;wsdl:types&amp;gt;
&lt;br&gt;+&amp;lt;xs:schema xmlns:xs=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema&lt;/a&gt;&amp;quot; xmlns:tns=&amp;quot;&lt;a href=&quot;http://customerservice.example.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://customerservice.example.com/&lt;/a&gt;&amp;quot; attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;unqualified&amp;quot; targetNamespace=&amp;quot;&lt;a href=&quot;http://customerservice.example.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://customerservice.example.com/&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+&amp;lt;xs:element name=&amp;quot;getCustomersByName&amp;quot; type=&amp;quot;tns:getCustomersByName&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;xs:element name=&amp;quot;getCustomersByNameResponse&amp;quot; type=&amp;quot;tns:getCustomersByNameResponse&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;xs:element name=&amp;quot;updateCustomer&amp;quot; type=&amp;quot;tns:updateCustomer&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;xs:complexType name=&amp;quot;updateCustomer&amp;quot;&amp;gt;
&lt;br&gt;+&amp;lt;xs:sequence&amp;gt;
&lt;br&gt;+&amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;customer&amp;quot; type=&amp;quot;tns:customer&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;/xs:sequence&amp;gt;
&lt;br&gt;+&amp;lt;/xs:complexType&amp;gt;
&lt;br&gt;+&amp;lt;xs:complexType name=&amp;quot;customer&amp;quot;&amp;gt;
&lt;br&gt;+&amp;lt;xs:sequence&amp;gt;
&lt;br&gt;+&amp;lt;xs:element name=&amp;quot;customerId&amp;quot; type=&amp;quot;xs:int&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;name&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;address&amp;quot; nillable=&amp;quot;true&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;numOrders&amp;quot; type=&amp;quot;xs:int&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;xs:element name=&amp;quot;revenue&amp;quot; type=&amp;quot;xs:double&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;test&amp;quot; type=&amp;quot;xs:decimal&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;birthDate&amp;quot; type=&amp;quot;xs:date&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;type&amp;quot; type=&amp;quot;tns:customerType&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;/xs:sequence&amp;gt;
&lt;br&gt;+&amp;lt;/xs:complexType&amp;gt;
&lt;br&gt;+&amp;lt;xs:complexType name=&amp;quot;getCustomersByName&amp;quot;&amp;gt;
&lt;br&gt;+&amp;lt;xs:sequence&amp;gt;
&lt;br&gt;+&amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;name&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;/xs:sequence&amp;gt;
&lt;br&gt;+&amp;lt;/xs:complexType&amp;gt;
&lt;br&gt;+&amp;lt;xs:complexType name=&amp;quot;getCustomersByNameResponse&amp;quot;&amp;gt;
&lt;br&gt;+&amp;lt;xs:sequence&amp;gt;
&lt;br&gt;+&amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;return&amp;quot; type=&amp;quot;tns:customer&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;/xs:sequence&amp;gt;
&lt;br&gt;+&amp;lt;/xs:complexType&amp;gt;
&lt;br&gt;+&amp;lt;xs:simpleType name=&amp;quot;customerType&amp;quot;&amp;gt;
&lt;br&gt;+&amp;lt;xs:restriction base=&amp;quot;xs:string&amp;quot;&amp;gt;
&lt;br&gt;+&amp;lt;xs:enumeration value=&amp;quot;PRIVATE&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;xs:enumeration value=&amp;quot;BUSINESS&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;/xs:restriction&amp;gt;
&lt;br&gt;+&amp;lt;/xs:simpleType&amp;gt;
&lt;br&gt;+&amp;lt;xs:element name=&amp;quot;NoSuchCustomer&amp;quot; type=&amp;quot;tns:NoSuchCustomer&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;xs:complexType name=&amp;quot;NoSuchCustomer&amp;quot;&amp;gt;
&lt;br&gt;+&amp;lt;xs:sequence&amp;gt;
&lt;br&gt;+&amp;lt;xs:element name=&amp;quot;customerName&amp;quot; nillable=&amp;quot;true&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;/xs:sequence&amp;gt;
&lt;br&gt;+&amp;lt;/xs:complexType&amp;gt;
&lt;br&gt;+&amp;lt;/xs:schema&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/wsdl:types&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;wsdl:message name=&amp;quot;getCustomersByNameResponse&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:part name=&amp;quot;parameters&amp;quot; element=&amp;quot;tns:getCustomersByNameResponse&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:part&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/wsdl:message&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;wsdl:message name=&amp;quot;getCustomersByName&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:part name=&amp;quot;parameters&amp;quot; element=&amp;quot;tns:getCustomersByName&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:part&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/wsdl:message&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;wsdl:message name=&amp;quot;updateCustomer&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:part name=&amp;quot;parameters&amp;quot; element=&amp;quot;tns:updateCustomer&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:part&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/wsdl:message&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;wsdl:message name=&amp;quot;NoSuchCustomerException&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:part name=&amp;quot;NoSuchCustomerException&amp;quot; element=&amp;quot;tns:NoSuchCustomer&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:part&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/wsdl:message&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;wsdl:portType name=&amp;quot;CustomerService&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:operation name=&amp;quot;updateCustomer&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:input name=&amp;quot;updateCustomer&amp;quot; message=&amp;quot;tns:updateCustomer&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:input&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:operation&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:operation name=&amp;quot;getCustomersByName&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:input name=&amp;quot;getCustomersByName&amp;quot; message=&amp;quot;tns:getCustomersByName&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:input&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:output name=&amp;quot;getCustomersByNameResponse&amp;quot; message=&amp;quot;tns:getCustomersByNameResponse&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:output&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:fault name=&amp;quot;NoSuchCustomerException&amp;quot; message=&amp;quot;tns:NoSuchCustomerException&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:fault&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:operation&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/wsdl:portType&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;wsdl:binding name=&amp;quot;CustomerServiceServiceSoapBinding&amp;quot; type=&amp;quot;tns:CustomerService&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;soap:binding style=&amp;quot;document&amp;quot; transport=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/soap/http&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/soap/http&lt;/a&gt;&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:operation name=&amp;quot;updateCustomer&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:operation soapAction=&amp;quot;&amp;quot; style=&amp;quot;document&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:input name=&amp;quot;updateCustomer&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:body use=&amp;quot;literal&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:input&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:operation&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:operation name=&amp;quot;getCustomersByName&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:operation soapAction=&amp;quot;&amp;quot; style=&amp;quot;document&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:input name=&amp;quot;getCustomersByName&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:body use=&amp;quot;literal&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:input&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:output name=&amp;quot;getCustomersByNameResponse&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:body use=&amp;quot;literal&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:output&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:fault name=&amp;quot;NoSuchCustomerException&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:fault name=&amp;quot;NoSuchCustomerException&amp;quot; use=&amp;quot;literal&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:fault&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:operation&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/wsdl:binding&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;wsdl:service name=&amp;quot;CustomerServiceService&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;wsdl:port name=&amp;quot;CustomerServicePort&amp;quot; binding=&amp;quot;tns:CustomerServiceServiceSoapBinding&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:address location=&amp;quot;&lt;a href=&quot;http://localhost:9090/CustomerServicePort&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:9090/CustomerServicePort&lt;/a&gt;&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:port&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/wsdl:service&amp;gt;
&lt;br&gt;+&amp;lt;/wsdl:definitions&amp;gt;
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:mime-type (original)
&lt;br&gt;+++ svn:mime-type Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1 +1 @@
&lt;br&gt;-text/plain
&lt;br&gt;+text/xml
&lt;br&gt;&lt;br&gt;Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml (original)
&lt;br&gt;+++ cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1,17 +1,17 @@
&lt;br&gt;-&amp;lt;jaxws:bindings wsdlLocation=&amp;quot;CustomerService.wsdl&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:jaxws=&amp;quot;&lt;a href=&quot;http://java.sun.com/xml/ns/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/xml/ns/jaxws&lt;/a&gt;&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:xs=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema&lt;/a&gt;&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:jxb=&amp;quot;&lt;a href=&quot;http://java.sun.com/xml/ns/jaxb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/xml/ns/jaxb&lt;/a&gt;&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:wsdl=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/wsdl/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/wsdl/&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;!-- &amp;lt;jaxws:enableAsyncMapping&amp;gt;true&amp;lt;/jaxws:enableAsyncMapping&amp;gt; --&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;jaxws:bindings &amp;nbsp;node=&amp;quot;wsdl:definitions/wsdl:types/xs:schema&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jxb:globalBindings&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jxb:javaType name=&amp;quot;java.util.Date&amp;quot; xmlType=&amp;quot;xs:dateTime&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;parseMethod=&amp;quot;org.apache.cxf.tools.common.DataTypeAdapter.parseDateTime&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;printMethod=&amp;quot;org.apache.cxf.tools.common.DataTypeAdapter.printDateTime&amp;quot;/&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jxb:javaType name=&amp;quot;java.util.Date&amp;quot; xmlType=&amp;quot;xs:date&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;parseMethod=&amp;quot;org.apache.cxf.tools.common.DataTypeAdapter.parseDate&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;printMethod=&amp;quot;org.apache.cxf.tools.common.DataTypeAdapter.printDate&amp;quot;/&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/jxb:globalBindings&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;/jaxws:bindings&amp;gt;
&lt;br&gt;+&amp;lt;jaxws:bindings wsdlLocation=&amp;quot;CustomerService.wsdl&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:jaxws=&amp;quot;&lt;a href=&quot;http://java.sun.com/xml/ns/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/xml/ns/jaxws&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:xs=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:jxb=&amp;quot;&lt;a href=&quot;http://java.sun.com/xml/ns/jaxb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/xml/ns/jaxb&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:wsdl=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/wsdl/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/wsdl/&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;!-- &amp;lt;jaxws:enableAsyncMapping&amp;gt;true&amp;lt;/jaxws:enableAsyncMapping&amp;gt; --&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;jaxws:bindings &amp;nbsp;node=&amp;quot;wsdl:definitions/wsdl:types/xs:schema&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jxb:globalBindings&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jxb:javaType name=&amp;quot;java.util.Date&amp;quot; xmlType=&amp;quot;xs:dateTime&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;parseMethod=&amp;quot;org.apache.cxf.tools.common.DataTypeAdapter.parseDateTime&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;printMethod=&amp;quot;org.apache.cxf.tools.common.DataTypeAdapter.printDateTime&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jxb:javaType name=&amp;quot;java.util.Date&amp;quot; xmlType=&amp;quot;xs:date&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;parseMethod=&amp;quot;org.apache.cxf.tools.common.DataTypeAdapter.parseDate&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;printMethod=&amp;quot;org.apache.cxf.tools.common.DataTypeAdapter.printDate&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/jxb:globalBindings&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/jaxws:bindings&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;/jaxws:bindings&amp;gt;
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:mime-type (original)
&lt;br&gt;+++ svn:mime-type Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1 +1 @@
&lt;br&gt;-text/plain
&lt;br&gt;+text/xml
&lt;br&gt;&lt;br&gt;Modified: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java?rev=886968&amp;r1=886967&amp;r2=886968&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java (original)
&lt;br&gt;+++ cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java Thu Dec &amp;nbsp;3 22:42:11 2009
&lt;br&gt;@@ -1,114 +1,114 @@
&lt;br&gt;-/**
&lt;br&gt;- * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- * or more contributor license agreements. See the NOTICE file
&lt;br&gt;- * distributed with this work for additional information
&lt;br&gt;- * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- * to you under the Apache License, Version 2.0 (the
&lt;br&gt;- * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- * with the License. You may obtain a copy of the License at
&lt;br&gt;- *
&lt;br&gt;- * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- *
&lt;br&gt;- * Unless required by applicable law or agreed to in writing,
&lt;br&gt;- * software distributed under the License is distributed on an
&lt;br&gt;- * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- * KIND, either express or implied. See the License for the
&lt;br&gt;- * specific language governing permissions and limitations
&lt;br&gt;- * under the License.
&lt;br&gt;- */
&lt;br&gt;-package org.apache.cxf.maven_plugin;
&lt;br&gt;-
&lt;br&gt;-import java.io.File;
&lt;br&gt;-import java.io.FileInputStream;
&lt;br&gt;-import java.io.FileOutputStream;
&lt;br&gt;-import java.io.InputStream;
&lt;br&gt;-import java.net.URI;
&lt;br&gt;-
&lt;br&gt;-import javax.xml.parsers.DocumentBuilder;
&lt;br&gt;-import javax.xml.parsers.DocumentBuilderFactory;
&lt;br&gt;-import javax.xml.transform.OutputKeys;
&lt;br&gt;-import javax.xml.transform.Transformer;
&lt;br&gt;-import javax.xml.transform.TransformerFactory;
&lt;br&gt;-import javax.xml.transform.dom.DOMSource;
&lt;br&gt;-import javax.xml.transform.stream.StreamResult;
&lt;br&gt;-
&lt;br&gt;-import org.w3c.dom.Document;
&lt;br&gt;-import org.w3c.dom.Element;
&lt;br&gt;-
&lt;br&gt;-import org.apache.maven.plugin.MojoExecutionException;
&lt;br&gt;-import org.apache.maven.plugin.logging.Log;
&lt;br&gt;-
&lt;br&gt;-public final class BindingFileHelper {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;static final String LOCATION_ATTR_NAME = &amp;quot;wsdlLocation&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private BindingFileHelper() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;static Document readDocument(InputStream is) throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DocumentBuilder db = dbf.newDocumentBuilder();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Document doc = db.parse(is);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;doc.getDocumentElement().normalize();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return doc;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Reads bindingFile from given stream, sets the attribute wsdlLocation on the top element bindings to the
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * given wsdlLocation and writes the resulting binding file to outBindingFile
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param bindingFileStream
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param wsdlLocation
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param outBindingFile
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @throws Exception
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static boolean setWsdlLocationAndWrite(InputStream bindingFileStream, URI wsdlLocation,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; File outBindingFile) throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Document doc = readDocument(bindingFileStream);
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Find and set wsdlLocation
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Element bindings = doc.getDocumentElement();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String oldLocation = bindings.getAttribute(LOCATION_ATTR_NAME);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (oldLocation != null &amp;&amp; !&amp;quot;&amp;quot;.equals(oldLocation)) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bindings.setAttribute(LOCATION_ATTR_NAME, wsdlLocation.toURL().toExternalForm());
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Save to outBindingFile
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TransformerFactory transformerFactory = TransformerFactory.newInstance();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Transformer transformer = transformerFactory.newTransformer();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;transformer.setOutputProperty(OutputKeys.INDENT, &amp;quot;yes&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DOMSource source = new DOMSource(doc);
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!outBindingFile.exists()) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;outBindingFile.getParentFile().mkdirs();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FileOutputStream fos = new FileOutputStream(outBindingFile);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StreamResult result = new StreamResult(fos);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;transformer.transform(source, result);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;static void setWsdlLocationInBindingsIfNotSet(File baseDir, File outDir, WsdlOption o, Log log) 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws MojoExecutionException {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String[] bindingFiles = o.getBindingFiles();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int c = 0; c &amp;lt; bindingFiles.length; c++) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String bindingFilePath = bindingFiles[c];
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File bindingFile = new File(bindingFilePath);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File outFile = &amp;nbsp;new File(outDir, &amp;quot;&amp;quot; + c + &amp;quot;-&amp;quot; + bindingFile.getName());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URI wsdlLocation = o.getWsdlURI(baseDir.toURI());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FileInputStream is = new FileInputStream(bindingFile);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean wasSet = setWsdlLocationAndWrite(is, wsdlLocation, outFile);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (log != null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.info(&amp;quot;Checked binding file &amp;quot; + bindingFilePath + &amp;quot; &amp;quot; + wasSet);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (wasSet) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bindingFiles[c] = outFile.getAbsolutePath();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new MojoExecutionException(&amp;quot;Error setting wsdlLocation in binding file&amp;quot;, e);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;-}
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.cxf.maven_plugin;
&lt;br&gt;+
&lt;br&gt;+import java.io.File;
&lt;br&gt;+import java.io.FileInputStream;
&lt;br&gt;+import java.io.FileOutputStream;
&lt;br&gt;+import java.io.InputStream;
&lt;br&gt;+import java.net.URI;
&lt;br&gt;+
&lt;br&gt;+import javax.xml.parsers.DocumentBuilder;
&lt;br&gt;+import javax.xml.parsers.DocumentBuilderFactory;
&lt;br&gt;+import javax.xml.transform.OutputKeys;
&lt;br&gt;+import javax.xml.transform.Transformer;
&lt;br&gt;+import javax.xml.transform.TransformerFactory;
&lt;br&gt;+import javax.xml.transform.dom.DOMSource;
&lt;br&gt;+import javax.xml.transform.stream.StreamResult;
&lt;br&gt;+
&lt;br&gt;+import org.w3c.dom.Document;
&lt;br&gt;+import org.w3c.dom.Element;
&lt;br&gt;+
&lt;br&gt;+import org.apache.maven.plugin.MojoExecutionException;
&lt;br&gt;+import org.apache.maven.plugin.logging.Log;
&lt;br&gt;+
&lt;br&gt;+public final class BindingFileHelper {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;static final String LOCATION_ATTR_NAME = &amp;quot;wsdlLocation&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private BindingFileHelper() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;static Document readDocument(InputStream is) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DocumentBuilder db = dbf.newDocumentBuilder();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Document doc = db.parse(is);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;doc.getDocumentElement().normalize();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return doc;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Reads bindingFile from given stream, sets the attribute wsdlLocation on the top element bindings to the
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * given wsdlLocation and writes the resulting binding file to outBindingFile
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param bindingFileStream
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param wsdlLocation
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param outBindingFile
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws Exception
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static boolean setWsdlLocationAndWrite(InputStream bindingFileStream, URI wsdlLocation,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; File outBindingFile) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Document doc = readDocument(bindingFileStream);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Find and set wsdlLocation
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Element bindings = doc.getDocumentElement();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String oldLocation = bindings.getAttribute(LOCATION_ATTR_NAME);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (oldLocation != null &amp;&amp; !&amp;quot;&amp;quot;.equals(oldLocation)) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bindings.setAttribute(LOCATION_ATTR_NAME, wsdlLocation.toURL().toExternalForm());
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Save to outBindingFile
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TransformerFactory transformerFactory = TransformerFactory.newInstance();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Transformer transformer = transformerFactory.newTransformer();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;transformer.setOutputProperty(OutputKeys.INDENT, &amp;quot;yes&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DOMSource source = new DOMSource(doc);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!outBindingFile.exists()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;outBindingFile.getParentFile().mkdirs();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FileOutputStream fos = new FileOutputStream(outBindingFile);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StreamResult result = new StreamResult(fos);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;transformer.transform(source, result);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;static void setWsdlLocationInBindingsIfNotSet(File baseDir, File outDir, WsdlOption o, Log log) 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws MojoExecutionException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String[] bindingFiles = o.getBindingFiles();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int c = 0; c &amp;lt; bindingFiles.length; c++) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String bindingFilePath = bindingFiles[c];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File bindingFile = new File(bindingFilePath);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File outFile = &amp;nbsp;new File(outDir, &amp;quot;&amp;quot; + c + &amp;quot;-&amp;quot; + bindingFile.getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URI wsdlLocation = o.getWsdlURI(baseDir.toURI());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FileInputStream is = new FileInputStream(bindingFile);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean wasSet = setWsdlLocationAndWrite(is, wsdlLocation, outFile);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (log != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.info(&amp;quot;Checked binding file &amp;quot; + bindingFilePath + &amp;quot; &amp;quot; + wasSet);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (wasSet) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bindingFiles[c] = outFile.getAbsolutePath();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new MojoExecutionException(&amp;quot;Error setting wsdlLocation in binding file&amp;quot;, e);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r886968--1-2----in--cxf-branches-2.2.x-fixes%3A-api-src-test-java-org-apache-cxf-databinding--distribution-src-main-release-samples-wsdl_first-src-main-java-com-example-customerservice-client--distribution-src-main-release-samples-wsdl_first-...-tp26634616p26634616.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26634397</id>
	<title>svn commit: r886957 [5/5] - in /cxf/trunk: api/src/test/java/org/apache/cxf/databinding/ distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/ distribution/src/main/release/samples/wsdl_first/src/main/java/c...</title>
	<published>2009-12-03T14:27:02Z</published>
	<updated>2009-12-03T14:27:02Z</updated>
	<author>
		<name>dkulp</name>
	</author>
	<content type="html">Modified: cxf/trunk/systests/wsdl_maven/codegen/src/main/resources/defaultBinding.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/systests/wsdl_maven/codegen/src/main/resources/defaultBinding.xml?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/systests/wsdl_maven/codegen/src/main/resources/defaultBinding.xml?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/systests/wsdl_maven/codegen/src/main/resources/defaultBinding.xml (original)
&lt;br&gt;+++ cxf/trunk/systests/wsdl_maven/codegen/src/main/resources/defaultBinding.xml Thu Dec &amp;nbsp;3 22:26:58 2009
&lt;br&gt;@@ -1,16 +1,16 @@
&lt;br&gt;-&amp;lt;jaxws:bindings wsdlLocation=&amp;quot;&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:jaxws=&amp;quot;&lt;a href=&quot;http://java.sun.com/xml/ns/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/xml/ns/jaxws&lt;/a&gt;&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:xs=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema&lt;/a&gt;&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:jxb=&amp;quot;&lt;a href=&quot;http://java.sun.com/xml/ns/jaxb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/xml/ns/jaxb&lt;/a&gt;&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:wsdl=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/wsdl/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/wsdl/&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;jaxws:bindings &amp;nbsp;node=&amp;quot;wsdl:definitions/wsdl:types/xs:schema&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jxb:globalBindings&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jxb:javaType name=&amp;quot;java.util.Date&amp;quot; xmlType=&amp;quot;xs:dateTime&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;parseMethod=&amp;quot;org.apache.cxf.tools.common.DataTypeAdapter.parseDateTime&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;printMethod=&amp;quot;org.apache.cxf.tools.common.DataTypeAdapter.printDateTime&amp;quot;/&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jxb:javaType name=&amp;quot;java.util.Date&amp;quot; xmlType=&amp;quot;xs:date&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;parseMethod=&amp;quot;org.apache.cxf.tools.common.DataTypeAdapter.parseDate&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;printMethod=&amp;quot;org.apache.cxf.tools.common.DataTypeAdapter.printDate&amp;quot;/&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/jxb:globalBindings&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;/jaxws:bindings&amp;gt;
&lt;br&gt;+&amp;lt;jaxws:bindings wsdlLocation=&amp;quot;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:jaxws=&amp;quot;&lt;a href=&quot;http://java.sun.com/xml/ns/jaxws&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/xml/ns/jaxws&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:xs=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:jxb=&amp;quot;&lt;a href=&quot;http://java.sun.com/xml/ns/jaxb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/xml/ns/jaxb&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:wsdl=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/wsdl/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://schemas.xmlsoap.org/wsdl/&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;jaxws:bindings &amp;nbsp;node=&amp;quot;wsdl:definitions/wsdl:types/xs:schema&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jxb:globalBindings&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jxb:javaType name=&amp;quot;java.util.Date&amp;quot; xmlType=&amp;quot;xs:dateTime&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;parseMethod=&amp;quot;org.apache.cxf.tools.common.DataTypeAdapter.parseDateTime&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;printMethod=&amp;quot;org.apache.cxf.tools.common.DataTypeAdapter.printDateTime&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jxb:javaType name=&amp;quot;java.util.Date&amp;quot; xmlType=&amp;quot;xs:date&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;parseMethod=&amp;quot;org.apache.cxf.tools.common.DataTypeAdapter.parseDate&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;printMethod=&amp;quot;org.apache.cxf.tools.common.DataTypeAdapter.printDate&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/jxb:globalBindings&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/jaxws:bindings&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;/jaxws:bindings&amp;gt;
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/wsdl_maven/codegen/src/main/resources/defaultBinding.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/wsdl_maven/codegen/src/main/resources/defaultBinding.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/wsdl_maven/codegen/src/main/resources/defaultBinding.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:mime-type (original)
&lt;br&gt;+++ svn:mime-type Thu Dec &amp;nbsp;3 22:26:58 2009
&lt;br&gt;@@ -1 +1 @@
&lt;br&gt;-text/plain
&lt;br&gt;+text/xml
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/systests/wsdl_maven/java2ws/pom.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/systests/wsdl_maven/java2ws/pom.xml?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/systests/wsdl_maven/java2ws/pom.xml?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/systests/wsdl_maven/java2ws/pom.xml (original)
&lt;br&gt;+++ cxf/trunk/systests/wsdl_maven/java2ws/pom.xml Thu Dec &amp;nbsp;3 22:26:58 2009
&lt;br&gt;@@ -1,84 +1,84 @@
&lt;br&gt;-&amp;lt;!--
&lt;br&gt;- &amp;nbsp;Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- &amp;nbsp;or more contributor license agreements. See the NOTICE file
&lt;br&gt;- &amp;nbsp;distributed with this work for additional information
&lt;br&gt;- &amp;nbsp;regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- &amp;nbsp;to you under the Apache License, Version 2.0 (the
&lt;br&gt;- &amp;nbsp;&amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- &amp;nbsp;with the License. You may obtain a copy of the License at
&lt;br&gt;- 
&lt;br&gt;- &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- 
&lt;br&gt;- &amp;nbsp;Unless required by applicable law or agreed to in writing,
&lt;br&gt;- &amp;nbsp;software distributed under the License is distributed on an
&lt;br&gt;- &amp;nbsp;&amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- &amp;nbsp;KIND, either express or implied. See the License for the
&lt;br&gt;- &amp;nbsp;specific language governing permissions and limitations
&lt;br&gt;- &amp;nbsp;under the License.
&lt;br&gt;---&amp;gt;
&lt;br&gt;-&amp;lt;project xmlns=&amp;quot;&lt;a href=&quot;http://maven.apache.org/POM/4.0.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://maven.apache.org/POM/4.0.0&lt;/a&gt;&amp;quot; xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot; xsi:schemaLocation=&amp;quot;&lt;a href=&quot;http://maven.apache.org/POM/4.0.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://maven.apache.org/POM/4.0.0&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://maven.apache.org/maven-v4_0_0.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://maven.apache.org/maven-v4_0_0.xsd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.cxf.systests.wsdl_maven&amp;lt;/groupId&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;cxf-systests-java2ws&amp;lt;/artifactId&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.3.0-SNAPSHOT&amp;lt;/version&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;Test for writing wsdl to repo&amp;lt;/name&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;parent&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;cxf-parent&amp;lt;/artifactId&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.3.0-SNAPSHOT&amp;lt;/version&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;relativePath&amp;gt;../../../parent/pom.xml&amp;lt;/relativePath&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;/parent&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;build&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugins&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugin&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;maven-compiler-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;source&amp;gt;1.5&amp;lt;/source&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;target&amp;gt;1.5&amp;lt;/target&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/configuration&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugin&amp;gt;
&lt;br&gt;-
&lt;br&gt;-			&amp;lt;plugin&amp;gt;
&lt;br&gt;-				&amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;
&lt;br&gt;-				&amp;lt;artifactId&amp;gt;cxf-java2ws-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;-				&amp;lt;version&amp;gt;${project.version}&amp;lt;/version&amp;gt;
&lt;br&gt;-				&amp;lt;dependencies&amp;gt;
&lt;br&gt;-					&amp;lt;dependency&amp;gt;
&lt;br&gt;-						&amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;
&lt;br&gt;-						&amp;lt;artifactId&amp;gt;cxf-rt-frontend-jaxws&amp;lt;/artifactId&amp;gt;
&lt;br&gt;-						&amp;lt;version&amp;gt;${project.version}&amp;lt;/version&amp;gt;
&lt;br&gt;-					&amp;lt;/dependency&amp;gt;
&lt;br&gt;-					&amp;lt;dependency&amp;gt;
&lt;br&gt;-						&amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;
&lt;br&gt;-						&amp;lt;artifactId&amp;gt;cxf-rt-frontend-simple&amp;lt;/artifactId&amp;gt;
&lt;br&gt;-						&amp;lt;version&amp;gt;${project.version}&amp;lt;/version&amp;gt;
&lt;br&gt;-					&amp;lt;/dependency&amp;gt;
&lt;br&gt;-				&amp;lt;/dependencies&amp;gt;
&lt;br&gt;-
&lt;br&gt;-				&amp;lt;executions&amp;gt;
&lt;br&gt;-					&amp;lt;execution&amp;gt;
&lt;br&gt;-						&amp;lt;id&amp;gt;process-classes&amp;lt;/id&amp;gt;
&lt;br&gt;-						&amp;lt;phase&amp;gt;process-classes&amp;lt;/phase&amp;gt;
&lt;br&gt;-						&amp;lt;configuration&amp;gt;
&lt;br&gt;-							&amp;lt;className&amp;gt;org.apache.cxf.systests.java2ws.HelloWorld&amp;lt;/className&amp;gt;
&lt;br&gt;-							&amp;lt;genWsdl&amp;gt;true&amp;lt;/genWsdl&amp;gt;
&lt;br&gt;-							&amp;lt;verbose&amp;gt;true&amp;lt;/verbose&amp;gt;
&lt;br&gt;-							&amp;lt;attachWsdl&amp;gt;true&amp;lt;/attachWsdl&amp;gt;
&lt;br&gt;-						&amp;lt;/configuration&amp;gt;
&lt;br&gt;-						&amp;lt;goals&amp;gt;
&lt;br&gt;-							&amp;lt;goal&amp;gt;java2ws&amp;lt;/goal&amp;gt;
&lt;br&gt;-						&amp;lt;/goals&amp;gt;
&lt;br&gt;-					&amp;lt;/execution&amp;gt;
&lt;br&gt;-				&amp;lt;/executions&amp;gt;
&lt;br&gt;-			&amp;lt;/plugin&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugins&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;/build&amp;gt;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;dependencies&amp;gt;
&lt;br&gt;-		&amp;lt;dependency&amp;gt;
&lt;br&gt;-			&amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;
&lt;br&gt;-			&amp;lt;artifactId&amp;gt;cxf-rt-frontend-jaxws&amp;lt;/artifactId&amp;gt;
&lt;br&gt;-			&amp;lt;version&amp;gt;${project.version}&amp;lt;/version&amp;gt;
&lt;br&gt;-		&amp;lt;/dependency&amp;gt;
&lt;br&gt;-	&amp;lt;/dependencies&amp;gt;
&lt;br&gt;-&amp;lt;/project&amp;gt;
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+ &amp;nbsp;Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ &amp;nbsp;or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ &amp;nbsp;distributed with this work for additional information
&lt;br&gt;+ &amp;nbsp;regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ &amp;nbsp;to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ &amp;nbsp;&amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ &amp;nbsp;with the License. You may obtain a copy of the License at
&lt;br&gt;+ 
&lt;br&gt;+ &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ 
&lt;br&gt;+ &amp;nbsp;Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ &amp;nbsp;software distributed under the License is distributed on an
&lt;br&gt;+ &amp;nbsp;&amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ &amp;nbsp;KIND, either express or implied. See the License for the
&lt;br&gt;+ &amp;nbsp;specific language governing permissions and limitations
&lt;br&gt;+ &amp;nbsp;under the License.
&lt;br&gt;+--&amp;gt;
&lt;br&gt;+&amp;lt;project xmlns=&amp;quot;&lt;a href=&quot;http://maven.apache.org/POM/4.0.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://maven.apache.org/POM/4.0.0&lt;/a&gt;&amp;quot; xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot; xsi:schemaLocation=&amp;quot;&lt;a href=&quot;http://maven.apache.org/POM/4.0.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://maven.apache.org/POM/4.0.0&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://maven.apache.org/maven-v4_0_0.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://maven.apache.org/maven-v4_0_0.xsd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.cxf.systests.wsdl_maven&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;cxf-systests-java2ws&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.3.0-SNAPSHOT&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;Test for writing wsdl to repo&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;parent&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;cxf-parent&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.3.0-SNAPSHOT&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;relativePath&amp;gt;../../../parent/pom.xml&amp;lt;/relativePath&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/parent&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;build&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugins&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;maven-compiler-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;source&amp;gt;1.5&amp;lt;/source&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;target&amp;gt;1.5&amp;lt;/target&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/configuration&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugin&amp;gt;
&lt;br&gt;+
&lt;br&gt;+			&amp;lt;plugin&amp;gt;
&lt;br&gt;+				&amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;
&lt;br&gt;+				&amp;lt;artifactId&amp;gt;cxf-java2ws-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+				&amp;lt;version&amp;gt;${project.version}&amp;lt;/version&amp;gt;
&lt;br&gt;+				&amp;lt;dependencies&amp;gt;
&lt;br&gt;+					&amp;lt;dependency&amp;gt;
&lt;br&gt;+						&amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;
&lt;br&gt;+						&amp;lt;artifactId&amp;gt;cxf-rt-frontend-jaxws&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+						&amp;lt;version&amp;gt;${project.version}&amp;lt;/version&amp;gt;
&lt;br&gt;+					&amp;lt;/dependency&amp;gt;
&lt;br&gt;+					&amp;lt;dependency&amp;gt;
&lt;br&gt;+						&amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;
&lt;br&gt;+						&amp;lt;artifactId&amp;gt;cxf-rt-frontend-simple&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+						&amp;lt;version&amp;gt;${project.version}&amp;lt;/version&amp;gt;
&lt;br&gt;+					&amp;lt;/dependency&amp;gt;
&lt;br&gt;+				&amp;lt;/dependencies&amp;gt;
&lt;br&gt;+
&lt;br&gt;+				&amp;lt;executions&amp;gt;
&lt;br&gt;+					&amp;lt;execution&amp;gt;
&lt;br&gt;+						&amp;lt;id&amp;gt;process-classes&amp;lt;/id&amp;gt;
&lt;br&gt;+						&amp;lt;phase&amp;gt;process-classes&amp;lt;/phase&amp;gt;
&lt;br&gt;+						&amp;lt;configuration&amp;gt;
&lt;br&gt;+							&amp;lt;className&amp;gt;org.apache.cxf.systests.java2ws.HelloWorld&amp;lt;/className&amp;gt;
&lt;br&gt;+							&amp;lt;genWsdl&amp;gt;true&amp;lt;/genWsdl&amp;gt;
&lt;br&gt;+							&amp;lt;verbose&amp;gt;true&amp;lt;/verbose&amp;gt;
&lt;br&gt;+							&amp;lt;attachWsdl&amp;gt;true&amp;lt;/attachWsdl&amp;gt;
&lt;br&gt;+						&amp;lt;/configuration&amp;gt;
&lt;br&gt;+						&amp;lt;goals&amp;gt;
&lt;br&gt;+							&amp;lt;goal&amp;gt;java2ws&amp;lt;/goal&amp;gt;
&lt;br&gt;+						&amp;lt;/goals&amp;gt;
&lt;br&gt;+					&amp;lt;/execution&amp;gt;
&lt;br&gt;+				&amp;lt;/executions&amp;gt;
&lt;br&gt;+			&amp;lt;/plugin&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugins&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/build&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;dependencies&amp;gt;
&lt;br&gt;+		&amp;lt;dependency&amp;gt;
&lt;br&gt;+			&amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;
&lt;br&gt;+			&amp;lt;artifactId&amp;gt;cxf-rt-frontend-jaxws&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+			&amp;lt;version&amp;gt;${project.version}&amp;lt;/version&amp;gt;
&lt;br&gt;+		&amp;lt;/dependency&amp;gt;
&lt;br&gt;+	&amp;lt;/dependencies&amp;gt;
&lt;br&gt;+&amp;lt;/project&amp;gt;
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/wsdl_maven/java2ws/pom.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/wsdl_maven/java2ws/pom.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/wsdl_maven/java2ws/pom.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:mime-type (original)
&lt;br&gt;+++ svn:mime-type Thu Dec &amp;nbsp;3 22:26:58 2009
&lt;br&gt;@@ -1 +1 @@
&lt;br&gt;-text/plain
&lt;br&gt;+text/xml
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/wsdl_maven/java2ws/src/main/java/org/apache/cxf/systests/java2ws/HelloWorld.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/wsdl_maven/java2ws/src/main/java/org/apache/cxf/systests/java2ws/HelloWorld.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/beans.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/beans.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/beans.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:mime-type (original)
&lt;br&gt;+++ svn:mime-type Thu Dec &amp;nbsp;3 22:26:58 2009
&lt;br&gt;@@ -1 +1 @@
&lt;br&gt;-text/plain
&lt;br&gt;+text/xml
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/web.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/web.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/web.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:mime-type (original)
&lt;br&gt;+++ svn:mime-type Thu Dec &amp;nbsp;3 22:26:58 2009
&lt;br&gt;@@ -1 +1 @@
&lt;br&gt;-text/plain
&lt;br&gt;+text/xml
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/systests/wsdl_maven/pom.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/systests/wsdl_maven/pom.xml?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/systests/wsdl_maven/pom.xml?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/systests/wsdl_maven/pom.xml (original)
&lt;br&gt;+++ cxf/trunk/systests/wsdl_maven/pom.xml Thu Dec &amp;nbsp;3 22:26:58 2009
&lt;br&gt;@@ -1,40 +1,40 @@
&lt;br&gt;-&amp;lt;!--
&lt;br&gt;- &amp;nbsp;Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- &amp;nbsp;or more contributor license agreements. See the NOTICE file
&lt;br&gt;- &amp;nbsp;distributed with this work for additional information
&lt;br&gt;- &amp;nbsp;regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- &amp;nbsp;to you under the Apache License, Version 2.0 (the
&lt;br&gt;- &amp;nbsp;&amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- &amp;nbsp;with the License. You may obtain a copy of the License at
&lt;br&gt;- 
&lt;br&gt;- &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- 
&lt;br&gt;- &amp;nbsp;Unless required by applicable law or agreed to in writing,
&lt;br&gt;- &amp;nbsp;software distributed under the License is distributed on an
&lt;br&gt;- &amp;nbsp;&amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- &amp;nbsp;KIND, either express or implied. See the License for the
&lt;br&gt;- &amp;nbsp;specific language governing permissions and limitations
&lt;br&gt;- &amp;nbsp;under the License.
&lt;br&gt;---&amp;gt;
&lt;br&gt;-&amp;lt;project xmlns=&amp;quot;&lt;a href=&quot;http://maven.apache.org/POM/4.0.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://maven.apache.org/POM/4.0.0&lt;/a&gt;&amp;quot; xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot; xsi:schemaLocation=&amp;quot;&lt;a href=&quot;http://maven.apache.org/POM/4.0.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://maven.apache.org/POM/4.0.0&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://maven.apache.org/maven-v4_0_0.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://maven.apache.org/maven-v4_0_0.xsd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.cxf.systests&amp;lt;/groupId&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;cxf-wsdl-maven&amp;lt;/artifactId&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;packaging&amp;gt;pom&amp;lt;/packaging&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.3.0-SNAPSHOT&amp;lt;/version&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;Apache CXF System Tests for WSDL generation and retrieval&amp;lt;/name&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;url&amp;gt;&lt;a href=&quot;http://cxf.apache.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org&lt;/a&gt;&amp;lt;/url&amp;gt;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;parent&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.cxf.systests&amp;lt;/groupId&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;cxf-systests&amp;lt;/artifactId&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.3.0-SNAPSHOT&amp;lt;/version&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;/parent&amp;gt;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;modules&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;module&amp;gt;codegen&amp;lt;/module&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;module&amp;gt;java2ws&amp;lt;/module&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;/modules&amp;gt;
&lt;br&gt;-
&lt;br&gt;-
&lt;br&gt;-&amp;lt;/project&amp;gt;
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+ &amp;nbsp;Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ &amp;nbsp;or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ &amp;nbsp;distributed with this work for additional information
&lt;br&gt;+ &amp;nbsp;regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ &amp;nbsp;to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ &amp;nbsp;&amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ &amp;nbsp;with the License. You may obtain a copy of the License at
&lt;br&gt;+ 
&lt;br&gt;+ &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ 
&lt;br&gt;+ &amp;nbsp;Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ &amp;nbsp;software distributed under the License is distributed on an
&lt;br&gt;+ &amp;nbsp;&amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ &amp;nbsp;KIND, either express or implied. See the License for the
&lt;br&gt;+ &amp;nbsp;specific language governing permissions and limitations
&lt;br&gt;+ &amp;nbsp;under the License.
&lt;br&gt;+--&amp;gt;
&lt;br&gt;+&amp;lt;project xmlns=&amp;quot;&lt;a href=&quot;http://maven.apache.org/POM/4.0.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://maven.apache.org/POM/4.0.0&lt;/a&gt;&amp;quot; xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot; xsi:schemaLocation=&amp;quot;&lt;a href=&quot;http://maven.apache.org/POM/4.0.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://maven.apache.org/POM/4.0.0&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://maven.apache.org/maven-v4_0_0.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://maven.apache.org/maven-v4_0_0.xsd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.cxf.systests&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;cxf-wsdl-maven&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;packaging&amp;gt;pom&amp;lt;/packaging&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.3.0-SNAPSHOT&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;Apache CXF System Tests for WSDL generation and retrieval&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;url&amp;gt;&lt;a href=&quot;http://cxf.apache.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org&lt;/a&gt;&amp;lt;/url&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;parent&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.apache.cxf.systests&amp;lt;/groupId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;cxf-systests&amp;lt;/artifactId&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.3.0-SNAPSHOT&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/parent&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;modules&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;module&amp;gt;codegen&amp;lt;/module&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;module&amp;gt;java2ws&amp;lt;/module&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/modules&amp;gt;
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+&amp;lt;/project&amp;gt;
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/wsdl_maven/pom.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/wsdl_maven/pom.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/systests/wsdl_maven/pom.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/xml
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r886957--5-5----in--cxf-trunk%3A-api-src-test-java-org-apache-cxf-databinding--distribution-src-main-release-samples-wsdl_first-src-main-java-com-example-customerservice-client--distribution-src-main-release-samples-wsdl_first-src-main-java-c...-tp26634397p26634397.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26634398</id>
	<title>svn commit: r886957 [2/5] - in /cxf/trunk: api/src/test/java/org/apache/cxf/databinding/ distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/ distribution/src/main/release/samples/wsdl_first/src/main/java/c...</title>
	<published>2009-12-03T14:27:02Z</published>
	<updated>2009-12-03T14:27:02Z</updated>
	<author>
		<name>dkulp</name>
	</author>
	<content type="html">Modified: cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java (original)
&lt;br&gt;+++ cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java Thu Dec &amp;nbsp;3 22:26:58 2009
&lt;br&gt;@@ -1,114 +1,114 @@
&lt;br&gt;-/**
&lt;br&gt;- * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- * or more contributor license agreements. See the NOTICE file
&lt;br&gt;- * distributed with this work for additional information
&lt;br&gt;- * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- * to you under the Apache License, Version 2.0 (the
&lt;br&gt;- * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- * with the License. You may obtain a copy of the License at
&lt;br&gt;- *
&lt;br&gt;- * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- *
&lt;br&gt;- * Unless required by applicable law or agreed to in writing,
&lt;br&gt;- * software distributed under the License is distributed on an
&lt;br&gt;- * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- * KIND, either express or implied. See the License for the
&lt;br&gt;- * specific language governing permissions and limitations
&lt;br&gt;- * under the License.
&lt;br&gt;- */
&lt;br&gt;-package org.apache.cxf.maven_plugin;
&lt;br&gt;-
&lt;br&gt;-import java.io.File;
&lt;br&gt;-import java.io.FileInputStream;
&lt;br&gt;-import java.io.FileOutputStream;
&lt;br&gt;-import java.io.InputStream;
&lt;br&gt;-import java.net.URI;
&lt;br&gt;-
&lt;br&gt;-import javax.xml.parsers.DocumentBuilder;
&lt;br&gt;-import javax.xml.parsers.DocumentBuilderFactory;
&lt;br&gt;-import javax.xml.transform.OutputKeys;
&lt;br&gt;-import javax.xml.transform.Transformer;
&lt;br&gt;-import javax.xml.transform.TransformerFactory;
&lt;br&gt;-import javax.xml.transform.dom.DOMSource;
&lt;br&gt;-import javax.xml.transform.stream.StreamResult;
&lt;br&gt;-
&lt;br&gt;-import org.w3c.dom.Document;
&lt;br&gt;-import org.w3c.dom.Element;
&lt;br&gt;-
&lt;br&gt;-import org.apache.maven.plugin.MojoExecutionException;
&lt;br&gt;-import org.apache.maven.plugin.logging.Log;
&lt;br&gt;-
&lt;br&gt;-public final class BindingFileHelper {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;static final String LOCATION_ATTR_NAME = &amp;quot;wsdlLocation&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private BindingFileHelper() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;static Document readDocument(InputStream is) throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DocumentBuilder db = dbf.newDocumentBuilder();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Document doc = db.parse(is);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;doc.getDocumentElement().normalize();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return doc;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Reads bindingFile from given stream, sets the attribute wsdlLocation on the top element bindings to the
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * given wsdlLocation and writes the resulting binding file to outBindingFile
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param bindingFileStream
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param wsdlLocation
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param outBindingFile
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @throws Exception
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static boolean setWsdlLocationAndWrite(InputStream bindingFileStream, URI wsdlLocation,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; File outBindingFile) throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Document doc = readDocument(bindingFileStream);
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Find and set wsdlLocation
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Element bindings = doc.getDocumentElement();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String oldLocation = bindings.getAttribute(LOCATION_ATTR_NAME);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (oldLocation != null &amp;&amp; !&amp;quot;&amp;quot;.equals(oldLocation)) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bindings.setAttribute(LOCATION_ATTR_NAME, wsdlLocation.toURL().toExternalForm());
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Save to outBindingFile
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TransformerFactory transformerFactory = TransformerFactory.newInstance();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Transformer transformer = transformerFactory.newTransformer();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;transformer.setOutputProperty(OutputKeys.INDENT, &amp;quot;yes&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DOMSource source = new DOMSource(doc);
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!outBindingFile.exists()) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;outBindingFile.getParentFile().mkdirs();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FileOutputStream fos = new FileOutputStream(outBindingFile);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StreamResult result = new StreamResult(fos);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;transformer.transform(source, result);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;static void setWsdlLocationInBindingsIfNotSet(File baseDir, File outDir, WsdlOption o, Log log) 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws MojoExecutionException {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String[] bindingFiles = o.getBindingFiles();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int c = 0; c &amp;lt; bindingFiles.length; c++) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String bindingFilePath = bindingFiles[c];
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File bindingFile = new File(bindingFilePath);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File outFile = &amp;nbsp;new File(outDir, &amp;quot;&amp;quot; + c + &amp;quot;-&amp;quot; + bindingFile.getName());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URI wsdlLocation = o.getWsdlURI(baseDir.toURI());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FileInputStream is = new FileInputStream(bindingFile);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean wasSet = setWsdlLocationAndWrite(is, wsdlLocation, outFile);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (log != null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.info(&amp;quot;Checked binding file &amp;quot; + bindingFilePath + &amp;quot; &amp;quot; + wasSet);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (wasSet) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bindingFiles[c] = outFile.getAbsolutePath();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new MojoExecutionException(&amp;quot;Error setting wsdlLocation in binding file&amp;quot;, e);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;-}
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.cxf.maven_plugin;
&lt;br&gt;+
&lt;br&gt;+import java.io.File;
&lt;br&gt;+import java.io.FileInputStream;
&lt;br&gt;+import java.io.FileOutputStream;
&lt;br&gt;+import java.io.InputStream;
&lt;br&gt;+import java.net.URI;
&lt;br&gt;+
&lt;br&gt;+import javax.xml.parsers.DocumentBuilder;
&lt;br&gt;+import javax.xml.parsers.DocumentBuilderFactory;
&lt;br&gt;+import javax.xml.transform.OutputKeys;
&lt;br&gt;+import javax.xml.transform.Transformer;
&lt;br&gt;+import javax.xml.transform.TransformerFactory;
&lt;br&gt;+import javax.xml.transform.dom.DOMSource;
&lt;br&gt;+import javax.xml.transform.stream.StreamResult;
&lt;br&gt;+
&lt;br&gt;+import org.w3c.dom.Document;
&lt;br&gt;+import org.w3c.dom.Element;
&lt;br&gt;+
&lt;br&gt;+import org.apache.maven.plugin.MojoExecutionException;
&lt;br&gt;+import org.apache.maven.plugin.logging.Log;
&lt;br&gt;+
&lt;br&gt;+public final class BindingFileHelper {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;static final String LOCATION_ATTR_NAME = &amp;quot;wsdlLocation&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private BindingFileHelper() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;static Document readDocument(InputStream is) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DocumentBuilder db = dbf.newDocumentBuilder();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Document doc = db.parse(is);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;doc.getDocumentElement().normalize();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return doc;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Reads bindingFile from given stream, sets the attribute wsdlLocation on the top element bindings to the
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * given wsdlLocation and writes the resulting binding file to outBindingFile
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param bindingFileStream
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param wsdlLocation
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param outBindingFile
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws Exception
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static boolean setWsdlLocationAndWrite(InputStream bindingFileStream, URI wsdlLocation,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; File outBindingFile) throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Document doc = readDocument(bindingFileStream);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Find and set wsdlLocation
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Element bindings = doc.getDocumentElement();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String oldLocation = bindings.getAttribute(LOCATION_ATTR_NAME);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (oldLocation != null &amp;&amp; !&amp;quot;&amp;quot;.equals(oldLocation)) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bindings.setAttribute(LOCATION_ATTR_NAME, wsdlLocation.toURL().toExternalForm());
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Save to outBindingFile
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TransformerFactory transformerFactory = TransformerFactory.newInstance();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Transformer transformer = transformerFactory.newTransformer();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;transformer.setOutputProperty(OutputKeys.INDENT, &amp;quot;yes&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DOMSource source = new DOMSource(doc);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!outBindingFile.exists()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;outBindingFile.getParentFile().mkdirs();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FileOutputStream fos = new FileOutputStream(outBindingFile);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StreamResult result = new StreamResult(fos);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;transformer.transform(source, result);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;static void setWsdlLocationInBindingsIfNotSet(File baseDir, File outDir, WsdlOption o, Log log) 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws MojoExecutionException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String[] bindingFiles = o.getBindingFiles();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int c = 0; c &amp;lt; bindingFiles.length; c++) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String bindingFilePath = bindingFiles[c];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File bindingFile = new File(bindingFilePath);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File outFile = &amp;nbsp;new File(outDir, &amp;quot;&amp;quot; + c + &amp;quot;-&amp;quot; + bindingFile.getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URI wsdlLocation = o.getWsdlURI(baseDir.toURI());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FileInputStream is = new FileInputStream(bindingFile);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean wasSet = setWsdlLocationAndWrite(is, wsdlLocation, outFile);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (log != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.info(&amp;quot;Checked binding file &amp;quot; + bindingFilePath + &amp;quot; &amp;quot; + wasSet);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (wasSet) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bindingFiles[c] = outFile.getAbsolutePath();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new MojoExecutionException(&amp;quot;Error setting wsdlLocation in binding file&amp;quot;, e);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java (original)
&lt;br&gt;+++ cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java Thu Dec &amp;nbsp;3 22:26:58 2009
&lt;br&gt;@@ -1,65 +1,65 @@
&lt;br&gt;-/**
&lt;br&gt;- * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- * or more contributor license agreements. See the NOTICE file
&lt;br&gt;- * distributed with this work for additional information
&lt;br&gt;- * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- * to you under the Apache License, Version 2.0 (the
&lt;br&gt;- * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- * with the License. You may obtain a copy of the License at
&lt;br&gt;- *
&lt;br&gt;- * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- *
&lt;br&gt;- * Unless required by applicable law or agreed to in writing,
&lt;br&gt;- * software distributed under the License is distributed on an
&lt;br&gt;- * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- * KIND, either express or implied. See the License for the
&lt;br&gt;- * specific language governing permissions and limitations
&lt;br&gt;- * under the License.
&lt;br&gt;- */
&lt;br&gt;-
&lt;br&gt;-package org.apache.cxf.maven_plugin;
&lt;br&gt;-
&lt;br&gt;-/**
&lt;br&gt;- * Represents a wsdl file that is stored in a maven repository
&lt;br&gt;- */
&lt;br&gt;-public class WsdlArtifact {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String groupId;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String artifactId;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String version;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String type;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public WsdlArtifact() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;type = &amp;quot;wsdl&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public String getGroupId() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return groupId;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setGroupId(String groupId) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.groupId = groupId;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public String getArtifactId() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return artifactId;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setArtifactId(String artifactId) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.artifactId = artifactId;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public String getVersion() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return version;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setVersion(String version) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.version = version;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public String getType() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return type;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setType(String type) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.type = type;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public boolean doesMatch(WsdlArtifact artifact) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return type.equals(artifact.getType()) &amp;&amp; groupId.equals(artifact.getGroupId())
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; artifactId.equals(artifact.getArtifactId()) 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; (version == null || version.equals(artifact.getVersion()));
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-}
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+
&lt;br&gt;+package org.apache.cxf.maven_plugin;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * Represents a wsdl file that is stored in a maven repository
&lt;br&gt;+ */
&lt;br&gt;+public class WsdlArtifact {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String groupId;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String artifactId;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String version;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String type;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public WsdlArtifact() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;type = &amp;quot;wsdl&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getGroupId() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return groupId;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setGroupId(String groupId) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.groupId = groupId;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getArtifactId() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return artifactId;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setArtifactId(String artifactId) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.artifactId = artifactId;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getVersion() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return version;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setVersion(String version) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.version = version;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getType() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return type;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setType(String type) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.type = type;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public boolean doesMatch(WsdlArtifact artifact) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return type.equals(artifact.getType()) &amp;&amp; groupId.equals(artifact.getGroupId())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; artifactId.equals(artifact.getArtifactId()) 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;&amp; (version == null || version.equals(artifact.getVersion()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java (original)
&lt;br&gt;+++ cxf/trunk/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java Thu Dec &amp;nbsp;3 22:26:58 2009
&lt;br&gt;@@ -1,81 +1,81 @@
&lt;br&gt;-/**
&lt;br&gt;- * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- * or more contributor license agreements. See the NOTICE file
&lt;br&gt;- * distributed with this work for additional information
&lt;br&gt;- * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- * to you under the Apache License, Version 2.0 (the
&lt;br&gt;- * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- * with the License. You may obtain a copy of the License at
&lt;br&gt;- *
&lt;br&gt;- * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- *
&lt;br&gt;- * Unless required by applicable law or agreed to in writing,
&lt;br&gt;- * software distributed under the License is distributed on an
&lt;br&gt;- * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- * KIND, either express or implied. See the License for the
&lt;br&gt;- * specific language governing permissions and limitations
&lt;br&gt;- * under the License.
&lt;br&gt;- */
&lt;br&gt;-package org.apache.cxf.maven_plugin;
&lt;br&gt;-
&lt;br&gt;-import java.io.File;
&lt;br&gt;-import java.io.FileInputStream;
&lt;br&gt;-import java.io.InputStream;
&lt;br&gt;-import java.net.URI;
&lt;br&gt;-
&lt;br&gt;-import org.w3c.dom.Document;
&lt;br&gt;-import org.w3c.dom.Element;
&lt;br&gt;-
&lt;br&gt;-import junit.framework.Assert;
&lt;br&gt;-import junit.framework.TestCase;
&lt;br&gt;-
&lt;br&gt;-import org.apache.maven.plugin.MojoExecutionException;
&lt;br&gt;-
&lt;br&gt;-public class BindingFileHelperTest extends TestCase {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private static final File OUTFILE = new File(&amp;quot;target/test-data/testbinding.xml&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private static final String TEST_WSDL_URL = &amp;quot;&lt;a href=&quot;http://testwsdl&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://testwsdl&lt;/a&gt;&amp;quot;;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void testBindingWithWsdlLocation() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OUTFILE.delete();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Do not fail if delete fails
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;InputStream is = this.getClass().getResourceAsStream(&amp;quot;/bindingWithWsdlLocation.xml&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean wasSet = BindingFileHelper.setWsdlLocationAndWrite(is, new URI(TEST_WSDL_URL), OUTFILE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertFalse(&amp;quot;This binding file should not be changed&amp;quot;, wasSet);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertFalse(OUTFILE.exists());
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void testBindingWithoutWsdlLocation() throws Exception {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OUTFILE.delete();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Do not fail if delete fails
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;InputStream is = this.getClass().getResourceAsStream(&amp;quot;/bindingWithoutWsdlLocation.xml&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BindingFileHelper.setWsdlLocationAndWrite(is, new URI(TEST_WSDL_URL), OUTFILE);
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Document doc = BindingFileHelper.readDocument(new FileInputStream(OUTFILE));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Element bindings = doc.getDocumentElement();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String location = bindings.getAttribute(BindingFileHelper.LOCATION_ATTR_NAME);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(TEST_WSDL_URL, location);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void testSetBindingForWsdlOption() throws MojoExecutionException {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WsdlOption o = new WsdlOption();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o.setWsdl(&amp;quot;test.wsdl&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File baseDir = new File(&amp;quot;.&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File tempDir = new File(baseDir, &amp;quot;target&amp;quot; + File.separator + &amp;quot;tempbindings&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File bindingFile = new File(baseDir, &amp;quot;src/test/resources/bindingWithoutWsdlLocation.xml&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o.setBindingFiles(new String[] {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bindingFile.getAbsolutePath()
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BindingFileHelper.setWsdlLocationInBindingsIfNotSet(baseDir, tempDir, o, null);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String bindingFilePath = o.getBindingFiles()[0];
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File expectedBindingFile = new File(tempDir, &amp;quot;0-bindingWithoutWsdlLocation.xml&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(&amp;quot;Binding file should be the temp file&amp;quot;, expectedBindingFile.getAbsolutePath(),
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bindingFilePath);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-}
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.cxf.maven_plugin;
&lt;br&gt;+
&lt;br&gt;+import java.io.File;
&lt;br&gt;+import java.io.FileInputStream;
&lt;br&gt;+import java.io.InputStream;
&lt;br&gt;+import java.net.URI;
&lt;br&gt;+
&lt;br&gt;+import org.w3c.dom.Document;
&lt;br&gt;+import org.w3c.dom.Element;
&lt;br&gt;+
&lt;br&gt;+import junit.framework.Assert;
&lt;br&gt;+import junit.framework.TestCase;
&lt;br&gt;+
&lt;br&gt;+import org.apache.maven.plugin.MojoExecutionException;
&lt;br&gt;+
&lt;br&gt;+public class BindingFileHelperTest extends TestCase {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final File OUTFILE = new File(&amp;quot;target/test-data/testbinding.xml&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static final String TEST_WSDL_URL = &amp;quot;&lt;a href=&quot;http://testwsdl&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://testwsdl&lt;/a&gt;&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testBindingWithWsdlLocation() throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OUTFILE.delete();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Do not fail if delete fails
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;InputStream is = this.getClass().getResourceAsStream(&amp;quot;/bindingWithWsdlLocation.xml&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean wasSet = BindingFileHelper.setWsdlLocationAndWrite(is, new URI(TEST_WSDL_URL), OUTFILE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertFalse(&amp;quot;This binding file should not be changed&amp;quot;, wasSet);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertFalse(OUTFILE.exists());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testBindingWithoutWsdlLocation() throws Exception {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OUTFILE.delete();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Do not fail if delete fails
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;InputStream is = this.getClass().getResourceAsStream(&amp;quot;/bindingWithoutWsdlLocation.xml&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BindingFileHelper.setWsdlLocationAndWrite(is, new URI(TEST_WSDL_URL), OUTFILE);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Document doc = BindingFileHelper.readDocument(new FileInputStream(OUTFILE));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Element bindings = doc.getDocumentElement();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String location = bindings.getAttribute(BindingFileHelper.LOCATION_ATTR_NAME);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(TEST_WSDL_URL, location);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testSetBindingForWsdlOption() throws MojoExecutionException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WsdlOption o = new WsdlOption();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o.setWsdl(&amp;quot;test.wsdl&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File baseDir = new File(&amp;quot;.&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File tempDir = new File(baseDir, &amp;quot;target&amp;quot; + File.separator + &amp;quot;tempbindings&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File bindingFile = new File(baseDir, &amp;quot;src/test/resources/bindingWithoutWsdlLocation.xml&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;o.setBindingFiles(new String[] {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bindingFile.getAbsolutePath()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BindingFileHelper.setWsdlLocationInBindingsIfNotSet(baseDir, tempDir, o, null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String bindingFilePath = o.getBindingFiles()[0];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File expectedBindingFile = new File(tempDir, &amp;quot;0-bindingWithoutWsdlLocation.xml&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assert.assertEquals(&amp;quot;Binding file should be the temp file&amp;quot;, expectedBindingFile.getAbsolutePath(),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bindingFilePath);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/maven-plugins/codegen-plugin/src/test/resources/bindingWithWsdlLocation.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/maven-plugins/codegen-plugin/src/test/resources/bindingWithWsdlLocation.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:mime-type (original)
&lt;br&gt;+++ svn:mime-type Thu Dec &amp;nbsp;3 22:26:58 2009
&lt;br&gt;@@ -1 +1 @@
&lt;br&gt;-text/plain
&lt;br&gt;+text/xml
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/maven-plugins/codegen-plugin/src/test/resources/bindingWithoutWsdlLocation.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/maven-plugins/codegen-plugin/src/test/resources/bindingWithoutWsdlLocation.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:mime-type (original)
&lt;br&gt;+++ svn:mime-type Thu Dec &amp;nbsp;3 22:26:58 2009
&lt;br&gt;@@ -1 +1 @@
&lt;br&gt;-text/plain
&lt;br&gt;+text/xml
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/ParameterizedTypeFactory.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/SimpleParameterizedType.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/inheritance/ws1/WS1.aegis.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/xml
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/jaxws/AegisJaxwsGetTest.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogLevel.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogLevel.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogLevel.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogLevel.java (original)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogLevel.java Thu Dec &amp;nbsp;3 22:26:58 2009
&lt;br&gt;@@ -1,89 +1,89 @@
&lt;br&gt;-/**
&lt;br&gt;- * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- * or more contributor license agreements. See the NOTICE file
&lt;br&gt;- * distributed with this work for additional information
&lt;br&gt;- * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- * to you under the Apache License, Version 2.0 (the
&lt;br&gt;- * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- * with the License. You may obtain a copy of the License at
&lt;br&gt;- *
&lt;br&gt;- * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- *
&lt;br&gt;- * Unless required by applicable law or agreed to in writing,
&lt;br&gt;- * software distributed under the License is distributed on an
&lt;br&gt;- * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- * KIND, either express or implied. See the License for the
&lt;br&gt;- * specific language governing permissions and limitations
&lt;br&gt;- * under the License.
&lt;br&gt;- */
&lt;br&gt;-package org.apache.cxf.jaxrs.ext.logging;
&lt;br&gt;-
&lt;br&gt;-import java.util.HashMap;
&lt;br&gt;-import java.util.Map;
&lt;br&gt;-import java.util.logging.Level;
&lt;br&gt;-
&lt;br&gt;-import javax.xml.bind.annotation.XmlEnum;
&lt;br&gt;-import javax.xml.bind.annotation.XmlTransient;
&lt;br&gt;-
&lt;br&gt;-/**
&lt;br&gt;- * Log level of {@link LogRecord}. Based on SLF4J being popular facade for loggers like JUL, Log4J, JCL and so
&lt;br&gt;- * on. Severities order is: FATAL &amp;gt; ERROR &amp;gt; WARN &amp;gt; INFO &amp;gt; DEBUG &amp;gt; TRACE.
&lt;br&gt;- * &amp;lt;p&amp;gt;
&lt;br&gt;- * Mapping of levels:
&lt;br&gt;- * &amp;lt;ol&amp;gt;
&lt;br&gt;- * &amp;lt;li&amp;gt;JUL - same as &amp;lt;a href=&amp;quot;&lt;a href=&quot;http://www.slf4j.org/apidocs/org/slf4j/bridge/SLF4JBridgeHandler.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.slf4j.org/apidocs/org/slf4j/bridge/SLF4JBridgeHandler.html&lt;/a&gt;&amp;quot;&amp;gt;SLF4J
&lt;br&gt;- * approach&amp;lt;/a&amp;gt;.&amp;lt;/li&amp;gt;
&lt;br&gt;- * &amp;lt;li&amp;gt;Log4J - levels are identical&amp;lt;/li&amp;gt;
&lt;br&gt;- * &amp;lt;/ol&amp;gt;
&lt;br&gt;- */
&lt;br&gt;-@XmlEnum
&lt;br&gt;-public enum LogLevel {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;ALL,
&lt;br&gt;- &amp;nbsp; &amp;nbsp;FATAL,
&lt;br&gt;- &amp;nbsp; &amp;nbsp;ERROR,
&lt;br&gt;- &amp;nbsp; &amp;nbsp;WARN,
&lt;br&gt;- &amp;nbsp; &amp;nbsp;INFO,
&lt;br&gt;- &amp;nbsp; &amp;nbsp;DEBUG,
&lt;br&gt;- &amp;nbsp; &amp;nbsp;TRACE,
&lt;br&gt;- &amp;nbsp; &amp;nbsp;OFF;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@XmlTransient
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private static Map&amp;lt;Level, LogLevel&amp;gt; fromJul = new HashMap&amp;lt;Level, LogLevel&amp;gt;();
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@XmlTransient
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private static Map&amp;lt;LogLevel, Level&amp;gt; toJul = new HashMap&amp;lt;LogLevel, Level&amp;gt;();
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;static { &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fromJul.put(Level.ALL, LogLevel.ALL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fromJul.put(Level.SEVERE, LogLevel.ERROR);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fromJul.put(Level.WARNING, LogLevel.WARN);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fromJul.put(Level.INFO, LogLevel.INFO);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fromJul.put(Level.FINE, LogLevel.DEBUG);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fromJul.put(Level.FINER, LogLevel.DEBUG);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fromJul.put(Level.FINEST, LogLevel.TRACE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fromJul.put(Level.OFF, LogLevel.OFF);
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;toJul.put(LogLevel.ALL, Level.ALL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;toJul.put(LogLevel.FATAL, Level.SEVERE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;toJul.put(LogLevel.ERROR, Level.SEVERE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;toJul.put(LogLevel.WARN, Level.WARNING);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;toJul.put(LogLevel.INFO, Level.INFO);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;toJul.put(LogLevel.DEBUG, Level.FINE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;toJul.put(LogLevel.TRACE, Level.FINEST);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;toJul.put(LogLevel.OFF, Level.OFF);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Creates this enum from JUL {@link Level}.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static LogLevel fromJUL(Level level) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return fromJul.get(level);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Creates this JUL {@link Level} from this enum.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static Level toJUL(LogLevel level) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return toJul.get(level);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-}
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.cxf.jaxrs.ext.logging;
&lt;br&gt;+
&lt;br&gt;+import java.util.HashMap;
&lt;br&gt;+import java.util.Map;
&lt;br&gt;+import java.util.logging.Level;
&lt;br&gt;+
&lt;br&gt;+import javax.xml.bind.annotation.XmlEnum;
&lt;br&gt;+import javax.xml.bind.annotation.XmlTransient;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * Log level of {@link LogRecord}. Based on SLF4J being popular facade for loggers like JUL, Log4J, JCL and so
&lt;br&gt;+ * on. Severities order is: FATAL &amp;gt; ERROR &amp;gt; WARN &amp;gt; INFO &amp;gt; DEBUG &amp;gt; TRACE.
&lt;br&gt;+ * &amp;lt;p&amp;gt;
&lt;br&gt;+ * Mapping of levels:
&lt;br&gt;+ * &amp;lt;ol&amp;gt;
&lt;br&gt;+ * &amp;lt;li&amp;gt;JUL - same as &amp;lt;a href=&amp;quot;&lt;a href=&quot;http://www.slf4j.org/apidocs/org/slf4j/bridge/SLF4JBridgeHandler.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.slf4j.org/apidocs/org/slf4j/bridge/SLF4JBridgeHandler.html&lt;/a&gt;&amp;quot;&amp;gt;SLF4J
&lt;br&gt;+ * approach&amp;lt;/a&amp;gt;.&amp;lt;/li&amp;gt;
&lt;br&gt;+ * &amp;lt;li&amp;gt;Log4J - levels are identical&amp;lt;/li&amp;gt;
&lt;br&gt;+ * &amp;lt;/ol&amp;gt;
&lt;br&gt;+ */
&lt;br&gt;+@XmlEnum
&lt;br&gt;+public enum LogLevel {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;ALL,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;FATAL,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;ERROR,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;WARN,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;INFO,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;DEBUG,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;TRACE,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;OFF;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@XmlTransient
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static Map&amp;lt;Level, LogLevel&amp;gt; fromJul = new HashMap&amp;lt;Level, LogLevel&amp;gt;();
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@XmlTransient
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static Map&amp;lt;LogLevel, Level&amp;gt; toJul = new HashMap&amp;lt;LogLevel, Level&amp;gt;();
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;static { &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fromJul.put(Level.ALL, LogLevel.ALL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fromJul.put(Level.SEVERE, LogLevel.ERROR);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fromJul.put(Level.WARNING, LogLevel.WARN);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fromJul.put(Level.INFO, LogLevel.INFO);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fromJul.put(Level.FINE, LogLevel.DEBUG);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fromJul.put(Level.FINER, LogLevel.DEBUG);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fromJul.put(Level.FINEST, LogLevel.TRACE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fromJul.put(Level.OFF, LogLevel.OFF);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;toJul.put(LogLevel.ALL, Level.ALL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;toJul.put(LogLevel.FATAL, Level.SEVERE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;toJul.put(LogLevel.ERROR, Level.SEVERE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;toJul.put(LogLevel.WARN, Level.WARNING);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;toJul.put(LogLevel.INFO, Level.INFO);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;toJul.put(LogLevel.DEBUG, Level.FINE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;toJul.put(LogLevel.TRACE, Level.FINEST);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;toJul.put(LogLevel.OFF, Level.OFF);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Creates this enum from JUL {@link Level}.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static LogLevel fromJUL(Level level) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return fromJul.get(level);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Creates this JUL {@link Level} from this enum.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static Level toJUL(LogLevel level) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return toJul.get(level);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogLevel.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogLevel.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecord.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecord.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecord.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecord.java (original)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecord.java Thu Dec &amp;nbsp;3 22:26:58 2009
&lt;br&gt;@@ -1,167 +1,167 @@
&lt;br&gt;-/**
&lt;br&gt;- * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- * or more contributor license agreements. See the NOTICE file
&lt;br&gt;- * distributed with this work for additional information
&lt;br&gt;- * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- * to you under the Apache License, Version 2.0 (the
&lt;br&gt;- * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- * with the License. You may obtain a copy of the License at
&lt;br&gt;- *
&lt;br&gt;- * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- *
&lt;br&gt;- * Unless required by applicable law or agreed to in writing,
&lt;br&gt;- * software distributed under the License is distributed on an
&lt;br&gt;- * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- * KIND, either express or implied. See the License for the
&lt;br&gt;- * specific language governing permissions and limitations
&lt;br&gt;- * under the License.
&lt;br&gt;- */
&lt;br&gt;-package org.apache.cxf.jaxrs.ext.logging;
&lt;br&gt;-
&lt;br&gt;-import java.io.PrintWriter;
&lt;br&gt;-import java.io.StringWriter;
&lt;br&gt;-import java.text.MessageFormat;
&lt;br&gt;-import java.util.Date;
&lt;br&gt;-
&lt;br&gt;-import javax.xml.bind.annotation.XmlElement;
&lt;br&gt;-import javax.xml.bind.annotation.XmlRootElement;
&lt;br&gt;-
&lt;br&gt;-import org.apache.commons.lang.Validate;
&lt;br&gt;-import org.apache.commons.lang.builder.EqualsBuilder;
&lt;br&gt;-import org.apache.commons.lang.builder.HashCodeBuilder;
&lt;br&gt;-import org.apache.commons.lang.builder.ToStringBuilder;
&lt;br&gt;-import org.apache.commons.lang.builder.ToStringStyle;
&lt;br&gt;-
&lt;br&gt;-/**
&lt;br&gt;- * Log entry serializable to XML. Based on common set of {@link java.util.logging.LogRecord} and
&lt;br&gt;- * {@link org.apache.log4j.spi.LoggingEvent} attributes.
&lt;br&gt;- * &amp;lt;p&amp;gt;
&lt;br&gt;- * LogRecord are never null; if some attributes are not set (e.g. logger name, or rendered cause taken from
&lt;br&gt;- * Throwable) empty strings are returned.
&lt;br&gt;- */
&lt;br&gt;-@XmlRootElement(namespace = &amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxrs/log&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxrs/log&lt;/a&gt;&amp;quot;)
&lt;br&gt;-public class LogRecord {
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private Date eventTimestamp = new Date();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private LogLevel level = LogLevel.INFO;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String message = &amp;quot;&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String loggerName = &amp;quot;&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String threadName = &amp;quot;&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String throwable = &amp;quot;&amp;quot;;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Creates this object from JUL LogRecord. Most attributes are copied, others are converted as follows:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * raw {@link java.util.logging.LogRecord#getMessage() message} is formatted with
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * {@link java.util.logging.LogRecord#getParameters() parameters} using {@link MessageFormat}, attached
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * {@link java.util.logging.LogRecord#getThrown() throwable} has full stack trace dumped, and log levels
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * are mapped as specified in {@link LogRecord}.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param julRecord log record to convert.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return conversion result.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static LogRecord fromJUL(java.util.logging.LogRecord julRecord) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(julRecord, &amp;quot;julRecord is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LogRecord record = new LogRecord();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;record.setEventTimestamp(new Date(julRecord.getMillis()));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;record.setLevel(LogLevel.fromJUL(julRecord.getLevel()));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;record.setLoggerName(julRecord.getLoggerName());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (julRecord.getThrown() != null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;record.setThrowable(julRecord.getThrown());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (julRecord.getParameters() != null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;record.setMessage(MessageFormat.format(julRecord.getMessage(), julRecord.getParameters()));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;record.setMessage(julRecord.getMessage());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;record.setThreadName(Integer.toString(julRecord.getThreadID()));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return record;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@XmlElement(namespace = &amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxrs/log&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxrs/log&lt;/a&gt;&amp;quot;)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public Date getEventTimestamp() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return eventTimestamp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setEventTimestamp(Date eventTimestamp) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(eventTimestamp, &amp;quot;eventTimestamp is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.eventTimestamp = eventTimestamp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@XmlElement(namespace = &amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxrs/log&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxrs/log&lt;/a&gt;&amp;quot;)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public LogLevel getLevel() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return level;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setLevel(LogLevel level) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(level, &amp;quot;level is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.level = level;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Formatted message with parameters filled in.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@XmlElement(namespace = &amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxrs/log&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxrs/log&lt;/a&gt;&amp;quot;)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public String getMessage() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return message;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setMessage(String renderedMessage) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(level, &amp;quot;message is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.message = renderedMessage;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@XmlElement(namespace = &amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxrs/log&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxrs/log&lt;/a&gt;&amp;quot;)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public String getLoggerName() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return loggerName;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setLoggerName(String loggerName) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(level, &amp;quot;loggerName is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.loggerName = loggerName;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@XmlElement(namespace = &amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxrs/log&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxrs/log&lt;/a&gt;&amp;quot;)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public String getThreadName() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return threadName;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setThreadName(String threadName) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(level, &amp;quot;threadName is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.threadName = threadName;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Full stack trace of {@link Throwable} associated with log record.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@XmlElement(namespace = &amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxrs/log&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxrs/log&lt;/a&gt;&amp;quot;)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public String getThrowable() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return throwable;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setThrowable(String throwable) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(throwable, &amp;quot;throwable is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.throwable = throwable;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setThrowable(Throwable thr) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(thr, &amp;quot;throwable is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringWriter sw = new StringWriter();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;thr.printStackTrace(new PrintWriter(sw));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.throwable = sw.getBuffer().toString();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public boolean equals(Object obj) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return EqualsBuilder.reflectionEquals(obj, this);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public int hashCode() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return HashCodeBuilder.reflectionHashCode(this);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public String toString() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-}
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.cxf.jaxrs.ext.logging;
&lt;br&gt;+
&lt;br&gt;+import java.io.PrintWriter;
&lt;br&gt;+import java.io.StringWriter;
&lt;br&gt;+import java.text.MessageFormat;
&lt;br&gt;+import java.util.Date;
&lt;br&gt;+
&lt;br&gt;+import javax.xml.bind.annotation.XmlElement;
&lt;br&gt;+import javax.xml.bind.annotation.XmlRootElement;
&lt;br&gt;+
&lt;br&gt;+import org.apache.commons.lang.Validate;
&lt;br&gt;+import org.apache.commons.lang.builder.EqualsBuilder;
&lt;br&gt;+import org.apache.commons.lang.builder.HashCodeBuilder;
&lt;br&gt;+import org.apache.commons.lang.builder.ToStringBuilder;
&lt;br&gt;+import org.apache.commons.lang.builder.ToStringStyle;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * Log entry serializable to XML. Based on common set of {@link java.util.logging.LogRecord} and
&lt;br&gt;+ * {@link org.apache.log4j.spi.LoggingEvent} attributes.
&lt;br&gt;+ * &amp;lt;p&amp;gt;
&lt;br&gt;+ * LogRecord are never null; if some attributes are not set (e.g. logger name, or rendered cause taken from
&lt;br&gt;+ * Throwable) empty strings are returned.
&lt;br&gt;+ */
&lt;br&gt;+@XmlRootElement(namespace = &amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxrs/log&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxrs/log&lt;/a&gt;&amp;quot;)
&lt;br&gt;+public class LogRecord {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private Date eventTimestamp = new Date();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private LogLevel level = LogLevel.INFO;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String message = &amp;quot;&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String loggerName = &amp;quot;&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String threadName = &amp;quot;&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String throwable = &amp;quot;&amp;quot;;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Creates this object from JUL LogRecord. Most attributes are copied, others are converted as follows:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * raw {@link java.util.logging.LogRecord#getMessage() message} is formatted with
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * {@link java.util.logging.LogRecord#getParameters() parameters} using {@link MessageFormat}, attached
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * {@link java.util.logging.LogRecord#getThrown() throwable} has full stack trace dumped, and log levels
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * are mapped as specified in {@link LogRecord}.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param julRecord log record to convert.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return conversion result.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static LogRecord fromJUL(java.util.logging.LogRecord julRecord) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(julRecord, &amp;quot;julRecord is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LogRecord record = new LogRecord();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;record.setEventTimestamp(new Date(julRecord.getMillis()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;record.setLevel(LogLevel.fromJUL(julRecord.getLevel()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;record.setLoggerName(julRecord.getLoggerName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (julRecord.getThrown() != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;record.setThrowable(julRecord.getThrown());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (julRecord.getParameters() != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;record.setMessage(MessageFormat.format(julRecord.getMessage(), julRecord.getParameters()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;record.setMessage(julRecord.getMessage());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;record.setThreadName(Integer.toString(julRecord.getThreadID()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return record;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@XmlElement(namespace = &amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxrs/log&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxrs/log&lt;/a&gt;&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public Date getEventTimestamp() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return eventTimestamp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setEventTimestamp(Date eventTimestamp) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(eventTimestamp, &amp;quot;eventTimestamp is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.eventTimestamp = eventTimestamp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@XmlElement(namespace = &amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxrs/log&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxrs/log&lt;/a&gt;&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public LogLevel getLevel() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return level;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setLevel(LogLevel level) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(level, &amp;quot;level is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.level = level;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Formatted message with parameters filled in.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@XmlElement(namespace = &amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxrs/log&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxrs/log&lt;/a&gt;&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getMessage() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return message;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setMessage(String renderedMessage) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(level, &amp;quot;message is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.message = renderedMessage;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@XmlElement(namespace = &amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxrs/log&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxrs/log&lt;/a&gt;&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getLoggerName() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return loggerName;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setLoggerName(String loggerName) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(level, &amp;quot;loggerName is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.loggerName = loggerName;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@XmlElement(namespace = &amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxrs/log&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxrs/log&lt;/a&gt;&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getThreadName() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return threadName;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setThreadName(String threadName) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(level, &amp;quot;threadName is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.threadName = threadName;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Full stack trace of {@link Throwable} associated with log record.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@XmlElement(namespace = &amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxrs/log&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxrs/log&lt;/a&gt;&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getThrowable() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return throwable;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setThrowable(String throwable) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(throwable, &amp;quot;throwable is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.throwable = throwable;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setThrowable(Throwable thr) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(thr, &amp;quot;throwable is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringWriter sw = new StringWriter();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;thr.printStackTrace(new PrintWriter(sw));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.throwable = sw.getBuffer().toString();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public boolean equals(Object obj) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return EqualsBuilder.reflectionEquals(obj, this);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public int hashCode() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return HashCodeBuilder.reflectionHashCode(this);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String toString() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecord.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecord.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecordsList.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecordsList.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecordsList.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecordsList.java (original)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecordsList.java Thu Dec &amp;nbsp;3 22:26:58 2009
&lt;br&gt;@@ -1,65 +1,65 @@
&lt;br&gt;-/**
&lt;br&gt;- * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- * or more contributor license agreements. See the NOTICE file
&lt;br&gt;- * distributed with this work for additional information
&lt;br&gt;- * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- * to you under the Apache License, Version 2.0 (the
&lt;br&gt;- * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- * with the License. You may obtain a copy of the License at
&lt;br&gt;- *
&lt;br&gt;- * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- *
&lt;br&gt;- * Unless required by applicable law or agreed to in writing,
&lt;br&gt;- * software distributed under the License is distributed on an
&lt;br&gt;- * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- * KIND, either express or implied. See the License for the
&lt;br&gt;- * specific language governing permissions and limitations
&lt;br&gt;- * under the License.
&lt;br&gt;- */
&lt;br&gt;-package org.apache.cxf.jaxrs.ext.logging;
&lt;br&gt;-
&lt;br&gt;-import java.util.ArrayList;
&lt;br&gt;-import java.util.List;
&lt;br&gt;-
&lt;br&gt;-import javax.xml.bind.annotation.XmlElement;
&lt;br&gt;-import javax.xml.bind.annotation.XmlRootElement;
&lt;br&gt;-
&lt;br&gt;-import org.apache.commons.lang.Validate;
&lt;br&gt;-import org.apache.commons.lang.builder.EqualsBuilder;
&lt;br&gt;-import org.apache.commons.lang.builder.HashCodeBuilder;
&lt;br&gt;-import org.apache.commons.lang.builder.ToStringBuilder;
&lt;br&gt;-import org.apache.commons.lang.builder.ToStringStyle;
&lt;br&gt;-
&lt;br&gt;-/**
&lt;br&gt;- * List of {@link LogRecord}s. Necessary wrapper for {@link List} used in JAXB context.
&lt;br&gt;- */
&lt;br&gt;-@XmlRootElement(namespace = &amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxrs/log&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxrs/log&lt;/a&gt;&amp;quot;)
&lt;br&gt;-public class LogRecordsList {
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private List&amp;lt;LogRecord&amp;gt; logRecords = new ArrayList&amp;lt;LogRecord&amp;gt;();
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@XmlElement(name = &amp;quot;logRecord&amp;quot;, namespace = &amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxrs/log&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxrs/log&lt;/a&gt;&amp;quot;)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public List&amp;lt;LogRecord&amp;gt; getLogRecords() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return logRecords;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setLogRecords(List&amp;lt;LogRecord&amp;gt; logRecords) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(logRecords, &amp;quot;logRecords is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.logRecords = logRecords;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public boolean equals(Object obj) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return EqualsBuilder.reflectionEquals(obj, this);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public int hashCode() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return HashCodeBuilder.reflectionHashCode(this);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public String toString() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-}
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.cxf.jaxrs.ext.logging;
&lt;br&gt;+
&lt;br&gt;+import java.util.ArrayList;
&lt;br&gt;+import java.util.List;
&lt;br&gt;+
&lt;br&gt;+import javax.xml.bind.annotation.XmlElement;
&lt;br&gt;+import javax.xml.bind.annotation.XmlRootElement;
&lt;br&gt;+
&lt;br&gt;+import org.apache.commons.lang.Validate;
&lt;br&gt;+import org.apache.commons.lang.builder.EqualsBuilder;
&lt;br&gt;+import org.apache.commons.lang.builder.HashCodeBuilder;
&lt;br&gt;+import org.apache.commons.lang.builder.ToStringBuilder;
&lt;br&gt;+import org.apache.commons.lang.builder.ToStringStyle;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * List of {@link LogRecord}s. Necessary wrapper for {@link List} used in JAXB context.
&lt;br&gt;+ */
&lt;br&gt;+@XmlRootElement(namespace = &amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxrs/log&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxrs/log&lt;/a&gt;&amp;quot;)
&lt;br&gt;+public class LogRecordsList {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private List&amp;lt;LogRecord&amp;gt; logRecords = new ArrayList&amp;lt;LogRecord&amp;gt;();
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@XmlElement(name = &amp;quot;logRecord&amp;quot;, namespace = &amp;quot;&lt;a href=&quot;http://cxf.apache.org/jaxrs/log&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org/jaxrs/log&lt;/a&gt;&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public List&amp;lt;LogRecord&amp;gt; getLogRecords() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return logRecords;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setLogRecords(List&amp;lt;LogRecord&amp;gt; logRecords) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(logRecords, &amp;quot;logRecords is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.logRecords = logRecords;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public boolean equals(Object obj) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return EqualsBuilder.reflectionEquals(obj, this);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public int hashCode() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return HashCodeBuilder.reflectionHashCode(this);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String toString() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecordsList.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecordsList.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushBean.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushBean.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushBean.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushBean.java (original)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushBean.java Thu Dec &amp;nbsp;3 22:26:58 2009
&lt;br&gt;@@ -1,308 +1,308 @@
&lt;br&gt;-/**
&lt;br&gt;- * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- * or more contributor license agreements. See the NOTICE file
&lt;br&gt;- * distributed with this work for additional information
&lt;br&gt;- * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- * to you under the Apache License, Version 2.0 (the
&lt;br&gt;- * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- * with the License. You may obtain a copy of the License at
&lt;br&gt;- *
&lt;br&gt;- * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- *
&lt;br&gt;- * Unless required by applicable law or agreed to in writing,
&lt;br&gt;- * software distributed under the License is distributed on an
&lt;br&gt;- * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- * KIND, either express or implied. See the License for the
&lt;br&gt;- * specific language governing permissions and limitations
&lt;br&gt;- * under the License.
&lt;br&gt;- */
&lt;br&gt;-package org.apache.cxf.jaxrs.ext.logging.atom;
&lt;br&gt;-
&lt;br&gt;-import java.util.ArrayList;
&lt;br&gt;-import java.util.List;
&lt;br&gt;-import java.util.StringTokenizer;
&lt;br&gt;-import java.util.logging.Handler;
&lt;br&gt;-import java.util.logging.Logger;
&lt;br&gt;-
&lt;br&gt;-import org.apache.commons.lang.Validate;
&lt;br&gt;-import org.apache.cxf.common.logging.LogUtils;
&lt;br&gt;-import org.apache.cxf.jaxrs.ext.logging.LogLevel;
&lt;br&gt;-import org.apache.cxf.jaxrs.ext.logging.atom.converter.Converter;
&lt;br&gt;-import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.Deliverer;
&lt;br&gt;-
&lt;br&gt;-/**
&lt;br&gt;- * Bean used to configure {@link AtomPushHandler JUL handler} with Spring instead of properties file. See
&lt;br&gt;- * {@link AtomPushHandler} class for detailed description of parameters. Next to configuration of handler,
&lt;br&gt;- * Spring bean offers simple configuration of associated loggers that share ATOM push-style handler.
&lt;br&gt;- * &amp;lt;p&amp;gt;
&lt;br&gt;- * General rules:
&lt;br&gt;- * &amp;lt;ul&amp;gt;
&lt;br&gt;- * &amp;lt;li&amp;gt;When {@link #setDeliverer(Deliverer) deliverer} property is not set explicitly, URL must be set to
&lt;br&gt;- * create default deliverer.&amp;lt;/li&amp;gt;
&lt;br&gt;- * &amp;lt;li&amp;gt;When {@link #setConverter(Converter) converter} property is not set explicitly, default converter is
&lt;br&gt;- * created.&amp;lt;/li&amp;gt;
&lt;br&gt;- * &amp;lt;li&amp;gt;When {@link #setLoggers(String) loggers} property is used, it overrides pair of
&lt;br&gt;- * {@link #setLogger(String) logger} and {@link #setLevel(String) level} properties; and vice versa.&amp;lt;/li&amp;gt;
&lt;br&gt;- * &amp;lt;li&amp;gt;When logger is not set, handler is attached to root logger (named &amp;quot;&amp;quot;); when level is not set for
&lt;br&gt;- * logger, default &amp;quot;INFO&amp;quot; level is used.&amp;lt;/li&amp;gt;
&lt;br&gt;- * &amp;lt;li&amp;gt;When {@link #setBatchSize(String) batchSize} property is not set or set to wrong value, default batch
&lt;br&gt;- * size of &amp;quot;1&amp;quot; is used.&amp;lt;/li&amp;gt;
&lt;br&gt;- * &amp;lt;li&amp;gt;When deliverer property is NOT set, use of &amp;quot;retryXxx&amp;quot; properties causes creation of retrying default
&lt;br&gt;- * deliverer.&amp;lt;/li&amp;gt;
&lt;br&gt;- * &amp;lt;/ul&amp;gt;
&lt;br&gt;- * Examples:
&lt;br&gt;- * &amp;lt;p&amp;gt;
&lt;br&gt;- * ATOM push handler with registered with root logger for all levels or log events, pushing one feed per event
&lt;br&gt;- * to specified URL, using default delivery and conversion methods:
&lt;br&gt;- * 
&lt;br&gt;- * &amp;lt;pre&amp;gt;
&lt;br&gt;- * &amp;nbsp; &amp;lt;bean class=&amp;quot;org.apache.cxf.jaxrs.ext.logging.atom.AtomPushBean&amp;quot; 
&lt;br&gt;- * &amp;nbsp; &amp;nbsp; init-method=&amp;quot;init&amp;quot;&amp;gt;
&lt;br&gt;- * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;url&amp;quot; value=&amp;quot;&lt;a href=&quot;http://localhost:9080/feed&amp;quot;/&amp;gt;&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:9080/feed&amp;quot;/&amp;gt;&lt;/a&gt;&lt;br&gt;- * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;level&amp;quot; value=&amp;quot;ALL&amp;quot; /&amp;gt;
&lt;br&gt;- * &amp;nbsp; &amp;lt;/bean&amp;gt;
&lt;br&gt;- * &amp;lt;/pre&amp;gt;
&lt;br&gt;- * 
&lt;br&gt;- * ATOM push handler registered with multiple loggers and listening for different levels (see
&lt;br&gt;- * {@link #setLoggers(String) loggers} property description for syntax details). Custom deliverer will take
&lt;br&gt;- * care of feeds, each of which carries batch of 10 log events:
&lt;br&gt;- * 
&lt;br&gt;- * &amp;lt;pre&amp;gt;
&lt;br&gt;- * &amp;nbsp; &amp;lt;bean id=&amp;quot;soapDeliverer&amp;quot; ...
&lt;br&gt;- * &amp;nbsp; ...
&lt;br&gt;- * &amp;nbsp; &amp;lt;bean class=&amp;quot;org.apache.cxf.jaxrs.ext.logging.atom.AtomPushBean&amp;quot; 
&lt;br&gt;- * &amp;nbsp; &amp;nbsp; init-method=&amp;quot;init&amp;quot;&amp;gt;
&lt;br&gt;- * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;deliverer&amp;quot;&amp;gt;
&lt;br&gt;- * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;ref bean=&amp;quot;soapDeliverer&amp;quot;/&amp;gt;
&lt;br&gt;- * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/property&amp;gt;
&lt;br&gt;- * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;loggers&amp;quot; value=&amp;quot;
&lt;br&gt;- * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.cxf:DEBUG,
&lt;br&gt;- * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.cxf.jaxrs,
&lt;br&gt;- * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.cxf.bus:ERROR&amp;quot; /&amp;gt;
&lt;br&gt;- * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;batchSize&amp;quot; value=&amp;quot;10&amp;quot; /&amp;gt;
&lt;br&gt;- * &amp;nbsp; &amp;lt;/bean&amp;gt;
&lt;br&gt;- * &amp;lt;/pre&amp;gt;
&lt;br&gt;- */
&lt;br&gt;-public final class AtomPushBean {
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private AtomPushEngineConfigurator conf = new AtomPushEngineConfigurator();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private List&amp;lt;LoggerLevel&amp;gt; loggers = new ArrayList&amp;lt;LoggerLevel&amp;gt;();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private boolean initialized;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Creates unconfigured and uninitialized bean. To configure setters must be used, then {@link #init()}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * must be called.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public AtomPushBean() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;initSingleLogger();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private void initSingleLogger() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;loggers = new ArrayList&amp;lt;LoggerLevel&amp;gt;();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;loggers.add(new LoggerLevel(&amp;quot;&amp;quot;, &amp;quot;INFO&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Set URL used when custom deliverer is not set (default deliverer is being created).
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setUrl(String url) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(url, &amp;quot;url is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setUrl(url);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Set initialized deliverer.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setDeliverer(Deliverer deliverer) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(deliverer, &amp;quot;deliverer is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setDeliverer(deliverer);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Set initialized converter.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setConverter(Converter converter) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(converter, &amp;quot;converter is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setConverter(converter);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Set one or more loggers and levels descriptor. &amp;lt;br&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Parsed input syntax is:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * loggers &amp;nbsp; := &amp;lt;logger&amp;gt;(&amp;lt;separator&amp;gt;&amp;lt;logger&amp;gt;)*
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * logger &amp;nbsp; &amp;nbsp;:= &amp;lt;name&amp;gt;[&amp;quot;:&amp;quot;&amp;lt;level&amp;gt;]
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * separator := &amp;quot;,&amp;quot; | &amp;quot; &amp;quot; | &amp;quot;\n&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Examples:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Two loggers and two levels: &amp;lt;br&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;tt&amp;gt;org.apache.cxf:INFO, org.apache.cxf.jaxrs:DEBUG&amp;lt;/tt&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Three loggers, first with default &amp;quot;INFO&amp;quot; level: &amp;lt;br&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;tt&amp;gt;org.apache.cxf, org.apache.cxf.jaxrs:DEBUG, namedLogger:ERROR&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * One logger with default &amp;quot;INFO&amp;quot; level: &amp;lt;br&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;tt&amp;gt;org.apache.cxf&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setLoggers(String loggers) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(loggers, &amp;quot;loggers is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;parseLoggers(loggers);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Name of logger to associate with ATOM push handler; empty string for root logger.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setLogger(String logger) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(logger, &amp;quot;logger is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (loggers.size() != 1) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;initSingleLogger();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;loggers.get(0).setLogger(logger);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Name of level that logger will use publishing log events to ATOM push handler; empty string for default
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;quot;INFO&amp;quot; level.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setLevel(String level) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(level, &amp;quot;level is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (loggers.size() != 1) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;initSingleLogger();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;loggers.get(0).setLevel(level);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Size of batch; empty string for default one element batch.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setBatchSize(String batchSize) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(batchSize, &amp;quot;batchSize is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setBatchSize(batchSize);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Retry pause calculation strategy, either &amp;quot;linear&amp;quot; or &amp;quot;exponential&amp;quot;.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setRetryPause(String retryPause) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(retryPause, &amp;quot;retryPause is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setRetryPause(retryPause);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Retry pause time (in seconds).
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setRetryPauseTime(String time) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(time, &amp;quot;time is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setRetryPauseTime(time);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Retry timeout (in seconds).
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setRetryTimeout(String timeout) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(timeout, &amp;quot;timeout is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setRetryTimeout(timeout);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Conversion output type: &amp;quot;feed&amp;quot; or &amp;quot;entry&amp;quot;.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setOutput(String output) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(output, &amp;quot;output is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setOutput(output);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Multiplicity of subelement of output: &amp;quot;one&amp;quot; or &amp;quot;many&amp;quot;.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setMultiplicity(String multiplicity) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(multiplicity, &amp;quot;multiplicity is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setMultiplicity(multiplicity);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Entry data format: &amp;quot;content&amp;quot; or &amp;quot;extension&amp;quot;.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setFormat(String format) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(format, &amp;quot;format is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setFormat(format);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Initializes bean; creates ATOM push handler based on current properties state, and attaches handler to
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * logger(s).
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void init() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;initialized = true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Handler h = new AtomPushHandler(conf.createEngine());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; loggers.size(); i++) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Logger l = LogUtils.getL7dLogger(AtomPushBean.class, null, loggers.get(i).getLogger());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;l.addHandler(h);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;l.setLevel(LogLevel.toJUL(LogLevel.valueOf(loggers.get(i).getLevel())));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private void checkInit() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (initialized) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalStateException(&amp;quot;Bean is already initialized&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private void parseLoggers(String param) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;loggers = new ArrayList&amp;lt;LoggerLevel&amp;gt;();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringTokenizer st1 = new StringTokenizer(param, &amp;quot;, \t\n\r\f&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while (st1.hasMoreTokens()) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String tok = st1.nextToken();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int idx = tok.indexOf(&amp;quot;:&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (idx != -1) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;loggers.add(new LoggerLevel(tok.substring(0, idx), tok.substring(idx + 1, tok.length())));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;loggers.add(new LoggerLevel(tok, &amp;quot;INFO&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private static class LoggerLevel {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private String logger;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private String level;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public LoggerLevel(String logger, String level) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.logger = logger;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.level = level;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public String getLogger() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return logger;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void setLogger(String logger) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.logger = logger;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public String getLevel() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return level;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void setLevel(String level) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.level = level;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-}
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.cxf.jaxrs.ext.logging.atom;
&lt;br&gt;+
&lt;br&gt;+import java.util.ArrayList;
&lt;br&gt;+import java.util.List;
&lt;br&gt;+import java.util.StringTokenizer;
&lt;br&gt;+import java.util.logging.Handler;
&lt;br&gt;+import java.util.logging.Logger;
&lt;br&gt;+
&lt;br&gt;+import org.apache.commons.lang.Validate;
&lt;br&gt;+import org.apache.cxf.common.logging.LogUtils;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.logging.LogLevel;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.logging.atom.converter.Converter;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.Deliverer;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * Bean used to configure {@link AtomPushHandler JUL handler} with Spring instead of properties file. See
&lt;br&gt;+ * {@link AtomPushHandler} class for detailed description of parameters. Next to configuration of handler,
&lt;br&gt;+ * Spring bean offers simple configuration of associated loggers that share ATOM push-style handler.
&lt;br&gt;+ * &amp;lt;p&amp;gt;
&lt;br&gt;+ * General rules:
&lt;br&gt;+ * &amp;lt;ul&amp;gt;
&lt;br&gt;+ * &amp;lt;li&amp;gt;When {@link #setDeliverer(Deliverer) deliverer} property is not set explicitly, URL must be set to
&lt;br&gt;+ * create default deliverer.&amp;lt;/li&amp;gt;
&lt;br&gt;+ * &amp;lt;li&amp;gt;When {@link #setConverter(Converter) converter} property is not set explicitly, default converter is
&lt;br&gt;+ * created.&amp;lt;/li&amp;gt;
&lt;br&gt;+ * &amp;lt;li&amp;gt;When {@link #setLoggers(String) loggers} property is used, it overrides pair of
&lt;br&gt;+ * {@link #setLogger(String) logger} and {@link #setLevel(String) level} properties; and vice versa.&amp;lt;/li&amp;gt;
&lt;br&gt;+ * &amp;lt;li&amp;gt;When logger is not set, handler is attached to root logger (named &amp;quot;&amp;quot;); when level is not set for
&lt;br&gt;+ * logger, default &amp;quot;INFO&amp;quot; level is used.&amp;lt;/li&amp;gt;
&lt;br&gt;+ * &amp;lt;li&amp;gt;When {@link #setBatchSize(String) batchSize} property is not set or set to wrong value, default batch
&lt;br&gt;+ * size of &amp;quot;1&amp;quot; is used.&amp;lt;/li&amp;gt;
&lt;br&gt;+ * &amp;lt;li&amp;gt;When deliverer property is NOT set, use of &amp;quot;retryXxx&amp;quot; properties causes creation of retrying default
&lt;br&gt;+ * deliverer.&amp;lt;/li&amp;gt;
&lt;br&gt;+ * &amp;lt;/ul&amp;gt;
&lt;br&gt;+ * Examples:
&lt;br&gt;+ * &amp;lt;p&amp;gt;
&lt;br&gt;+ * ATOM push handler with registered with root logger for all levels or log events, pushing one feed per event
&lt;br&gt;+ * to specified URL, using default delivery and conversion methods:
&lt;br&gt;+ * 
&lt;br&gt;+ * &amp;lt;pre&amp;gt;
&lt;br&gt;+ * &amp;nbsp; &amp;lt;bean class=&amp;quot;org.apache.cxf.jaxrs.ext.logging.atom.AtomPushBean&amp;quot; 
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; init-method=&amp;quot;init&amp;quot;&amp;gt;
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;url&amp;quot; value=&amp;quot;&lt;a href=&quot;http://localhost:9080/feed&amp;quot;/&amp;gt;&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:9080/feed&amp;quot;/&amp;gt;&lt;/a&gt;&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;level&amp;quot; value=&amp;quot;ALL&amp;quot; /&amp;gt;
&lt;br&gt;+ * &amp;nbsp; &amp;lt;/bean&amp;gt;
&lt;br&gt;+ * &amp;lt;/pre&amp;gt;
&lt;br&gt;+ * 
&lt;br&gt;+ * ATOM push handler registered with multiple loggers and listening for different levels (see
&lt;br&gt;+ * {@link #setLoggers(String) loggers} property description for syntax details). Custom deliverer will take
&lt;br&gt;+ * care of feeds, each of which carries batch of 10 log events:
&lt;br&gt;+ * 
&lt;br&gt;+ * &amp;lt;pre&amp;gt;
&lt;br&gt;+ * &amp;nbsp; &amp;lt;bean id=&amp;quot;soapDeliverer&amp;quot; ...
&lt;br&gt;+ * &amp;nbsp; ...
&lt;br&gt;+ * &amp;nbsp; &amp;lt;bean class=&amp;quot;org.apache.cxf.jaxrs.ext.logging.atom.AtomPushBean&amp;quot; 
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; init-method=&amp;quot;init&amp;quot;&amp;gt;
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;deliverer&amp;quot;&amp;gt;
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;ref bean=&amp;quot;soapDeliverer&amp;quot;/&amp;gt;
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/property&amp;gt;
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;loggers&amp;quot; value=&amp;quot;
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.cxf:DEBUG,
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.cxf.jaxrs,
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.cxf.bus:ERROR&amp;quot; /&amp;gt;
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;batchSize&amp;quot; value=&amp;quot;10&amp;quot; /&amp;gt;
&lt;br&gt;+ * &amp;nbsp; &amp;lt;/bean&amp;gt;
&lt;br&gt;+ * &amp;lt;/pre&amp;gt;
&lt;br&gt;+ */
&lt;br&gt;+public final class AtomPushBean {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private AtomPushEngineConfigurator conf = new AtomPushEngineConfigurator();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private List&amp;lt;LoggerLevel&amp;gt; loggers = new ArrayList&amp;lt;LoggerLevel&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private boolean initialized;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Creates unconfigured and uninitialized bean. To configure setters must be used, then {@link #init()}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * must be called.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public AtomPushBean() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;initSingleLogger();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private void initSingleLogger() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;loggers = new ArrayList&amp;lt;LoggerLevel&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;loggers.add(new LoggerLevel(&amp;quot;&amp;quot;, &amp;quot;INFO&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Set URL used when custom deliverer is not set (default deliverer is being created).
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setUrl(String url) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(url, &amp;quot;url is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setUrl(url);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Set initialized deliverer.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setDeliverer(Deliverer deliverer) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(deliverer, &amp;quot;deliverer is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setDeliverer(deliverer);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Set initialized converter.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setConverter(Converter converter) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(converter, &amp;quot;converter is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setConverter(converter);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Set one or more loggers and levels descriptor. &amp;lt;br&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Parsed input syntax is:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * loggers &amp;nbsp; := &amp;lt;logger&amp;gt;(&amp;lt;separator&amp;gt;&amp;lt;logger&amp;gt;)*
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * logger &amp;nbsp; &amp;nbsp;:= &amp;lt;name&amp;gt;[&amp;quot;:&amp;quot;&amp;lt;level&amp;gt;]
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * separator := &amp;quot;,&amp;quot; | &amp;quot; &amp;quot; | &amp;quot;\n&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;/pre&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Examples:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Two loggers and two levels: &amp;lt;br&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;tt&amp;gt;org.apache.cxf:INFO, org.apache.cxf.jaxrs:DEBUG&amp;lt;/tt&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Three loggers, first with default &amp;quot;INFO&amp;quot; level: &amp;lt;br&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;tt&amp;gt;org.apache.cxf, org.apache.cxf.jaxrs:DEBUG, namedLogger:ERROR&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * One logger with default &amp;quot;INFO&amp;quot; level: &amp;lt;br&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;tt&amp;gt;org.apache.cxf&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setLoggers(String loggers) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(loggers, &amp;quot;loggers is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;parseLoggers(loggers);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Name of logger to associate with ATOM push handler; empty string for root logger.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setLogger(String logger) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(logger, &amp;quot;logger is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (loggers.size() != 1) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;initSingleLogger();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;loggers.get(0).setLogger(logger);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Name of level that logger will use publishing log events to ATOM push handler; empty string for default
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;quot;INFO&amp;quot; level.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setLevel(String level) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(level, &amp;quot;level is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (loggers.size() != 1) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;initSingleLogger();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;loggers.get(0).setLevel(level);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Size of batch; empty string for default one element batch.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setBatchSize(String batchSize) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(batchSize, &amp;quot;batchSize is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setBatchSize(batchSize);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Retry pause calculation strategy, either &amp;quot;linear&amp;quot; or &amp;quot;exponential&amp;quot;.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setRetryPause(String retryPause) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(retryPause, &amp;quot;retryPause is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setRetryPause(retryPause);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Retry pause time (in seconds).
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setRetryPauseTime(String time) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(time, &amp;quot;time is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setRetryPauseTime(time);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Retry timeout (in seconds).
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setRetryTimeout(String timeout) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(timeout, &amp;quot;timeout is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setRetryTimeout(timeout);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Conversion output type: &amp;quot;feed&amp;quot; or &amp;quot;entry&amp;quot;.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setOutput(String output) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(output, &amp;quot;output is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setOutput(output);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Multiplicity of subelement of output: &amp;quot;one&amp;quot; or &amp;quot;many&amp;quot;.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setMultiplicity(String multiplicity) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(multiplicity, &amp;quot;multiplicity is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setMultiplicity(multiplicity);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Entry data format: &amp;quot;content&amp;quot; or &amp;quot;extension&amp;quot;.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setFormat(String format) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(format, &amp;quot;format is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setFormat(format);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Initializes bean; creates ATOM push handler based on current properties state, and attaches handler to
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * logger(s).
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void init() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;checkInit();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;initialized = true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Handler h = new AtomPushHandler(conf.createEngine());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; loggers.size(); i++) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Logger l = LogUtils.getL7dLogger(AtomPushBean.class, null, loggers.get(i).getLogger());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;l.addHandler(h);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;l.setLevel(LogLevel.toJUL(LogLevel.valueOf(loggers.get(i).getLevel())));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private void checkInit() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (initialized) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalStateException(&amp;quot;Bean is already initialized&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private void parseLoggers(String param) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;loggers = new ArrayList&amp;lt;LoggerLevel&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringTokenizer st1 = new StringTokenizer(param, &amp;quot;, \t\n\r\f&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while (st1.hasMoreTokens()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String tok = st1.nextToken();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int idx = tok.indexOf(&amp;quot;:&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (idx != -1) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;loggers.add(new LoggerLevel(tok.substring(0, idx), tok.substring(idx + 1, tok.length())));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;loggers.add(new LoggerLevel(tok, &amp;quot;INFO&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static class LoggerLevel {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private String logger;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private String level;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public LoggerLevel(String logger, String level) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.logger = logger;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.level = level;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public String getLogger() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return logger;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void setLogger(String logger) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.logger = logger;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public String getLevel() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return level;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void setLevel(String level) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.level = level;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushBean.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushBean.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngine.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngine.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngine.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngine.java (original)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngine.java Thu Dec &amp;nbsp;3 22:26:58 2009
&lt;br&gt;@@ -1,151 +1,151 @@
&lt;br&gt;-/**
&lt;br&gt;- * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- * or more contributor license agreements. See the NOTICE file
&lt;br&gt;- * distributed with this work for additional information
&lt;br&gt;- * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- * to you under the Apache License, Version 2.0 (the
&lt;br&gt;- * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- * with the License. You may obtain a copy of the License at
&lt;br&gt;- *
&lt;br&gt;- * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- *
&lt;br&gt;- * Unless required by applicable law or agreed to in writing,
&lt;br&gt;- * software distributed under the License is distributed on an
&lt;br&gt;- * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- * KIND, either express or implied. See the License for the
&lt;br&gt;- * specific language governing permissions and limitations
&lt;br&gt;- * under the License.
&lt;br&gt;- */
&lt;br&gt;-package org.apache.cxf.jaxrs.ext.logging.atom;
&lt;br&gt;-
&lt;br&gt;-import java.util.ArrayList;
&lt;br&gt;-import java.util.List;
&lt;br&gt;-import java.util.concurrent.ExecutorService;
&lt;br&gt;-import java.util.concurrent.Executors;
&lt;br&gt;-
&lt;br&gt;-import org.apache.abdera.model.Element;
&lt;br&gt;-import org.apache.commons.lang.Validate;
&lt;br&gt;-import org.apache.cxf.jaxrs.ext.logging.LogRecord;
&lt;br&gt;-import org.apache.cxf.jaxrs.ext.logging.atom.converter.Converter;
&lt;br&gt;-import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.Deliverer;
&lt;br&gt;-
&lt;br&gt;-/**
&lt;br&gt;- * Package private ATOM push-style engine. Engine enqueues log records as they are {@link #publish(LogRecord)
&lt;br&gt;- * published}. After queue size exceeds {@link #getBatchSize() batch size} processing of collection of these
&lt;br&gt;- * records (in size of batch size) is triggered.
&lt;br&gt;- * &amp;lt;p&amp;gt;
&lt;br&gt;- * Processing is done in separate thread not to block publishing interface. Processing is two step: first list
&lt;br&gt;- * of log records is transformed by {@link Converter converter} to ATOM {@link Element element} and then it is
&lt;br&gt;- * pushed out by {@link Deliverer deliverer} to client. Next to transport deliverer is indirectly responsible
&lt;br&gt;- * for marshaling ATOM element to XML.
&lt;br&gt;- * &amp;lt;p&amp;gt;
&lt;br&gt;- * Processing is done by single threaded {@link java.util.concurrent.Executor executor}; next batch of records
&lt;br&gt;- * is taken from queue only when currently processed batch finishes and queue has enough elements to proceed.
&lt;br&gt;- * &amp;lt;p&amp;gt;
&lt;br&gt;- * First failure of any delivery shuts engine down. To avoid this situation engine must have registered
&lt;br&gt;- * reliable deliverer or use wrapping
&lt;br&gt;- * {@link org.apache.cxf.jaxrs.ext.logging.atom.deliverer.RetryingDeliverer}.
&lt;br&gt;- */
&lt;br&gt;-// TODO add internal diagnostics - log messages somewhere except for logger :D
&lt;br&gt;-final class AtomPushEngine {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private List&amp;lt;LogRecord&amp;gt; queue = new ArrayList&amp;lt;LogRecord&amp;gt;();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private ExecutorService executor = Executors.newSingleThreadExecutor();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private int batchSize = 1;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private Converter converter;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private Deliverer deliverer;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Put record to publishing queue. Engine accepts published records only if is in proper state - is
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * properly configured (has deliverer and converter registered) and is not shot down; otherwise calls to
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * publish are ignored.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param record record to be published.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public synchronized void publish(LogRecord record) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(record, &amp;quot;record is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (isValid()) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;queue.add(record);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (queue.size() &amp;gt;= batchSize) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;publishBatch(queue);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;queue = new ArrayList&amp;lt;LogRecord&amp;gt;();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Shuts engine down.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public synchronized void shutdown() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;executor.shutdownNow();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private boolean isValid() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (deliverer == null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// TODO report cause
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.err.println(&amp;quot;deliverer is not set&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (converter == null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.err.println(&amp;quot;converter is not set&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (executor.isShutdown()) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.err.println(&amp;quot;engine shutdown&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private void publishBatch(final List&amp;lt;LogRecord&amp;gt; batch) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;executor.execute(new Runnable() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void run() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LoggingThread.markSilent(true);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// syncing for safe converter/deliverer on the fly replacement
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;synchronized (this) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// TODO diagnostic output here: System.out.println(element.toString());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;? extends Element&amp;gt; elements = converter.convert(batch);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Element element : elements) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!deliverer.deliver(element)) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.err.println(&amp;quot;Delivery failed, shutting engine down&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;executor.shutdownNow();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (InterruptedException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// no action on executor.shutdownNow();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} finally {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LoggingThread.markSilent(false);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public int getBatchSize() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return batchSize;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setBatchSize(int batchSize) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.isTrue(batchSize &amp;gt; 0, &amp;quot;batch size is not greater than zero&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.batchSize = batchSize;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public Converter getConverter() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return converter;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public synchronized void setConverter(Converter converter) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(converter, &amp;quot;converter is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.converter = converter;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public Deliverer getDeliverer() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return deliverer;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public synchronized void setDeliverer(Deliverer deliverer) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(deliverer, &amp;quot;deliverer is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.deliverer = deliverer;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-}
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.cxf.jaxrs.ext.logging.atom;
&lt;br&gt;+
&lt;br&gt;+import java.util.ArrayList;
&lt;br&gt;+import java.util.List;
&lt;br&gt;+import java.util.concurrent.ExecutorService;
&lt;br&gt;+import java.util.concurrent.Executors;
&lt;br&gt;+
&lt;br&gt;+import org.apache.abdera.model.Element;
&lt;br&gt;+import org.apache.commons.lang.Validate;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.logging.LogRecord;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.logging.atom.converter.Converter;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.Deliverer;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * Package private ATOM push-style engine. Engine enqueues log records as they are {@link #publish(LogRecord)
&lt;br&gt;+ * published}. After queue size exceeds {@link #getBatchSize() batch size} processing of collection of these
&lt;br&gt;+ * records (in size of batch size) is triggered.
&lt;br&gt;+ * &amp;lt;p&amp;gt;
&lt;br&gt;+ * Processing is done in separate thread not to block publishing interface. Processing is two step: first list
&lt;br&gt;+ * of log records is transformed by {@link Converter converter} to ATOM {@link Element element} and then it is
&lt;br&gt;+ * pushed out by {@link Deliverer deliverer} to client. Next to transport deliverer is indirectly responsible
&lt;br&gt;+ * for marshaling ATOM element to XML.
&lt;br&gt;+ * &amp;lt;p&amp;gt;
&lt;br&gt;+ * Processing is done by single threaded {@link java.util.concurrent.Executor executor}; next batch of records
&lt;br&gt;+ * is taken from queue only when currently processed batch finishes and queue has enough elements to proceed.
&lt;br&gt;+ * &amp;lt;p&amp;gt;
&lt;br&gt;+ * First failure of any delivery shuts engine down. To avoid this situation engine must have registered
&lt;br&gt;+ * reliable deliverer or use wrapping
&lt;br&gt;+ * {@link org.apache.cxf.jaxrs.ext.logging.atom.deliverer.RetryingDeliverer}.
&lt;br&gt;+ */
&lt;br&gt;+// TODO add internal diagnostics - log messages somewhere except for logger :D
&lt;br&gt;+final class AtomPushEngine {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private List&amp;lt;LogRecord&amp;gt; queue = new ArrayList&amp;lt;LogRecord&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private ExecutorService executor = Executors.newSingleThreadExecutor();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private int batchSize = 1;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private Converter converter;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private Deliverer deliverer;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Put record to publishing queue. Engine accepts published records only if is in proper state - is
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * properly configured (has deliverer and converter registered) and is not shot down; otherwise calls to
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * publish are ignored.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param record record to be published.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public synchronized void publish(LogRecord record) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(record, &amp;quot;record is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (isValid()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;queue.add(record);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (queue.size() &amp;gt;= batchSize) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;publishBatch(queue);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;queue = new ArrayList&amp;lt;LogRecord&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Shuts engine down.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public synchronized void shutdown() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;executor.shutdownNow();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private boolean isValid() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (deliverer == null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// TODO report cause
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.err.println(&amp;quot;deliverer is not set&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (converter == null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.err.println(&amp;quot;converter is not set&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (executor.isShutdown()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.err.println(&amp;quot;engine shutdown&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private void publishBatch(final List&amp;lt;LogRecord&amp;gt; batch) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;executor.execute(new Runnable() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void run() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LoggingThread.markSilent(true);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// syncing for safe converter/deliverer on the fly replacement
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;synchronized (this) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// TODO diagnostic output here: System.out.println(element.toString());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;? extends Element&amp;gt; elements = converter.convert(batch);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Element element : elements) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!deliverer.deliver(element)) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.err.println(&amp;quot;Delivery failed, shutting engine down&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;executor.shutdownNow();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (InterruptedException e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// no action on executor.shutdownNow();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} finally {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LoggingThread.markSilent(false);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public int getBatchSize() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return batchSize;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setBatchSize(int batchSize) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.isTrue(batchSize &amp;gt; 0, &amp;quot;batch size is not greater than zero&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.batchSize = batchSize;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public Converter getConverter() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return converter;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public synchronized void setConverter(Converter converter) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(converter, &amp;quot;converter is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.converter = converter;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public Deliverer getDeliverer() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return deliverer;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public synchronized void setDeliverer(Deliverer deliverer) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(deliverer, &amp;quot;deliverer is null&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.deliverer = deliverer;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngine.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngine.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r886957--2-5----in--cxf-trunk%3A-api-src-test-java-org-apache-cxf-databinding--distribution-src-main-release-samples-wsdl_first-src-main-java-com-example-customerservice-client--distribution-src-main-release-samples-wsdl_first-src-main-java-c...-tp26634398p26634398.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26634400</id>
	<title>svn commit: r886957 [3/5] - in /cxf/trunk: api/src/test/java/org/apache/cxf/databinding/ distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/ distribution/src/main/release/samples/wsdl_first/src/main/java/c...</title>
	<published>2009-12-03T14:27:02Z</published>
	<updated>2009-12-03T14:27:02Z</updated>
	<author>
		<name>dkulp</name>
	</author>
	<content type="html">Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngineConfigurator.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngineConfigurator.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngineConfigurator.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngineConfigurator.java (original)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngineConfigurator.java Thu Dec &amp;nbsp;3 22:26:58 2009
&lt;br&gt;@@ -1,201 +1,201 @@
&lt;br&gt;-/**
&lt;br&gt;- * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- * or more contributor license agreements. See the NOTICE file
&lt;br&gt;- * distributed with this work for additional information
&lt;br&gt;- * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- * to you under the Apache License, Version 2.0 (the
&lt;br&gt;- * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- * with the License. You may obtain a copy of the License at
&lt;br&gt;- *
&lt;br&gt;- * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- *
&lt;br&gt;- * Unless required by applicable law or agreed to in writing,
&lt;br&gt;- * software distributed under the License is distributed on an
&lt;br&gt;- * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- * KIND, either express or implied. See the License for the
&lt;br&gt;- * specific language governing permissions and limitations
&lt;br&gt;- * under the License.
&lt;br&gt;- */
&lt;br&gt;-package org.apache.cxf.jaxrs.ext.logging.atom;
&lt;br&gt;-
&lt;br&gt;-import java.lang.reflect.Constructor;
&lt;br&gt;-
&lt;br&gt;-import org.apache.cxf.jaxrs.ext.logging.atom.converter.Converter;
&lt;br&gt;-import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter;
&lt;br&gt;-import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter.Format;
&lt;br&gt;-import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter.Multiplicity;
&lt;br&gt;-import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter.Output;
&lt;br&gt;-import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.Deliverer;
&lt;br&gt;-import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.RetryingDeliverer;
&lt;br&gt;-import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.WebClientDeliverer;
&lt;br&gt;-
&lt;br&gt;-/**
&lt;br&gt;- * Package private interpreter of incomplete input of engine configuration. Used commonly by
&lt;br&gt;- * {@link AtomPushHandler properties file} and {@link AtomPushBean spring} configuration schemes.
&lt;br&gt;- */
&lt;br&gt;-// TODO extract 'general rules' of interpretation in handler and bean and put here
&lt;br&gt;-final class AtomPushEngineConfigurator {
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private Deliverer deliverer;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private Converter converter;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String delivererClass;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String converterClass;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String batchSize;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String delivererUrl;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String retryTimeout;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String retryPause;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String retryPauseTime;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String output;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String multiplicity;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String format;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setUrl(String url) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.delivererUrl = url;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setRetryTimeout(String retryTimeout) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.retryTimeout = retryTimeout;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setRetryPause(String retryPause) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.retryPause = retryPause;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setRetryPauseTime(String retryPauseTime) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.retryPauseTime = retryPauseTime;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setBatchSize(String batchSize) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.batchSize = batchSize;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setDeliverer(Deliverer deliverer) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.deliverer = deliverer;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setConverter(Converter converter) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.converter = converter;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setDelivererClass(String delivererClass) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.delivererClass = delivererClass;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setConverterClass(String converterClass) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.converterClass = converterClass;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setOutput(String output) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.output = output;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setMultiplicity(String multiplicity) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.multiplicity = multiplicity;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setFormat(String format) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.format = format;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public AtomPushEngine createEngine() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Deliverer d = deliverer;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Converter c = converter;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int batch = parseInt(batchSize, 1, 1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (d == null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (delivererUrl != null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (delivererClass != null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;d = createDeliverer(delivererClass, delivererUrl);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;d = new WebClientDeliverer(delivererUrl);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalStateException(&amp;quot;Either url, deliverer or &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;deliverer class with url must be setup&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (c == null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (converterClass != null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c = createConverter(converterClass);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Output out = parseEnum(output, Output.FEED);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Multiplicity mul = parseEnum(multiplicity, Multiplicity.ONE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Format form = parseEnum(format, Format.CONTENT);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c = new StandardConverter(out, mul, form);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (retryPause != null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int timeout = parseInt(retryTimeout, 0, 0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int pause = parseInt(retryPauseTime, 1, 30);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean linear = !retryPause.equalsIgnoreCase(&amp;quot;exponential&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;d = new RetryingDeliverer(d, timeout, pause, linear);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AtomPushEngine engine = new AtomPushEngine();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;engine.setDeliverer(d);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;engine.setConverter(c);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;engine.setBatchSize(batch);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return engine;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private Deliverer createDeliverer(String clazz, String url) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Constructor&amp;lt;Deliverer&amp;gt; ctor = loadClass(clazz, Deliverer.class).getConstructor(String.class);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ctor.newInstance(url);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(e);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private Converter createConverter(String clazz) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Constructor&amp;lt;Converter&amp;gt; ctor = loadClass(clazz, Converter.class).getConstructor();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ctor.newInstance();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(e);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private &amp;lt;T&amp;gt; Class&amp;lt;T&amp;gt; loadClass(String clazz, Class&amp;lt;T&amp;gt; ifaceClass) throws ClassNotFoundException {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ClassLoader cl = Thread.currentThread().getContextClassLoader();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (Class&amp;lt;T&amp;gt;)cl.loadClass(clazz);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (ClassNotFoundException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// clazz could be shorted (stripped package name) retry for interface location
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String pkg = ifaceClass.getPackage().getName();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String clazz2 = pkg + &amp;quot;.&amp;quot; + clazz;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (Class&amp;lt;T&amp;gt;)cl.loadClass(clazz2);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e1) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ClassNotFoundException(e.getMessage() + &amp;quot; or &amp;quot; + e1.getMessage());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private int parseInt(String property, int defaultValue) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return Integer.parseInt(property);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (NumberFormatException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return defaultValue;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private int parseInt(String property, int lessThan, int defaultValue) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int ret = parseInt(property, defaultValue);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ret &amp;lt; lessThan) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ret = defaultValue;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ret;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private &amp;lt;T extends Enum&amp;lt;T&amp;gt;&amp;gt; T parseEnum(String value, T defaultValue) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (value == null | &amp;quot;&amp;quot;.equals(value)) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return defaultValue;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (T)Enum.valueOf(defaultValue.getClass(), value.toUpperCase());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return defaultValue;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-}
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.cxf.jaxrs.ext.logging.atom;
&lt;br&gt;+
&lt;br&gt;+import java.lang.reflect.Constructor;
&lt;br&gt;+
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.logging.atom.converter.Converter;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter.Format;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter.Multiplicity;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter.Output;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.Deliverer;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.RetryingDeliverer;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.WebClientDeliverer;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * Package private interpreter of incomplete input of engine configuration. Used commonly by
&lt;br&gt;+ * {@link AtomPushHandler properties file} and {@link AtomPushBean spring} configuration schemes.
&lt;br&gt;+ */
&lt;br&gt;+// TODO extract 'general rules' of interpretation in handler and bean and put here
&lt;br&gt;+final class AtomPushEngineConfigurator {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private Deliverer deliverer;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private Converter converter;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String delivererClass;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String converterClass;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String batchSize;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String delivererUrl;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String retryTimeout;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String retryPause;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String retryPauseTime;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String output;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String multiplicity;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String format;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setUrl(String url) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.delivererUrl = url;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setRetryTimeout(String retryTimeout) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.retryTimeout = retryTimeout;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setRetryPause(String retryPause) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.retryPause = retryPause;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setRetryPauseTime(String retryPauseTime) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.retryPauseTime = retryPauseTime;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setBatchSize(String batchSize) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.batchSize = batchSize;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setDeliverer(Deliverer deliverer) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.deliverer = deliverer;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setConverter(Converter converter) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.converter = converter;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setDelivererClass(String delivererClass) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.delivererClass = delivererClass;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setConverterClass(String converterClass) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.converterClass = converterClass;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setOutput(String output) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.output = output;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setMultiplicity(String multiplicity) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.multiplicity = multiplicity;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setFormat(String format) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.format = format;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public AtomPushEngine createEngine() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Deliverer d = deliverer;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Converter c = converter;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int batch = parseInt(batchSize, 1, 1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (d == null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (delivererUrl != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (delivererClass != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;d = createDeliverer(delivererClass, delivererUrl);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;d = new WebClientDeliverer(delivererUrl);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalStateException(&amp;quot;Either url, deliverer or &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+ &amp;quot;deliverer class with url must be setup&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (c == null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (converterClass != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c = createConverter(converterClass);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Output out = parseEnum(output, Output.FEED);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Multiplicity mul = parseEnum(multiplicity, Multiplicity.ONE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Format form = parseEnum(format, Format.CONTENT);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c = new StandardConverter(out, mul, form);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (retryPause != null) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int timeout = parseInt(retryTimeout, 0, 0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int pause = parseInt(retryPauseTime, 1, 30);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean linear = !retryPause.equalsIgnoreCase(&amp;quot;exponential&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;d = new RetryingDeliverer(d, timeout, pause, linear);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AtomPushEngine engine = new AtomPushEngine();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;engine.setDeliverer(d);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;engine.setConverter(c);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;engine.setBatchSize(batch);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return engine;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private Deliverer createDeliverer(String clazz, String url) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Constructor&amp;lt;Deliverer&amp;gt; ctor = loadClass(clazz, Deliverer.class).getConstructor(String.class);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ctor.newInstance(url);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(e);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private Converter createConverter(String clazz) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Constructor&amp;lt;Converter&amp;gt; ctor = loadClass(clazz, Converter.class).getConstructor();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ctor.newInstance();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(e);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private &amp;lt;T&amp;gt; Class&amp;lt;T&amp;gt; loadClass(String clazz, Class&amp;lt;T&amp;gt; ifaceClass) throws ClassNotFoundException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ClassLoader cl = Thread.currentThread().getContextClassLoader();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (Class&amp;lt;T&amp;gt;)cl.loadClass(clazz);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (ClassNotFoundException e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// clazz could be shorted (stripped package name) retry for interface location
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String pkg = ifaceClass.getPackage().getName();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String clazz2 = pkg + &amp;quot;.&amp;quot; + clazz;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (Class&amp;lt;T&amp;gt;)cl.loadClass(clazz2);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e1) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ClassNotFoundException(e.getMessage() + &amp;quot; or &amp;quot; + e1.getMessage());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private int parseInt(String property, int defaultValue) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return Integer.parseInt(property);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (NumberFormatException e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return defaultValue;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private int parseInt(String property, int lessThan, int defaultValue) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int ret = parseInt(property, defaultValue);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ret &amp;lt; lessThan) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ret = defaultValue;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ret;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private &amp;lt;T extends Enum&amp;lt;T&amp;gt;&amp;gt; T parseEnum(String value, T defaultValue) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (value == null | &amp;quot;&amp;quot;.equals(value)) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return defaultValue;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (T)Enum.valueOf(defaultValue.getClass(), value.toUpperCase());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return defaultValue;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngineConfigurator.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngineConfigurator.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushHandler.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushHandler.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushHandler.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushHandler.java (original)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushHandler.java Thu Dec &amp;nbsp;3 22:26:58 2009
&lt;br&gt;@@ -1,184 +1,184 @@
&lt;br&gt;-/**
&lt;br&gt;- * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- * or more contributor license agreements. See the NOTICE file
&lt;br&gt;- * distributed with this work for additional information
&lt;br&gt;- * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- * to you under the Apache License, Version 2.0 (the
&lt;br&gt;- * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- * with the License. You may obtain a copy of the License at
&lt;br&gt;- *
&lt;br&gt;- * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- *
&lt;br&gt;- * Unless required by applicable law or agreed to in writing,
&lt;br&gt;- * software distributed under the License is distributed on an
&lt;br&gt;- * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- * KIND, either express or implied. See the License for the
&lt;br&gt;- * specific language governing permissions and limitations
&lt;br&gt;- * under the License.
&lt;br&gt;- */
&lt;br&gt;-package org.apache.cxf.jaxrs.ext.logging.atom;
&lt;br&gt;-
&lt;br&gt;-import java.util.logging.Handler;
&lt;br&gt;-import java.util.logging.LogManager;
&lt;br&gt;-
&lt;br&gt;-import org.apache.cxf.jaxrs.ext.logging.LogRecord;
&lt;br&gt;-import org.apache.cxf.jaxrs.ext.logging.atom.converter.Converter;
&lt;br&gt;-import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.Deliverer;
&lt;br&gt;-
&lt;br&gt;-/**
&lt;br&gt;- * Handler pushing log records in batches as Atom Feeds or Entries to registered client. Handler
&lt;br&gt;- * responsibility is to adapt to JUL framework while most of job is delegated to {@link AtomPushEngine}.
&lt;br&gt;- * &amp;lt;p&amp;gt;
&lt;br&gt;- * For simple configuration using properties file (one global root-level handler of this class) following
&lt;br&gt;- * properties prefixed with full name of this class can be used:
&lt;br&gt;- * &amp;lt;ul&amp;gt;
&lt;br&gt;- * &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;url&amp;lt;/b&amp;gt; - URL where feeds will be pushed (mandatory parameter)&amp;lt;/li&amp;gt;
&lt;br&gt;- * &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;batchSize&amp;lt;/b&amp;gt; - integer number specifying minimal number of published log records that trigger
&lt;br&gt;- * processing and pushing ATOM document. If parameter is not set, is not greater than zero or is not a number,
&lt;br&gt;- * batch size is set to 1.&amp;lt;/li&amp;gt;
&lt;br&gt;- * &amp;lt;/ul&amp;gt;
&lt;br&gt;- * Conversion of log records into ATOM Elements can be tuned up using following parameters. Note that not all
&lt;br&gt;- * combinations are meaningful, see {@link org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter}
&lt;br&gt;- * for details:
&lt;br&gt;- * &amp;lt;ul&amp;gt;
&lt;br&gt;- * &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;output&amp;lt;/b&amp;gt; - ATOM Element type pushed out, either &amp;quot;feed&amp;quot; or &amp;quot;entry&amp;quot;; when not specified or invalid
&lt;br&gt;- * value provided &amp;quot;feed&amp;quot; is used.&amp;lt;/li&amp;gt;
&lt;br&gt;- * &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;multiplicity&amp;lt;/b&amp;gt; - multiplicity of subelement(entries in feed for output==&amp;quot;feed&amp;quot; or log records in
&lt;br&gt;- * entry for output==&amp;quot;entry&amp;quot;), either &amp;quot;one&amp;quot; or &amp;quot;many&amp;quot;; when not specified or invalid value provided &amp;quot;one&amp;quot; is
&lt;br&gt;- * used.&amp;lt;/li&amp;gt;
&lt;br&gt;- * &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;format&amp;lt;/b&amp;gt; - method of embedding data in entry, either &amp;quot;content&amp;quot; or &amp;quot;extension&amp;quot;; when not specified
&lt;br&gt;- * or invalid value provided &amp;quot;content&amp;quot; is used.&amp;lt;/li&amp;gt;
&lt;br&gt;- * &amp;lt;/ul&amp;gt;
&lt;br&gt;- * By default delivery is served by WebClientDeliverer which does not support reliability of transport.
&lt;br&gt;- * Availability of any of this parameters enables retrying of default delivery. Detailed explanation of these
&lt;br&gt;- * parameter, see {@link org.apache.cxf.jaxrs.ext.logging.atom.deliverer.RetryingDeliverer} class description.
&lt;br&gt;- * &amp;lt;ul&amp;gt;
&lt;br&gt;- * &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;retry.pause&amp;lt;/b&amp;gt; - pausing strategy of delivery retries, either &amp;lt;b&amp;gt;linear&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;exponential&amp;lt;/b&amp;gt;
&lt;br&gt;- * value (mandatory parameter). If mispelled linear is used.&amp;lt;/li&amp;gt;
&lt;br&gt;- * &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;retry.pause.time&amp;lt;/b&amp;gt; - pause time (in seconds) between retries. If parameter is not set, pause is
&lt;br&gt;- * set to 30 seconds.&amp;lt;/li&amp;gt;
&lt;br&gt;- * &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;retry.timeout&amp;lt;/b&amp;gt; - maximum time (in seconds) retrying will be continued. If not set timeout is not
&lt;br&gt;- * set (infinite loop of retries).&amp;lt;/li&amp;gt;
&lt;br&gt;- * &amp;lt;/ul&amp;gt;
&lt;br&gt;- * Ultimate control on conversion and delivery is obtained specifying own implementation classes:
&lt;br&gt;- * &amp;lt;ul&amp;gt;
&lt;br&gt;- * &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;converter&amp;lt;/b&amp;gt; - name of class implementing {@link Converter} class replacing default conversion and
&lt;br&gt;- * its specific parameters (&amp;quot;output&amp;quot;, &amp;quot;multiplicity&amp;quot; and &amp;quot;format&amp;quot;) are ignored. For classes located in same
&lt;br&gt;- * package as Converter interface only class name can be given e.g. instead of
&lt;br&gt;- * &amp;quot;org.apache.cxf.jaxrs.ext.logging.atom.converter.FooBarConverter&amp;quot; one can specify &amp;quot;FooBarConverter&amp;quot;.&amp;lt;/li&amp;gt;
&lt;br&gt;- * &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;deliverer&amp;lt;/b&amp;gt; - name of class implementing {@link Deliverer} class replacing default delivery and
&lt;br&gt;- * its specific parameters (&amp;quot;retry.Xxx&amp;quot;) are ignored. For classes located in same package as Deliverer
&lt;br&gt;- * interface only class name can be given e.g. instead of
&lt;br&gt;- * &amp;quot;org.apache.cxf.jaxrs.ext.logging.atom.deliverer.WebClientDeliverer&amp;quot; one can specify 
&lt;br&gt;- * &amp;quot;WebClientDeliverer&amp;quot;.&amp;lt;/li&amp;gt;
&lt;br&gt;- * &amp;lt;/ul&amp;gt;
&lt;br&gt;- * Example:
&lt;br&gt;- * 
&lt;br&gt;- * &amp;lt;pre&amp;gt;
&lt;br&gt;- * handlers = org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler, java.util.logging.ConsoleHandler
&lt;br&gt;- * .level = INFO
&lt;br&gt;- * 
&lt;br&gt;- * # deliver to given URL triggering after each batch of 10 log records
&lt;br&gt;- * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.url = &lt;a href=&quot;http://localhost:9080&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:9080&lt;/a&gt;&lt;br&gt;- * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.batchSize = 10
&lt;br&gt;- * 
&lt;br&gt;- * # enable retrying delivery every 10 seconds for 5 minutes
&lt;br&gt;- * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.retry.pause = linear
&lt;br&gt;- * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.retry.pause.time = 10
&lt;br&gt;- * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.retry.timeout = 300
&lt;br&gt;- * 
&lt;br&gt;- * # output for AtomPub: push entries not feeds, each entry with one log record as &amp;quot;atom:extension&amp;quot; 
&lt;br&gt;- * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.output = entry
&lt;br&gt;- * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.multiplicity = one
&lt;br&gt;- * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.format = extension
&lt;br&gt;- * ...
&lt;br&gt;- * &amp;lt;/pre&amp;gt;
&lt;br&gt;- */
&lt;br&gt;-public final class AtomPushHandler extends Handler {
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private AtomPushEngine engine;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private boolean lazyConfig;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Creates handler with configuration taken from properties file.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public AtomPushHandler() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// deferred configuration: configure() called from here would use utilities that attempt to log
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// and create this handler instance in recursion; configure() will be called on first publish()
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lazyConfig = true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Creates handler with custom parameters.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param batchSize batch size, see {@link AtomPushEngine#getBatchSize()}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param converter converter transforming logs into ATOM elements
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param deliverer deliverer pushing ATOM elements to client
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public AtomPushHandler(int batchSize, Converter converter, Deliverer deliverer) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;engine = new AtomPushEngine();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;engine.setBatchSize(batchSize);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;engine.setConverter(converter);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;engine.setDeliverer(deliverer);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Creates handler using (package private).
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param engine configured engine.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;AtomPushHandler(AtomPushEngine engine) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.engine = engine;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public synchronized void publish(java.util.logging.LogRecord record) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (LoggingThread.isSilent()) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LoggingThread.markSilent(true);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (lazyConfig) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lazyConfig = false;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configure();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LogRecord rec = LogRecord.fromJUL(record);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;engine.publish(rec);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} finally {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LoggingThread.markSilent(false);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public synchronized void close() throws SecurityException {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;engine.shutdown();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public synchronized void flush() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// no-op
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Configuration from properties. Aligned to JUL strategy - properties file is only for simple
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * configuration: it allows configure one root handler with its parameters. What is even more dummy, JUL
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * does not allow to iterate over configuration properties to make interpretation automated (e.g. using
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * commons-beanutils)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private void configure() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LogManager manager = LogManager.getLogManager();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String cname = getClass().getName();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AtomPushEngineConfigurator conf = new AtomPushEngineConfigurator();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setUrl(manager.getProperty(cname + &amp;quot;.url&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setDelivererClass(manager.getProperty(cname + &amp;quot;.deliverer&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setConverterClass(manager.getProperty(cname + &amp;quot;.converter&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setBatchSize(manager.getProperty(cname + &amp;quot;.batchSize&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setRetryPause(manager.getProperty(cname + &amp;quot;.retry.pause&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setRetryPauseTime(manager.getProperty(cname + &amp;quot;.retry.pause.time&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setRetryTimeout(manager.getProperty(cname + &amp;quot;.retry.timeout&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setOutput(manager.getProperty(cname + &amp;quot;.output&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setMultiplicity(manager.getProperty(cname + &amp;quot;.multiplicity&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setFormat(manager.getProperty(cname + &amp;quot;.format&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;engine = conf.createEngine();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-}
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.cxf.jaxrs.ext.logging.atom;
&lt;br&gt;+
&lt;br&gt;+import java.util.logging.Handler;
&lt;br&gt;+import java.util.logging.LogManager;
&lt;br&gt;+
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.logging.LogRecord;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.logging.atom.converter.Converter;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.Deliverer;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * Handler pushing log records in batches as Atom Feeds or Entries to registered client. Handler
&lt;br&gt;+ * responsibility is to adapt to JUL framework while most of job is delegated to {@link AtomPushEngine}.
&lt;br&gt;+ * &amp;lt;p&amp;gt;
&lt;br&gt;+ * For simple configuration using properties file (one global root-level handler of this class) following
&lt;br&gt;+ * properties prefixed with full name of this class can be used:
&lt;br&gt;+ * &amp;lt;ul&amp;gt;
&lt;br&gt;+ * &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;url&amp;lt;/b&amp;gt; - URL where feeds will be pushed (mandatory parameter)&amp;lt;/li&amp;gt;
&lt;br&gt;+ * &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;batchSize&amp;lt;/b&amp;gt; - integer number specifying minimal number of published log records that trigger
&lt;br&gt;+ * processing and pushing ATOM document. If parameter is not set, is not greater than zero or is not a number,
&lt;br&gt;+ * batch size is set to 1.&amp;lt;/li&amp;gt;
&lt;br&gt;+ * &amp;lt;/ul&amp;gt;
&lt;br&gt;+ * Conversion of log records into ATOM Elements can be tuned up using following parameters. Note that not all
&lt;br&gt;+ * combinations are meaningful, see {@link org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter}
&lt;br&gt;+ * for details:
&lt;br&gt;+ * &amp;lt;ul&amp;gt;
&lt;br&gt;+ * &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;output&amp;lt;/b&amp;gt; - ATOM Element type pushed out, either &amp;quot;feed&amp;quot; or &amp;quot;entry&amp;quot;; when not specified or invalid
&lt;br&gt;+ * value provided &amp;quot;feed&amp;quot; is used.&amp;lt;/li&amp;gt;
&lt;br&gt;+ * &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;multiplicity&amp;lt;/b&amp;gt; - multiplicity of subelement(entries in feed for output==&amp;quot;feed&amp;quot; or log records in
&lt;br&gt;+ * entry for output==&amp;quot;entry&amp;quot;), either &amp;quot;one&amp;quot; or &amp;quot;many&amp;quot;; when not specified or invalid value provided &amp;quot;one&amp;quot; is
&lt;br&gt;+ * used.&amp;lt;/li&amp;gt;
&lt;br&gt;+ * &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;format&amp;lt;/b&amp;gt; - method of embedding data in entry, either &amp;quot;content&amp;quot; or &amp;quot;extension&amp;quot;; when not specified
&lt;br&gt;+ * or invalid value provided &amp;quot;content&amp;quot; is used.&amp;lt;/li&amp;gt;
&lt;br&gt;+ * &amp;lt;/ul&amp;gt;
&lt;br&gt;+ * By default delivery is served by WebClientDeliverer which does not support reliability of transport.
&lt;br&gt;+ * Availability of any of this parameters enables retrying of default delivery. Detailed explanation of these
&lt;br&gt;+ * parameter, see {@link org.apache.cxf.jaxrs.ext.logging.atom.deliverer.RetryingDeliverer} class description.
&lt;br&gt;+ * &amp;lt;ul&amp;gt;
&lt;br&gt;+ * &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;retry.pause&amp;lt;/b&amp;gt; - pausing strategy of delivery retries, either &amp;lt;b&amp;gt;linear&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;exponential&amp;lt;/b&amp;gt;
&lt;br&gt;+ * value (mandatory parameter). If mispelled linear is used.&amp;lt;/li&amp;gt;
&lt;br&gt;+ * &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;retry.pause.time&amp;lt;/b&amp;gt; - pause time (in seconds) between retries. If parameter is not set, pause is
&lt;br&gt;+ * set to 30 seconds.&amp;lt;/li&amp;gt;
&lt;br&gt;+ * &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;retry.timeout&amp;lt;/b&amp;gt; - maximum time (in seconds) retrying will be continued. If not set timeout is not
&lt;br&gt;+ * set (infinite loop of retries).&amp;lt;/li&amp;gt;
&lt;br&gt;+ * &amp;lt;/ul&amp;gt;
&lt;br&gt;+ * Ultimate control on conversion and delivery is obtained specifying own implementation classes:
&lt;br&gt;+ * &amp;lt;ul&amp;gt;
&lt;br&gt;+ * &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;converter&amp;lt;/b&amp;gt; - name of class implementing {@link Converter} class replacing default conversion and
&lt;br&gt;+ * its specific parameters (&amp;quot;output&amp;quot;, &amp;quot;multiplicity&amp;quot; and &amp;quot;format&amp;quot;) are ignored. For classes located in same
&lt;br&gt;+ * package as Converter interface only class name can be given e.g. instead of
&lt;br&gt;+ * &amp;quot;org.apache.cxf.jaxrs.ext.logging.atom.converter.FooBarConverter&amp;quot; one can specify &amp;quot;FooBarConverter&amp;quot;.&amp;lt;/li&amp;gt;
&lt;br&gt;+ * &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;deliverer&amp;lt;/b&amp;gt; - name of class implementing {@link Deliverer} class replacing default delivery and
&lt;br&gt;+ * its specific parameters (&amp;quot;retry.Xxx&amp;quot;) are ignored. For classes located in same package as Deliverer
&lt;br&gt;+ * interface only class name can be given e.g. instead of
&lt;br&gt;+ * &amp;quot;org.apache.cxf.jaxrs.ext.logging.atom.deliverer.WebClientDeliverer&amp;quot; one can specify 
&lt;br&gt;+ * &amp;quot;WebClientDeliverer&amp;quot;.&amp;lt;/li&amp;gt;
&lt;br&gt;+ * &amp;lt;/ul&amp;gt;
&lt;br&gt;+ * Example:
&lt;br&gt;+ * 
&lt;br&gt;+ * &amp;lt;pre&amp;gt;
&lt;br&gt;+ * handlers = org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler, java.util.logging.ConsoleHandler
&lt;br&gt;+ * .level = INFO
&lt;br&gt;+ * 
&lt;br&gt;+ * # deliver to given URL triggering after each batch of 10 log records
&lt;br&gt;+ * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.url = &lt;a href=&quot;http://localhost:9080&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:9080&lt;/a&gt;&lt;br&gt;+ * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.batchSize = 10
&lt;br&gt;+ * 
&lt;br&gt;+ * # enable retrying delivery every 10 seconds for 5 minutes
&lt;br&gt;+ * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.retry.pause = linear
&lt;br&gt;+ * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.retry.pause.time = 10
&lt;br&gt;+ * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.retry.timeout = 300
&lt;br&gt;+ * 
&lt;br&gt;+ * # output for AtomPub: push entries not feeds, each entry with one log record as &amp;quot;atom:extension&amp;quot; 
&lt;br&gt;+ * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.output = entry
&lt;br&gt;+ * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.multiplicity = one
&lt;br&gt;+ * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.format = extension
&lt;br&gt;+ * ...
&lt;br&gt;+ * &amp;lt;/pre&amp;gt;
&lt;br&gt;+ */
&lt;br&gt;+public final class AtomPushHandler extends Handler {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private AtomPushEngine engine;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private boolean lazyConfig;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Creates handler with configuration taken from properties file.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public AtomPushHandler() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// deferred configuration: configure() called from here would use utilities that attempt to log
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// and create this handler instance in recursion; configure() will be called on first publish()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lazyConfig = true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Creates handler with custom parameters.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param batchSize batch size, see {@link AtomPushEngine#getBatchSize()}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param converter converter transforming logs into ATOM elements
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param deliverer deliverer pushing ATOM elements to client
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public AtomPushHandler(int batchSize, Converter converter, Deliverer deliverer) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;engine = new AtomPushEngine();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;engine.setBatchSize(batchSize);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;engine.setConverter(converter);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;engine.setDeliverer(deliverer);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Creates handler using (package private).
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param engine configured engine.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;AtomPushHandler(AtomPushEngine engine) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.engine = engine;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public synchronized void publish(java.util.logging.LogRecord record) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (LoggingThread.isSilent()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LoggingThread.markSilent(true);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (lazyConfig) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lazyConfig = false;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configure();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LogRecord rec = LogRecord.fromJUL(record);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;engine.publish(rec);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} finally {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LoggingThread.markSilent(false);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public synchronized void close() throws SecurityException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;engine.shutdown();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public synchronized void flush() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// no-op
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Configuration from properties. Aligned to JUL strategy - properties file is only for simple
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * configuration: it allows configure one root handler with its parameters. What is even more dummy, JUL
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * does not allow to iterate over configuration properties to make interpretation automated (e.g. using
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * commons-beanutils)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private void configure() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LogManager manager = LogManager.getLogManager();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String cname = getClass().getName();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AtomPushEngineConfigurator conf = new AtomPushEngineConfigurator();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setUrl(manager.getProperty(cname + &amp;quot;.url&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setDelivererClass(manager.getProperty(cname + &amp;quot;.deliverer&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setConverterClass(manager.getProperty(cname + &amp;quot;.converter&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setBatchSize(manager.getProperty(cname + &amp;quot;.batchSize&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setRetryPause(manager.getProperty(cname + &amp;quot;.retry.pause&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setRetryPauseTime(manager.getProperty(cname + &amp;quot;.retry.pause.time&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setRetryTimeout(manager.getProperty(cname + &amp;quot;.retry.timeout&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setOutput(manager.getProperty(cname + &amp;quot;.output&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setMultiplicity(manager.getProperty(cname + &amp;quot;.multiplicity&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.setFormat(manager.getProperty(cname + &amp;quot;.format&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;engine = conf.createEngine();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushHandler.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushHandler.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/LoggingThread.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/LoggingThread.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/LoggingThread.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/LoggingThread.java (original)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/LoggingThread.java Thu Dec &amp;nbsp;3 22:26:58 2009
&lt;br&gt;@@ -1,51 +1,51 @@
&lt;br&gt;-/**
&lt;br&gt;- * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- * or more contributor license agreements. See the NOTICE file
&lt;br&gt;- * distributed with this work for additional information
&lt;br&gt;- * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- * to you under the Apache License, Version 2.0 (the
&lt;br&gt;- * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- * with the License. You may obtain a copy of the License at
&lt;br&gt;- *
&lt;br&gt;- * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- *
&lt;br&gt;- * Unless required by applicable law or agreed to in writing,
&lt;br&gt;- * software distributed under the License is distributed on an
&lt;br&gt;- * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- * KIND, either express or implied. See the License for the
&lt;br&gt;- * specific language governing permissions and limitations
&lt;br&gt;- * under the License.
&lt;br&gt;- */
&lt;br&gt;-package org.apache.cxf.jaxrs.ext.logging.atom;
&lt;br&gt;-
&lt;br&gt;-/**
&lt;br&gt;- * Helps disable logging from calls of the same thread. Motivation: log handlers in this package causes other
&lt;br&gt;- * threads (from executor) to start logging (by using JAXB that itself uses JUL) which in turn can be caught
&lt;br&gt;- * by the same handler leading to infinite loop.
&lt;br&gt;- * &amp;lt;p&amp;gt;
&lt;br&gt;- * Other approach than using thread local storage would be scanning of stack trace of current thread to see if
&lt;br&gt;- * root of call comes from same package as package of handler - it's less effective so TLS is using here.
&lt;br&gt;- */
&lt;br&gt;-final class LoggingThread {
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private static ThreadLocal&amp;lt;LoggingThread&amp;gt; threadLocal = new ThreadLocal&amp;lt;LoggingThread&amp;gt;() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;protected LoggingThread initialValue() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new LoggingThread();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;};
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private boolean isSilent;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private LoggingThread() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static void markSilent(boolean silent) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LoggingThread lt = threadLocal.get();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lt.isSilent = silent;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static boolean isSilent() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return threadLocal.get().isSilent;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-}
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.cxf.jaxrs.ext.logging.atom;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * Helps disable logging from calls of the same thread. Motivation: log handlers in this package causes other
&lt;br&gt;+ * threads (from executor) to start logging (by using JAXB that itself uses JUL) which in turn can be caught
&lt;br&gt;+ * by the same handler leading to infinite loop.
&lt;br&gt;+ * &amp;lt;p&amp;gt;
&lt;br&gt;+ * Other approach than using thread local storage would be scanning of stack trace of current thread to see if
&lt;br&gt;+ * root of call comes from same package as package of handler - it's less effective so TLS is using here.
&lt;br&gt;+ */
&lt;br&gt;+final class LoggingThread {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static ThreadLocal&amp;lt;LoggingThread&amp;gt; threadLocal = new ThreadLocal&amp;lt;LoggingThread&amp;gt;() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;protected LoggingThread initialValue() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new LoggingThread();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;};
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private boolean isSilent;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private LoggingThread() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static void markSilent(boolean silent) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LoggingThread lt = threadLocal.get();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lt.isSilent = silent;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static boolean isSilent() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return threadLocal.get().isSilent;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/LoggingThread.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/LoggingThread.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/Converter.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/Converter.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/Converter.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/Converter.java (original)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/Converter.java Thu Dec &amp;nbsp;3 22:26:58 2009
&lt;br&gt;@@ -1,38 +1,38 @@
&lt;br&gt;-/**
&lt;br&gt;- * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- * or more contributor license agreements. See the NOTICE file
&lt;br&gt;- * distributed with this work for additional information
&lt;br&gt;- * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- * to you under the Apache License, Version 2.0 (the
&lt;br&gt;- * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- * with the License. You may obtain a copy of the License at
&lt;br&gt;- *
&lt;br&gt;- * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- *
&lt;br&gt;- * Unless required by applicable law or agreed to in writing,
&lt;br&gt;- * software distributed under the License is distributed on an
&lt;br&gt;- * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- * KIND, either express or implied. See the License for the
&lt;br&gt;- * specific language governing permissions and limitations
&lt;br&gt;- * under the License.
&lt;br&gt;- */
&lt;br&gt;-package org.apache.cxf.jaxrs.ext.logging.atom.converter;
&lt;br&gt;-
&lt;br&gt;-import java.util.List;
&lt;br&gt;-
&lt;br&gt;-import org.apache.abdera.model.Element;
&lt;br&gt;-import org.apache.cxf.jaxrs.ext.logging.LogRecord;
&lt;br&gt;-
&lt;br&gt;-/**
&lt;br&gt;- * Converts batch of log records into one or more ATOM Elements to deliver.
&lt;br&gt;- */
&lt;br&gt;-public interface Converter {
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Converts given collection.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param records not-null collection of records
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @return non-empty collection of ATOM Elements that represent log records
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;List&amp;lt;? extends Element&amp;gt; convert(List&amp;lt;LogRecord&amp;gt; records);
&lt;br&gt;-}
&lt;br&gt;+/**
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;+ * or more contributor license agreements. See the NOTICE file
&lt;br&gt;+ * distributed with this work for additional information
&lt;br&gt;+ * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;+ * to you under the Apache License, Version 2.0 (the
&lt;br&gt;+ * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;+ * with the License. You may obtain a copy of the License at
&lt;br&gt;+ *
&lt;br&gt;+ * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ *
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing,
&lt;br&gt;+ * software distributed under the License is distributed on an
&lt;br&gt;+ * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;+ * KIND, either express or implied. See the License for the
&lt;br&gt;+ * specific language governing permissions and limitations
&lt;br&gt;+ * under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.cxf.jaxrs.ext.logging.atom.converter;
&lt;br&gt;+
&lt;br&gt;+import java.util.List;
&lt;br&gt;+
&lt;br&gt;+import org.apache.abdera.model.Element;
&lt;br&gt;+import org.apache.cxf.jaxrs.ext.logging.LogRecord;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * Converts batch of log records into one or more ATOM Elements to deliver.
&lt;br&gt;+ */
&lt;br&gt;+public interface Converter {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Converts given collection.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param records not-null collection of records
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return non-empty collection of ATOM Elements that represent log records
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;List&amp;lt;? extends Element&amp;gt; convert(List&amp;lt;LogRecord&amp;gt; records);
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/Converter.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/Converter.java
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Rev Date
&lt;br&gt;&lt;br&gt;Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/StandardConverter.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/StandardConverter.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/StandardConverter.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/StandardConverter.java (original)
&lt;br&gt;+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/StandardConverter.java Thu Dec &amp;nbsp;3 22:26:58 2009
&lt;br&gt;@@ -1,315 +1,315 @@
&lt;br&gt;-/**
&lt;br&gt;- * Licensed to the Apache Software Foundation (ASF) under one
&lt;br&gt;- * or more contributor license agreements. See the NOTICE file
&lt;br&gt;- * distributed with this work for additional information
&lt;br&gt;- * regarding copyright ownership. The ASF licenses this file
&lt;br&gt;- * to you under the Apache License, Version 2.0 (the
&lt;br&gt;- * &amp;quot;License&amp;quot;); you may not use this file except in compliance
&lt;br&gt;- * with the License. You may obtain a copy of the License at
&lt;br&gt;- *
&lt;br&gt;- * &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;- *
&lt;br&gt;- * Unless required by applicable law or agreed to in writing,
&lt;br&gt;- * software distributed under the License is distributed on an
&lt;br&gt;- * &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
&lt;br&gt;- * KIND, either express or implied. See the License for the
&lt;br&gt;- * specific language governing permissions and limitations
&lt;br&gt;- * under the License.
&lt;br&gt;- */
&lt;br&gt;-package org.apache.cxf.jaxrs.ext.logging.atom.converter;
&lt;br&gt;-
&lt;br&gt;-import java.io.StringWriter;
&lt;br&gt;-import java.text.DateFormat;
&lt;br&gt;-import java.text.SimpleDateFormat;
&lt;br&gt;-import java.util.ArrayList;
&lt;br&gt;-import java.util.Arrays;
&lt;br&gt;-import java.util.Collections;
&lt;br&gt;-import java.util.Date;
&lt;br&gt;-import java.util.List;
&lt;br&gt;-import java.util.UUID;
&lt;br&gt;-
&lt;br&gt;-import javax.xml.bind.JAXBContext;
&lt;br&gt;-import javax.xml.bind.JAXBException;
&lt;br&gt;-import javax.xml.bind.Marshaller;
&lt;br&gt;-import javax.xml.namespace.QName;
&lt;br&gt;-
&lt;br&gt;-import org.apache.abdera.Abdera;
&lt;br&gt;-import org.apache.abdera.factory.Factory;
&lt;br&gt;-import org.apache.abdera.model.Content;
&lt;br&gt;-import org.apache.abdera.model.Element;
&lt;br&gt;-import org.apache.abdera.model.Entry;
&lt;br&gt;-import org.apache.abdera.model.ExtensibleElement;
&lt;br&gt;-import org.apache.abdera.model.Feed;
&lt;br&gt;-import org.apache.commons.lang.Validate;
&lt;br&gt;-import org.apache.cxf.jaxrs.ext.logging.LogRecord;
&lt;br&gt;-import org.apache.cxf.jaxrs.ext.logging.LogRecordsList;
&lt;br&gt;-
&lt;br&gt;-/**
&lt;br&gt;- * Converter producing ATOM Feeds on standalone Entries with LogRecords or LogRecordsLists embedded as content
&lt;br&gt;- * or extension. For configuration details see constructor documentation.
&lt;br&gt;- */
&lt;br&gt;-public final class StandardConverter implements Converter {
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/** Conversion output */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public enum Output {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FEED,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ENTRY
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/** Quantities of entries in feed or logrecords in entry */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public enum Multiplicity {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ONE,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MANY
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/** Entity format */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public enum Format {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CONTENT,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EXTENSION
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Post-processing for feeds/entries properties customization eg setup of dates, titles, author etc.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public interface Postprocessor {
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** Called after entry creation for given log records. */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;void afterEntry(Entry entry, List&amp;lt;LogRecord&amp;gt; records);
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/** Called after feed creation; at this stage feed has associated entries. */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;void afterFeed(Feed feed);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private Factory factory;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private Marshaller marsh;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private DateFormat df;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private Converter worker;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private Postprocessor postprocessor;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Creates configured converter with custom feeds/entries post-processor. Regardless of &amp;quot;format&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * combination of &amp;quot;output&amp;quot; and &amp;quot;multiplicity&amp;quot; flags can be interpreted as follow:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;ul&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;li&amp;gt;ENTRY ONE - for each log record one entry is produced, converter returns list of entries&amp;lt;/li&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;li&amp;gt;ENTRY MANY - list of log records is packed in one entry, converter return one entry.&amp;lt;/li&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;li&amp;gt;FEED ONE - list of log records is packed in one entry, entry is inserted to feed, converter returns
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * one feed.&amp;lt;/li&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;li&amp;gt;FEED MANY - for each log record one entry is produced, entries are collected in one feed, converter
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * returns one feed.&amp;lt;/li&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;lt;/ul&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param output whether root elements if Feed or Entry (e.g. for AtomPub).
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param multiplicity for output==FEED it is multiplicity of entities in feed for output==ENTITY it is
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;multiplicity of log records in entity.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param format log records embedded as entry content or extension.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param postprocessor custom feeds/entries post-processor.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public StandardConverter(Output output, Multiplicity multiplicity, Format format,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Postprocessor postprocessor) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(output, &amp;quot;output is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(multiplicity, &amp;quot;multiplicity is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(format, &amp;quot;format is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Validate.notNull(postprocessor, &amp;quot;interceptor is null&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configure(output, multiplicity, format);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.postprocessor = postprocessor;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;df = new SimpleDateFormat(&amp;quot;yyyy-MM-dd'T'HH:mm:ss.SSSZ&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;factory = Abdera.getNewFactory();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;marsh = JAXBContext.newInstance(LogRecordsList.class).createMarshaller();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (JAXBException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new RuntimeException(e);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &a