<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>commits@cxf.apache.org Archives</title>
<link rel="self" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/?format=atom"/>
<link href="http://mail-archives.apache.org/mod_mbox/cxf-commits/"/>
<id>http://mail-archives.apache.org/mod_mbox/cxf-commits/</id>
<updated>2009-12-07T09:26:05Z</updated>
<entry>
<title>svn commit: r887673 - in /cxf/branches/2.2.x-fixes: ./ systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java</title>
<author><name>eglynn@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091206115948.9C68B238899B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091206115948-9C68B238899B@eris-apache-org%3e</id>
<updated>2009-12-06T11:59:48Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: eglynn
Date: Sun Dec  6 11:59:48 2009
New Revision: 887673

URL: http://svn.apache.org/viewvc?rev=887673&amp;view=rev
Log:
Merged revisions 887669 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r887669 | eglynn | 2009-12-06 11:27:53 +0000 (Sun, 06 Dec 2009) | 2 lines
  
  Unskipping a couple of tests that I'd inadvertantly left commented out
........

Modified:
    cxf/branches/2.2.x-fixes/   (props changed)
    cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Dec  6 11:59:48 2009
@@ -1 +1 @@
-/cxf/trunk:887328,887353
+/cxf/trunk:887328,887353,887669

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java
URL: 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
==============================================================================
--- cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java
(original)
+++ cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java
Sun Dec  6 11:59:48 2009
@@ -104,7 +104,7 @@
     }
 
 
-    //@Test
+    @Test
     public void testOverriddenSequentialStrategy() throws Exception {
         startTarget(REPLICA_C);
         setupGreeterA();
@@ -117,7 +117,7 @@
         stopTarget(REPLICA_C);
     }
     
-    //@Test
+    @Test
     public void testOverriddenRandomStrategy() throws Exception {
         startTarget(REPLICA_B);
         setupGreeterC();




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r887669 - /cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java</title>
<author><name>eglynn@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091206112754.03AA0238899B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091206112754-03AA0238899B@eris-apache-org%3e</id>
<updated>2009-12-06T11:27:53Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: eglynn
Date: Sun Dec  6 11:27:53 2009
New Revision: 887669

URL: http://svn.apache.org/viewvc?rev=887669&amp;view=rev
Log:
Unskipping a couple of tests that I'd inadvertantly left commented out

Modified:
    cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java

Modified: cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java
URL: 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
==============================================================================
--- cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java
(original)
+++ cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java
Sun Dec  6 11:27:53 2009
@@ -104,7 +104,7 @@
     }
 
 
-    //@Test
+    @Test
     public void testOverriddenSequentialStrategy() throws Exception {
         startTarget(REPLICA_C);
         setupGreeterA();
@@ -117,7 +117,7 @@
         stopTarget(REPLICA_C);
     }
     
-    //@Test
+    @Test
     public void testOverriddenRandomStrategy() throws Exception {
         startTarget(REPLICA_B);
         setupGreeterC();




</pre>
</div>
</content>
</entry>
<entry>
<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>
<author><name>dkulp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091204222253.A36EF23889E4@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091204222253-A36EF23889E4@eris-apache-org%3e</id>
<updated>2009-12-04T22:22:53Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: dkulp
Date: Fri Dec  4 22:22:53 2009
New Revision: 887389

URL: http://svn.apache.org/viewvc?rev=887389&amp;view=rev
Log:
Fix compile failure

Modified:
    cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java

Modified: cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java
URL: 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
==============================================================================
--- cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java
(original)
+++ cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java
Fri Dec  4 22:22:53 2009
@@ -91,8 +91,8 @@
     private static void testInterceptors(Bus b) {
         boolean hasServerIn = false;
         boolean hasServerOut = false;
-        List&lt;Interceptor&lt;? extends Message&gt;&gt; inInterceptors = b.getInInterceptors();
-        for (Interceptor&lt;? extends Message&gt; i : inInterceptors) {
+        List&lt;Interceptor&gt; inInterceptors = b.getInInterceptors();
+        for (Interceptor i : inInterceptors) {
             if (i instanceof PolicyInInterceptor) {
                 hasServerIn = true;
             }




</pre>
</div>
</content>
</entry>
<entry>
<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>
<author><name>dkulp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091204210111.56D3B23889BF@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091204210111-56D3B23889BF@eris-apache-org%3e</id>
<updated>2009-12-04T21:01:09Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: dkulp
Date: Fri Dec  4 21:01:08 2009
New Revision: 887356

URL: http://svn.apache.org/viewvc?rev=887356&amp;view=rev
Log:
Merged revisions 887353 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r887353 | dkulp | 2009-12-04 15:49:40 -0500 (Fri, 04 Dec 2009) | 2 lines
  
  [CXF-2572] Fix problem of Message mode provider and oneway operations
  with ws-addressing.  Test from Alexandros Karypidis provided.
........

Added:
    cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/
      - copied from r887353, cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/
    cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/MessageProviderWithAddressingPolicy.java
      - copied unchanged from r887353, cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/MessageProviderWithAddressingPolicy.java
    cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java
      - copied unchanged from r887353, cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java
    cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/server.xml
      - copied unchanged from r887353, cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/server.xml
    cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl
      - copied unchanged from r887353, cxf/trunk/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl
Modified:
    cxf/branches/2.2.x-fixes/   (props changed)
    cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java
    cxf/branches/2.2.x-fixes/systests/ws-specs/pom.xml

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Dec  4 21:01:08 2009
@@ -1 +1 @@
-/cxf/trunk:887328
+/cxf/trunk:887328,887353

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java
URL: 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
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java
(original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java
Fri Dec  4 21:01:08 2009
@@ -147,6 +147,9 @@
     
     private void doSoap(Message message) {
         MessageContentsList list = (MessageContentsList)message.getContent(List.class);
+        if (list == null || list.isEmpty()) {
+            return;
+        }
         Object o = list.get(0);
         if (o instanceof SOAPMessage) {
             SOAPMessage soapMessage = (SOAPMessage)o;

Modified: cxf/branches/2.2.x-fixes/systests/ws-specs/pom.xml
URL: 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
==============================================================================
--- cxf/branches/2.2.x-fixes/systests/ws-specs/pom.xml (original)
+++ cxf/branches/2.2.x-fixes/systests/ws-specs/pom.xml Fri Dec  4 21:01:08 2009
@@ -74,6 +74,21 @@
                 &lt;version&gt;${project.version}&lt;/version&gt;
                 &lt;executions&gt;
                     &lt;execution&gt;
+                        &lt;id&gt;generate-addr-jaxwsmm-sources&lt;/id&gt;
+                        &lt;phase&gt;generate-test-sources&lt;/phase&gt;
+                        &lt;configuration&gt;
+                            &lt;testSourceRoot&gt;${basedir}/target/generated/src/test/java&lt;/testSourceRoot&gt;
+                            &lt;wsdlOptions&gt;
+                                &lt;wsdlOption&gt;
+                                    &lt;wsdl&gt;${basedir}/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl&lt;/wsdl&gt;
+                                &lt;/wsdlOption&gt;
+                            &lt;/wsdlOptions&gt;
+                        &lt;/configuration&gt;
+                        &lt;goals&gt;
+                            &lt;goal&gt;wsdl2java&lt;/goal&gt;
+                        &lt;/goals&gt;
+                    &lt;/execution&gt;
+                    &lt;execution&gt;
                         &lt;id&gt;generate-wssec10-test-sources&lt;/id&gt;
                         &lt;phase&gt;generate-test-sources&lt;/phase&gt;
                         &lt;configuration&gt;




</pre>
</div>
</content>
</entry>
<entry>
<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>
<author><name>dkulp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091204204941.8380923889B3@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091204204941-8380923889B3@eris-apache-org%3e</id>
<updated>2009-12-04T20:49:40Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: dkulp
Date: Fri Dec  4 20:49:40 2009
New Revision: 887353

URL: http://svn.apache.org/viewvc?rev=887353&amp;view=rev
Log:
[CXF-2572] Fix problem of Message mode provider and oneway operations
with ws-addressing.  Test from Alexandros Karypidis provided.

Added:
    cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/
    cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/MessageProviderWithAddressingPolicy.java
  (with props)
    cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java
  (with props)
    cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/server.xml
  (with props)
    cxf/trunk/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl 
 (with props)
Modified:
    cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java
    cxf/trunk/systests/ws-specs/pom.xml

Modified: cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java
(original)
+++ cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java
Fri Dec  4 20:49:40 2009
@@ -147,6 +147,9 @@
     
     private void doSoap(Message message) {
         MessageContentsList list = (MessageContentsList)message.getContent(List.class);
+        if (list == null || list.isEmpty()) {
+            return;
+        }
         Object o = list.get(0);
         if (o instanceof SOAPMessage) {
             SOAPMessage soapMessage = (SOAPMessage)o;

Modified: cxf/trunk/systests/ws-specs/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/ws-specs/pom.xml?rev=887353&amp;r1=887352&amp;r2=887353&amp;view=diff
==============================================================================
--- cxf/trunk/systests/ws-specs/pom.xml (original)
+++ cxf/trunk/systests/ws-specs/pom.xml Fri Dec  4 20:49:40 2009
@@ -74,6 +74,21 @@
                 &lt;version&gt;${project.version}&lt;/version&gt;
                 &lt;executions&gt;
                     &lt;execution&gt;
+                        &lt;id&gt;generate-addr-jaxwsmm-sources&lt;/id&gt;
+                        &lt;phase&gt;generate-test-sources&lt;/phase&gt;
+                        &lt;configuration&gt;
+                            &lt;testSourceRoot&gt;${basedir}/target/generated/src/test/java&lt;/testSourceRoot&gt;
+                            &lt;wsdlOptions&gt;
+                                &lt;wsdlOption&gt;
+                                    &lt;wsdl&gt;${basedir}/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl&lt;/wsdl&gt;
+                                &lt;/wsdlOption&gt;
+                            &lt;/wsdlOptions&gt;
+                        &lt;/configuration&gt;
+                        &lt;goals&gt;
+                            &lt;goal&gt;wsdl2java&lt;/goal&gt;
+                        &lt;/goals&gt;
+                    &lt;/execution&gt;
+                    &lt;execution&gt;
                         &lt;id&gt;generate-wssec10-test-sources&lt;/id&gt;
                         &lt;phase&gt;generate-test-sources&lt;/phase&gt;
                         &lt;configuration&gt;

Added: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/MessageProviderWithAddressingPolicy.java
URL: 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
==============================================================================
--- cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/MessageProviderWithAddressingPolicy.java
(added)
+++ cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/MessageProviderWithAddressingPolicy.java
Fri Dec  4 20:49:40 2009
@@ -0,0 +1,74 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cxf.systest.ws.addr_wsdl.jaxwsmm;
+
+import java.io.StringWriter;
+import java.util.logging.Logger;
+
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Source;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.ws.Provider;
+import javax.xml.ws.Service;
+import javax.xml.ws.ServiceMode;
+import javax.xml.ws.WebServiceProvider;
+
+import org.apache.cxf.common.logging.LogUtils;
+
+@WebServiceProvider(
+    targetNamespace = "http://messaging/",
+    serviceName = "AsyncMessagingService",
+    portName = "AsyncMessagingImplPort")
+@ServiceMode(value = Service.Mode.MESSAGE)
+//FIXME: When using "PAYLOAD" mode, it works; but when using "MESSAGE" mode, it breaks
+//@ServiceMode(value = Service.Mode.PAYLOAD)
+public class MessageProviderWithAddressingPolicy implements Provider&lt;Source&gt; {
+
+    private static final Logger LOG = LogUtils.getLogger(WSDLAddrPolicyAttachmentJaxwsMMProviderTest.class);
+
+    public MessageProviderWithAddressingPolicy() {
+        LOG.info("Creating provider object");
+    }
+
+    public Source invoke(Source request) {
+        TransformerFactory tfactory = TransformerFactory.newInstance();
+        try {
+            /*
+            tfactory.setAttribute("indent-number", "2");
+             */
+            Transformer serializer = tfactory.newTransformer();
+            // Setup indenting to "pretty print"
+            serializer.setOutputProperty(OutputKeys.INDENT, "yes");
+            serializer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
+
+            StringWriter swriter = new StringWriter();
+            serializer.transform(request, new StreamResult(swriter));
+            swriter.flush();
+            LOG.info("Provider received a request\n" + swriter.toString());
+
+        } catch (TransformerException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+}

Propchange: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/MessageProviderWithAddressingPolicy.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/MessageProviderWithAddressingPolicy.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java
URL: 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
==============================================================================
--- cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java
(added)
+++ cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java
Fri Dec  4 20:49:40 2009
@@ -0,0 +1,130 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cxf.systest.ws.addr_wsdl.jaxwsmm;
+
+import java.net.URL;
+import java.util.List;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.bus.spring.SpringBusFactory;
+import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.interceptor.Interceptor;
+import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
+import org.apache.cxf.message.Message;
+import org.apache.cxf.service.model.EndpointInfo;
+import org.apache.cxf.systest.ws.util.ConnectionHelper;
+import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
+import org.apache.cxf.testutil.common.AbstractBusTestServerBase;
+import org.apache.cxf.ws.policy.PolicyInInterceptor;
+import org.apache.cxf.ws.policy.PolicyOutInterceptor;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import messaging.AsyncMessaging;
+import messaging.AsyncMessagingService;
+
+public class WSDLAddrPolicyAttachmentJaxwsMMProviderTest extends AbstractBusClientServerTestBase
{
+
+    private static final Logger LOG = LogUtils.getLogger(WSDLAddrPolicyAttachmentJaxwsMMProviderTest.class);
+
+    private static final String ADDRESS = "http://localhost:9000/AsyncMessagingServiceProvider";
+    private static final String WSDL_ADDRESS = ADDRESS + "?wsdl";
+    private static final QName ENDPOINT_NAME = new QName("http://messaging/", "AsyncMessagingService");
+
+    public static class Server extends AbstractBusTestServerBase {
+
+        protected void run() {
+            SpringBusFactory bf = new SpringBusFactory();
+            Bus bus = bf.createBus("org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/server.xml");
+
+            JaxWsServerFactoryBean serviceFactory = new JaxWsServerFactoryBean();
+            serviceFactory.setBus(bus);
+            serviceFactory.setServiceClass(MessageProviderWithAddressingPolicy.class);
+            serviceFactory.setWsdlLocation("wsdl_systest_wsspec/addr-jaxwsmm.wsdl");
+            serviceFactory.setAddress(ADDRESS);
+            org.apache.cxf.endpoint.Server provider = serviceFactory.create();
+            EndpointInfo ei = provider.getEndpoint().getEndpointInfo();
+            LOG.info("Started server at: " + ei.getAddress());
+
+            testInterceptors(bus);
+        }
+
+        public static void main(String[] args) {
+            try {
+                Server s = new Server();
+                s.start();
+            } catch (Exception ex) {
+                ex.printStackTrace();
+                System.exit(-1);
+            } finally {
+                System.out.println("done!");
+            }
+        }
+    }
+
+    @BeforeClass
+    public static void startServers() throws Exception {
+        assertTrue("server did not launch correctly", launchServer(Server.class, true));
+    }
+
+    private static void testInterceptors(Bus b) {
+        boolean hasServerIn = false;
+        boolean hasServerOut = false;
+        List&lt;Interceptor&lt;? extends Message&gt;&gt; inInterceptors = b.getInInterceptors();
+        for (Interceptor&lt;? extends Message&gt; i : inInterceptors) {
+            if (i instanceof PolicyInInterceptor) {
+                hasServerIn = true;
+            }
+        }
+        assertTrue(hasServerIn);
+
+        for (Interceptor&lt;? extends Message&gt; i : b.getOutInterceptors()) {
+            if (i instanceof PolicyOutInterceptor) {
+                hasServerOut = true;
+            }
+        }
+        assertTrue(hasServerOut);
+    }
+
+    @Test
+    public void testUsingAddressing() throws Exception {
+        SpringBusFactory bf = new SpringBusFactory();
+
+        bus = bf.createBus("org/apache/cxf/systest/ws/policy/addr-inline-policy-old.xml");
+
+        BusFactory.setDefaultBus(bus);
+
+        URL wsdlURL = new URL(WSDL_ADDRESS);
+
+        AsyncMessagingService ams = new AsyncMessagingService(wsdlURL, ENDPOINT_NAME);
+        AsyncMessaging am = ams.getAsyncMessagingImplPort();
+
+        ConnectionHelper.setKeepAliveConnection(am, true);
+        testInterceptors(bus);
+
+        // oneway
+        am.deliver("This is a test");
+        am.deliver("This is another test");
+    }
+}

Propchange: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/WSDLAddrPolicyAttachmentJaxwsMMProviderTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/server.xml
URL: 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
==============================================================================
--- cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/server.xml
(added)
+++ cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/server.xml
Fri Dec  4 20:49:40 2009
@@ -0,0 +1,43 @@
+&lt;beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:jee="http://www.springframework.org/schema/jee"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:cxf="http://cxf.apache.org/core"
+	xmlns:http="http://cxf.apache.org/transports/http/configuration"
+	xmlns:jaxws="http://cxf.apache.org/jaxws"
+	xmlns:wsa="http://cxf.apache.org/ws/addressing"
+	xmlns:wsrm-mgr="http://cxf.apache.org/ws/rm/manager"
+	xmlns:camel-transport="http://cxf.apache.org/transports/camel"
+
+	xsi:schemaLocation="
+	    http://www.springframework.org/schema/beans
+	    http://www.springframework.org/schema/beans/spring-beans.xsd
+		http://www.springframework.org/schema/jee
+		http://www.springframework.org/schema/jee/spring-jee.xsd
+	    http://cxf.apache.org/core
+	    http://cxf.apache.org/schemas/core.xsd
+	    http://cxf.apache.org/transports/http/configuration
+	    http://cxf.apache.org/schemas/configuration/http-conf.xsd
+	    http://cxf.apache.org/jaxws
+		http://cxf.apache.org/schemas/jaxws.xsd
+	    http://cxf.apache.org/ws/addressing
+	    http://cxf.apache.org/schemas/ws-addr-conf.xsd
+	    http://cxf.apache.org/ws/rm/manager
+	    http://cxf.apache.org/schemas/configuration/wsrm-manager.xsd
+		http://cxf.apache.org/transports/camel
+		http://cxf.apache.org/transports/camel.xsd
+	"&gt;
+
+	&lt;import resource="classpath:META-INF/cxf/cxf.xml" /&gt;
+	&lt;import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /&gt;
+	&lt;import resource="classpath:META-INF/cxf/cxf-extension-xml.xml" /&gt;
+	&lt;import resource="classpath:META-INF/cxf/cxf-extension-http.xml" /&gt;
+	&lt;import resource="classpath:META-INF/cxf/cxf-extension-addr.xml" /&gt;
+	&lt;import resource="classpath:META-INF/cxf/cxf-extension-jaxws.xml" /&gt;
+	&lt;import resource="classpath:META-INF/cxf/cxf-extension-policy.xml" /&gt;
+
+	&lt;jaxws:endpoint
+		id="asyncMessagingProvider"
+		implementor="org.apache.cxf.systest.ws.addr_wsdl.jaxwsmm.MessageProviderWithAddressingPolicy"
+		createdFromAPI="true"
+	/&gt;
+&lt;/beans&gt;

Propchange: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/server.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/server.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/jaxwsmm/server.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: cxf/trunk/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl?rev=887353&amp;view=auto
==============================================================================
--- cxf/trunk/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl (added)
+++ cxf/trunk/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl Fri
Dec  4 20:49:40 2009
@@ -0,0 +1,68 @@
+&lt;definitions
+	name='AsyncMessagingService'
+	targetNamespace='http://messaging/'
+	xmlns:tns='http://messaging/'
+	
+	xmlns='http://schemas.xmlsoap.org/wsdl/'
+	xmlns:xsd='http://www.w3.org/2001/XMLSchema'
+	xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
+	xmlns:wsp='http://www.w3.org/ns/ws-policy'
+	xmlns:wsam='http://www.w3.org/2007/05/addressing/metadata'
+
+	xmlns:wsu='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd'
+	xmlns:sp='http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702'&gt;
+
+	&lt;types&gt;
+		&lt;xs:schema targetNamespace='http://messaging/' version='1.0'
+			xmlns:tns='http://messaging/' xmlns:xs='http://www.w3.org/2001/XMLSchema'&gt;
+			&lt;xs:element name='deliver' type='tns:deliver' /&gt;
+			&lt;xs:complexType name='deliver'&gt;
+				&lt;xs:sequence&gt;
+					&lt;xs:element minOccurs='1' name='message' type='xs:string' /&gt;
+				&lt;/xs:sequence&gt;
+			&lt;/xs:complexType&gt;
+		&lt;/xs:schema&gt;
+	&lt;/types&gt;
+
+	&lt;message name='AsyncMessaging_deliver'&gt;
+		&lt;part element='tns:deliver' name='deliver' /&gt;
+	&lt;/message&gt;
+
+	&lt;portType name='AsyncMessaging'&gt;
+		&lt;operation name='deliver'&gt;
+			&lt;input message='tns:AsyncMessaging_deliver'&gt;&lt;/input&gt;
+		&lt;/operation&gt;
+	&lt;/portType&gt;
+
+	&lt;binding name='AsyncMessagingBinding' type='tns:AsyncMessaging'&gt;
+		&lt;!-- ALX: comment out the binding below if you don't want RM --&gt;
+		&lt;wsp:PolicyReference URI='#testPolicy' /&gt;
+
+		&lt;soap:binding style='document'
+			transport='http://schemas.xmlsoap.org/soap/http' /&gt;
+		&lt;operation name='deliver'&gt;
+			&lt;!--
+				ALX: SOAP action must NOT be declared; the WS stack will have it
+				match the HTTP header &lt;soap:operation soapAction='deliver' /&gt;
+			--&gt;
+			&lt;input&gt;
+				&lt;soap:body parts='deliver' use='literal' /&gt;
+			&lt;/input&gt;
+		&lt;/operation&gt;
+	&lt;/binding&gt;
+
+	&lt;service name='AsyncMessagingService'&gt;
+		&lt;port binding='tns:AsyncMessagingBinding' name='AsyncMessagingImplPort'&gt;
+			&lt;soap:address
+				location='http://localhost:8180/jboss-Ecxf.wsrm.recipient/AsyncMessagingService' /&gt;
+		&lt;/port&gt;
+	&lt;/service&gt;
+
+	&lt;wsp:UsingPolicy /&gt;
+	&lt;wsp:Policy wsu:Id='testPolicy'&gt;
+	    &lt;wsam:Addressing&gt;
+	        &lt;wsp:Policy/&gt;
+	    &lt;/wsam:Addressing&gt;
+	&lt;/wsp:Policy&gt;
+
+&lt;/definitions&gt;

Propchange: cxf/trunk/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/addr-jaxwsmm.wsdl
------------------------------------------------------------------------------
    svn:mime-type = text/xml




</pre>
</div>
</content>
</entry>
<entry>
<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>
<author><name>dkulp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091204193452.10877238899B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091204193452-10877238899B@eris-apache-org%3e</id>
<updated>2009-12-04T19:34:52Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: dkulp
Date: Fri Dec  4 19:34:50 2009
New Revision: 887329

URL: http://svn.apache.org/viewvc?rev=887329&amp;view=rev
Log:
Merged revisions 887328 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r887328 | dkulp | 2009-12-04 14:28:17 -0500 (Fri, 04 Dec 2009) | 2 lines
  
  [CXF-2553] Add WS-SecPolicy based UsernameToken sample.
  Contribution from Oliver Wulff
........

Added:
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/
      - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/README.txt
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/README.txt
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/bin/
      - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/bin/
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/bin/gencerts.sh
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/bin/gencerts.sh
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/build.xml
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/build.xml
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/
      - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/ca.crl
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/ca.crl
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/cacert.pem
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cacert.pem
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/caprivkey.pem
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/caprivkey.pem
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry-ra-cert.pem
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry-ra-cert.pem
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.chain
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.chain
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.jks
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.jks
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrcherry.pem
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrcherry.pem
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrra.pem
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrra.pem
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrwibble.pem
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrwibble.pem
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/
      - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr.old
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr.old
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.old
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.old
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/
      - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1345.pem
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1345.pem
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1346.pem
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1346.pem
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1347.pem
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1347.pem
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial.old
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial.old
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/exts
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/exts
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/ra-ca-cert.pem
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/ra-ca-cert.pem
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/raprivkey.pem
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/raprivkey.pem
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/truststore.jks
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/truststore.jks
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble-ra-cert.pem
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble-ra-cert.pem
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.chain
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.chain
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.jks
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.jks
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/pom.xml
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/pom.xml
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/
      - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/
      - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/
      - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/
      - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/Client.java
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/Client.java
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/UTPasswordCallback.java
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/UTPasswordCallback.java
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/wssec.xml
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/wssec.xml
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/
      - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/abigcompany_ca.pem
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/abigcompany_ca.pem
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtix.p12
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtix.p12
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtixp12.truststore
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtixp12.truststore
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/
      - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/GreeterImpl.java
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/GreeterImpl.java
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/Server.java
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/Server.java
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/UTPasswordCallback.java
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/UTPasswordCallback.java
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/wssec.xml
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/wssec.xml
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/
      - copied from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world.wsdl
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world.wsdl
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world_no_policy.wsdl
      - copied unchanged from r887328, cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world_no_policy.wsdl
Modified:
    cxf/branches/2.2.x-fixes/   (props changed)

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
    svn:mergeinfo = /cxf/trunk:887328

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.




</pre>
</div>
</content>
</entry>
<entry>
<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>
<author><name>dkulp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091204192822.E7D5B23889B6@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091204192822-E7D5B23889B6@eris-apache-org%3e</id>
<updated>2009-12-04T19:28:19Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtix.p12
URL: 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
==============================================================================
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  4 19:28:17 2009 differ

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtixp12.truststore
URL: 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
==============================================================================
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  4 19:28:17 2009 differ

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/GreeterImpl.java
URL: 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
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/GreeterImpl.java
(added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/GreeterImpl.java
Fri Dec  4 19:28:17 2009
@@ -0,0 +1,43 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package demo.wssec.server;
+
+import java.util.logging.Logger;
+import org.apache.hello_world_soap_http.Greeter;
+
+@javax.jws.WebService(name = "Greeter", serviceName = "SOAPService", 
+                      targetNamespace = "http://apache.org/hello_world_soap_http", 
+                      wsdlLocation = "file:./wsdl/hello_world.wsdl")
+                  
+public class GreeterImpl implements Greeter {
+
+    private static final Logger LOG = 
+        Logger.getLogger(GreeterImpl.class.getPackage().getName());
+    
+    /* (non-Javadoc)
+     * @see org.objectweb.hello_world_soap_http.Greeter#greetMe(java.lang.String)
+     */
+    public String greetMe(String me) {
+        LOG.info("Executing operation greetMe");
+        System.out.println("Executing operation greetMe");
+        System.out.println("Message received: " + me + "\n");
+        return "Hello " + me;
+    }
+}

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/GreeterImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/GreeterImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/Server.java
URL: 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
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/Server.java
(added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/Server.java
Fri Dec  4 19:28:17 2009
@@ -0,0 +1,56 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package demo.wssec.server;
+
+import java.net.URL;
+
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.bus.spring.SpringBusFactory;
+
+public class Server {
+
+    protected Server() throws Exception {
+        System.out.println("Starting Server");
+
+        SpringBusFactory bf = new SpringBusFactory();
+        URL busFile = Server.class.getResource("wssec.xml");
+        Bus bus = bf.createBus(busFile.toString());
+        bf.setDefaultBus(bus);
+
+        //Object implementor = new GreeterImpl();
+        //String address = "https://localhost:9001/SoapContext/SoapPort";
+        //Endpoint.publish(address, implementor);
+    }
+
+    public static void main(String args[]) throws Exception {
+        System.out.println("The server's security configuration will be taken "
+                           + "from server.xml using the bean name : "
+                           + "\"{http://apache.org/hello_world_soap_http}"
+                           + "GreeterImplPort.http-destination\".");
+        System.out.println();
+        new Server();
+        System.out.println("Server ready...");
+
+        Thread.sleep(5 * 60 * 1000);
+        System.out.println("Server exiting");
+        System.exit(0);
+    }
+}

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/Server.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/Server.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/UTPasswordCallback.java
URL: 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
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/UTPasswordCallback.java
(added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/UTPasswordCallback.java
Fri Dec  4 19:28:17 2009
@@ -0,0 +1,71 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package demo.wssec.server;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.UnsupportedCallbackException;
+
+import org.apache.ws.security.WSPasswordCallback;
+
+/**
+ */
+
+public class UTPasswordCallback implements CallbackHandler {
+
+    private Map&lt;String, String&gt; passwords =
+        new HashMap&lt;String, String&gt;();
+
+    public UTPasswordCallback() {
+        passwords.put("Alice", "ecilA");
+        passwords.put("abcd", "dcba");
+    }
+
+    /**
+     * Here, we attempt to get the password from the private
+     * alias/passwords map.
+     */
+    public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException
{
+        for (int i = 0; i &lt; callbacks.length; i++) {
+            WSPasswordCallback pc = (WSPasswordCallback)callbacks[i];
+
+            String pass = passwords.get(pc.getIdentifier());
+            if (pass != null) {
+                pc.setPassword(pass);
+                return;
+            }
+        }
+
+        //
+        // Password not found
+        //
+        throw new IOException();
+    }
+
+    /**
+     * Add an alias/password pair to the callback mechanism.
+     */
+    public void setAliasPassword(String alias, String password) {
+        passwords.put(alias, password);
+    }
+}

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/UTPasswordCallback.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/UTPasswordCallback.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/wssec.xml
URL: 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
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/wssec.xml
(added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/wssec.xml
Fri Dec  4 19:28:17 2009
@@ -0,0 +1,105 @@
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+  
+  http://www.apache.org/licenses/LICENSE-2.0
+  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+--&gt;
+
+&lt;!-- 
+  ** This file configures the Cherry Server.
+ --&gt;
+
+&lt;beans xmlns="http://www.springframework.org/schema/beans"
+  xmlns:cxf="http://cxf.apache.org/core"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xmlns:sec="http://cxf.apache.org/configuration/security"
+  xmlns:http="http://cxf.apache.org/transports/http/configuration"
+  xmlns:httpj="http://cxf.apache.org/transports/http-jetty/configuration"
+  xmlns:jaxws="http://cxf.apache.org/jaxws"
+  xsi:schemaLocation="
+            http://cxf.apache.org/core
+            http://cxf.apache.org/schemas/core.xsd 
+            http://cxf.apache.org/configuration/security  		      
+            http://cxf.apache.org/schemas/configuration/security.xsd
+            http://cxf.apache.org/jaxws
+            http://cxf.apache.org/schemas/jaxws.xsd
+            http://cxf.apache.org/transports/http/configuration
+            http://cxf.apache.org/schemas/configuration/http-conf.xsd
+            http://cxf.apache.org/transports/http-jetty/configuration
+            http://cxf.apache.org/schemas/configuration/http-jetty.xsd
+            http://www.springframework.org/schema/beans
+            http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"&gt;
+
+    &lt;cxf:bus&gt;
+        &lt;cxf:features&gt;
+            &lt;cxf:logging/&gt;
+        &lt;/cxf:features&gt;
+    &lt;/cxf:bus&gt;
+
+  &lt;!--
+  &lt;http:destination name="{http://apache.org/hello_world_soap_http}GreeterPort.http-destination"&gt;

+  &lt;/http:destination&gt;
+  --&gt;
+  
+  &lt;jaxws:endpoint id="server"
+    endpointName="s:SoapPort"
+    serviceName="s:SOAPService"
+    implementor="demo.wssec.server.GreeterImpl"    
+    address="https://localhost:9001/SoapContext/SoapPort"
+    wsdlLocation="wsdl/hello_world.wsdl"
+    depends-on="ClientAuthHttpsSettings"
+    xmlns:s="http://apache.org/hello_world_soap_http" &gt;
+    
+    &lt;jaxws:properties&gt;
+        &lt;entry key="ws-security.callback-handler" value="demo.wssec.server.UTPasswordCallback"
/&gt;
+        &lt;!--&lt;entry key="passwordCallbackRef"&gt;
+           &lt;ref bean="myPasswordCallback"/&gt;
+        &lt;/entry&gt;--&gt;
+    &lt;/jaxws:properties&gt;
+  &lt;/jaxws:endpoint&gt;
+  
+  &lt;!--
+  &lt;bean id="myPasswordCallback"
+      class="demo.hw_https.server.UTPasswordCallback"/&gt;
+  --&gt;
+
+  &lt;httpj:engine-factory id="ClientAuthHttpsSettings"&gt;
+   &lt;httpj:engine port="9001"&gt;
+    &lt;httpj:tlsServerParameters&gt;
+      &lt;sec:keyManagers keyPassword="password"&gt;
+           &lt;sec:keyStore type="JKS" password="password" 
+                file="certs/cherry.jks"/&gt;
+      &lt;/sec:keyManagers&gt;
+      &lt;sec:trustManagers&gt;
+          &lt;sec:keyStore type="JKS" password="password"
+               file="certs/truststore.jks"/&gt;
+      &lt;/sec:trustManagers&gt;
+      &lt;sec:cipherSuitesFilter&gt;
+        &lt;!-- these filters ensure that a ciphersuite with
+          export-suitable or null encryption is used,
+          but exclude anonymous Diffie-Hellman key change as
+          this is vulnerable to man-in-the-middle attacks --&gt;
+        &lt;sec:include&gt;.*_EXPORT_.*&lt;/sec:include&gt;
+        &lt;sec:include&gt;.*_EXPORT1024_.*&lt;/sec:include&gt;
+        &lt;sec:include&gt;.*_WITH_DES_.*&lt;/sec:include&gt;
+        &lt;sec:include&gt;.*_WITH_NULL_.*&lt;/sec:include&gt;
+        &lt;sec:exclude&gt;.*_DH_anon_.*&lt;/sec:exclude&gt;
+      &lt;/sec:cipherSuitesFilter&gt;
+      &lt;sec:clientAuthentication want="true" required="true"/&gt;
+    &lt;/httpj:tlsServerParameters&gt;
+   &lt;/httpj:engine&gt;
+  &lt;/httpj:engine-factory&gt;
+&lt;/beans&gt;

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/wssec.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/wssec.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/wssec.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world.wsdl
URL: 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
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world.wsdl
(added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world.wsdl
Fri Dec  4 19:28:17 2009
@@ -0,0 +1,106 @@
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+ 
+  http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+--&gt;
+&lt;wsdl:definitions name="HelloWorld" targetNamespace="http://apache.org/hello_world_soap_http"

+    xmlns="http://schemas.xmlsoap.org/wsdl/" 
+    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
+    xmlns:tns="http://apache.org/hello_world_soap_http"
+    xmlns:x1="http://apache.org/hello_world_soap_http/types"
+    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
+    &lt;wsdl:types&gt;
+        &lt;schema targetNamespace="http://apache.org/hello_world_soap_http/types" 
+            xmlns="http://www.w3.org/2001/XMLSchema"
+	    xmlns:tns="http://apache.org/hello_world_soap_http/types"
+            elementFormDefault="qualified"&gt;
+
+	    &lt;simpleType name="MyStringType"&gt;
+		&lt;restriction base="string"&gt;
+		    &lt;maxLength value="30" /&gt;
+		&lt;/restriction&gt;
+	    &lt;/simpleType&gt;
+
+            &lt;element name="greetMe"&gt;
+                &lt;complexType&gt;
+                    &lt;sequence&gt;
+                        &lt;element name="requestType" type="tns:MyStringType"/&gt;
+                    &lt;/sequence&gt;
+                &lt;/complexType&gt;
+            &lt;/element&gt;
+            &lt;element name="greetMeResponse"&gt;
+                &lt;complexType&gt;
+                    &lt;sequence&gt;
+                        &lt;element name="responseType" type="string"/&gt;
+                    &lt;/sequence&gt;
+                &lt;/complexType&gt;
+            &lt;/element&gt;
+        &lt;/schema&gt;
+    &lt;/wsdl:types&gt;
+    &lt;wsdl:message name="greetMeRequest"&gt;
+        &lt;wsdl:part element="x1:greetMe" name="in"/&gt;
+    &lt;/wsdl:message&gt;
+    &lt;wsdl:message name="greetMeResponse"&gt;
+        &lt;wsdl:part element="x1:greetMeResponse" name="out"/&gt;
+    &lt;/wsdl:message&gt;
+    
+    &lt;wsdl:portType name="Greeter"&gt;
+        
+        &lt;wsdl:operation name="greetMe"&gt;
+            &lt;wsdl:input message="tns:greetMeRequest" name="greetMeRequest"/&gt;
+            &lt;wsdl:output message="tns:greetMeResponse" name="greetMeResponse"/&gt;
+        &lt;/wsdl:operation&gt;
+        
+    &lt;/wsdl:portType&gt;
+    &lt;wsdl:binding name="Greeter_SOAPBinding" type="tns:Greeter"&gt;
+        &lt;soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/&gt;
+        
+        &lt;wsdl:operation name="greetMe"&gt;
+            &lt;soap:operation soapAction="" style="document"/&gt;
+            &lt;wsdl:input name="greetMeRequest"&gt;
+                &lt;soap:body use="literal"/&gt;
+            &lt;/wsdl:input&gt;
+            &lt;wsdl:output name="greetMeResponse"&gt;
+                &lt;soap:body use="literal"/&gt;
+            &lt;/wsdl:output&gt;
+        &lt;/wsdl:operation&gt;
+        
+        
+    &lt;/wsdl:binding&gt;
+    &lt;wsdl:service name="SOAPService"&gt;
+        &lt;wsdl:port binding="tns:Greeter_SOAPBinding" name="SoapPort"&gt;
+            &lt;wsp:PolicyReference xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
URI="#UP_policy"/&gt;
+            &lt;soap:address location="https://localhost:9001/SoapContext/SoapPort"/&gt;
+        &lt;/wsdl:port&gt;
+    &lt;/wsdl:service&gt;
+    
+    &lt;wsp:Policy wsu:Id="UP_policy" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"&gt;
+    &lt;sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"&gt;
+    &lt;wsp:Policy&gt;&lt;sp:TransportToken&gt;&lt;wsp:Policy&gt;&lt;sp:HttpsToken/&gt;&lt;/wsp:Policy&gt;&lt;/sp:TransportToken&gt;&lt;sp:Layout&gt;&lt;wsp:Policy&gt;&lt;sp:Strict/&gt;&lt;/wsp:Policy&gt;&lt;/sp:Layout&gt;&lt;sp:AlgorithmSuite&gt;&lt;wsp:Policy&gt;&lt;sp:Basic128/&gt;&lt;/wsp:Policy&gt;&lt;/sp:AlgorithmSuite&gt;&lt;/wsp:Policy&gt;
+    &lt;/sp:TransportBinding&gt;    
+    &lt;sp:SupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"&gt;
+    &lt;wsp:Policy&gt;
+    &lt;sp:UsernameToken xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"
sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Always"&gt;
+    &lt;wsp:Policy&gt;
+    &lt;sp:WssUsernameToken11/&gt;
+    &lt;/wsp:Policy&gt;
+    &lt;/sp:UsernameToken&gt;
+    &lt;/wsp:Policy&gt;&lt;/sp:SupportingTokens&gt;&lt;/wsp:Policy&gt;
+        
+&lt;/wsdl:definitions&gt;
+

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world.wsdl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world.wsdl
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world.wsdl
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world_no_policy.wsdl
URL: 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
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world_no_policy.wsdl
(added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world_no_policy.wsdl
Fri Dec  4 19:28:17 2009
@@ -0,0 +1,93 @@
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+ 
+  http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+--&gt;
+&lt;wsdl:definitions name="HelloWorld" targetNamespace="http://apache.org/hello_world_soap_http"

+    xmlns="http://schemas.xmlsoap.org/wsdl/" 
+    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
+    xmlns:tns="http://apache.org/hello_world_soap_http"
+    xmlns:x1="http://apache.org/hello_world_soap_http/types"
+    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
+    &lt;wsdl:types&gt;
+        &lt;schema targetNamespace="http://apache.org/hello_world_soap_http/types" 
+            xmlns="http://www.w3.org/2001/XMLSchema"
+	    xmlns:tns="http://apache.org/hello_world_soap_http/types"
+            elementFormDefault="qualified"&gt;
+
+	    &lt;simpleType name="MyStringType"&gt;
+		&lt;restriction base="string"&gt;
+		    &lt;maxLength value="30" /&gt;
+		&lt;/restriction&gt;
+	    &lt;/simpleType&gt;
+
+            &lt;element name="greetMe"&gt;
+                &lt;complexType&gt;
+                    &lt;sequence&gt;
+                        &lt;element name="requestType" type="tns:MyStringType"/&gt;
+                    &lt;/sequence&gt;
+                &lt;/complexType&gt;
+            &lt;/element&gt;
+            &lt;element name="greetMeResponse"&gt;
+                &lt;complexType&gt;
+                    &lt;sequence&gt;
+                        &lt;element name="responseType" type="string"/&gt;
+                    &lt;/sequence&gt;
+                &lt;/complexType&gt;
+            &lt;/element&gt;
+        &lt;/schema&gt;
+    &lt;/wsdl:types&gt;
+    &lt;wsdl:message name="greetMeRequest"&gt;
+        &lt;wsdl:part element="x1:greetMe" name="in"/&gt;
+    &lt;/wsdl:message&gt;
+    &lt;wsdl:message name="greetMeResponse"&gt;
+        &lt;wsdl:part element="x1:greetMeResponse" name="out"/&gt;
+    &lt;/wsdl:message&gt;
+    
+    &lt;wsdl:portType name="Greeter"&gt;
+        
+        &lt;wsdl:operation name="greetMe"&gt;
+            &lt;wsdl:input message="tns:greetMeRequest" name="greetMeRequest"/&gt;
+            &lt;wsdl:output message="tns:greetMeResponse" name="greetMeResponse"/&gt;
+        &lt;/wsdl:operation&gt;
+        
+    &lt;/wsdl:portType&gt;
+    &lt;wsdl:binding name="Greeter_SOAPBinding" type="tns:Greeter"&gt;
+        &lt;soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/&gt;
+        
+        &lt;wsdl:operation name="greetMe"&gt;
+            &lt;soap:operation soapAction="" style="document"/&gt;
+            &lt;wsdl:input name="greetMeRequest"&gt;
+                &lt;soap:body use="literal"/&gt;
+            &lt;/wsdl:input&gt;
+            &lt;wsdl:output name="greetMeResponse"&gt;
+                &lt;soap:body use="literal"/&gt;
+            &lt;/wsdl:output&gt;
+        &lt;/wsdl:operation&gt;
+        
+        
+    &lt;/wsdl:binding&gt;
+    &lt;wsdl:service name="SOAPService"&gt;
+        &lt;wsdl:port binding="tns:Greeter_SOAPBinding" name="SoapPort"&gt;
+            &lt;soap:address location="https://localhost:9001/SoapContext/SoapPort"/&gt;
+        &lt;/wsdl:port&gt;
+    &lt;/wsdl:service&gt;
+    
+        
+&lt;/wsdl:definitions&gt;
+

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world_no_policy.wsdl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world_no_policy.wsdl
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world_no_policy.wsdl
------------------------------------------------------------------------------
    svn:mime-type = text/xml




</pre>
</div>
</content>
</entry>
<entry>
<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>
<author><name>dkulp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091204192822.E0058238899B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091204192822-E0058238899B@eris-apache-org%3e</id>
<updated>2009-12-04T19:28:19Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: dkulp
Date: Fri Dec  4 19:28:17 2009
New Revision: 887328

URL: http://svn.apache.org/viewvc?rev=887328&amp;view=rev
Log:
[CXF-2553] Add WS-SecPolicy based UsernameToken sample.
Contribution from Oliver Wulff

Added:
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/README.txt   (with props)
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/bin/
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/bin/gencerts.sh   (with props)
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/build.xml   (with props)
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/ca.crl
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cacert.pem
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/caprivkey.pem
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry-ra-cert.pem
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.chain
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.jks
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrcherry.pem
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrra.pem
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrwibble.pem
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt   (with props)
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr.old
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.old
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1345.pem
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1346.pem
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1347.pem
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial.old
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/exts
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/ra-ca-cert.pem
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/raprivkey.pem
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/truststore.jks
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble-ra-cert.pem
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.chain
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.jks
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/pom.xml   (with props)
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/Client.java   (with props)
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/UTPasswordCallback.java   (with props)
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/wssec.xml   (with props)
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/abigcompany_ca.pem
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtix.p12
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/celtixp12.truststore
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/GreeterImpl.java   (with props)
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/Server.java   (with props)
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/UTPasswordCallback.java   (with props)
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/server/wssec.xml   (with props)
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world.wsdl   (with props)
    cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/wsdl/hello_world_no_policy.wsdl   (with props)

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/README.txt
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/README.txt?rev=887328&amp;view=auto
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/README.txt (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/README.txt Fri Dec  4 19:28:17 2009
@@ -0,0 +1,148 @@
+WS-Security Demo  (UsernameToken and Timestamp)
+=================
+
+This demo shows how WS-Security support in Apache CXF may be enabled.
+
+WS-Security can be configured to the Client and Server endpoints by adding
+WS-SecurityPolicies into the WSDL.
+
+The logging feature is used to log the inbound and outbound
+SOAP messages and display these to the console.
+
+In all other respects this demo is based on the basic hello_world sample.
+
+Please review the README in the samples directory before continuing.
+
+
+Prerequisite
+------------
+
+If your environment already includes cxf-manifest.jar on the CLASSPATH,
+and the JDK and ant bin directories on the PATH, it is not necessary to
+run the environment script described in the samples directory README.
+If your environment is not properly configured, or if you are planning
+on using wsdl2java, javac, and java to build and run the demos, you must
+set the environment by running the script.
+
+
+*** Requirements ***
+
+The samples in this directory use STRONG encryption.  The default encryption algorithms
+included in a JRE is not adequate for these samples.   The Java Cryptography Extension
+(JCE) Unlimited Strength Jurisdiction Policy Files available on Sun's JDK download
+page[3] *must* be installed for the examples to work.   If you get errors about invalid
+key lengths, the Unlimited Strength files are not installed.
+
+[3] http://java.sun.com/javase/downloads/index.jsp
+
+
+Building and running the demo using Ant
+---------------------------------------
+
+From the base directory of this sample (i.e., where this README file is
+located), the Ant build.xml file can be used to build and run the demo.
+The server and client targets automatically build the demo.
+
+Using either UNIX or Windows:
+
+  ant server  (from one command line window)
+  ant client  (from a second command line window)
+
+On startup, the client makes one invocation.
+
+You can use the target client.unauthenticated to show that the policy UsernameToken is enforced by the server.
+
+To remove the code generated from the WSDL file and the .class
+files, run "ant clean".
+
+
+Building and running the demo using Maven
+---------------------------------------
+
+From the base directory of this sample (i.e., where this README file is
+located), the maven pom.xml file can be used to build and run the demo.
+
+
+Using either UNIX or Windows:
+
+  mvn install (builds the demo)
+  mvn -Pserver  (from one command line window)
+  Mvn -Pclient  (from a second command line window)
+
+On startup, the client makes one invocation.
+
+You can use the profile client.unauthenticated to show that the policy UsernameToken is enforced by the server.
+
+To remove the code generated from the WSDL file and the .class
+files, run "mvn clean".
+
+
+
+Building the demo using wsdl2java and javac
+-------------------------------------------
+
+From the base directory of this sample (i.e., where this README file is
+located) first create the target directory build/classes and then
+generate code from the WSDL file.
+
+
+For UNIX:
+  mkdir -p build/classes
+
+  wsdl2java -d build/classes -compile ./wsdl/hello_world_wssec.wsdl
+
+For Windows:
+  mkdir build\classes
+    Must use back slashes.
+
+  wsdl2java -d build\classes -compile .\wsdl\hello_world_wssec.wsdl
+    May use either forward or back slashes.
+
+Now compile the provided client and server applications with the commands:
+
+For UNIX:
+
+  export CLASSPATH=$CLASSPATH:$CXF_HOME/lib/cxf-manifest.jar:./build/classes
+  javac -d build/classes src/demo/wssec/common/*.java
+  javac -d build/classes src/demo/wssec/client/*.java
+  javac -d build/classes src/demo/wssec/server/*.java
+
+For Windows:
+  set classpath=%classpath%;%CXF_HOME%\lib\cxf-manifest.jar;.\build\classes
+  javac -d build\classes src\demo\wssec\common\*.java
+  javac -d build\classes src\demo\wssec\client\*.java
+  javac -d build\classes src\demo\wssec\server\*.java
+
+
+Running the demo using java
+---------------------------
+
+From the base directory of this sample (i.e., where this README file is
+located) run the commands, entered on a single command line:
+
+For UNIX (must use forward slashes):
+    java -Djava.util.logging.config.file=./logging.properties
+         demo.wssec.server.Server &amp;
+
+    java -Djava.util.logging.config.file=./logging.properties
+         demo.wssec.client.Client ./wsdl/hello_world_wssec.wsdl
+
+The server process starts in the background.
+
+For Windows (may use either forward or back slashes):
+  start
+    java -Djava.util.logging.config.file=.\logging.properties
+         demo.wssec.server.Server
+
+    java -Djava.util.logging.config.file=.\logging.properties
+         demo.wssec.client.Client .\wsdl\hello_world_wssec.wsdl
+
+The server process starts in a new command window.
+
+After running the client, terminate the server process.
+
+To remove the code generated from the WSDL file and the .class
+files, either delete the build directory and its contents or run:
+
+  ant clean
+

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/README.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/README.txt
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/bin/gencerts.sh
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/bin/gencerts.sh?rev=887328&amp;view=auto
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/bin/gencerts.sh (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/bin/gencerts.sh Fri Dec  4 19:28:17 2009
@@ -0,0 +1,163 @@
+#!/bin/sh
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+#
+# This file uses openssl and keytool to generate 2 chains of 3 certificates 
+# CN=Wibble             CN=Cherry
+#             CN=TheRA
+#             CN=TheCA
+# and generates a CRL to revoke the "CN=TheRA" certificate.
+#
+# This file also serves as a specification on what needs to be done to
+# get the underlying CXF to work correctly.
+# For the most part, you need to use only JKS (Java Key Store) formatted
+# keystores and truststores.
+
+
+# Initialize the default openssl DataBase.
+# According to a default /usr/lib/ssl/openssl.cnf file it is ./demoCA
+# Depending on the Openssl version, comment out "crlnumber" in config file.
+# We echo 1345 to start the certificate serial number counter.
+
+    rm -rf demoCA
+    mkdir -p demoCA/newcerts
+    cp /dev/null demoCA/index.txt
+    echo "1345" &gt; demoCA/serial
+
+# This file makes sure that the certificate for CN=TheRA can be a Certificate
+# Authority, i.e. can sign the user certificates, e.g. "CN=Wibble".
+
+cat &lt;&lt;EOF &gt; exts
+[x509_extensions]
+basicConstraints=CA:TRUE
+EOF
+
+# Create the CA's keypair and self-signed certificate
+#   -x509 means create self-sign cert
+#   -keyout means generate keypair
+#   -nodes means do not encrypt private key.
+#   -set_serial sets the serial number of the certificate
+
+    openssl req -verbose -x509 -new -nodes -set_serial 1234 \
+    -subj "/CN=TheCA/OU=NOT FOR PRODUCTION/O=Apache/ST=NY/C=US" \
+    -days 7300 -out cacert.pem -keyout caprivkey.pem 
+
+# Create the RA's keypair and Certificate Request
+#    without -x509, we generate an x509 cert request.
+#   -keyout means generate keypair
+#   -nodes means do not encrypt private key.
+
+    openssl req -verbose -new -nodes \
+    -subj "/CN=TheRA/OU=NOT FOR PRODUCTION/O=Apache/ST=NY/C=US" \
+    -days 7300 -out csrra.pem -keyout raprivkey.pem 
+
+# Have the CN=TheCA issue a certificate for the CN=TheRA
+# We need -extfile exts -extenstions x509_extensions to make sure 
+# CN=TheRA can be a Certificate Authority.
+
+    openssl ca -batch -days 7300 -cert cacert.pem -keyfile caprivkey.pem \
+    -in csrra.pem -out ra-ca-cert.pem -extfile exts -extensions x509_extensions
+
+# Create keypairs and Cert Request for a certificate for CN=Wibble and CN=Cherry
+# This procedure must be done in JKS, because we need to use a JKS keystore.
+# The current version of CXF using PCKS12 will not work for a number of 
+# internal CXF reasons.
+
+    rm -f wibble.jks
+
+    keytool -genkey \
+    -dname "CN=Wibble, OU=NOT FOR PRODUCTION, O=Apache, ST=NY, C=US" \
+    -keystore wibble.jks -storetype jks -storepass password -keypass password
+
+    keytool -certreq -keystore wibble.jks -storetype jks -storepass password \
+    -keypass password -file csrwibble.pem
+
+
+    rm -f cherry.jks
+
+    keytool -genkey \
+    -dname "CN=Cherry, OU=NOT FOR PRODUCTION, O=Apache, ST=NY, C=US" \
+    -keystore cherry.jks -storetype jks -storepass password -keypass password
+
+    keytool -certreq -keystore cherry.jks -storetype jks -storepass password \
+    -keypass password -file csrcherry.pem
+
+
+# Have the CN=TheRA issue a certificate for CN=Wibble and CN=Cherry via
+# their Certificate Requests.
+
+   openssl ca -batch -days 7300 -cert ra-ca-cert.pem -keyfile raprivkey.pem \
+   -in csrwibble.pem -out wibble-ra-cert.pem 
+   
+   openssl ca -batch -days 7300 -cert ra-ca-cert.pem -keyfile raprivkey.pem \
+   -in csrcherry.pem -out cherry-ra-cert.pem
+
+
+# Rewrite the certificates in PEM only format. This allows us to concatenate
+# them into chains.
+
+    openssl x509 -in cacert.pem -out cacert.pem -outform PEM
+    openssl x509 -in ra-ca-cert.pem -out ra-ca-cert.pem -outform PEM
+    openssl x509 -in wibble-ra-cert.pem -out wibble-ra-cert.pem -outform PEM
+    openssl x509 -in cherry-ra-cert.pem -out cherry-ra-cert.pem -outform PEM
+
+# Create a chain readable by CertificateFactory.getCertificates.
+
+    cat wibble-ra-cert.pem ra-ca-cert.pem cacert.pem &gt; wibble.chain
+    cat cherry-ra-cert.pem ra-ca-cert.pem cacert.pem &gt; cherry.chain
+
+# Replace the certificate in the Wibble keystore with their respective
+# full chains.
+
+    keytool -import -file wibble.chain -keystore wibble.jks -storetype jks \
+    -storepass password -keypass password -noprompt
+
+    keytool -import -file cherry.chain -keystore cherry.jks -storetype jks \
+    -storepass password -keypass password -noprompt
+
+# Revoke the CN=TheRA certificate (happens in the Openssl DB)
+
+    openssl ca -verbose -cert cacert.pem -keyfile caprivkey.pem \
+    -revoke ra-ca-cert.pem -crl_reason keyCompromise 
+
+# Create the CRL from that revocation (from the Openssl DB)
+
+    openssl ca -verbose -gencrl -out ca.crl -cert cacert.pem \
+    -keyfile caprivkey.pem
+
+# Create the Truststore file containing the CA cert.
+
+    rm -f truststore.jks
+    
+    keytool -import -file cacert.pem -alias TheCA -keystore truststore.jks \
+    -storepass password -noprompt
+
+# Uncomment to see what's in the Keystores and CRL
+
+    keytool -v -list -keystore wibble.jks -storepass password
+    
+    keytool -v -list -keystore cherry.jks -storepass password
+    
+    keytool -v -list -keystore truststore.jks -storepass password
+    
+    openssl crl -in ca.crl -text -noout
+
+# Get rid of everything but wibble.chain and ra.crl
+#rm -rf *.pem exts demoCA *pk12

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/bin/gencerts.sh
------------------------------------------------------------------------------
    svn:eol-style = native

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/build.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/build.xml?rev=887328&amp;view=auto
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/build.xml (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/build.xml Fri Dec  4 19:28:17 2009
@@ -0,0 +1,45 @@
+&lt;?xml version="1.0"?&gt;
+&lt;!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+ 
+  http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+--&gt;
+&lt;project name="Secure hello world demo" default="build" basedir="."&gt;
+
+    &lt;import file="../../common_build.xml"/&gt;        
+        
+    &lt;target name="unauthenticated.client" description="run demo insecure client" depends="build"&gt;
+        &lt;property name="param" value=""/&gt;
+        &lt;cxfrun classname="demo.wssec.client.Client"
+                param1="${basedir}/wsdl/hello_world.wsdl"/&gt;
+    &lt;/target&gt; 
+
+    &lt;target name="client" description="run demo secure client" depends="build"&gt;
+        &lt;property name="param" value=""/&gt;
+        &lt;cxfrun classname="demo.wssec.client.Client"
+                param1="${basedir}/wsdl/hello_world.wsdl"/&gt;
+    &lt;/target&gt; 
+        
+    &lt;target name="server" description="run demo server" depends="build"&gt;
+        &lt;cxfrun classname="demo.wssec.server.Server" logging-properties-file="${basedir}/logging.properties"/&gt;
+    &lt;/target&gt;
+        
+    &lt;target name="generate.code"&gt;
+        &lt;echo level="info" message="Generating code using wsdl2java..."/&gt;
+        &lt;wsdl2java file="hello_world.wsdl"/&gt;
+    &lt;/target&gt;
+    
+&lt;/project&gt;

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/build.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/build.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/build.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/ca.crl
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/ca.crl?rev=887328&amp;view=auto
==============================================================================
    (empty)

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cacert.pem
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cacert.pem?rev=887328&amp;view=auto
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cacert.pem (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cacert.pem Fri Dec  4 19:28:17 2009
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC3DCCAkWgAwIBAgICBNIwDQYJKoZIhvcNAQEFBQAwWDEOMAwGA1UEAxMFVGhl
+Q0ExGzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEChMGQXBhY2hl
+MQswCQYDVQQIEwJOWTELMAkGA1UEBhMCVVMwHhcNMDkwNjIyMTUzNzA4WhcNMjkw
+NjE3MTUzNzA4WjBYMQ4wDAYDVQQDEwVUaGVDQTEbMBkGA1UECxMSTk9UIEZPUiBQ
+Uk9EVUNUSU9OMQ8wDQYDVQQKEwZBcGFjaGUxCzAJBgNVBAgTAk5ZMQswCQYDVQQG
+EwJVUzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3st0/lxVtgRQMbMWvuQz
+MHFv64qXPIm6sTvK3ff6ILGiOnx6wd98oQoJ+X1MuSVBv0ncf7qwZkxZ+imaf1zl
+MwOw6Rha8yl0Uw2YbVYWFCldSXK/9+0KRTm3El5uzzGKT2dKJ2840Wh7LuYKGoEw
+95xXfWb13K1SL13Ewn8Er1cCAwEAAaOBtDCBsTAdBgNVHQ4EFgQUj0/bfQrFQIB6
+6jnKNpqmcGUjy7cwgYEGA1UdIwR6MHiAFI9P230KxUCAeuo5yjaapnBlI8u3oVyk
+WjBYMQ4wDAYDVQQDEwVUaGVDQTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9O
+MQ8wDQYDVQQKEwZBcGFjaGUxCzAJBgNVBAgTAk5ZMQswCQYDVQQGEwJVU4ICBNIw
+DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQBnLYUUrajPw+Ku9Jr8oDte
+KEe+zGDcEEa0uI8ld0XqLjcVcX1SGGYh13ophJCqn3kBwcXtgH1oxj9/M4fWr6pL
+ml4oJMzrYGRi1M2bMgzWFhX5lhTTy/WCDRW05K9LDvTv94yRJV07uk1ztbYgpiyn
+zjX4WJceNv6/6wzWTT7+Ow==
+-----END CERTIFICATE-----

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/caprivkey.pem
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/caprivkey.pem?rev=887328&amp;view=auto
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/caprivkey.pem (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/caprivkey.pem Fri Dec  4 19:28:17 2009
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQDey3T+XFW2BFAxsxa+5DMwcW/ripc8ibqxO8rd9/ogsaI6fHrB
+33yhCgn5fUy5JUG/Sdx/urBmTFn6KZp/XOUzA7DpGFrzKXRTDZhtVhYUKV1Jcr/3
+7QpFObcSXm7PMYpPZ0onbzjRaHsu5goagTD3nFd9ZvXcrVIvXcTCfwSvVwIDAQAB
+AoGAUCoK7Z8RpA2HQWq8C3GWzZ5zc+AJLNot16m5BAc+89aWlc7GaM3eTR+MmT2x
+hojWUFrmQPtOj3B3i6C+m4c0XGuU8B9lFaKSdjz4NytWAsykQPxx+KsVfyNxt2mk
+np8hoTQU0qoTG6XAZmvYaSOkqSC7s5gUCwEzK/J+mWbyYcECQQD9UqIhMLOrbFfT
+1T/VNcAp7WkvW0Dqio1G/o11Yas1ZKhTfwxczA84Lpu5aSoUoKJwSRjEsfSHrqrV
+GobsS813AkEA4SY62Krv4zW7PtEElJbUhzF0+Yc/SXmVFuq7C9sfiV9ko/lpAn2L
+lWFzEeRE+3+o+khL5+PW5NYQBJUhHxslIQJABwfzHg62/ewM6AFEO0u5oLBJOhpD
+S/86epz4Gijy0pGPpnmhQzYaugl5IwVLOLVYrNsqh9MUoWt0rGOHGSnlcwJAHYm8
+cqyKaE6mUClv5mabX1k3tXzu6p7O1oDZJUcMLiObun+ALVl3NJPiWtiNzEkFTECr
+5LJZgRAsbc162O/gwQJAJ0n+Sd2qJz5n0/iu9LYH+DH8Bjd88thq+PVYz9r5lYvl
+ksRCCYECTkW8Q7pT8SlLEBePRBvVmENTnPlAENTwwQ==
+-----END RSA PRIVATE KEY-----

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry-ra-cert.pem
URL: 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
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry-ra-cert.pem (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry-ra-cert.pem Fri Dec  4 19:28:17 2009
@@ -0,0 +1,24 @@
+-----BEGIN CERTIFICATE-----
+MIIECjCCA3OgAwIBAgICE0cwDQYJKoZIhvcNAQEFBQAwWDELMAkGA1UEBhMCVVMx
+CzAJBgNVBAgTAk5ZMQ8wDQYDVQQKEwZBcGFjaGUxGzAZBgNVBAsTEk5PVCBGT1Ig
+UFJPRFVDVElPTjEOMAwGA1UEAxMFVGhlUkEwHhcNMDkwNjIyMTUzNzEwWhcNMjkw
+NjE3MTUzNzEwWjBZMQswCQYDVQQGEwJVUzELMAkGA1UECBMCTlkxDzANBgNVBAoT
+BkFwYWNoZTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9OMQ8wDQYDVQQDEwZD
+aGVycnkwggG3MIIBLAYHKoZIzjgEATCCAR8CgYEA/X9TgR11EilS30qcLuzk5/YR
+t1I870QAwx4/gLZRJmlFXUAiUftZPY1Y+r/F9bow9subVWzXgTuAHTRv8mZgt2uZ
+UKWkn5/oBHsQIsJPu6nX/rfGG/g7V+fGqKYVDwT7g/bTxR7DAjVUE1oWkTL2dfOu
+K2HXKu/yIgMZndFIAccCFQCXYFCPFSMLzLKSuYKi64QL8Fgc9QKBgQD34aCF1ps9
+3su8q1w2uFe5eZSvu/o66oL5V0wLPQeCZ1FZV4661FlP5nEHEIGAtEkWcSPoTCgW
+E7fPCTKMyKbhPBZ6i1R8jSjgo64eK7OmdZFuo38L+iE1YvH7YnoBJDvMpPG+qFGQ
+iaiD3+Fa5Z8GkotmXoB7VSVkAUw7/s9JKgOBhAACgYBi7WDT5ifoKr+6CYNM4bgp
+boGIDcm4gAzvN87riAREspwE1e/n7248yu3HUSO11IeO9Nry3yANg2yU93478ZKY
+iMO4Vsf3otK3HX+RVRF7el2hcIxidpCwDn7+BRwaYEVJ+FICtzJJir7v9kVm+rc+
+hkjllDDvS99Lv6OOiejBOqOByDCBxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQf
+Fh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU75GNmqmw
+1Y0VOsXjb3lTww8M4I4wawYDVR0jBGQwYqFcpFowWDEOMAwGA1UEAxMFVGhlQ0Ex
+GzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEChMGQXBhY2hlMQsw
+CQYDVQQIEwJOWTELMAkGA1UEBhMCVVOCAhNFMA0GCSqGSIb3DQEBBQUAA4GBAEyD
+BUFePKRHtTlWIW8VH1gTfWm8vLDONxS8Xsk+rcXTG1PZCnVlgYBGRPmmxWApDJJT
+bmp4A7ZnQL/jCP8rQCFlqRCGEHFOqxzqQy1H7klJ6NrzhgzpqqIwfkjk7UBWbaMR
+lXEvynvUC0h0JieUdm6qHAaRuSs5ZQv5+sndW/g3
+-----END CERTIFICATE-----

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.chain
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.chain?rev=887328&amp;view=auto
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.chain (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.chain Fri Dec  4 19:28:17 2009
@@ -0,0 +1,56 @@
+-----BEGIN CERTIFICATE-----
+MIIECjCCA3OgAwIBAgICE0cwDQYJKoZIhvcNAQEFBQAwWDELMAkGA1UEBhMCVVMx
+CzAJBgNVBAgTAk5ZMQ8wDQYDVQQKEwZBcGFjaGUxGzAZBgNVBAsTEk5PVCBGT1Ig
+UFJPRFVDVElPTjEOMAwGA1UEAxMFVGhlUkEwHhcNMDkwNjIyMTUzNzEwWhcNMjkw
+NjE3MTUzNzEwWjBZMQswCQYDVQQGEwJVUzELMAkGA1UECBMCTlkxDzANBgNVBAoT
+BkFwYWNoZTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9OMQ8wDQYDVQQDEwZD
+aGVycnkwggG3MIIBLAYHKoZIzjgEATCCAR8CgYEA/X9TgR11EilS30qcLuzk5/YR
+t1I870QAwx4/gLZRJmlFXUAiUftZPY1Y+r/F9bow9subVWzXgTuAHTRv8mZgt2uZ
+UKWkn5/oBHsQIsJPu6nX/rfGG/g7V+fGqKYVDwT7g/bTxR7DAjVUE1oWkTL2dfOu
+K2HXKu/yIgMZndFIAccCFQCXYFCPFSMLzLKSuYKi64QL8Fgc9QKBgQD34aCF1ps9
+3su8q1w2uFe5eZSvu/o66oL5V0wLPQeCZ1FZV4661FlP5nEHEIGAtEkWcSPoTCgW
+E7fPCTKMyKbhPBZ6i1R8jSjgo64eK7OmdZFuo38L+iE1YvH7YnoBJDvMpPG+qFGQ
+iaiD3+Fa5Z8GkotmXoB7VSVkAUw7/s9JKgOBhAACgYBi7WDT5ifoKr+6CYNM4bgp
+boGIDcm4gAzvN87riAREspwE1e/n7248yu3HUSO11IeO9Nry3yANg2yU93478ZKY
+iMO4Vsf3otK3HX+RVRF7el2hcIxidpCwDn7+BRwaYEVJ+FICtzJJir7v9kVm+rc+
+hkjllDDvS99Lv6OOiejBOqOByDCBxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQf
+Fh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU75GNmqmw
+1Y0VOsXjb3lTww8M4I4wawYDVR0jBGQwYqFcpFowWDEOMAwGA1UEAxMFVGhlQ0Ex
+GzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEChMGQXBhY2hlMQsw
+CQYDVQQIEwJOWTELMAkGA1UEBhMCVVOCAhNFMA0GCSqGSIb3DQEBBQUAA4GBAEyD
+BUFePKRHtTlWIW8VH1gTfWm8vLDONxS8Xsk+rcXTG1PZCnVlgYBGRPmmxWApDJJT
+bmp4A7ZnQL/jCP8rQCFlqRCGEHFOqxzqQy1H7klJ6NrzhgzpqqIwfkjk7UBWbaMR
+lXEvynvUC0h0JieUdm6qHAaRuSs5ZQv5+sndW/g3
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICNzCCAaCgAwIBAgICE0UwDQYJKoZIhvcNAQEFBQAwWDEOMAwGA1UEAxMFVGhl
+Q0ExGzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEChMGQXBhY2hl
+MQswCQYDVQQIEwJOWTELMAkGA1UEBhMCVVMwHhcNMDkwNjIyMTUzNzA4WhcNMjkw
+NjE3MTUzNzA4WjBYMQswCQYDVQQGEwJVUzELMAkGA1UECBMCTlkxDzANBgNVBAoT
+BkFwYWNoZTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9OMQ4wDAYDVQQDEwVU
+aGVSQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArUsKksqHsbd7Ncxapwvq
+i8FAV+Ea6ZwfbiFs46ZXDcVEnvwbFWB8PkYrq1vEJGrBCLKS+QNpYh3QG06etm2A
+frUwIGOJkJgGObQ9lFyHBbg27hmct+wYymx0Z3IGe6w1wD5EkK7nzF0Yg0Ph2xfd
+rHaqNEbVL+RemqaABcNbltcCAwEAAaMQMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG
+9w0BAQUFAAOBgQC14vN7a3bbfmqR2mAWDfS5z2+nO0i6M/z3Y7vAVZqyBuiHcUzW
+RYyE4kKzMrxDHBES3zwTOXmW3NSbwMMKd61RRSF0W2cR4MF42etFoUUr0/NjRwIW
+g9IYN2wGBwKYPrSCUSwCGMhxhOEaoqvAeg0sd1v5OezuZjCGQ9UR2myMvA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIC3DCCAkWgAwIBAgICBNIwDQYJKoZIhvcNAQEFBQAwWDEOMAwGA1UEAxMFVGhl
+Q0ExGzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEChMGQXBhY2hl
+MQswCQYDVQQIEwJOWTELMAkGA1UEBhMCVVMwHhcNMDkwNjIyMTUzNzA4WhcNMjkw
+NjE3MTUzNzA4WjBYMQ4wDAYDVQQDEwVUaGVDQTEbMBkGA1UECxMSTk9UIEZPUiBQ
+Uk9EVUNUSU9OMQ8wDQYDVQQKEwZBcGFjaGUxCzAJBgNVBAgTAk5ZMQswCQYDVQQG
+EwJVUzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3st0/lxVtgRQMbMWvuQz
+MHFv64qXPIm6sTvK3ff6ILGiOnx6wd98oQoJ+X1MuSVBv0ncf7qwZkxZ+imaf1zl
+MwOw6Rha8yl0Uw2YbVYWFCldSXK/9+0KRTm3El5uzzGKT2dKJ2840Wh7LuYKGoEw
+95xXfWb13K1SL13Ewn8Er1cCAwEAAaOBtDCBsTAdBgNVHQ4EFgQUj0/bfQrFQIB6
+6jnKNpqmcGUjy7cwgYEGA1UdIwR6MHiAFI9P230KxUCAeuo5yjaapnBlI8u3oVyk
+WjBYMQ4wDAYDVQQDEwVUaGVDQTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9O
+MQ8wDQYDVQQKEwZBcGFjaGUxCzAJBgNVBAgTAk5ZMQswCQYDVQQGEwJVU4ICBNIw
+DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQBnLYUUrajPw+Ku9Jr8oDte
+KEe+zGDcEEa0uI8ld0XqLjcVcX1SGGYh13ophJCqn3kBwcXtgH1oxj9/M4fWr6pL
+ml4oJMzrYGRi1M2bMgzWFhX5lhTTy/WCDRW05K9LDvTv94yRJV07uk1ztbYgpiyn
+zjX4WJceNv6/6wzWTT7+Ow==
+-----END CERTIFICATE-----

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.jks
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/cherry.jks?rev=887328&amp;view=auto
==============================================================================
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  4 19:28:17 2009 differ

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrcherry.pem
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrcherry.pem?rev=887328&amp;view=auto
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrcherry.pem (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrcherry.pem Fri Dec  4 19:28:17 2009
@@ -0,0 +1,13 @@
+-----BEGIN NEW CERTIFICATE REQUEST-----
+MIICXjCCAhsCAQAwWTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk5ZMQ8wDQYDVQQKEwZBcGFjaGUx
+GzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEAxMGQ2hlcnJ5MIIBtzCCASwGByqG
+SM44BAEwggEfAoGBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9EAMMeP4C2USZpRV1AIlH7WT2NWPq/
+xfW6MPbLm1Vs14E7gB00b/JmYLdrmVClpJ+f6AR7ECLCT7up1/63xhv4O1fnxqimFQ8E+4P208Ue
+wwI1VBNaFpEy9nXzrith1yrv8iIDGZ3RSAHHAhUAl2BQjxUjC8yykrmCouuEC/BYHPUCgYEA9+Gg
+hdabPd7LvKtcNrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFnEj6EwoFhO3zwky
+jMim4TwWeotUfI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTxvqhRkImog9/hWuWfBpKLZl6A
+e1UlZAFMO/7PSSoDgYQAAoGAYu1g0+Yn6Cq/ugmDTOG4KW6BiA3JuIAM7zfO64gERLKcBNXv5+9u
+PMrtx1EjtdSHjvTa8t8gDYNslPd+O/GSmIjDuFbH96LStx1/kVURe3pdoXCMYnaQsA5+/gUcGmBF
+SfhSArcySYq+7/ZFZvq3PoZI5ZQw70vfS7+jjonowTqgADALBgcqhkjOOAQDBQADMAAwLQIUL/Kb
+evVCJJJYu/t6x1a4hsqrjEACFQCVsCt5XBVEnBOMISaGVWJOfa0OoA==
+-----END NEW CERTIFICATE REQUEST-----

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrra.pem
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrra.pem?rev=887328&amp;view=auto
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrra.pem (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrra.pem Fri Dec  4 19:28:17 2009
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBmDCCAQECAQAwWDEOMAwGA1UEAxMFVGhlUkExGzAZBgNVBAsTEk5PVCBGT1Ig
+UFJPRFVDVElPTjEPMA0GA1UEChMGQXBhY2hlMQswCQYDVQQIEwJOWTELMAkGA1UE
+BhMCVVMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAK1LCpLKh7G3ezXMWqcL
+6ovBQFfhGumcH24hbOOmVw3FRJ78GxVgfD5GK6tbxCRqwQiykvkDaWId0BtOnrZt
+gH61MCBjiZCYBjm0PZRchwW4Nu4ZnLfsGMpsdGdyBnusNcA+RJCu58xdGIND4dsX
+3ax2qjRG1S/kXpqmgAXDW5bXAgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQCoR9+A
+4a2uIYk4wJyKwV4ghskSrG/O7pR0wY+tkJN66YOci3C3x+nefdlUK73+SOqbdqL4
+x5io/1fT5BLdFXfcwkWgpzoRzYAZVKj1zQAM7pqEotuxLVy3Bo/Bkij81RgRBtq1
+pDEnDgzGOt3Ly/XVPzK4S4atQe6/fjmfCsfnVw==
+-----END CERTIFICATE REQUEST-----

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrwibble.pem
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrwibble.pem?rev=887328&amp;view=auto
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrwibble.pem (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/csrwibble.pem Fri Dec  4 19:28:17 2009
@@ -0,0 +1,13 @@
+-----BEGIN NEW CERTIFICATE REQUEST-----
+MIICXjCCAhwCAQAwWTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk5ZMQ8wDQYDVQQKEwZBcGFjaGUx
+GzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEAxMGV2liYmxlMIIBuDCCASwGByqG
+SM44BAEwggEfAoGBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9EAMMeP4C2USZpRV1AIlH7WT2NWPq/
+xfW6MPbLm1Vs14E7gB00b/JmYLdrmVClpJ+f6AR7ECLCT7up1/63xhv4O1fnxqimFQ8E+4P208Ue
+wwI1VBNaFpEy9nXzrith1yrv8iIDGZ3RSAHHAhUAl2BQjxUjC8yykrmCouuEC/BYHPUCgYEA9+Gg
+hdabPd7LvKtcNrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFnEj6EwoFhO3zwky
+jMim4TwWeotUfI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTxvqhRkImog9/hWuWfBpKLZl6A
+e1UlZAFMO/7PSSoDgYUAAoGBAOVw/LSWWM/t6EdzPEKo9T/gHMbknoGwkfq+3wRhhHOtr45dVyPL
+agrEmkKllHFoCCZc5Rw5PSXeTRGT2Zwt9YDPH/n97ju8OH8NIo1moyyL7F0iHOlUCnrFv3ok2SYA
+WnVxW0giyjGWIEgtnrxLb1Hj84biGRx8IIDp//CJ6/8qoAAwCwYHKoZIzjgEAwUAAy8AMCwCFH2/
+V9FvF0zHa3lUIL8NU7lbuX/yAhQxHI/8jJMJprrAhaQDSiys9sRfNA==
+-----END NEW CERTIFICATE REQUEST-----

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt
URL: 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
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt Fri Dec  4 19:28:17 2009
@@ -0,0 +1,3 @@
+R	290617153708Z	090622153711Z,keyCompromise	1345	unknown	/C=US/ST=NY/O=Apache/OU=NOT FOR PRODUCTION/CN=TheRA
+V	290617153710Z		1346	unknown	/C=US/ST=NY/O=Apache/OU=NOT FOR PRODUCTION/CN=Wibble
+V	290617153710Z		1347	unknown	/C=US/ST=NY/O=Apache/OU=NOT FOR PRODUCTION/CN=Cherry

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr
URL: 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
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr Fri Dec  4 19:28:17 2009
@@ -0,0 +1 @@
+unique_subject = yes

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr.old
URL: 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
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr.old (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.attr.old Fri Dec  4 19:28:17 2009
@@ -0,0 +1 @@
+unique_subject = yes

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.old
URL: 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
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.old (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/index.txt.old Fri Dec  4 19:28:17 2009
@@ -0,0 +1,3 @@
+V	290617153708Z		1345	unknown	/C=US/ST=NY/O=Apache/OU=NOT FOR PRODUCTION/CN=TheRA
+V	290617153710Z		1346	unknown	/C=US/ST=NY/O=Apache/OU=NOT FOR PRODUCTION/CN=Wibble
+V	290617153710Z		1347	unknown	/C=US/ST=NY/O=Apache/OU=NOT FOR PRODUCTION/CN=Cherry

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1345.pem
URL: 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
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1345.pem (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1345.pem Fri Dec  4 19:28:17 2009
@@ -0,0 +1,50 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 4933 (0x1345)
+        Signature Algorithm: sha1WithRSAEncryption
+        Issuer: CN=TheCA, OU=NOT FOR PRODUCTION, O=Apache, ST=NY, C=US
+        Validity
+            Not Before: Jun 22 15:37:08 2009 GMT
+            Not After : Jun 17 15:37:08 2029 GMT
+        Subject: C=US, ST=NY, O=Apache, OU=NOT FOR PRODUCTION, CN=TheRA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (1024 bit)
+                Modulus (1024 bit):
+                    00:ad:4b:0a:92:ca:87:b1:b7:7b:35:cc:5a:a7:0b:
+                    ea:8b:c1:40:57:e1:1a:e9:9c:1f:6e:21:6c:e3:a6:
+                    57:0d:c5:44:9e:fc:1b:15:60:7c:3e:46:2b:ab:5b:
+                    c4:24:6a:c1:08:b2:92:f9:03:69:62:1d:d0:1b:4e:
+                    9e:b6:6d:80:7e:b5:30:20:63:89:90:98:06:39:b4:
+                    3d:94:5c:87:05:b8:36:ee:19:9c:b7:ec:18:ca:6c:
+                    74:67:72:06:7b:ac:35:c0:3e:44:90:ae:e7:cc:5d:
+                    18:83:43:e1:db:17:dd:ac:76:aa:34:46:d5:2f:e4:
+                    5e:9a:a6:80:05:c3:5b:96:d7
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: 
+                CA:TRUE
+    Signature Algorithm: sha1WithRSAEncryption
+        b5:e2:f3:7b:6b:76:db:7e:6a:91:da:60:16:0d:f4:b9:cf:6f:
+        a7:3b:48:ba:33:fc:f7:63:bb:c0:55:9a:b2:06:e8:87:71:4c:
+        d6:45:8c:84:e2:42:b3:32:bc:43:1c:11:12:df:3c:13:39:79:
+        96:dc:d4:9b:c0:c3:0a:77:ad:51:45:21:74:5b:67:11:e0:c1:
+        78:d9:eb:45:a1:45:2b:d3:f3:63:47:02:16:83:d2:18:37:6c:
+        06:07:02:98:3e:b4:82:51:2c:02:18:c8:71:84:e1:1a:a2:ab:
+        c0:7a:0d:2c:77:5b:f9:39:ec:ee:66:30:86:43:d5:11:da:6c:
+        8c:bc
+-----BEGIN CERTIFICATE-----
+MIICNzCCAaCgAwIBAgICE0UwDQYJKoZIhvcNAQEFBQAwWDEOMAwGA1UEAxMFVGhl
+Q0ExGzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEChMGQXBhY2hl
+MQswCQYDVQQIEwJOWTELMAkGA1UEBhMCVVMwHhcNMDkwNjIyMTUzNzA4WhcNMjkw
+NjE3MTUzNzA4WjBYMQswCQYDVQQGEwJVUzELMAkGA1UECBMCTlkxDzANBgNVBAoT
+BkFwYWNoZTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9OMQ4wDAYDVQQDEwVU
+aGVSQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArUsKksqHsbd7Ncxapwvq
+i8FAV+Ea6ZwfbiFs46ZXDcVEnvwbFWB8PkYrq1vEJGrBCLKS+QNpYh3QG06etm2A
+frUwIGOJkJgGObQ9lFyHBbg27hmct+wYymx0Z3IGe6w1wD5EkK7nzF0Yg0Ph2xfd
+rHaqNEbVL+RemqaABcNbltcCAwEAAaMQMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG
+9w0BAQUFAAOBgQC14vN7a3bbfmqR2mAWDfS5z2+nO0i6M/z3Y7vAVZqyBuiHcUzW
+RYyE4kKzMrxDHBES3zwTOXmW3NSbwMMKd61RRSF0W2cR4MF42etFoUUr0/NjRwIW
+g9IYN2wGBwKYPrSCUSwCGMhxhOEaoqvAeg0sd1v5OezuZjCGQ9UR2myMvA==
+-----END CERTIFICATE-----

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1346.pem
URL: 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
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1346.pem (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1346.pem Fri Dec  4 19:28:17 2009
@@ -0,0 +1,90 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 4934 (0x1346)
+        Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, ST=NY, O=Apache, OU=NOT FOR PRODUCTION, CN=TheRA
+        Validity
+            Not Before: Jun 22 15:37:10 2009 GMT
+            Not After : Jun 17 15:37:10 2029 GMT
+        Subject: C=US, ST=NY, O=Apache, OU=NOT FOR PRODUCTION, CN=Wibble
+        Subject Public Key Info:
+            Public Key Algorithm: dsaEncryption
+            DSA Public Key:
+                pub: 
+                    00:e5:70:fc:b4:96:58:cf:ed:e8:47:73:3c:42:a8:
+                    f5:3f:e0:1c:c6:e4:9e:81:b0:91:fa:be:df:04:61:
+                    84:73:ad:af:8e:5d:57:23:cb:6a:0a:c4:9a:42:a5:
+                    94:71:68:08:26:5c:e5:1c:39:3d:25:de:4d:11:93:
+                    d9:9c:2d:f5:80:cf:1f:f9:fd:ee:3b:bc:38:7f:0d:
+                    22:8d:66:a3:2c:8b:ec:5d:22:1c:e9:54:0a:7a:c5:
+                    bf:7a:24:d9:26:00:5a:75:71:5b:48:22:ca:31:96:
+                    20:48:2d:9e:bc:4b:6f:51:e3:f3:86:e2:19:1c:7c:
+                    20:80:e9:ff:f0:89:eb:ff:2a
+                P:   
+                    00:fd:7f:53:81:1d:75:12:29:52:df:4a:9c:2e:ec:
+                    e4:e7:f6:11:b7:52:3c:ef:44:00:c3:1e:3f:80:b6:
+                    51:26:69:45:5d:40:22:51:fb:59:3d:8d:58:fa:bf:
+                    c5:f5:ba:30:f6:cb:9b:55:6c:d7:81:3b:80:1d:34:
+                    6f:f2:66:60:b7:6b:99:50:a5:a4:9f:9f:e8:04:7b:
+                    10:22:c2:4f:bb:a9:d7:fe:b7:c6:1b:f8:3b:57:e7:
+                    c6:a8:a6:15:0f:04:fb:83:f6:d3:c5:1e:c3:02:35:
+                    54:13:5a:16:91:32:f6:75:f3:ae:2b:61:d7:2a:ef:
+                    f2:22:03:19:9d:d1:48:01:c7
+                Q:   
+                    00:97:60:50:8f:15:23:0b:cc:b2:92:b9:82:a2:eb:
+                    84:0b:f0:58:1c:f5
+                G:   
+                    00:f7:e1:a0:85:d6:9b:3d:de:cb:bc:ab:5c:36:b8:
+                    57:b9:79:94:af:bb:fa:3a:ea:82:f9:57:4c:0b:3d:
+                    07:82:67:51:59:57:8e:ba:d4:59:4f:e6:71:07:10:
+                    81:80:b4:49:16:71:23:e8:4c:28:16:13:b7:cf:09:
+                    32:8c:c8:a6:e1:3c:16:7a:8b:54:7c:8d:28:e0:a3:
+                    ae:1e:2b:b3:a6:75:91:6e:a3:7f:0b:fa:21:35:62:
+                    f1:fb:62:7a:01:24:3b:cc:a4:f1:be:a8:51:90:89:
+                    a8:83:df:e1:5a:e5:9f:06:92:8b:66:5e:80:7b:55:
+                    25:64:01:4c:3b:fe:cf:49:2a
+        X509v3 extensions:
+            X509v3 Basic Constraints: 
+                CA:FALSE
+            Netscape Comment: 
+                OpenSSL Generated Certificate
+            X509v3 Subject Key Identifier: 
+                91:4C:0A:EC:6C:E5:92:06:AE:3A:F8:96:32:EC:92:50:8C:CB:83:E7
+            X509v3 Authority Key Identifier: 
+                DirName:/CN=TheCA/OU=NOT FOR PRODUCTION/O=Apache/ST=NY/C=US
+                serial:13:45
+
+    Signature Algorithm: sha1WithRSAEncryption
+        2e:14:ab:c9:48:9c:b5:b6:16:af:d2:59:3b:2c:bd:79:e9:f6:
+        2c:e9:0b:ac:58:ab:82:e5:87:4a:6b:b4:ea:d4:d5:d8:5c:86:
+        cf:96:33:ec:f1:c2:60:7d:6b:64:05:6f:8b:37:64:4d:71:f0:
+        c6:75:82:f6:ba:8a:31:16:1e:5a:fa:93:35:ed:ee:a3:6f:98:
+        e9:06:09:12:dd:e7:c0:df:9c:a1:9b:9e:db:3a:43:35:ac:c4:
+        dd:e9:4d:6e:ba:88:b9:d5:c5:05:ea:7f:72:24:64:51:7c:b3:
+        8d:24:bf:dd:9a:76:46:5a:c6:22:b4:bb:cd:c0:9c:96:3a:5c:
+        6e:35
+-----BEGIN CERTIFICATE-----
+MIIECzCCA3SgAwIBAgICE0YwDQYJKoZIhvcNAQEFBQAwWDELMAkGA1UEBhMCVVMx
+CzAJBgNVBAgTAk5ZMQ8wDQYDVQQKEwZBcGFjaGUxGzAZBgNVBAsTEk5PVCBGT1Ig
+UFJPRFVDVElPTjEOMAwGA1UEAxMFVGhlUkEwHhcNMDkwNjIyMTUzNzEwWhcNMjkw
+NjE3MTUzNzEwWjBZMQswCQYDVQQGEwJVUzELMAkGA1UECBMCTlkxDzANBgNVBAoT
+BkFwYWNoZTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9OMQ8wDQYDVQQDEwZX
+aWJibGUwggG4MIIBLAYHKoZIzjgEATCCAR8CgYEA/X9TgR11EilS30qcLuzk5/YR
+t1I870QAwx4/gLZRJmlFXUAiUftZPY1Y+r/F9bow9subVWzXgTuAHTRv8mZgt2uZ
+UKWkn5/oBHsQIsJPu6nX/rfGG/g7V+fGqKYVDwT7g/bTxR7DAjVUE1oWkTL2dfOu
+K2HXKu/yIgMZndFIAccCFQCXYFCPFSMLzLKSuYKi64QL8Fgc9QKBgQD34aCF1ps9
+3su8q1w2uFe5eZSvu/o66oL5V0wLPQeCZ1FZV4661FlP5nEHEIGAtEkWcSPoTCgW
+E7fPCTKMyKbhPBZ6i1R8jSjgo64eK7OmdZFuo38L+iE1YvH7YnoBJDvMpPG+qFGQ
+iaiD3+Fa5Z8GkotmXoB7VSVkAUw7/s9JKgOBhQACgYEA5XD8tJZYz+3oR3M8Qqj1
+P+AcxuSegbCR+r7fBGGEc62vjl1XI8tqCsSaQqWUcWgIJlzlHDk9Jd5NEZPZnC31
+gM8f+f3uO7w4fw0ijWajLIvsXSIc6VQKesW/eiTZJgBadXFbSCLKMZYgSC2evEtv
+UePzhuIZHHwggOn/8Inr/yqjgcgwgcUwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0E
+HxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFJFMCuxs
+5ZIGrjr4ljLsklCMy4PnMGsGA1UdIwRkMGKhXKRaMFgxDjAMBgNVBAMTBVRoZUNB
+MRswGQYDVQQLExJOT1QgRk9SIFBST0RVQ1RJT04xDzANBgNVBAoTBkFwYWNoZTEL
+MAkGA1UECBMCTlkxCzAJBgNVBAYTAlVTggITRTANBgkqhkiG9w0BAQUFAAOBgQAu
+FKvJSJy1thav0lk7LL156fYs6QusWKuC5YdKa7Tq1NXYXIbPljPs8cJgfWtkBW+L
+N2RNcfDGdYL2uooxFh5a+pM17e6jb5jpBgkS3efA35yhm57bOkM1rMTd6U1uuoi5
+1cUF6n9yJGRRfLONJL/dmnZGWsYitLvNwJyWOlxuNQ==
+-----END CERTIFICATE-----

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1347.pem
URL: 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
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1347.pem (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/newcerts/1347.pem Fri Dec  4 19:28:17 2009
@@ -0,0 +1,90 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 4935 (0x1347)
+        Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, ST=NY, O=Apache, OU=NOT FOR PRODUCTION, CN=TheRA
+        Validity
+            Not Before: Jun 22 15:37:10 2009 GMT
+            Not After : Jun 17 15:37:10 2029 GMT
+        Subject: C=US, ST=NY, O=Apache, OU=NOT FOR PRODUCTION, CN=Cherry
+        Subject Public Key Info:
+            Public Key Algorithm: dsaEncryption
+            DSA Public Key:
+                pub: 
+                    62:ed:60:d3:e6:27:e8:2a:bf:ba:09:83:4c:e1:b8:
+                    29:6e:81:88:0d:c9:b8:80:0c:ef:37:ce:eb:88:04:
+                    44:b2:9c:04:d5:ef:e7:ef:6e:3c:ca:ed:c7:51:23:
+                    b5:d4:87:8e:f4:da:f2:df:20:0d:83:6c:94:f7:7e:
+                    3b:f1:92:98:88:c3:b8:56:c7:f7:a2:d2:b7:1d:7f:
+                    91:55:11:7b:7a:5d:a1:70:8c:62:76:90:b0:0e:7e:
+                    fe:05:1c:1a:60:45:49:f8:52:02:b7:32:49:8a:be:
+                    ef:f6:45:66:fa:b7:3e:86:48:e5:94:30:ef:4b:df:
+                    4b:bf:a3:8e:89:e8:c1:3a
+                P:   
+                    00:fd:7f:53:81:1d:75:12:29:52:df:4a:9c:2e:ec:
+                    e4:e7:f6:11:b7:52:3c:ef:44:00:c3:1e:3f:80:b6:
+                    51:26:69:45:5d:40:22:51:fb:59:3d:8d:58:fa:bf:
+                    c5:f5:ba:30:f6:cb:9b:55:6c:d7:81:3b:80:1d:34:
+                    6f:f2:66:60:b7:6b:99:50:a5:a4:9f:9f:e8:04:7b:
+                    10:22:c2:4f:bb:a9:d7:fe:b7:c6:1b:f8:3b:57:e7:
+                    c6:a8:a6:15:0f:04:fb:83:f6:d3:c5:1e:c3:02:35:
+                    54:13:5a:16:91:32:f6:75:f3:ae:2b:61:d7:2a:ef:
+                    f2:22:03:19:9d:d1:48:01:c7
+                Q:   
+                    00:97:60:50:8f:15:23:0b:cc:b2:92:b9:82:a2:eb:
+                    84:0b:f0:58:1c:f5
+                G:   
+                    00:f7:e1:a0:85:d6:9b:3d:de:cb:bc:ab:5c:36:b8:
+                    57:b9:79:94:af:bb:fa:3a:ea:82:f9:57:4c:0b:3d:
+                    07:82:67:51:59:57:8e:ba:d4:59:4f:e6:71:07:10:
+                    81:80:b4:49:16:71:23:e8:4c:28:16:13:b7:cf:09:
+                    32:8c:c8:a6:e1:3c:16:7a:8b:54:7c:8d:28:e0:a3:
+                    ae:1e:2b:b3:a6:75:91:6e:a3:7f:0b:fa:21:35:62:
+                    f1:fb:62:7a:01:24:3b:cc:a4:f1:be:a8:51:90:89:
+                    a8:83:df:e1:5a:e5:9f:06:92:8b:66:5e:80:7b:55:
+                    25:64:01:4c:3b:fe:cf:49:2a
+        X509v3 extensions:
+            X509v3 Basic Constraints: 
+                CA:FALSE
+            Netscape Comment: 
+                OpenSSL Generated Certificate
+            X509v3 Subject Key Identifier: 
+                EF:91:8D:9A:A9:B0:D5:8D:15:3A:C5:E3:6F:79:53:C3:0F:0C:E0:8E
+            X509v3 Authority Key Identifier: 
+                DirName:/CN=TheCA/OU=NOT FOR PRODUCTION/O=Apache/ST=NY/C=US
+                serial:13:45
+
+    Signature Algorithm: sha1WithRSAEncryption
+        4c:83:05:41:5e:3c:a4:47:b5:39:56:21:6f:15:1f:58:13:7d:
+        69:bc:bc:b0:ce:37:14:bc:5e:c9:3e:ad:c5:d3:1b:53:d9:0a:
+        75:65:81:80:46:44:f9:a6:c5:60:29:0c:92:53:6e:6a:78:03:
+        b6:67:40:bf:e3:08:ff:2b:40:21:65:a9:10:86:10:71:4e:ab:
+        1c:ea:43:2d:47:ee:49:49:e8:da:f3:86:0c:e9:aa:a2:30:7e:
+        48:e4:ed:40:56:6d:a3:11:95:71:2f:ca:7b:d4:0b:48:74:26:
+        27:94:76:6e:aa:1c:06:91:b9:2b:39:65:0b:f9:fa:c9:dd:5b:
+        f8:37
+-----BEGIN CERTIFICATE-----
+MIIECjCCA3OgAwIBAgICE0cwDQYJKoZIhvcNAQEFBQAwWDELMAkGA1UEBhMCVVMx
+CzAJBgNVBAgTAk5ZMQ8wDQYDVQQKEwZBcGFjaGUxGzAZBgNVBAsTEk5PVCBGT1Ig
+UFJPRFVDVElPTjEOMAwGA1UEAxMFVGhlUkEwHhcNMDkwNjIyMTUzNzEwWhcNMjkw
+NjE3MTUzNzEwWjBZMQswCQYDVQQGEwJVUzELMAkGA1UECBMCTlkxDzANBgNVBAoT
+BkFwYWNoZTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9OMQ8wDQYDVQQDEwZD
+aGVycnkwggG3MIIBLAYHKoZIzjgEATCCAR8CgYEA/X9TgR11EilS30qcLuzk5/YR
+t1I870QAwx4/gLZRJmlFXUAiUftZPY1Y+r/F9bow9subVWzXgTuAHTRv8mZgt2uZ
+UKWkn5/oBHsQIsJPu6nX/rfGG/g7V+fGqKYVDwT7g/bTxR7DAjVUE1oWkTL2dfOu
+K2HXKu/yIgMZndFIAccCFQCXYFCPFSMLzLKSuYKi64QL8Fgc9QKBgQD34aCF1ps9
+3su8q1w2uFe5eZSvu/o66oL5V0wLPQeCZ1FZV4661FlP5nEHEIGAtEkWcSPoTCgW
+E7fPCTKMyKbhPBZ6i1R8jSjgo64eK7OmdZFuo38L+iE1YvH7YnoBJDvMpPG+qFGQ
+iaiD3+Fa5Z8GkotmXoB7VSVkAUw7/s9JKgOBhAACgYBi7WDT5ifoKr+6CYNM4bgp
+boGIDcm4gAzvN87riAREspwE1e/n7248yu3HUSO11IeO9Nry3yANg2yU93478ZKY
+iMO4Vsf3otK3HX+RVRF7el2hcIxidpCwDn7+BRwaYEVJ+FICtzJJir7v9kVm+rc+
+hkjllDDvS99Lv6OOiejBOqOByDCBxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQf
+Fh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU75GNmqmw
+1Y0VOsXjb3lTww8M4I4wawYDVR0jBGQwYqFcpFowWDEOMAwGA1UEAxMFVGhlQ0Ex
+GzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEChMGQXBhY2hlMQsw
+CQYDVQQIEwJOWTELMAkGA1UEBhMCVVOCAhNFMA0GCSqGSIb3DQEBBQUAA4GBAEyD
+BUFePKRHtTlWIW8VH1gTfWm8vLDONxS8Xsk+rcXTG1PZCnVlgYBGRPmmxWApDJJT
+bmp4A7ZnQL/jCP8rQCFlqRCGEHFOqxzqQy1H7klJ6NrzhgzpqqIwfkjk7UBWbaMR
+lXEvynvUC0h0JieUdm6qHAaRuSs5ZQv5+sndW/g3
+-----END CERTIFICATE-----

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial?rev=887328&amp;view=auto
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial Fri Dec  4 19:28:17 2009
@@ -0,0 +1 @@
+1348

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial.old
URL: 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
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial.old (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/demoCA/serial.old Fri Dec  4 19:28:17 2009
@@ -0,0 +1 @@
+1347

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/exts
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/exts?rev=887328&amp;view=auto
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/exts (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/exts Fri Dec  4 19:28:17 2009
@@ -0,0 +1,2 @@
+[x509_extensions]
+basicConstraints=CA:TRUE

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/ra-ca-cert.pem
URL: 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
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/ra-ca-cert.pem (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/ra-ca-cert.pem Fri Dec  4 19:28:17 2009
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICNzCCAaCgAwIBAgICE0UwDQYJKoZIhvcNAQEFBQAwWDEOMAwGA1UEAxMFVGhl
+Q0ExGzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEChMGQXBhY2hl
+MQswCQYDVQQIEwJOWTELMAkGA1UEBhMCVVMwHhcNMDkwNjIyMTUzNzA4WhcNMjkw
+NjE3MTUzNzA4WjBYMQswCQYDVQQGEwJVUzELMAkGA1UECBMCTlkxDzANBgNVBAoT
+BkFwYWNoZTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9OMQ4wDAYDVQQDEwVU
+aGVSQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArUsKksqHsbd7Ncxapwvq
+i8FAV+Ea6ZwfbiFs46ZXDcVEnvwbFWB8PkYrq1vEJGrBCLKS+QNpYh3QG06etm2A
+frUwIGOJkJgGObQ9lFyHBbg27hmct+wYymx0Z3IGe6w1wD5EkK7nzF0Yg0Ph2xfd
+rHaqNEbVL+RemqaABcNbltcCAwEAAaMQMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG
+9w0BAQUFAAOBgQC14vN7a3bbfmqR2mAWDfS5z2+nO0i6M/z3Y7vAVZqyBuiHcUzW
+RYyE4kKzMrxDHBES3zwTOXmW3NSbwMMKd61RRSF0W2cR4MF42etFoUUr0/NjRwIW
+g9IYN2wGBwKYPrSCUSwCGMhxhOEaoqvAeg0sd1v5OezuZjCGQ9UR2myMvA==
+-----END CERTIFICATE-----

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/raprivkey.pem
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/raprivkey.pem?rev=887328&amp;view=auto
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/raprivkey.pem (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/raprivkey.pem Fri Dec  4 19:28:17 2009
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQCtSwqSyoext3s1zFqnC+qLwUBX4RrpnB9uIWzjplcNxUSe/BsV
+YHw+RiurW8QkasEIspL5A2liHdAbTp62bYB+tTAgY4mQmAY5tD2UXIcFuDbuGZy3
+7BjKbHRncgZ7rDXAPkSQrufMXRiDQ+HbF92sdqo0RtUv5F6apoAFw1uW1wIDAQAB
+AoGAWcNEH9MuxJxxAuXukxa2EFwy0xJ0GUvYb/h6adUwxJ5JND0MXl9THALG/gUT
+rXVqtfGh9cCRptQghvSLe51u79giGhDUJVntPv24XaHGRjP4a9WbRbHCf+wQtoiN
+LwAyPz7epjmsLUzd/xboxHIw6b0yoDUHAKkXWhvJsQ6gQvkCQQDmR1th4beChxWR
+UFW567G51Rf3TNEG7IQ8VHfAar7T2VYukmpyMCKiPkGtJLLNu9y/tXZhKtdm39a0
+aoW8tu8lAkEAwKY5jFYMLq/rBRdYJ0d6YFow8c54eimN4KqNs61Aa6sUlr5w1PxT
+VoPda5MHnTASf5fzxCxrBpQTQziNeC47SwJBAKgIfcgo+s2GYNiOdF+cey2NL1XH
+eefBgqS7Rj7kJadUuix1rrLwKPWW1DnRw5+Ya/aAJYe1yURKJdO0vy37lvkCQDI8
+ppEj9zVNhpnjRoenqg/qNQ05bE1e/LJzh1Qtf7kT+eB9dOr1ib3r0Re2Vav11z0S
+oOytMJOclZFX8/w9AhUCQE9KNcvzylzJnnFkwm6F0cetxMLcAnPnbVrTjMLKEvV2
+8QrzjD2oQtCXtbImtplvK7SwSqMu2FxH/5glziWCJf8=
+-----END RSA PRIVATE KEY-----

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/truststore.jks
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/truststore.jks?rev=887328&amp;view=auto
==============================================================================
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  4 19:28:17 2009 differ

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble-ra-cert.pem
URL: 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
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble-ra-cert.pem (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble-ra-cert.pem Fri Dec  4 19:28:17 2009
@@ -0,0 +1,24 @@
+-----BEGIN CERTIFICATE-----
+MIIECzCCA3SgAwIBAgICE0YwDQYJKoZIhvcNAQEFBQAwWDELMAkGA1UEBhMCVVMx
+CzAJBgNVBAgTAk5ZMQ8wDQYDVQQKEwZBcGFjaGUxGzAZBgNVBAsTEk5PVCBGT1Ig
+UFJPRFVDVElPTjEOMAwGA1UEAxMFVGhlUkEwHhcNMDkwNjIyMTUzNzEwWhcNMjkw
+NjE3MTUzNzEwWjBZMQswCQYDVQQGEwJVUzELMAkGA1UECBMCTlkxDzANBgNVBAoT
+BkFwYWNoZTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9OMQ8wDQYDVQQDEwZX
+aWJibGUwggG4MIIBLAYHKoZIzjgEATCCAR8CgYEA/X9TgR11EilS30qcLuzk5/YR
+t1I870QAwx4/gLZRJmlFXUAiUftZPY1Y+r/F9bow9subVWzXgTuAHTRv8mZgt2uZ
+UKWkn5/oBHsQIsJPu6nX/rfGG/g7V+fGqKYVDwT7g/bTxR7DAjVUE1oWkTL2dfOu
+K2HXKu/yIgMZndFIAccCFQCXYFCPFSMLzLKSuYKi64QL8Fgc9QKBgQD34aCF1ps9
+3su8q1w2uFe5eZSvu/o66oL5V0wLPQeCZ1FZV4661FlP5nEHEIGAtEkWcSPoTCgW
+E7fPCTKMyKbhPBZ6i1R8jSjgo64eK7OmdZFuo38L+iE1YvH7YnoBJDvMpPG+qFGQ
+iaiD3+Fa5Z8GkotmXoB7VSVkAUw7/s9JKgOBhQACgYEA5XD8tJZYz+3oR3M8Qqj1
+P+AcxuSegbCR+r7fBGGEc62vjl1XI8tqCsSaQqWUcWgIJlzlHDk9Jd5NEZPZnC31
+gM8f+f3uO7w4fw0ijWajLIvsXSIc6VQKesW/eiTZJgBadXFbSCLKMZYgSC2evEtv
+UePzhuIZHHwggOn/8Inr/yqjgcgwgcUwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0E
+HxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFJFMCuxs
+5ZIGrjr4ljLsklCMy4PnMGsGA1UdIwRkMGKhXKRaMFgxDjAMBgNVBAMTBVRoZUNB
+MRswGQYDVQQLExJOT1QgRk9SIFBST0RVQ1RJT04xDzANBgNVBAoTBkFwYWNoZTEL
+MAkGA1UECBMCTlkxCzAJBgNVBAYTAlVTggITRTANBgkqhkiG9w0BAQUFAAOBgQAu
+FKvJSJy1thav0lk7LL156fYs6QusWKuC5YdKa7Tq1NXYXIbPljPs8cJgfWtkBW+L
+N2RNcfDGdYL2uooxFh5a+pM17e6jb5jpBgkS3efA35yhm57bOkM1rMTd6U1uuoi5
+1cUF6n9yJGRRfLONJL/dmnZGWsYitLvNwJyWOlxuNQ==
+-----END CERTIFICATE-----

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.chain
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.chain?rev=887328&amp;view=auto
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.chain (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.chain Fri Dec  4 19:28:17 2009
@@ -0,0 +1,56 @@
+-----BEGIN CERTIFICATE-----
+MIIECzCCA3SgAwIBAgICE0YwDQYJKoZIhvcNAQEFBQAwWDELMAkGA1UEBhMCVVMx
+CzAJBgNVBAgTAk5ZMQ8wDQYDVQQKEwZBcGFjaGUxGzAZBgNVBAsTEk5PVCBGT1Ig
+UFJPRFVDVElPTjEOMAwGA1UEAxMFVGhlUkEwHhcNMDkwNjIyMTUzNzEwWhcNMjkw
+NjE3MTUzNzEwWjBZMQswCQYDVQQGEwJVUzELMAkGA1UECBMCTlkxDzANBgNVBAoT
+BkFwYWNoZTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9OMQ8wDQYDVQQDEwZX
+aWJibGUwggG4MIIBLAYHKoZIzjgEATCCAR8CgYEA/X9TgR11EilS30qcLuzk5/YR
+t1I870QAwx4/gLZRJmlFXUAiUftZPY1Y+r/F9bow9subVWzXgTuAHTRv8mZgt2uZ
+UKWkn5/oBHsQIsJPu6nX/rfGG/g7V+fGqKYVDwT7g/bTxR7DAjVUE1oWkTL2dfOu
+K2HXKu/yIgMZndFIAccCFQCXYFCPFSMLzLKSuYKi64QL8Fgc9QKBgQD34aCF1ps9
+3su8q1w2uFe5eZSvu/o66oL5V0wLPQeCZ1FZV4661FlP5nEHEIGAtEkWcSPoTCgW
+E7fPCTKMyKbhPBZ6i1R8jSjgo64eK7OmdZFuo38L+iE1YvH7YnoBJDvMpPG+qFGQ
+iaiD3+Fa5Z8GkotmXoB7VSVkAUw7/s9JKgOBhQACgYEA5XD8tJZYz+3oR3M8Qqj1
+P+AcxuSegbCR+r7fBGGEc62vjl1XI8tqCsSaQqWUcWgIJlzlHDk9Jd5NEZPZnC31
+gM8f+f3uO7w4fw0ijWajLIvsXSIc6VQKesW/eiTZJgBadXFbSCLKMZYgSC2evEtv
+UePzhuIZHHwggOn/8Inr/yqjgcgwgcUwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0E
+HxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFJFMCuxs
+5ZIGrjr4ljLsklCMy4PnMGsGA1UdIwRkMGKhXKRaMFgxDjAMBgNVBAMTBVRoZUNB
+MRswGQYDVQQLExJOT1QgRk9SIFBST0RVQ1RJT04xDzANBgNVBAoTBkFwYWNoZTEL
+MAkGA1UECBMCTlkxCzAJBgNVBAYTAlVTggITRTANBgkqhkiG9w0BAQUFAAOBgQAu
+FKvJSJy1thav0lk7LL156fYs6QusWKuC5YdKa7Tq1NXYXIbPljPs8cJgfWtkBW+L
+N2RNcfDGdYL2uooxFh5a+pM17e6jb5jpBgkS3efA35yhm57bOkM1rMTd6U1uuoi5
+1cUF6n9yJGRRfLONJL/dmnZGWsYitLvNwJyWOlxuNQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICNzCCAaCgAwIBAgICE0UwDQYJKoZIhvcNAQEFBQAwWDEOMAwGA1UEAxMFVGhl
+Q0ExGzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEChMGQXBhY2hl
+MQswCQYDVQQIEwJOWTELMAkGA1UEBhMCVVMwHhcNMDkwNjIyMTUzNzA4WhcNMjkw
+NjE3MTUzNzA4WjBYMQswCQYDVQQGEwJVUzELMAkGA1UECBMCTlkxDzANBgNVBAoT
+BkFwYWNoZTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9OMQ4wDAYDVQQDEwVU
+aGVSQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArUsKksqHsbd7Ncxapwvq
+i8FAV+Ea6ZwfbiFs46ZXDcVEnvwbFWB8PkYrq1vEJGrBCLKS+QNpYh3QG06etm2A
+frUwIGOJkJgGObQ9lFyHBbg27hmct+wYymx0Z3IGe6w1wD5EkK7nzF0Yg0Ph2xfd
+rHaqNEbVL+RemqaABcNbltcCAwEAAaMQMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG
+9w0BAQUFAAOBgQC14vN7a3bbfmqR2mAWDfS5z2+nO0i6M/z3Y7vAVZqyBuiHcUzW
+RYyE4kKzMrxDHBES3zwTOXmW3NSbwMMKd61RRSF0W2cR4MF42etFoUUr0/NjRwIW
+g9IYN2wGBwKYPrSCUSwCGMhxhOEaoqvAeg0sd1v5OezuZjCGQ9UR2myMvA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIC3DCCAkWgAwIBAgICBNIwDQYJKoZIhvcNAQEFBQAwWDEOMAwGA1UEAxMFVGhl
+Q0ExGzAZBgNVBAsTEk5PVCBGT1IgUFJPRFVDVElPTjEPMA0GA1UEChMGQXBhY2hl
+MQswCQYDVQQIEwJOWTELMAkGA1UEBhMCVVMwHhcNMDkwNjIyMTUzNzA4WhcNMjkw
+NjE3MTUzNzA4WjBYMQ4wDAYDVQQDEwVUaGVDQTEbMBkGA1UECxMSTk9UIEZPUiBQ
+Uk9EVUNUSU9OMQ8wDQYDVQQKEwZBcGFjaGUxCzAJBgNVBAgTAk5ZMQswCQYDVQQG
+EwJVUzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3st0/lxVtgRQMbMWvuQz
+MHFv64qXPIm6sTvK3ff6ILGiOnx6wd98oQoJ+X1MuSVBv0ncf7qwZkxZ+imaf1zl
+MwOw6Rha8yl0Uw2YbVYWFCldSXK/9+0KRTm3El5uzzGKT2dKJ2840Wh7LuYKGoEw
+95xXfWb13K1SL13Ewn8Er1cCAwEAAaOBtDCBsTAdBgNVHQ4EFgQUj0/bfQrFQIB6
+6jnKNpqmcGUjy7cwgYEGA1UdIwR6MHiAFI9P230KxUCAeuo5yjaapnBlI8u3oVyk
+WjBYMQ4wDAYDVQQDEwVUaGVDQTEbMBkGA1UECxMSTk9UIEZPUiBQUk9EVUNUSU9O
+MQ8wDQYDVQQKEwZBcGFjaGUxCzAJBgNVBAgTAk5ZMQswCQYDVQQGEwJVU4ICBNIw
+DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQBnLYUUrajPw+Ku9Jr8oDte
+KEe+zGDcEEa0uI8ld0XqLjcVcX1SGGYh13ophJCqn3kBwcXtgH1oxj9/M4fWr6pL
+ml4oJMzrYGRi1M2bMgzWFhX5lhTTy/WCDRW05K9LDvTv94yRJV07uk1ztbYgpiyn
+zjX4WJceNv6/6wzWTT7+Ow==
+-----END CERTIFICATE-----

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.jks
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/certs/wibble.jks?rev=887328&amp;view=auto
==============================================================================
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  4 19:28:17 2009 differ

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/pom.xml?rev=887328&amp;view=auto
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/pom.xml (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/pom.xml Fri Dec  4 19:28:17 2009
@@ -0,0 +1,221 @@
+&lt;!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+ 
+  http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+--&gt;
+&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;
+    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
+    &lt;groupId&gt;org.apache.cxf.samples&lt;/groupId&gt;
+    &lt;artifactId&gt;wssec&lt;/artifactId&gt;
+    &lt;version&gt;1.0&lt;/version&gt;
+    &lt;name&gt;WS-Security Demo&lt;/name&gt;
+    &lt;properties&gt;
+        &lt;cxf.version&gt;[2,)&lt;/cxf.version&gt;
+    &lt;/properties&gt;
+    &lt;build&gt;
+        &lt;sourceDirectory&gt;src&lt;/sourceDirectory&gt;
+        &lt;plugins&gt;
+            &lt;plugin&gt;
+                &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
+                &lt;configuration&gt;
+                    &lt;source&gt;1.5&lt;/source&gt; 
+                    &lt;target&gt;1.5&lt;/target&gt;
+                &lt;/configuration&gt;
+            &lt;/plugin&gt;
+            &lt;plugin&gt;
+                &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+                &lt;artifactId&gt;cxf-codegen-plugin&lt;/artifactId&gt;
+                &lt;version&gt;LATEST&lt;/version&gt;
+                &lt;executions&gt;
+                    &lt;execution&gt;
+                        &lt;id&gt;generate-sources&lt;/id&gt;
+                        &lt;phase&gt;generate-sources&lt;/phase&gt;
+                        &lt;configuration&gt;
+                            &lt;wsdlOptions&gt;
+                                &lt;wsdlOption&gt;
+                                    &lt;wsdl&gt;${basedir}/wsdl/hello_world.wsdl&lt;/wsdl&gt;
+                                &lt;/wsdlOption&gt;
+                            &lt;/wsdlOptions&gt;
+                        &lt;/configuration&gt;
+                        &lt;goals&gt;
+                            &lt;goal&gt;wsdl2java&lt;/goal&gt;
+                        &lt;/goals&gt;
+                    &lt;/execution&gt;
+               &lt;/executions&gt;
+           &lt;/plugin&gt;
+           &lt;plugin&gt;
+                &lt;artifactId&gt;maven-antrun-plugin&lt;/artifactId&gt;
+                &lt;executions&gt;
+                    &lt;execution&gt;
+                        &lt;id&gt;copyxmlfiles&lt;/id&gt;
+                        &lt;phase&gt;generate-sources&lt;/phase&gt;
+	    	        &lt;goals&gt;
+	    	            &lt;goal&gt;run&lt;/goal&gt;
+	    	        &lt;/goals&gt;
+	    	        &lt;configuration&gt;
+	    	            &lt;tasks&gt;
+	    	               &lt;copy file="${basedir}/src/demo/wssec/server/wssec.xml" todir="${basedir}/target/classes/demo/wssec/server"/&gt;
+	    	               &lt;copy file="${basedir}/src/demo/wssec/client/wssec.xml" todir="${basedir}/target/classes/demo/wssec/client"/&gt;
+	    	               &lt;copy todir="${basedir}/target/classes/certs"&gt;
+	    	                   &lt;fileset dir="${basedir}/certs"/&gt;
+	    	               &lt;/copy&gt;
+	    	            &lt;/tasks&gt;
+	    	        &lt;/configuration&gt;
+	    	    &lt;/execution&gt;
+	    	&lt;/executions&gt;
+            &lt;/plugin&gt;           
+       &lt;/plugins&gt;
+    &lt;/build&gt;   
+    &lt;profiles&gt;
+        &lt;profile&gt;
+            &lt;id&gt;server&lt;/id&gt;
+            &lt;build&gt;
+                &lt;defaultGoal&gt;test&lt;/defaultGoal&gt;
+                &lt;plugins&gt;
+                    &lt;plugin&gt;
+                        &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
+                        &lt;artifactId&gt;exec-maven-plugin&lt;/artifactId&gt;
+                        &lt;executions&gt;
+                            &lt;execution&gt;
+                                &lt;phase&gt;test&lt;/phase&gt;
+                                &lt;goals&gt;
+                                    &lt;goal&gt;exec&lt;/goal&gt;
+                                &lt;/goals&gt;
+                                &lt;configuration&gt;
+                                    &lt;executable&gt;java&lt;/executable&gt;
+                                    &lt;arguments&gt;
+                                        &lt;argument&gt;-classpath&lt;/argument&gt;
+                                        &lt;classpath/&gt;
+                                        &lt;argument&gt;demo.wssec.server.Server&lt;/argument&gt;
+                                    &lt;/arguments&gt;
+                                &lt;/configuration&gt;
+                            &lt;/execution&gt;
+                        &lt;/executions&gt;
+                    &lt;/plugin&gt;
+                &lt;/plugins&gt;
+            &lt;/build&gt;
+        &lt;/profile&gt;
+        &lt;profile&gt;
+            &lt;id&gt;client&lt;/id&gt;
+            &lt;build&gt;
+                &lt;defaultGoal&gt;test&lt;/defaultGoal&gt;
+                &lt;plugins&gt;
+                    &lt;plugin&gt;
+                        &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
+                        &lt;artifactId&gt;exec-maven-plugin&lt;/artifactId&gt;
+                        &lt;executions&gt;
+                            &lt;execution&gt;
+                                &lt;phase&gt;test&lt;/phase&gt;
+                                &lt;goals&gt;
+                                    &lt;goal&gt;java&lt;/goal&gt;
+                                &lt;/goals&gt;
+                                &lt;configuration&gt;
+                                    &lt;mainClass&gt;demo.wssec.client.Client&lt;/mainClass&gt;
+                                    &lt;arguments&gt;
+                                        &lt;argument&gt;${basedir}/wsdl/hello_world.wsdl&lt;/argument&gt;
+                                        &lt;argument&gt;secure&lt;/argument&gt;
+                                   &lt;/arguments&gt;
+                               &lt;/configuration&gt;
+                           &lt;/execution&gt;
+                       &lt;/executions&gt;
+                   &lt;/plugin&gt;
+               &lt;/plugins&gt;
+           &lt;/build&gt;
+        &lt;/profile&gt;
+        &lt;profile&gt;
+            &lt;id&gt;client.unauthenticated&lt;/id&gt;
+            &lt;build&gt;
+                &lt;defaultGoal&gt;test&lt;/defaultGoal&gt;
+                &lt;plugins&gt;
+                    &lt;plugin&gt;
+                        &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
+                        &lt;artifactId&gt;exec-maven-plugin&lt;/artifactId&gt;
+                        &lt;executions&gt;
+                            &lt;execution&gt;
+                                &lt;phase&gt;test&lt;/phase&gt;
+                                &lt;goals&gt;
+                                    &lt;goal&gt;java&lt;/goal&gt;
+                                &lt;/goals&gt;
+                                &lt;configuration&gt;
+                                    &lt;mainClass&gt;demo.wssec.client.Client&lt;/mainClass&gt;
+                                    &lt;arguments&gt;
+                                        &lt;argument&gt;${basedir}/wsdl/hello_world_no_policy.wsdl&lt;/argument&gt;
+                                        &lt;argument&gt;secure&lt;/argument&gt;
+                                   &lt;/arguments&gt;
+                               &lt;/configuration&gt;
+                           &lt;/execution&gt;
+                       &lt;/executions&gt;
+                   &lt;/plugin&gt;
+               &lt;/plugins&gt;
+           &lt;/build&gt;
+        &lt;/profile&gt;        
+    &lt;/profiles&gt;
+    &lt;repositories&gt;
+        &lt;repository&gt;
+            &lt;id&gt;apache-snapshots&lt;/id&gt;
+            &lt;name&gt;Apache Snapshot Repository&lt;/name&gt;
+            &lt;url&gt;http://repository.apache.org/content/groups/snapshots-group/&lt;/url&gt;
+            &lt;releases&gt;
+                &lt;enabled&gt;false&lt;/enabled&gt;
+            &lt;/releases&gt;
+            &lt;snapshots&gt;
+                &lt;enabled&gt;true&lt;/enabled&gt;
+            &lt;/snapshots&gt;
+        &lt;/repository&gt;
+    &lt;/repositories&gt;
+    &lt;pluginRepositories&gt;
+        &lt;pluginRepository&gt;
+            &lt;id&gt;apache-plugin-snapshots&lt;/id&gt;
+            &lt;name&gt;Apache Maven Plugin Snapshots&lt;/name&gt;
+            &lt;url&gt;http://repository.apache.org/content/groups/snapshots-group/&lt;/url&gt;
+            &lt;releases&gt;
+                &lt;enabled&gt;false&lt;/enabled&gt;
+            &lt;/releases&gt;
+            &lt;snapshots&gt;
+                &lt;enabled&gt;true&lt;/enabled&gt;
+            &lt;/snapshots&gt;
+        &lt;/pluginRepository&gt;
+    &lt;/pluginRepositories&gt;
+    &lt;dependencies&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+            &lt;artifactId&gt;cxf-rt-frontend-jaxws&lt;/artifactId&gt;
+            &lt;version&gt;${cxf.version}&lt;/version&gt;
+        &lt;/dependency&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+            &lt;artifactId&gt;cxf-rt-transports-http&lt;/artifactId&gt;
+            &lt;version&gt;${cxf.version}&lt;/version&gt;
+        &lt;/dependency&gt;
+        &lt;dependency&gt;
+             &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+             &lt;artifactId&gt;cxf-rt-transports-http-jetty&lt;/artifactId&gt;
+             &lt;version&gt;${cxf.version}&lt;/version&gt;
+       &lt;/dependency&gt;
+       
+       &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+            &lt;artifactId&gt;cxf-rt-ws-security&lt;/artifactId&gt;
+            &lt;version&gt;${cxf.version}&lt;/version&gt;
+        &lt;/dependency&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+            &lt;artifactId&gt;cxf-rt-ws-policy&lt;/artifactId&gt;
+            &lt;version&gt;${cxf.version}&lt;/version&gt;
+        &lt;/dependency&gt;
+        
+   &lt;/dependencies&gt;
+&lt;/project&gt;

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/Client.java
URL: 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
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/Client.java (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/Client.java Fri Dec  4 19:28:17 2009
@@ -0,0 +1,81 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package demo.wssec.client;
+
+import java.io.File;
+import java.net.URL;
+import javax.xml.namespace.QName;
+import org.apache.cxf.Bus;
+import org.apache.cxf.bus.spring.SpringBusFactory;
+import org.apache.hello_world_soap_http.Greeter;
+import org.apache.hello_world_soap_http.SOAPService;
+
+public final class Client {
+
+    private static final QName SERVICE_NAME
+        = new QName("http://apache.org/hello_world_soap_http", "SOAPService");
+
+    private static final QName PORT_NAME =
+        new QName("http://apache.org/hello_world_soap_http", "SoapPort");
+
+
+    private Client() {
+    }
+
+    public static void main(String args[]) throws Exception {
+
+        if (args.length == 0) {
+            System.out.println("please specify wsdl");
+            System.exit(1);
+        }
+
+        URL wsdlURL;
+        File wsdlFile = new File(args[0]);
+        if (wsdlFile.exists()) {
+            wsdlURL = wsdlFile.toURL();
+        } else {
+            wsdlURL = new URL(args[0]);
+        }
+
+        SpringBusFactory bf = new SpringBusFactory();
+        URL busFile = Client.class.getResource("wssec.xml");
+        
+        Bus bus = bf.createBus(busFile.toString());
+        bf.setDefaultBus(bus);
+
+        System.out.println(wsdlURL);
+        SOAPService ss = new SOAPService(wsdlURL, SERVICE_NAME);
+        Greeter port = ss.getPort(PORT_NAME, Greeter.class);
+
+        System.out.println("Invoking greetMe...");
+        try {
+            String resp = port.greetMe(System.getProperty("user.name"));
+            System.out.println("Server responded with: " + resp);
+            System.out.println();
+
+        } catch (Exception e) {
+            System.out.println("Invocation failed with the following: " + e.getCause());
+            System.out.println();
+        }
+
+        System.exit(0);
+    }
+
+}

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/Client.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/Client.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/UTPasswordCallback.java
URL: 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
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/UTPasswordCallback.java (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/UTPasswordCallback.java Fri Dec  4 19:28:17 2009
@@ -0,0 +1,71 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package demo.wssec.client;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.UnsupportedCallbackException;
+
+import org.apache.ws.security.WSPasswordCallback;
+
+/**
+ */
+
+public class UTPasswordCallback implements CallbackHandler {
+
+    private Map&lt;String, String&gt; passwords =
+        new HashMap&lt;String, String&gt;();
+
+    public UTPasswordCallback() {
+        passwords.put("Alice", "ecilA");
+        passwords.put("abcd", "dcba");
+    }
+
+    /**
+     * Here, we attempt to get the password from the private
+     * alias/passwords map.
+     */
+    public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
+        for (int i = 0; i &lt; callbacks.length; i++) {
+            WSPasswordCallback pc = (WSPasswordCallback)callbacks[i];
+
+            String pass = passwords.get(pc.getIdentifier());
+            if (pass != null) {
+                pc.setPassword(pass);
+                return;
+            }
+        }
+
+        //
+        // Password not found
+        //
+        throw new IOException();
+    }
+
+    /**
+     * Add an alias/password pair to the callback mechanism.
+     */
+    public void setAliasPassword(String alias, String password) {
+        passwords.put(alias, password);
+    }
+}

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/UTPasswordCallback.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/UTPasswordCallback.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/wssec.xml
URL: 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
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/wssec.xml (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/wssec.xml Fri Dec  4 19:28:17 2009
@@ -0,0 +1,85 @@
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+  
+  http://www.apache.org/licenses/LICENSE-2.0
+  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+--&gt;
+
+&lt;!-- 
+  ** This file configures the Wibble Client
+  --&gt;
+
+&lt;beans xmlns="http://www.springframework.org/schema/beans"
+  xmlns:cxf="http://cxf.apache.org/core"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xmlns:sec="http://cxf.apache.org/configuration/security"
+  xmlns:http="http://cxf.apache.org/transports/http/configuration"
+  xmlns:jaxws="http://cxf.apache.org/jaxws"
+  xsi:schemaLocation="
+           http://cxf.apache.org/core
+           http://cxf.apache.org/schemas/core.xsd
+           http://cxf.apache.org/configuration/security
+           http://cxf.apache.org/schemas/configuration/security.xsd
+           http://cxf.apache.org/jaxws
+           http://cxf.apache.org/schemas/jaxws.xsd
+           http://cxf.apache.org/transports/http/configuration
+           http://cxf.apache.org/schemas/configuration/http-conf.xsd
+           http://www.springframework.org/schema/beans
+           http://www.springframework.org/schema/beans/spring-beans.xsd"&gt;
+
+    &lt;cxf:bus&gt;
+        &lt;cxf:features&gt;
+            &lt;cxf:logging/&gt;
+        &lt;/cxf:features&gt;
+    &lt;/cxf:bus&gt;
+
+  &lt;http:conduit name="{http://apache.org/hello_world_soap_http}SoapPort.http-conduit"&gt;
+    &lt;http:tlsClientParameters disableCNCheck="true"&gt;
+      &lt;sec:trustManagers&gt;
+          &lt;sec:keyStore type="JKS" password="password"
+               file="certs/truststore.jks"/&gt;
+      &lt;/sec:trustManagers&gt;
+      &lt;sec:keyManagers keyPassword="password"&gt;
+           &lt;sec:keyStore type="JKS" password="password" 
+                file="certs/wibble.jks"/&gt;
+      &lt;/sec:keyManagers&gt;
+      &lt;sec:cipherSuitesFilter&gt;
+        &lt;!-- these filters ensure that a ciphersuite with
+          export-suitable or null encryption is used,
+          but exclude anonymous Diffie-Hellman key change as
+          this is vulnerable to man-in-the-middle attacks --&gt;
+        &lt;sec:include&gt;.*_EXPORT_.*&lt;/sec:include&gt;
+        &lt;sec:include&gt;.*_EXPORT1024_.*&lt;/sec:include&gt;
+        &lt;sec:include&gt;.*_WITH_DES_.*&lt;/sec:include&gt;
+        &lt;sec:include&gt;.*_WITH_NULL_.*&lt;/sec:include&gt;
+        &lt;sec:exclude&gt;.*_DH_anon_.*&lt;/sec:exclude&gt;
+      &lt;/sec:cipherSuitesFilter&gt;
+    &lt;/http:tlsClientParameters&gt;
+   &lt;/http:conduit&gt;
+
+  
+   &lt;jaxws:client name="{http://apache.org/hello_world_soap_http}SoapPort" createdFromAPI="true"&gt;
+      &lt;jaxws:properties&gt;
+        &lt;entry key="ws-security.username" value="Alice" /&gt;
+        &lt;entry key="ws-security.callback-handler" value="demo.wssec.client.UTPasswordCallback" /&gt;
+      &lt;/jaxws:properties&gt;
+        
+   &lt;/jaxws:client&gt;
+   
+
+   
+&lt;/beans&gt; 
+

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/wssec.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/wssec.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/client/wssec.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/abigcompany_ca.pem
URL: 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
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/abigcompany_ca.pem (added)
+++ cxf/trunk/distribution/src/main/release/samples/ws_security/ut_policy/src/demo/wssec/resources/abigcompany_ca.pem Fri Dec  4 19:28:17 2009
@@ -0,0 +1,22 @@
+-----BEGIN CERTIFICATE-----
+MIIDlTCCAv6gAwIBAgIBADANBgkqhkiG9w0BAQQFADCBlDELMAkGA1UEBhMCSUUx
+DTALBgNVBAgTBExlaW4xDzANBgNVBAcTBkR1YmxpbjEaMBgGA1UEChMRTGFyZ2Ug
+V2lkZ2V0cyBJbmMxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRIwEAYDVQQDEwlsb2Nh
+bGhvc3QxHzAdBgkqhkiG9w0BCQEWEGluZm9AbHdpZGdldHMuaWUwHhcNMDYwNDA2
+MTMzMTU1WhcNMTYwNDAzMTMzMTU1WjCBlDELMAkGA1UEBhMCSUUxDTALBgNVBAgT
+BExlaW4xDzANBgNVBAcTBkR1YmxpbjEaMBgGA1UEChMRTGFyZ2UgV2lkZ2V0cyBJ
+bmMxFDASBgNVBAsTC0VuZ2luZWVyaW5nMRIwEAYDVQQDEwlsb2NhbGhvc3QxHzAd
+BgkqhkiG9w0BCQEWEGluZm9AbHdpZGdldHMuaWUwgZ8wDQYJKoZIhvcNAQEBBQAD
+gY0AMIGJAoGBAKXQaKoeGRuv9Mt/j8oAlDjL29Rf0XKA0ylHTt9thQ9O6GPiUAzd
+0djHAt0NbIV5f6DmlRfl+KQzri9d+BfywoCTSNoaclp1x5jM/dEjyaCXDPcNzr0l
+7oT1e5V5nLVDJG6qMjxveiQ73kX+IV3EoY8dwiFJALzp4y+1Cslkn08pAgMBAAGj
+gfQwgfEwHQYDVR0OBBYEFNvk101Zxkp0RlKVsvJpCvkcS99kMIHBBgNVHSMEgbkw
+gbaAFNvk101Zxkp0RlKVsvJpCvkcS99koYGapIGXMIGUMQswCQYDVQQGEwJJRTEN
+MAsGA1UECBMETGVpbjEPMA0GA1UEBxMGRHVibGluMRowGAYDVQQKExFMYXJnZSBX
+aWRnZXRzIEluYzEUMBIGA1UECxMLRW5naW5lZXJpbmcxEjAQBgNVBAMTCWxvY2Fs
+aG9zdDEfMB0GCSqGSIb3DQEJARYQaW5mb0Bsd2lkZ2V0cy5pZYIBADAMBgNVHRME
+BTADAQH/MA0GCSqGSIb3DQEBBAUAA4GBAHEPllN7pvzOwvCZWUMsnPihjnMibTnk
+26U1OTOxmKrLNUJ0FTqeygZk68SZjBsxyReW1LwXflAAWqBGhm9FlZIxEhceGQe+
+Wxi/9yDfMi0yG6+pC+Tb++nwDaJwU88N8HxNM3ZLDiV4td1AM3dIzHLyVs5Bb+G2
+jSrwuQwUi2F2
+-----END CERTIFICATE-----




</pre>
</div>
</content>
</entry>
<entry>
<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>
<author><name>sergeyb@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091204184608.92853238898A@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091204184608-92853238898A@eris-apache-org%3e</id>
<updated>2009-12-04T18:46:08Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: sergeyb
Date: Fri Dec  4 18:46:07 2009
New Revision: 887317

URL: http://svn.apache.org/viewvc?rev=887317&amp;view=rev
Log:
Adding AtomPojoProvider plus few minor fixes

Added:
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractAtomElementBuilder.java   (with props)
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractEntryBuilder.java   (with props)
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractFeedBuilder.java   (with props)
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementReader.java   (with props)
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementWriter.java   (with props)
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AtomPojoProvider.java   (with props)
    cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/AtomPojoProviderTest.java   (with props)
    cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/servers.xml   (with props)
Modified:
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/HttpServletResponseFilter.java
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java
    cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
    cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreSoapRestImpl.java
    cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSSoapBookTest.java

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java Fri Dec  4 18:46:07 2009
@@ -371,7 +371,7 @@
 
         InputStream inputStream = (InputStream)r.getEntity();
         if (inputStream == null) {
-            return cls == Response.class ? cls : null;
+            return cls == Response.class ? r : null;
         }
         try {
             int status = conn.getResponseCode();
@@ -379,7 +379,7 @@
                 Object length = r.getMetadata().getFirst(HttpHeaders.CONTENT_LENGTH);
                 if (length == null || Integer.parseInt(length.toString()) == 0
                     || status &gt;= 400) {
-                    return cls == Response.class ? cls : null;
+                    return cls == Response.class ? r : cls == InputStream.class ? inputStream : null;
                 }
             }
         } catch (IOException ex) {
@@ -550,7 +550,6 @@
         
         m.put(Message.CONTENT_TYPE, headers.getFirst(HttpHeaders.CONTENT_TYPE));
         
-        
         Exchange exchange = new ExchangeImpl();
         exchange.setSynchronous(true);
         exchange.setOutMessage(m);

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java Fri Dec  4 18:46:07 2009
@@ -302,7 +302,7 @@
      * @param memberClass expected type of collection member class
      * @return typed collection
      */
-    public &lt;T&gt; Collection&lt;T&gt; invokeAndGetCollection(String httpMethod, Object body, 
+    public &lt;T&gt; Collection&lt;? extends T&gt; invokeAndGetCollection(String httpMethod, Object body, 
                                                     Class&lt;T&gt; memberClass) {
         
         Response r = doInvoke(httpMethod, body, Collection.class, memberClass);

Added: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractAtomElementBuilder.java
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractAtomElementBuilder.java (added)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractAtomElementBuilder.java Fri Dec  4 18:46:07 2009
@@ -0,0 +1,120 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.jaxrs.ext.atom;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.cxf.jaxrs.ext.MessageContext;
+
+/**
+ * A callback-style provider which can be used to map an object to Atom Feed or Entry
+ * without having to deal directly with types representing Atom feeds or entries
+ * 
+ * @param &lt;T&gt; Type of objects which will be mapped to feeds or entries
+ */
+public abstract class AbstractAtomElementBuilder&lt;T&gt; {
+    
+    private MessageContext mc;
+    
+    /**
+     * Sets MessageContext
+     * @param context message context
+     */
+    public void setMessageContext(MessageContext context) {
+        mc = context;
+    }
+    
+    /**
+     * returns MessageContext
+     * @return message context
+     */
+    public MessageContext getMessageContext() {
+        return mc;
+    }
+    
+    /**
+     * 
+     * @param pojo Object which is being mapped
+     * @return element title
+     */
+    public String getTitle(T pojo) {
+        return null;
+    }
+    
+    /**
+     * 
+     * @param pojo Object which is being mapped
+     * @return element author
+     */
+    public String getAuthor(T pojo) {
+        return null;
+    }
+    
+    /**
+     * 
+     * @param pojo Object which is being mapped
+     * @return element id
+     */
+    public String getId(T pojo) {
+        return null;
+    }
+
+    /**
+     * 
+     * @param pojo Object which is being mapped
+     * @return base uri
+     */
+    public String getBaseUri(T pojo) {
+        return null;
+    }
+    
+    /**
+     * 
+     * @param pojo Object which is being mapped
+     * @return element updated date
+     */
+    public String getUpdated(T pojo) {
+        return null;
+    }
+    
+    
+    /**
+     * 
+     * @param pojo Object which is being mapped
+     * @return element categories
+     */
+    public List&lt;String&gt; getCategories(T pojo) {
+        return null;
+    }
+    
+    
+    //CHECKSTYLE:OFF
+    /**
+     * Returns a map of link URI to link relations type pairs 
+     * See {@link &lt;a href="http://www.iana.org/assignments/link-relations/link-relations.xml"&gt;Atom Link Relations&lt;/a&gt;}.
+     *
+     * @param pojo Object which is being mapped
+     * @return the map of link URI to link relations type pairs 
+     */
+    //CHECKSTYLE:ON
+    public Map&lt;String, String&gt; getLinks(T pojo) {
+        return null;
+    }
+}

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractAtomElementBuilder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractAtomElementBuilder.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractEntryBuilder.java
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractEntryBuilder.java (added)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractEntryBuilder.java Fri Dec  4 18:46:07 2009
@@ -0,0 +1,45 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.jaxrs.ext.atom;
+
+/**
+ * A callback-style provider which can be used to map an object to Atom Entry
+ * without having to deal directly with types representing Atom entries
+ * 
+ * @param &lt;T&gt; Type of objects which will be mapped to entries
+ */
+public abstract class AbstractEntryBuilder&lt;T&gt; extends AbstractAtomElementBuilder&lt;T&gt; {
+    /**
+     * 
+     * @param pojo Object which is being mapped
+     * @return element publication date
+     */
+    public String getPublished(T pojo) {
+        return null;
+    }
+    
+    /**
+     * 
+     * @param pojo Object which is being mapped
+     * @return element summary
+     */
+    public String getSummary(T pojo) {
+        return null;
+    }
+}

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractEntryBuilder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractEntryBuilder.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractFeedBuilder.java
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractFeedBuilder.java (added)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractFeedBuilder.java Fri Dec  4 18:46:07 2009
@@ -0,0 +1,48 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.jaxrs.ext.atom;
+
+/**
+ * A callback-style provider which can be used to map an object to Atom Feed
+ * without having to deal directly with types representing Atom feeds
+ * 
+ * @param &lt;T&gt; Type of objects which will be mapped to feeds or entries
+ */
+public abstract class AbstractFeedBuilder&lt;T&gt; extends AbstractAtomElementBuilder&lt;T&gt; {
+    
+    /**
+     * 
+     * @param pojo Object which is being mapped
+     * @return feed icon uri
+     */
+    public String getIcon(T pojo) {
+        return null;
+    }
+    
+    /**
+     * 
+     * @param pojo Object which is being mapped
+     * @return feed logo uri
+     */
+    public String getLogo(T pojo) {
+        return null;
+    }
+    
+    
+}

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractFeedBuilder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AbstractFeedBuilder.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementReader.java
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementReader.java (added)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementReader.java Fri Dec  4 18:46:07 2009
@@ -0,0 +1,39 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.jaxrs.ext.atom;
+
+import org.apache.abdera.model.Element;
+import org.apache.cxf.jaxrs.ext.MessageContext;
+
+/**
+ * A callback-style interface which can be used to deserialize an Atom Feed or Entry into a custom object
+ * without having to introduce direct dependencies on Abdera API in the 'main' service code  
+ * 
+ * @param &lt;T&gt; Type of Atom element, Feed or Entry
+ * @param &lt;E&gt; Type of objects which will be deseriaized from feed or entry
+ *  
+ */
+public interface AtomElementReader&lt;T extends Element, E&gt; {
+    /**
+     * @param element Feed or Entry instance 
+     * @param context current MessageContext
+     * @return pojoElement 
+     */
+    E readFrom(T element, MessageContext mc);
+}

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementReader.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementReader.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementWriter.java
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementWriter.java (added)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementWriter.java Fri Dec  4 18:46:07 2009
@@ -0,0 +1,40 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.jaxrs.ext.atom;
+
+import org.apache.abdera.model.Element;
+import org.apache.cxf.jaxrs.ext.MessageContext;
+
+/**
+ * A callback-style interface which can be used to map an object to an Atom Feed or Entry
+ * without having to introduce direct dependencies on Abdera API in the 'main' service code  
+ * 
+ * @param &lt;T&gt; Type of Atom element, Feed or Entry
+ * @param &lt;E&gt; Type of objects which will be mapped to feed or entry
+ *  
+ */
+public interface AtomElementWriter&lt;T extends Element, E&gt; {
+    /**
+     * @param element Feed or Entry instance 
+     * @param pojoElement An object which needs to be mapped to the feed or entry
+     * @param context modifiable output headers
+     * @param context MessageContext which can be used for adding properties related to the current URI, etc
+     */
+    void writeTo(T element, E pojoElement, MessageContext mc);
+}

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementWriter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/atom/AtomElementWriter.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/HttpServletResponseFilter.java
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/HttpServletResponseFilter.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/HttpServletResponseFilter.java Fri Dec  4 18:46:07 2009
@@ -19,6 +19,9 @@
 package org.apache.cxf.jaxrs.impl;
 
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
 
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
@@ -45,4 +48,29 @@
         return new ServletOutputStreamFilter(super.getOutputStream(), m);
     }
     
+    @Override
+    public void setHeader(String name, String value) {
+        setHeaderInternal(name, value, false);
+    }
+    
+    @Override
+    public void addHeader(String name, String value) {
+        setHeaderInternal(name, value, true);
+    }
+    
+    @SuppressWarnings("unchecked")
+    private void setHeaderInternal(String name, String value, boolean add) {
+        Map&lt;String, List&lt;String&gt;&gt; headers = 
+            (Map&lt;String, List&lt;String&gt;&gt;)m.get(Message.PROTOCOL_HEADERS);
+        List&lt;String&gt; values = headers.get(name);
+        if (values == null) {
+            values = new ArrayList&lt;String&gt;();
+            headers.put(name, values);
+        }
+        if (!add) {
+            values.clear();
+        }
+        values.add(value);
+    }
 }
+

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java Fri Dec  4 18:46:07 2009
@@ -232,10 +232,19 @@
             LOG.fine("Response content type is: " + responseType.toString());
             message.put(Message.CONTENT_TYPE, responseType.toString());
             
+            Annotation[] annotations = invoked != null ? invoked.getAnnotations() : new Annotation[]{};
+            
+            long size = writer.getSize(entity, targetType, genericType, annotations, responseType);
+            if (size &gt; 0) {
+                LOG.fine("Setting ContentLength to " + size + " as requested by " 
+                         + writer.getClass().getName());
+                responseHeaders.putSingle(HttpHeaders.CONTENT_LENGTH, Long.toString(size));
+            }
+            
             LOG.fine("Response EntityProvider is: " + writer.getClass().getName());
             try {
                 writer.writeTo(entity, targetType, genericType, 
-                               invoked != null ? invoked.getAnnotations() : new Annotation[]{}, 
+                               annotations, 
                                responseType, 
                                responseHeaders, 
                                message.getContent(OutputStream.class));

Added: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AtomPojoProvider.java
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AtomPojoProvider.java (added)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AtomPojoProvider.java Fri Dec  4 18:46:07 2009
@@ -0,0 +1,509 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.jaxrs.provider;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.logging.Logger;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.Produces;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.ext.MessageBodyReader;
+import javax.ws.rs.ext.MessageBodyWriter;
+import javax.ws.rs.ext.Provider;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.Unmarshaller;
+
+import org.apache.abdera.Abdera;
+import org.apache.abdera.factory.Factory;
+import org.apache.abdera.model.Content;
+import org.apache.abdera.model.Element;
+import org.apache.abdera.model.Entry;
+import org.apache.abdera.model.ExtensibleElement;
+import org.apache.abdera.model.Feed;
+import org.apache.abdera.writer.Writer;
+import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.jaxrs.ext.MessageContext;
+import org.apache.cxf.jaxrs.ext.atom.AbstractAtomElementBuilder;
+import org.apache.cxf.jaxrs.ext.atom.AbstractEntryBuilder;
+import org.apache.cxf.jaxrs.ext.atom.AbstractFeedBuilder;
+import org.apache.cxf.jaxrs.ext.atom.AtomElementReader;
+import org.apache.cxf.jaxrs.ext.atom.AtomElementWriter;
+import org.apache.cxf.jaxrs.utils.InjectionUtils;
+
+@Produces({"application/atom+xml", "application/atom+xml;type=feed", "application/atom+xml;type=entry" })
+@Consumes({"application/atom+xml", "application/atom+xml;type=feed", "application/atom+xml;type=entry" })
+@Provider
+public class AtomPojoProvider extends AbstractConfigurableProvider
+    implements MessageBodyWriter&lt;Object&gt;, MessageBodyReader&lt;Object&gt; {
+    
+    private static final Logger LOG = LogUtils.getL7dLogger(AtomPojoProvider.class);
+    private static final Abdera ATOM_ENGINE = new Abdera();
+    
+    private JAXBElementProvider jaxbProvider = new JAXBElementProvider();
+    private Map&lt;String, String&gt; collectionGetters = Collections.emptyMap();
+    private Map&lt;String, String&gt; collectionSetters = Collections.emptyMap();
+    private Map&lt;String, AtomElementWriter&lt;?, ?&gt;&gt; atomWriters = Collections.emptyMap();
+    private Map&lt;String, AtomElementReader&lt;?, ?&gt;&gt; atomReaders = Collections.emptyMap();
+    private Map&lt;String, AbstractAtomElementBuilder&lt;?&gt;&gt; atomBuilders = Collections.emptyMap();
+    
+    private MessageContext mc;   
+    private boolean formattedOutput;
+    
+    @Context
+    public void setMessageContext(MessageContext context) {
+        mc = context;
+        for (AbstractAtomElementBuilder builder : atomBuilders.values()) {
+            builder.setMessageContext(context);
+        }
+    }
+    
+    public long getSize(Object t, Class&lt;?&gt; type, Type genericType, Annotation[] annotations, MediaType mt) {
+        return -1;
+    }
+    
+    public void setCollectionGetters(Map&lt;String, String&gt; methods) {
+        collectionGetters = methods;
+    }
+    
+    public void setCollectionSetters(Map&lt;String, String&gt; methods) {
+        collectionSetters = methods;
+    }
+
+    public boolean isWriteable(Class&lt;?&gt; type, Type genericType, Annotation[] annotations, MediaType mt) {
+        return !Feed.class.isAssignableFrom(type) &amp;&amp; !Entry.class.isAssignableFrom(type);
+    }
+
+    public void writeTo(Object o, Class&lt;?&gt; clazz, Type genericType, Annotation[] annotations, 
+                        MediaType mt, MultivaluedMap&lt;String, Object&gt; headers, OutputStream os)
+        throws IOException {
+        boolean isFeed = isFeedRequested(mt);        
+        boolean isCollection = InjectionUtils.isSupportedCollectionOrArray(clazz);
+        
+        
+        if (isFeed &amp;&amp; isCollection) {
+            reportError("Atom feed can only be created from a collection wrapper", null);
+        } else if (!isFeed &amp;&amp; isCollection) {
+            reportError("Atom entry can only be created from a single object", null);
+        }
+        
+        Element atomElement = null;
+        try {
+            if (isFeed &amp;&amp; !isCollection) {
+                atomElement = createFeedFromCollectionWrapper(o);
+            } else if (!isFeed &amp;&amp; !isCollection) {
+                atomElement = createEntryFromObject(o, clazz);
+            }
+        } catch (Exception ex) {
+            throw new WebApplicationException(ex);
+        }
+        
+        try {
+            writeAtomElement(atomElement, os);
+        } catch (IOException ex) {
+            reportError("Atom element can not be serialized", ex);
+        }
+    }
+    
+    private void writeAtomElement(Element atomElement, OutputStream os) throws IOException {
+        if (formattedOutput) {
+            Writer w = ATOM_ENGINE.getWriterFactory().getWriter("prettyxml");
+            atomElement.writeTo(w, os);
+        } else {
+            atomElement.writeTo(os);
+        }
+    }
+    
+    public void setFormattedOutput(boolean formattedOutput) {
+        this.formattedOutput = formattedOutput;
+    }
+    
+    protected Feed createFeedFromCollectionWrapper(Object o) throws Exception {
+        
+        Factory factory = Abdera.getNewFactory();
+        Feed feed = factory.newFeed();
+        
+        boolean writerUsed = buildFeed(feed, o);
+        
+        if (feed.getEntries().size() &gt; 0) {
+            return feed;
+        }
+        
+        String methodName = getCollectionMethod(o.getClass(), true);
+        Object collection = null;
+        Method m = null;
+        try {
+            m = o.getClass().getMethod(methodName, new Class[]{});
+            collection = m.invoke(o, new Object[]{});
+        } catch (Exception ex) {
+            reportError("Collection for " + o.getClass().getName() + " can not be retrieved", ex);
+        }
+        
+        setFeedFromCollection(factory, feed, o, collection, m.getReturnType(), m.getGenericReturnType(), 
+                              writerUsed);
+        return feed;
+    }
+    
+    private String getCollectionMethod(Class&lt;?&gt; cls, boolean getter) {
+        Map&lt;String, String&gt; map = getter ? collectionGetters : collectionSetters; 
+        String methodName = map.get(cls.getName());
+        if (methodName == null) {
+            try {
+                methodName = (getter ? "get" : "set") + cls.getSimpleName();
+                Class[] params = getter ? new Class[]{} : new Class[]{List.class};
+                cls.getMethod(methodName, params);
+            } catch (Exception ex) {
+                String type = getter ? "getter" : "setter";
+                reportError("Collection " + type + " method for " + cls.getName()
+                    + " has not been specified and no default " + methodName + " is available", null);
+            }
+        }
+        return methodName;
+    }
+    
+    @SuppressWarnings("unchecked")
+    protected boolean buildFeed(Feed feed, Object o) {
+        AtomElementWriter&lt;?, ?&gt; builder = atomWriters.get(o.getClass().getName());
+        if (builder != null) {
+            ((AtomElementWriter)builder).writeTo(feed, o, mc);
+            return true;
+        }
+        return false;
+    }
+    
+    protected void setFeedFromCollection(Factory factory, Feed feed, Object wrapper, Object collection,
+        Class&lt;?&gt; collectionCls, Type collectionType, boolean writerUsed) throws Exception {
+        
+        Object[] arr = collectionCls.isArray() ? (Object[])collection : ((Collection)collection).toArray();
+        Class&lt;?&gt; memberClass = InjectionUtils.getActualType(collectionType);
+        
+        for (Object o : arr) {
+            Entry entry = createEntryFromObject(o, memberClass);
+            feed.addEntry(entry);
+        }
+        if (!writerUsed) {
+            setFeedProperties(factory, feed, wrapper, collection, collectionCls, collectionType);
+        }
+    }
+    
+    @SuppressWarnings("unchecked")
+    protected void setFeedProperties(Factory factory, Feed feed, Object wrapper, Object collection, 
+                                     Class&lt;?&gt; collectionCls, Type collectionType) {
+        
+        AbstractAtomElementBuilder&lt;?&gt; builder = atomBuilders.get(wrapper.getClass().getName());
+        if (builder == null) {
+            return;
+        }
+        setCommonElementProperties(factory, feed, builder, wrapper);
+        
+        AbstractFeedBuilder theBuilder = (AbstractFeedBuilder)builder;
+        
+        // the hierarchy is a bit broken in that we can not set author/title.etc on some
+        // common Feed/Entry super type
+        
+        String author = theBuilder.getAuthor(wrapper);
+        if (author != null) {
+            feed.addAuthor(author);
+        } else {
+            feed.addAuthor("CXF JAX-RS");
+        }
+        String title = theBuilder.getTitle(wrapper);
+        if (title != null) {
+            feed.setTitle(title);
+        } else {
+            feed.setTitle(String.format(wrapper.getClass().getSimpleName()
+                          + " collection with %d entry(ies)", feed.getEntries().size()));
+        }
+        
+        String id = theBuilder.getId(wrapper);
+        if (id != null) {
+            feed.setId(id);
+        } else {
+            feed.setId("uuid:" + UUID.randomUUID().toString());
+        }
+        String updated = theBuilder.getUpdated(wrapper);
+        if (updated != null) {
+            feed.setUpdated(updated);
+        } else {
+            feed.setUpdated(new Date());
+        }
+        
+        
+        Map&lt;String, String&gt; links = theBuilder.getLinks(wrapper);
+        if (links != null) {
+            for (Map.Entry&lt;String, String&gt; entry : links.entrySet()) {
+                feed.addLink(entry.getKey(), entry.getValue());
+            }
+        }
+        List&lt;String&gt; terms = theBuilder.getCategories(wrapper);
+        if (terms != null) {
+            for (String term : terms) {
+                feed.addCategory(term);
+            }
+        }
+        
+        
+        // feed specific
+        
+        String logo = theBuilder.getLogo(wrapper);
+        if (logo != null) {
+            feed.setLogo(logo);
+        }
+        String icon = theBuilder.getLogo(wrapper);
+        if (icon != null) {
+            feed.setIcon(icon);
+        }
+        
+    }
+    
+    
+    
+    protected Entry createEntryFromObject(Object o, Class&lt;?&gt; cls) throws Exception {
+        
+        Factory factory = Abdera.getNewFactory();
+        Entry entry = factory.getAbdera().newEntry();
+        
+        if (!buildEntry(entry, o)) {
+            setEntryProperties(factory, entry, o, cls);
+        }
+        
+        if (entry.getContentElement() == null 
+            &amp;&amp; entry.getExtensions().size() == 0) {
+            createEntryContent(entry, o, cls);    
+        }
+        return entry;
+    
+    }
+    
+    @SuppressWarnings("unchecked")
+    protected boolean buildEntry(Entry entry, Object o) {
+        AtomElementWriter&lt;?, ?&gt; builder = atomWriters.get(o.getClass().getName());
+        if (builder != null) {
+            ((AtomElementWriter)builder).writeTo(entry, o, mc);
+            return true;
+        }
+        return false;
+    }
+    
+    protected void createEntryContent(Entry e, Object o, Class&lt;?&gt; cls) throws Exception {
+    
+        Factory factory = Abdera.getNewFactory();
+        JAXBContext jc = jaxbProvider.getJAXBContext(cls, cls);
+        
+        StringWriter writer = new StringWriter();
+        jc.createMarshaller().marshal(o, writer);
+        
+        e.setContentElement(factory.newContent());
+        e.getContentElement().setContentType(Content.Type.XML);
+        e.getContentElement().setValue(writer.toString());
+        
+    }
+    
+    @SuppressWarnings("unchecked")
+    protected void setEntryProperties(Factory factory, Entry entry, Object o, Class&lt;?&gt; cls) {
+        AbstractAtomElementBuilder&lt;?&gt; builder = atomBuilders.get(o.getClass().getName());
+        if (builder == null) {
+            return;
+        }
+        
+        setCommonElementProperties(factory, entry, builder, o);
+        
+        AbstractEntryBuilder theBuilder = (AbstractEntryBuilder)builder;
+        String author = theBuilder.getAuthor(o);
+        if (author != null) {
+            entry.addAuthor(author);
+        } else {
+            entry.addAuthor("CXF JAX-RS");
+        }
+        String title = theBuilder.getTitle(o);
+        if (title != null) {
+            entry.setTitle(title);
+        } else {
+            entry.setTitle(o.getClass().getSimpleName());
+        }
+        
+        String id = theBuilder.getId(o);
+        if (id != null) {
+            entry.setId(id);
+        } else {
+            entry.setId("uuid:" + UUID.randomUUID().toString());
+        }
+        String updated = theBuilder.getUpdated(o);
+        if (updated != null) {
+            entry.setUpdated(updated);
+        } else {
+            entry.setUpdated(new Date());
+        }
+        
+        Map&lt;String, String&gt; links = theBuilder.getLinks(o);
+        if (links != null) {
+            for (Map.Entry&lt;String, String&gt; e : links.entrySet()) {
+                entry.addLink(e.getKey(), e.getValue());
+            }
+        }
+        
+        // entry specific
+        
+        String published = theBuilder.getPublished(o);
+        if (published != null) {
+            entry.setPublished(published);    
+        }
+        
+        String summary = theBuilder.getSummary(o);
+        if (summary != null) {
+            entry.setSummary(summary);    
+        }
+        
+        List&lt;String&gt; terms = theBuilder.getCategories(o);
+        if (terms != null) {
+            for (String term : terms) {
+                entry.addCategory(term);
+            }
+        }
+        
+    }
+
+    @SuppressWarnings("unchecked")
+    private void setCommonElementProperties(Factory factory, ExtensibleElement element, 
+                                            AbstractAtomElementBuilder builder,
+                                            Object o) {
+        String baseUri = builder.getBaseUri(o);
+        if (baseUri != null) {
+            element.setBaseUri(baseUri);
+        }
+        
+    }
+    
+    private void reportError(String message, Exception ex) {
+        LOG.warning(message);
+        Response response = Response.status(500).type("text/plain").entity(message).build();
+        if (ex == null) {
+            throw new WebApplicationException(response);
+        } else {
+            throw new WebApplicationException(ex, response);
+        }
+    }
+    
+    private boolean isFeedRequested(MediaType mt) {
+        if ("entry".equals(mt.getParameters().get("type"))) {
+            return false;
+        }
+        return true;
+    }
+
+    public void setAtomWriters(Map&lt;String, AtomElementWriter&lt;?, ?&gt;&gt; writers) {
+        this.atomWriters = writers;
+    }
+    
+    public void setAtomReaders(Map&lt;String, AtomElementReader&lt;?, ?&gt;&gt; readers) {
+        this.atomReaders = readers;
+    }
+
+    public void setAtomBuilders(Map&lt;String, AbstractAtomElementBuilder&lt;?&gt;&gt; builders) {
+        this.atomBuilders = builders;
+    }
+
+    public boolean isReadable(Class&lt;?&gt; type, Type genericType, Annotation[] annotations, 
+                              MediaType mediaType) {
+        return true;
+    }
+
+    public Object readFrom(Class&lt;Object&gt; cls, Type type, Annotation[] anns, MediaType mt, 
+                           MultivaluedMap&lt;String, String&gt; headers, InputStream is) 
+        throws IOException, WebApplicationException {
+        boolean isFeed = isFeedRequested(mt);
+        
+        if (isFeed) {
+            return readFromFeed(cls, mt, headers, is);
+        } else {
+            Entry entry = new AtomEntryProvider().readFrom(Entry.class, Entry.class, 
+                                                           new Annotation[]{}, mt, headers, is);
+            return readFromEntry(entry, cls, mt, headers, is);
+        }
+    }
+    
+    @SuppressWarnings("unchecked")
+    private Object readFromFeed(Class&lt;Object&gt; cls, MediaType mt, 
+                                MultivaluedMap&lt;String, String&gt; headers, InputStream is) 
+        throws IOException {
+        
+        AtomFeedProvider p = new AtomFeedProvider();
+        Feed feed = p.readFrom(Feed.class, Feed.class, new Annotation[]{}, mt, headers, is);
+        
+        AtomElementReader&lt;?, ?&gt; reader = atomReaders.get(cls.getName());
+        if (reader != null) {
+            return ((AtomElementReader)reader).readFrom(feed, mc);
+        }
+        Object instance = null;
+        try {
+            String methodName = getCollectionMethod(cls, false);
+            Method m = cls.getMethod(methodName, new Class[]{List.class});
+            Class&lt;?&gt; realCls = InjectionUtils.getActualType(m.getGenericParameterTypes()[0]);
+            List&lt;Object&gt; objects = new ArrayList&lt;Object&gt;();
+            for (Entry e : feed.getEntries()) {
+                objects.add(readFromEntry(e, realCls, mt, headers, is));
+            }
+            instance = cls.newInstance();
+            m.invoke(instance, new Object[]{objects});
+            
+        } catch (Exception ex) {
+            reportError("Object of type " + cls.getName() + " can not be deserialized from Feed", ex);
+        }
+        return instance;
+    }
+    
+    @SuppressWarnings("unchecked")
+    private Object readFromEntry(Entry entry, Class&lt;?&gt; cls, MediaType mt, 
+                                MultivaluedMap&lt;String, String&gt; headers, InputStream is) 
+        throws IOException {
+        
+        AtomElementReader&lt;?, ?&gt; reader = atomReaders.get(cls.getName());
+        if (reader != null) {
+            return ((AtomElementReader)reader).readFrom(entry, mc);
+        }
+        try {
+            Unmarshaller um = 
+                new JAXBElementProvider().getJAXBContext(cls, cls).createUnmarshaller();
+            return um.unmarshal(new StringReader(entry.getContent()));
+        } catch (Exception ex) {
+            reportError("Object of type " + cls.getName() + " can not be deserialized from Entry", ex);
+        }
+        return null;
+    }
+
+    
+}

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AtomPojoProvider.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AtomPojoProvider.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java Fri Dec  4 18:46:07 2009
@@ -41,6 +41,7 @@
 import javax.ws.rs.core.PathSegment;
 import javax.ws.rs.core.UriInfo;
 import javax.ws.rs.ext.MessageBodyWriter;
+import javax.ws.rs.ext.Provider;
 
 import org.apache.cxf.common.i18n.BundleUtils;
 import org.apache.cxf.common.logging.LogUtils;
@@ -48,6 +49,7 @@
 import org.apache.cxf.transport.http.AbstractHTTPDestination;
 
 @Produces("text/html")
+@Provider
 public class RequestDispatcherProvider extends AbstractConfigurableProvider
     implements MessageBodyWriter&lt;Object&gt; {
     

Added: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/AtomPojoProviderTest.java
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/AtomPojoProviderTest.java (added)
+++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/AtomPojoProviderTest.java Fri Dec  4 18:46:07 2009
@@ -0,0 +1,269 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.jaxrs.provider;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.StringReader;
+import java.lang.annotation.Annotation;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.ws.rs.core.MediaType;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.abdera.model.Entry;
+import org.apache.abdera.model.Feed;
+import org.apache.cxf.jaxrs.ext.MessageContext;
+import org.apache.cxf.jaxrs.ext.atom.AbstractEntryBuilder;
+import org.apache.cxf.jaxrs.ext.atom.AbstractFeedBuilder;
+import org.apache.cxf.jaxrs.ext.atom.AtomElementReader;
+import org.apache.cxf.jaxrs.ext.atom.AtomElementWriter;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+
+public class AtomPojoProviderTest extends Assert {
+
+    private ClassPathXmlApplicationContext ctx;
+    
+    @Before
+    public void setUp() {
+        ctx = 
+            new ClassPathXmlApplicationContext(new String[] {"/org/apache/cxf/jaxrs/provider/servers.xml"});
+    }
+    
+    @Test
+    public void testWriteFeedWithBuilders() throws Exception {
+        AtomPojoProvider provider = (AtomPojoProvider)ctx.getBean("atom");
+        assertNotNull(provider);
+        provider.setFormattedOutput(true);
+        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+        
+        Books books = new Books();
+        List&lt;Book&gt; bs = new ArrayList&lt;Book&gt;();
+        bs.add(new Book("a"));
+        bs.add(new Book("b"));
+        books.setBooks(bs);
+        provider.writeTo(books, Books.class, Books.class, new Annotation[]{},
+                         MediaType.valueOf("application/atom+xml"), null, bos);
+        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
+        Feed feed = new AtomFeedProvider().readFrom(Feed.class, null, null, null, null, bis);
+        assertEquals("Books", feed.getTitle()); 
+        List&lt;Entry&gt; entries = feed.getEntries();
+        assertEquals(2, entries.size());
+        verifyEntry(getEntry(entries, "a"), "a");
+        verifyEntry(getEntry(entries, "b"), "b");
+    }
+    
+    @Test
+    public void testWriteEntryWithBuilders() throws Exception {
+        AtomPojoProvider provider = (AtomPojoProvider)ctx.getBean("atom2");
+        assertNotNull(provider);
+        provider.setFormattedOutput(true);
+        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+        provider.writeTo(new Book("a"), Book.class, Book.class, new Annotation[]{},
+                         MediaType.valueOf("application/atom+xml;type=entry"), null, bos);
+        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
+        Entry entry = new AtomEntryProvider().readFrom(Entry.class, null, null, null, null, bis);
+        verifyEntry(entry, "a");
+        
+    }
+    
+    @Test
+    public void testReadEntryWithBuilders() throws Exception {
+        AtomPojoProvider provider = (AtomPojoProvider)ctx.getBean("atom3");
+        assertNotNull(provider);
+        doTestReadEntry(provider);
+    }
+    
+    @Test
+    public void testReadEntryWithoutBuilders() throws Exception {
+        doTestReadEntry(new AtomPojoProvider());
+    }
+    
+    @SuppressWarnings("unchecked")
+    private void doTestReadEntry(AtomPojoProvider provider) throws Exception {
+        provider.setFormattedOutput(true);
+        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+        MediaType mt = MediaType.valueOf("application/atom+xml;type=entry");
+        provider.writeTo(new Book("a"), Book.class, Book.class, new Annotation[]{}, mt, null, bos);
+        System.out.println(bos.toString());
+        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
+        Book book = (Book)provider.readFrom((Class)Book.class, Book.class, 
+                                            new Annotation[]{}, mt, null, bis);
+        assertEquals("a", book.getName());
+    }
+    
+    
+    @Test
+    public void testReadFeedWithBuilders() throws Exception {
+        AtomPojoProvider provider = (AtomPojoProvider)ctx.getBean("atom4");
+        assertNotNull(provider);
+        doTestReadFeed(provider);
+    }
+    
+    @Test
+    public void testReadFeedWithoutBuilders() throws Exception {
+        AtomPojoProvider provider = new AtomPojoProvider();
+        doTestReadFeed(provider);
+    }
+
+    @SuppressWarnings("unchecked")
+    private void doTestReadFeed(AtomPojoProvider provider) throws Exception {
+        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+        MediaType mt = MediaType.valueOf("application/atom+xml;type=feed");
+        Books books = new Books();
+        List&lt;Book&gt; bs = new ArrayList&lt;Book&gt;();
+        bs.add(new Book("a"));
+        bs.add(new Book("b"));
+        books.setBooks(bs);
+        provider.writeTo(books, Books.class, Books.class, new Annotation[]{}, mt, null, bos);
+        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
+        Books books2 = (Books)provider.readFrom((Class)Books.class, Books.class, 
+                                            new Annotation[]{}, mt, null, bis);
+        List&lt;Book&gt; list = books2.getBooks();
+        assertEquals(2, list.size());
+        assertTrue("a".equals(list.get(0).getName()) || "a".equals(list.get(1).getName()));
+        assertTrue("b".equals(list.get(0).getName()) || "b".equals(list.get(1).getName()));        
+    }
+        
+    private Entry getEntry(List&lt;Entry&gt; entries, String title) {
+        for (Entry e : entries) {
+            if (title.equals(e.getTitle())) {
+                return e;
+            }
+        }
+        return null;
+    }
+    
+    private void verifyEntry(Entry e, String title) {
+        assertNotNull(e);
+        assertEquals(title, e.getTitle());
+    }
+ 
+    public static class CustomFeedWriter implements AtomElementWriter&lt;Feed, Books&gt; {
+
+        public void writeTo(Feed feed, Books pojoFeed, MessageContext context) {
+            feed.setTitle("Books");
+        }
+        
+    }
+    
+    public static class CustomEntryWriter implements AtomElementWriter&lt;Entry, Book&gt; {
+
+        public void writeTo(Entry entry, Book pojoEntry, MessageContext context) {
+            entry.setTitle(pojoEntry.getName());
+        }
+        
+    }
+    
+    public static class CustomEntryReader implements AtomElementReader&lt;Entry, Book&gt; {
+
+        public Book readFrom(Entry element, MessageContext mc) {
+            try {
+                String s = element.getContent();
+                                
+                Unmarshaller um = 
+                    new JAXBElementProvider().getJAXBContext(Book.class, Book.class).createUnmarshaller();
+                return (Book)um.unmarshal(new StringReader(s));
+            } catch (Exception ex) {
+                // ignore
+            }
+            return null;
+        }
+        
+    }
+    
+    public static class CustomFeedReader implements AtomElementReader&lt;Feed, Books&gt; {
+
+        public Books readFrom(Feed element, MessageContext mc) {
+            Books books = new Books();
+            List&lt;Book&gt; list = new ArrayList&lt;Book&gt;();
+            CustomEntryReader entryReader = new CustomEntryReader();
+            for (Entry e : element.getEntries()) {
+                list.add(entryReader.readFrom(e, mc));
+            }
+            books.setBooks(list);
+            return books;
+        }
+        
+    }
+    
+    public static class CustomFeedBuilder extends AbstractFeedBuilder&lt;Books&gt; {
+        @Override
+        public String getBaseUri(Books books) {
+            return "http://books";
+        }
+    }
+    
+    public static class CustomEntryBuilder extends AbstractEntryBuilder&lt;Book&gt; {
+        @Override
+        public String getBaseUri(Book books) {
+            return "http://book";
+        }
+    }
+    
+        
+    @XmlRootElement
+    public static class Book {
+        private String name = "Book";
+
+        public Book() {
+            
+        }
+        
+        public Book(String name) {
+            this.name = name;
+        }
+        
+        public void setName(String name) {
+            this.name = name;
+        }
+
+        public String getName() {
+            return name;
+        }
+        
+        
+    }
+    
+    @XmlRootElement
+    public static class Books {
+        
+        private List&lt;Book&gt; books;
+        
+        public Books() {
+            
+        }
+        
+        public List&lt;Book&gt; getBooks() {
+            return books;
+        }
+        
+        public void setBooks(List&lt;Book&gt; list) {
+            books = list;
+        }
+    }
+}

Propchange: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/AtomPojoProviderTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/AtomPojoProviderTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/servers.xml
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/servers.xml (added)
+++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/servers.xml Fri Dec  4 18:46:07 2009
@@ -0,0 +1,84 @@
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+--&gt;
+&lt;beans xmlns="http://www.springframework.org/schema/beans"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xmlns:util="http://www.springframework.org/schema/util"
+      xsi:schemaLocation="
+http://www.springframework.org/schema/beans 
+http://www.springframework.org/schema/beans/spring-beans.xsd
+http://www.springframework.org/schema/util 
+http://www.springframework.org/schema/util/spring-util-2.0.xsd"&gt;
+
+  &lt;bean id="atom" class="org.apache.cxf.jaxrs.provider.AtomPojoProvider"&gt;
+    &lt;property name="atomWriters" ref="atomWriters"/&gt;
+    &lt;property name="atomBuilders" ref="atomBuilders"/&gt;
+  &lt;/bean&gt;
+  
+  &lt;bean id="atom2" class="org.apache.cxf.jaxrs.provider.AtomPojoProvider"&gt;
+    &lt;property name="atomWriters" ref="atomWriters2"/&gt;
+    &lt;property name="atomBuilders" ref="atomBuilders2"/&gt;
+  &lt;/bean&gt;
+  
+  &lt;bean id="atom3" class="org.apache.cxf.jaxrs.provider.AtomPojoProvider"&gt;
+    &lt;property name="atomWriters" ref="atomWriters2"/&gt;
+    &lt;property name="atomReaders" ref="atomReaders2"/&gt;
+  &lt;/bean&gt;
+  
+  &lt;bean id="atom4" class="org.apache.cxf.jaxrs.provider.AtomPojoProvider"&gt;
+    &lt;property name="atomWriters" ref="atomWriters"/&gt;
+    &lt;property name="atomReaders" ref="atomReaders"/&gt;
+  &lt;/bean&gt;
+  
+  &lt;util:map id="atomWriters"&gt;
+     &lt;entry key="org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$Books" value-ref="feedWriter"/&gt;
+     &lt;entry key="org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$Book" value-ref="entryWriter"/&gt;
+  &lt;/util:map&gt;  
+  
+  &lt;util:map id="atomWriters2"&gt;
+     &lt;entry key="org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$Book" value-ref="entryWriter"/&gt;
+  &lt;/util:map&gt;  
+  
+  &lt;util:map id="atomReaders"&gt;
+     &lt;entry key="org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$Books" value-ref="feedReader"/&gt;
+  &lt;/util:map&gt;
+  
+  &lt;util:map id="atomReaders2"&gt;
+     &lt;entry key="org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$Book" value-ref="entryReader"/&gt;
+  &lt;/util:map&gt;
+  
+  &lt;bean id="feedWriter" class="org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$CustomFeedWriter"/&gt;
+  &lt;bean id="entryWriter" class="org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$CustomEntryWriter"/&gt;
+  &lt;bean id="entryReader" class="org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$CustomEntryReader"/&gt;
+  &lt;bean id="feedReader" class="org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$CustomFeedReader"/&gt;
+  
+  &lt;util:map id="atomBuilders"&gt;
+    &lt;entry key="org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$Books" value-ref="simpleFeedBuilder"/&gt;
+    &lt;entry key="org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$Book" value-ref="simpleEntryBuilder"/&gt;
+  &lt;/util:map&gt;  
+  
+  &lt;bean id="simpleFeedBuilder" class="org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$CustomFeedBuilder"/&gt;
+  
+  &lt;util:map id="atomBuilders2"&gt;
+    &lt;entry key="org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$Book" value-ref="simpleEntryBuilder"/&gt;
+  &lt;/util:map&gt;  
+  
+  &lt;bean id="simpleEntryBuilder" class="org.apache.cxf.jaxrs.provider.AtomPojoProviderTest$CustomEntryBuilder"/&gt;
+  
+&lt;/beans&gt;

Propchange: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/servers.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/servers.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/servers.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
URL: 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
==============================================================================
--- cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java (original)
+++ cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java Fri Dec  4 18:46:07 2009
@@ -63,6 +63,7 @@
 import org.apache.cxf.message.ExchangeImpl;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.message.MessageImpl;
+import org.apache.cxf.message.MessageUtils;
 import org.apache.cxf.service.model.EndpointInfo;
 import org.apache.cxf.transport.AbstractConduit;
 import org.apache.cxf.transport.Destination;
@@ -2132,9 +2133,11 @@
             }
         
             
-            if (responseCode == HttpURLConnection.HTTP_NOT_FOUND) {
+            if (responseCode == HttpURLConnection.HTTP_NOT_FOUND
+                &amp;&amp; !MessageUtils.isTrue(outMessage.getContextualProperty(
+                    "org.apache.cxf.http.no_io_exceptions"))) {
                 throw new IOException("HTTP response '" + responseCode + ": " 
-                        + connection.getResponseMessage() + "'");
+                    + connection.getResponseMessage() + "'");
             }
 
             
@@ -2190,12 +2193,13 @@
                 List&lt;String&gt; cookies = connection.getHeaderFields().get("Set-Cookie");
                 Cookie.handleSetCookie(sessionCookies, cookies);
             }
-
-            in = in == null
-                 ? connection.getErrorStream() == null
-                   ? connection.getInputStream()
-                   : connection.getErrorStream()
-                 : in;
+            if (responseCode != HttpURLConnection.HTTP_NOT_FOUND) {
+                in = in == null
+                     ? connection.getErrorStream() == null
+                       ? connection.getInputStream()
+                       : connection.getErrorStream()
+                     : in;
+            }
                    
             // if (in == null) : it's perfectly ok for non-soap http services
             // have no response body : those interceptors which do need it will check anyway        

Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreSoapRestImpl.java
URL: 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
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreSoapRestImpl.java (original)
+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStoreSoapRestImpl.java Fri Dec  4 18:46:07 2009
@@ -29,6 +29,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.ResponseBuilder;
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.Marshaller;
 import javax.xml.ws.WebServiceContext;
@@ -85,9 +86,13 @@
                 details.setId(id);
                 throw new BookNotFoundFault(details);
             }
-            Response r = Response.status(returnCode).header("BOOK-HEADER", 
-                "No Book with id " + id + " is available").build();
-            throw new WebApplicationException(r);
+            String msg = "No Book with id " + id + " is available";
+            ResponseBuilder builder = Response.status(returnCode).header("BOOK-HEADER", msg);
+            
+            if (returnCode == 404) {
+                builder.type("text/plain").entity(msg);
+            }
+            throw new WebApplicationException(builder.build());
         }
         
         if (!invocationInProcess) {

Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSSoapBookTest.java
URL: 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
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSSoapBookTest.java (original)
+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSSoapBookTest.java Fri Dec  4 18:46:07 2009
@@ -26,6 +26,7 @@
 import java.net.URLConnection;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -177,6 +178,22 @@
     }
     
     @Test
+    public void testNoBook357WebClient() throws Exception {
+        
+        JAXRSClientFactoryBean bean = new JAXRSClientFactoryBean();
+        Map&lt;String, Object&gt; properties = new HashMap&lt;String, Object&gt;();
+        properties.put("org.apache.cxf.http.throw_io_exceptions", Boolean.TRUE);
+        bean.setProperties(properties);
+        bean.setAddress("http://localhost:9092/test/services/rest/bookstore/356");
+        WebClient wc = bean.createWebClient();
+        Response response = wc.get();
+        assertEquals(404, response.getStatus());
+        String msg = IOUtils.readStringFromStream((InputStream)response.getEntity());
+        assertEquals("No Book with id 356 is available", msg);
+        
+    }
+    
+    @Test
     public void testOtherInterceptorDrainingStream() throws Exception {
 
         String baseAddress = "http://localhost:9092/test/services/rest";




</pre>
</div>
</content>
</entry>
<entry>
<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>
<author><name>sergeyb@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091204182521.F3D62238898A@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091204182521-F3D62238898A@eris-apache-org%3e</id>
<updated>2009-12-04T18:25:21Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: sergeyb
Date: Fri Dec  4 18:25:21 2009
New Revision: 887310

URL: http://svn.apache.org/viewvc?rev=887310&amp;view=rev
Log:
Restoring the old WADL namespace on the 2.2.x only

Modified:
    cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java

Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java
URL: 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
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java
(original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java
Fri Dec  4 18:25:21 2009
@@ -88,7 +88,7 @@
 
     public static final String WADL_QUERY = "_wadl"; 
     public static final MediaType WADL_TYPE = MediaType.valueOf("application/vnd.sun.wadl+xml");

-    public static final String WADL_NS = "http://wadl.dev.java.net/2009/02";    
+    public static final String WADL_NS = "http://research.sun.com/wadl/2006/10";    
     
     private static final Logger LOG = LogUtils.getL7dLogger(WadlGenerator.class);
     private static final String JAXB_DEFAULT_NAMESPACE = "##default";




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r887271 - in /cxf/trunk: parent/pom.xml testutils/src/main/java/org/apache/cxf/testutil/common/ServerLauncher.java</title>
<author><name>dkulp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091204170737.B2C7C2388962@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091204170737-B2C7C2388962@eris-apache-org%3e</id>
<updated>2009-12-04T17:07:26Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: dkulp
Date: Fri Dec  4 17:07:20 2009
New Revision: 887271

URL: http://svn.apache.org/viewvc?rev=887271&amp;view=rev
Log:
Separate the flags for the surefire forking from the flags used for the
ServerLauncher for forking.

Modified:
    cxf/trunk/parent/pom.xml
    cxf/trunk/testutils/src/main/java/org/apache/cxf/testutil/common/ServerLauncher.java

Modified: cxf/trunk/parent/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/parent/pom.xml?rev=887271&amp;r1=887270&amp;r2=887271&amp;view=diff
==============================================================================
--- cxf/trunk/parent/pom.xml (original)
+++ cxf/trunk/parent/pom.xml Fri Dec  4 17:07:20 2009
@@ -37,6 +37,7 @@
         &lt;surefire.format&gt;brief&lt;/surefire.format&gt;
         &lt;surefire.usefile&gt;false&lt;/surefire.usefile&gt;
         &lt;surefire.fork.vmargs&gt;-ea&lt;/surefire.fork.vmargs&gt;
+        &lt;server.launcher.vmargs&gt;-ea&lt;/server.launcher.vmargs&gt;
         &lt;surefire.extra.sysprop.name1&gt;None&lt;/surefire.extra.sysprop.name1&gt;
         &lt;surefire.extra.sysprop.value1&gt;None&lt;/surefire.extra.sysprop.value1&gt;
         &lt;compile.flags&gt;-Xlint:unchecked,deprecation,fallthrough,finally&lt;/compile.flags&gt;
@@ -299,8 +300,8 @@
                                 &lt;value&gt;${spring.validation.mode}&lt;/value&gt;
                             &lt;/property&gt;
                             &lt;property&gt;
-                                &lt;name&gt;surefire.fork.vmargs&lt;/name&gt;
-                                &lt;value&gt;${surefire.fork.vmargs}&lt;/value&gt;
+                                &lt;name&gt;server.launcher.vmargs&lt;/name&gt;
+                                &lt;value&gt;${server.launcher.vmargs}&lt;/value&gt;
                             &lt;/property&gt;
                             &lt;property&gt;
                                 &lt;name&gt;${extra.surefire.syspropery.name}&lt;/name&gt;

Modified: cxf/trunk/testutils/src/main/java/org/apache/cxf/testutil/common/ServerLauncher.java
URL: 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
==============================================================================
--- cxf/trunk/testutils/src/main/java/org/apache/cxf/testutil/common/ServerLauncher.java (original)
+++ cxf/trunk/testutils/src/main/java/org/apache/cxf/testutil/common/ServerLauncher.java Fri
Dec  4 17:07:20 2009
@@ -343,7 +343,7 @@
         if (Boolean.getBoolean("java.awt.headless")) {
             cmd.add("-Djava.awt.headless=true");
         }
-        String vmargs = System.getProperty("surefire.fork.vmargs");
+        String vmargs = System.getProperty("server.launcher.vmargs");
         if (StringUtils.isEmpty(vmargs)) {
             cmd.add("-ea");
         } else {




</pre>
</div>
</content>
</entry>
<entry>
<title>[CONF] Apache CXF &gt; DOSGi Discovery Demo page</title>
<author><name>confluence@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c213948423.721.1259945400031.JavaMail.www-data@brutus%3e"/>
<id>urn:uuid:%3c213948423-721-1259945400031-JavaMail-www-data@brutus%3e</id>
<updated>2009-12-04T16:50:00Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
&lt;html&gt;
&lt;head&gt;
    &lt;base href="http://cwiki.apache.org/confluence"&gt;
            &lt;link rel="stylesheet" href="/confluence/s/1519/1/11/_/styles/combined.css?spaceKey=CXF&amp;amp;forWysiwyg=true"
type="text/css"&gt;
    &lt;/head&gt;
&lt;body style="background-color: white" bgcolor="white"&gt;
&lt;div id="pageContent"&gt;
&lt;div id="notificationFormat"&gt;
&lt;div class="wiki-content"&gt;
&lt;div class="email"&gt;
     &lt;h2&gt;&lt;a href="http://cwiki.apache.org/confluence/display/CXF/DOSGi+Discovery+Demo+page"&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="http://cwiki.apache.org/confluence/display/~davidb@apache.org"&gt;David
Bosschaert&lt;/a&gt;
    &lt;/h4&gt;
     Update to new properties
          &lt;div id="versionComment" class="noteMacro" style="display:none; padding: 5px;"&gt;
     Update to new properties&lt;br /&gt;
     &lt;/div&gt;
          &lt;br/&gt;
     &lt;div class="notificationGreySide"&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="/confluence/display/CXF/DOSGi+Discovery" title="DOSGi Discovery"&gt;DOSGi
Discovery&lt;/a&gt; page.&lt;/p&gt;


&lt;h2&gt;&lt;a name="DOSGiDiscoveryDemopage-Demodesign"&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="http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/discovery/interface/src/main/java/org/apache/cxf/dosgi/samples/discovery/DisplayService.java"
rel="nofollow"&gt;Display Service interface&lt;/a&gt; is as follows:&lt;/p&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;&lt;span class="code-keyword"&gt;public&lt;/span&gt; &lt;span
class="code-keyword"&gt;interface&lt;/span&gt; DisplayService {
    &lt;span class="code-object"&gt;boolean&lt;/span&gt; displayText(&lt;span class="code-object"&gt;String&lt;/span&gt;
text);
    &lt;span class="code-object"&gt;String&lt;/span&gt; getID();
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;&lt;a name="DOSGiDiscoveryDemopage-TheDisplayController%28serviceconsumer%29"&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="http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/discovery/client/src/main/java/org/apache/cxf/dosgi/samples/discovery/consumer/Activator.java"
rel="nofollow"&gt;Activator&lt;/a&gt;:&lt;/p&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;&lt;span class="code-keyword"&gt;public&lt;/span&gt; class Activator
&lt;span class="code-keyword"&gt;implements&lt;/span&gt; BundleActivator {
    &lt;span class="code-keyword"&gt;private&lt;/span&gt; ServiceTracker tracker;
    &lt;span class="code-keyword"&gt;private&lt;/span&gt; Map&amp;lt;DisplayService, &lt;span
class="code-object"&gt;String&lt;/span&gt;&amp;gt; displays = &lt;span class="code-keyword"&gt;new&lt;/span&gt;
ConcurrentHashMap&amp;lt;DisplayService, &lt;span class="code-object"&gt;String&lt;/span&gt;&amp;gt;();

    &lt;span class="code-keyword"&gt;public&lt;/span&gt; void start(BundleContext bc) &lt;span
class="code-keyword"&gt;throws&lt;/span&gt; Exception {
        tracker = &lt;span class="code-keyword"&gt;new&lt;/span&gt; ServiceTracker(bc, DisplayService.class.getName(),
&lt;span class="code-keyword"&gt;null&lt;/span&gt;) {
            &lt;span class="code-keyword"&gt;public&lt;/span&gt; &lt;span class="code-object"&gt;Object&lt;/span&gt;
addingService(ServiceReference reference) {
                &lt;span class="code-object"&gt;Object&lt;/span&gt; svc = &lt;span class="code-keyword"&gt;super&lt;/span&gt;.addingService(reference);
                &lt;span class="code-keyword"&gt;if&lt;/span&gt; (svc &lt;span class="code-keyword"&gt;instanceof&lt;/span&gt;
DisplayService) {
                    DisplayService d = (DisplayService) svc;
                    &lt;span class="code-object"&gt;System&lt;/span&gt;.out.println(&lt;span
class="code-quote"&gt;"Adding display: "&lt;/span&gt; + d.getID() + &lt;span class="code-quote"&gt;"
("&lt;/span&gt; + d + &lt;span class="code-quote"&gt;")"&lt;/span&gt;);
                    displays.put(d, d.getID());
                }
                &lt;span class="code-keyword"&gt;return&lt;/span&gt; svc;
            }

            &lt;span class="code-keyword"&gt;public&lt;/span&gt; void removedService(ServiceReference
reference, &lt;span class="code-object"&gt;Object&lt;/span&gt; service) {
                &lt;span class="code-object"&gt;String&lt;/span&gt; value = displays.remove(service);
                &lt;span class="code-object"&gt;System&lt;/span&gt;.out.println(&lt;span class="code-quote"&gt;"Removed
display: "&lt;/span&gt; + value);
                &lt;span class="code-keyword"&gt;super&lt;/span&gt;.removedService(reference,
service);
            }            
        };        
        tracker.open();
        &lt;span class="code-comment"&gt;// ... scheduler stuff that sends messages to all
registered displays ommitted
&lt;/span&gt;    }

    &lt;span class="code-keyword"&gt;public&lt;/span&gt; void stop(BundleContext bc) &lt;span
class="code-keyword"&gt;throws&lt;/span&gt; Exception {
        tracker.close();
    }
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;h3&gt;&lt;a name="DOSGiDiscoveryDemopage-No%7B%7Bremoteservices.xml%7D%7Dfile%21"&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="DOSGiDiscoveryDemopage-Runningthecontroller"&gt;&lt;/a&gt;Running the
controller&lt;/h3&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;
-&amp;gt; install http:&lt;span class="code-comment"&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="code-comment"&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-discovery-&lt;span
class="code-keyword"&gt;interface&lt;/span&gt;/1.1/cxf-dosgi-ri-samples-discovery-&lt;span
class="code-keyword"&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="code-object"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&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="DOSGiDiscoveryDemopage-TheRemoteDisplays%28serviceimplementation%29"&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="http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/discovery/impl/src/main/java/org/apache/cxf/dosgi/samples/discovery/impl/DisplayServiceImpl.java"
rel="nofollow"&gt;Display Service implementation&lt;/a&gt; in the local Service Registry.
This happens in the &lt;a href="http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/discovery/impl/src/main/java/org/apache/cxf/dosgi/samples/discovery/impl/Activator.java"
rel="nofollow"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;&lt;span class="code-keyword"&gt;public&lt;/span&gt; class Activator
&lt;span class="code-keyword"&gt;implements&lt;/span&gt; BundleActivator {
    &lt;span class="code-keyword"&gt;private&lt;/span&gt; ServiceRegistration reg;

    &lt;span class="code-keyword"&gt;public&lt;/span&gt; void start(BundleContext bc) &lt;span
class="code-keyword"&gt;throws&lt;/span&gt; Exception {        
        Dictionary props = &lt;span class="code-keyword"&gt;new&lt;/span&gt; Hashtable();
        
        &lt;span class="code-object"&gt;String&lt;/span&gt; host = getHostName(); &lt;span
class="code-comment"&gt;// obtain the current host name
&lt;/span&gt;        &lt;span class="code-object"&gt;int&lt;/span&gt; port = getPort();  
     &lt;span class="code-comment"&gt;// find a free port
&lt;/span&gt;        
        props.put(&lt;span class="code-quote"&gt;"service.exported.interfaces"&lt;/span&gt;,
&lt;span class="code-quote"&gt;"*"&lt;/span&gt;);
        props.put(&lt;span class="code-quote"&gt;"service.exported.configs"&lt;/span&gt;,
&lt;span class="code-quote"&gt;"org.apache.cxf.ws"&lt;/span&gt;);
        props.put(&lt;span class="code-quote"&gt;"org.apache.cxf.ws.address"&lt;/span&gt;,
&lt;span class="code-quote"&gt;"http:&lt;span class="code-comment"&gt;//"&lt;/span&gt; + host
+ &lt;span class="code-quote"&gt;":"&lt;/span&gt; + port + &lt;span class="code-quote"&gt;"/display"&lt;/span&gt;);
&lt;/span&gt;
        reg = bc.registerService(DisplayService.class.getName(), 
                &lt;span class="code-keyword"&gt;new&lt;/span&gt; DisplayServiceImpl(host
+ &lt;span class="code-quote"&gt;":"&lt;/span&gt; + port), props);
    }

    &lt;span class="code-keyword"&gt;public&lt;/span&gt; void stop(BundleContext bc) &lt;span
class="code-keyword"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;-&amp;gt; install http:&lt;span class="code-comment"&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-discovery-&lt;span
class="code-keyword"&gt;interface&lt;/span&gt;/1.1/cxf-dosgi-ri-samples-discovery-&lt;span
class="code-keyword"&gt;interface&lt;/span&gt;-1.1.jar
&lt;/span&gt;-&amp;gt; start 7
-&amp;gt; install http:&lt;span class="code-comment"&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="code-object"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&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="DOSGiDiscoveryDemopage-UnderthehoodintheZooKeeperserver"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&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="code-comment"&gt;//myhost\:1816/display
&lt;/span&gt;osgi.remote.interfaces=*
osgi.remote.configuration.pojo.address=http\:&lt;span class="code-comment"&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="DOSGiDiscoveryDemopage-OtherResources"&gt;&lt;/a&gt;Other Resources&lt;/h2&gt;
&lt;p&gt;Introducing Dynamic Discovery into OSGi Distributed Applications - &lt;a href="http://blog.akquinet.de/2009/09/23/introducing-dynamic-discovery-into-osgi-distributed-applications/"
rel="nofollow"&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="commentsSection" class="wiki-content pageSection"&gt;
       &lt;div style="float: right;"&gt;
            &lt;a href="http://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey"&gt;Change Notification Preferences&lt;/a&gt;
       &lt;/div&gt;

       &lt;a href="http://cwiki.apache.org/confluence/display/CXF/DOSGi+Discovery+Demo+page"&gt;View
Online&lt;/a&gt;
       |
       &lt;a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=119713&amp;revisedVersion=14&amp;originalVersion=13"&gt;View
Change&lt;/a&gt;
              |
       &lt;a href="http://cwiki.apache.org/confluence/display/CXF/DOSGi+Discovery+Demo+page?showComments=true&amp;amp;showCommentArea=true#addcomment"&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;


</pre>
</div>
</content>
</entry>
<entry>
<title>[CONF] Apache CXF &gt; DOSGi Discovery Demo page</title>
<author><name>confluence@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c830814040.719.1259945100024.JavaMail.www-data@brutus%3e"/>
<id>urn:uuid:%3c830814040-719-1259945100024-JavaMail-www-data@brutus%3e</id>
<updated>2009-12-04T16:45:00Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
&lt;html&gt;
&lt;head&gt;
    &lt;base href="http://cwiki.apache.org/confluence"&gt;
            &lt;link rel="stylesheet" href="/confluence/s/1519/1/11/_/styles/combined.css?spaceKey=CXF&amp;amp;forWysiwyg=true"
type="text/css"&gt;
    &lt;/head&gt;
&lt;body style="background-color: white" bgcolor="white"&gt;
&lt;div id="pageContent"&gt;
&lt;div id="notificationFormat"&gt;
&lt;div class="wiki-content"&gt;
&lt;div class="email"&gt;
     &lt;h2&gt;&lt;a href="http://cwiki.apache.org/confluence/display/CXF/DOSGi+Discovery+Demo+page"&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="http://cwiki.apache.org/confluence/display/~davidb@apache.org"&gt;David
Bosschaert&lt;/a&gt;
    &lt;/h4&gt;
     Update to 1.1
          &lt;div id="versionComment" class="noteMacro" style="display:none; padding: 5px;"&gt;
     Update to 1.1&lt;br /&gt;
     &lt;/div&gt;
          &lt;br/&gt;
     &lt;div class="notificationGreySide"&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="/confluence/display/CXF/DOSGi+Discovery" title="DOSGi Discovery"&gt;DOSGi
Discovery&lt;/a&gt; page.&lt;/p&gt;


&lt;h2&gt;&lt;a name="DOSGiDiscoveryDemopage-Demodesign"&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="http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/discovery/interface/src/main/java/org/apache/cxf/dosgi/samples/discovery/DisplayService.java"
rel="nofollow"&gt;Display Service interface&lt;/a&gt; is as follows:&lt;/p&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;&lt;span class="code-keyword"&gt;public&lt;/span&gt; &lt;span
class="code-keyword"&gt;interface&lt;/span&gt; DisplayService {
    &lt;span class="code-object"&gt;boolean&lt;/span&gt; displayText(&lt;span class="code-object"&gt;String&lt;/span&gt;
text);
    &lt;span class="code-object"&gt;String&lt;/span&gt; getID();
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;&lt;a name="DOSGiDiscoveryDemopage-TheDisplayController%28serviceconsumer%29"&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="http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/discovery/client/src/main/java/org/apache/cxf/dosgi/samples/discovery/consumer/Activator.java"
rel="nofollow"&gt;Activator&lt;/a&gt;:&lt;/p&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;&lt;span class="code-keyword"&gt;public&lt;/span&gt; class Activator
&lt;span class="code-keyword"&gt;implements&lt;/span&gt; BundleActivator {
    &lt;span class="code-keyword"&gt;private&lt;/span&gt; ServiceTracker tracker;
    &lt;span class="code-keyword"&gt;private&lt;/span&gt; Map&amp;lt;DisplayService, &lt;span
class="code-object"&gt;String&lt;/span&gt;&amp;gt; displays = &lt;span class="code-keyword"&gt;new&lt;/span&gt;
ConcurrentHashMap&amp;lt;DisplayService, &lt;span class="code-object"&gt;String&lt;/span&gt;&amp;gt;();

    &lt;span class="code-keyword"&gt;public&lt;/span&gt; void start(BundleContext bc) &lt;span
class="code-keyword"&gt;throws&lt;/span&gt; Exception {
        tracker = &lt;span class="code-keyword"&gt;new&lt;/span&gt; ServiceTracker(bc, DisplayService.class.getName(),
&lt;span class="code-keyword"&gt;null&lt;/span&gt;) {
            &lt;span class="code-keyword"&gt;public&lt;/span&gt; &lt;span class="code-object"&gt;Object&lt;/span&gt;
addingService(ServiceReference reference) {
                &lt;span class="code-object"&gt;Object&lt;/span&gt; svc = &lt;span class="code-keyword"&gt;super&lt;/span&gt;.addingService(reference);
                &lt;span class="code-keyword"&gt;if&lt;/span&gt; (svc &lt;span class="code-keyword"&gt;instanceof&lt;/span&gt;
DisplayService) {
                    DisplayService d = (DisplayService) svc;
                    &lt;span class="code-object"&gt;System&lt;/span&gt;.out.println(&lt;span
class="code-quote"&gt;"Adding display: "&lt;/span&gt; + d.getID() + &lt;span class="code-quote"&gt;"
("&lt;/span&gt; + d + &lt;span class="code-quote"&gt;")"&lt;/span&gt;);
                    displays.put(d, d.getID());
                }
                &lt;span class="code-keyword"&gt;return&lt;/span&gt; svc;
            }

            &lt;span class="code-keyword"&gt;public&lt;/span&gt; void removedService(ServiceReference
reference, &lt;span class="code-object"&gt;Object&lt;/span&gt; service) {
                &lt;span class="code-object"&gt;String&lt;/span&gt; value = displays.remove(service);
                &lt;span class="code-object"&gt;System&lt;/span&gt;.out.println(&lt;span class="code-quote"&gt;"Removed
display: "&lt;/span&gt; + value);
                &lt;span class="code-keyword"&gt;super&lt;/span&gt;.removedService(reference,
service);
            }            
        };        
        tracker.open();
        &lt;span class="code-comment"&gt;// ... scheduler stuff that sends messages to all
registered displays ommitted
&lt;/span&gt;    }

    &lt;span class="code-keyword"&gt;public&lt;/span&gt; void stop(BundleContext bc) &lt;span
class="code-keyword"&gt;throws&lt;/span&gt; Exception {
        tracker.close();
    }
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;h3&gt;&lt;a name="DOSGiDiscoveryDemopage-No%7B%7Bremoteservices.xml%7D%7Dfile%21"&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="DOSGiDiscoveryDemopage-Runningthecontroller"&gt;&lt;/a&gt;Running the
controller&lt;/h3&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;
-&amp;gt; install http:&lt;span class="code-comment"&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="code-comment"&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-discovery-&lt;span
class="code-keyword"&gt;interface&lt;/span&gt;/1.1/cxf-dosgi-ri-samples-discovery-&lt;span
class="code-keyword"&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="code-object"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&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="DOSGiDiscoveryDemopage-TheRemoteDisplays%28serviceimplementation%29"&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="http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/discovery/impl/src/main/java/org/apache/cxf/dosgi/samples/discovery/impl/DisplayServiceImpl.java"
rel="nofollow"&gt;Display Service implementation&lt;/a&gt; in the local Service Registry.
This happens in the &lt;a href="http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/discovery/impl/src/main/java/org/apache/cxf/dosgi/samples/discovery/impl/Activator.java"
rel="nofollow"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;&lt;span class="code-keyword"&gt;public&lt;/span&gt; class Activator
&lt;span class="code-keyword"&gt;implements&lt;/span&gt; BundleActivator {
    &lt;span class="code-keyword"&gt;private&lt;/span&gt; ServiceRegistration reg;

    &lt;span class="code-keyword"&gt;public&lt;/span&gt; void start(BundleContext bc) &lt;span
class="code-keyword"&gt;throws&lt;/span&gt; Exception {        
        Dictionary props = &lt;span class="code-keyword"&gt;new&lt;/span&gt; Hashtable();
        
        &lt;span class="code-object"&gt;String&lt;/span&gt; host = getHostName(); &lt;span
class="code-comment"&gt;// obtain the current host name
&lt;/span&gt;        &lt;span class="code-object"&gt;int&lt;/span&gt; port = getPort();  
     &lt;span class="code-comment"&gt;// find a free port
&lt;/span&gt;        
        props.put(&lt;span class="code-quote"&gt;"osgi.remote.interfaces"&lt;/span&gt;, &lt;span
class="code-quote"&gt;"*"&lt;/span&gt;);
        props.put(&lt;span class="code-quote"&gt;"osgi.remote.configuration.type"&lt;/span&gt;,
&lt;span class="code-quote"&gt;"pojo"&lt;/span&gt;);
        props.put(&lt;span class="code-quote"&gt;"osgi.remote.configuration.pojo.address"&lt;/span&gt;,
&lt;span class="code-quote"&gt;"http:&lt;span class="code-comment"&gt;//"&lt;/span&gt; + host
+ &lt;span class="code-quote"&gt;":"&lt;/span&gt; + port + &lt;span class="code-quote"&gt;"/display"&lt;/span&gt;);
&lt;/span&gt;
        reg = bc.registerService(DisplayService.class.getName(), 
                &lt;span class="code-keyword"&gt;new&lt;/span&gt; DisplayServiceImpl(host
+ &lt;span class="code-quote"&gt;":"&lt;/span&gt; + port), props);
    }

    &lt;span class="code-keyword"&gt;public&lt;/span&gt; void stop(BundleContext bc) &lt;span
class="code-keyword"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;-&amp;gt; install http:&lt;span class="code-comment"&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-discovery-&lt;span
class="code-keyword"&gt;interface&lt;/span&gt;/1.1/cxf-dosgi-ri-samples-discovery-&lt;span
class="code-keyword"&gt;interface&lt;/span&gt;-1.1.jar
&lt;/span&gt;-&amp;gt; start 7
-&amp;gt; install http:&lt;span class="code-comment"&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="code-object"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&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="DOSGiDiscoveryDemopage-UnderthehoodintheZooKeeperserver"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&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="code-comment"&gt;//myhost\:1816/display
&lt;/span&gt;osgi.remote.interfaces=*
osgi.remote.configuration.pojo.address=http\:&lt;span class="code-comment"&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="DOSGiDiscoveryDemopage-OtherResources"&gt;&lt;/a&gt;Other Resources&lt;/h2&gt;
&lt;p&gt;Introducing Dynamic Discovery into OSGi Distributed Applications - &lt;a href="http://blog.akquinet.de/2009/09/23/introducing-dynamic-discovery-into-osgi-distributed-applications/"
rel="nofollow"&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="commentsSection" class="wiki-content pageSection"&gt;
       &lt;div style="float: right;"&gt;
            &lt;a href="http://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey"&gt;Change Notification Preferences&lt;/a&gt;
       &lt;/div&gt;

       &lt;a href="http://cwiki.apache.org/confluence/display/CXF/DOSGi+Discovery+Demo+page"&gt;View
Online&lt;/a&gt;
       |
       &lt;a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=119713&amp;revisedVersion=12&amp;originalVersion=11"&gt;View
Change&lt;/a&gt;
              |
       &lt;a href="http://cwiki.apache.org/confluence/display/CXF/DOSGi+Discovery+Demo+page?showComments=true&amp;amp;showCommentArea=true#addcomment"&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;


</pre>
</div>
</content>
</entry>
<entry>
<title>[CONF] Apache CXF &gt; DOSGi Discovery</title>
<author><name>confluence@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c596290340.717.1259944620014.JavaMail.www-data@brutus%3e"/>
<id>urn:uuid:%3c596290340-717-1259944620014-JavaMail-www-data@brutus%3e</id>
<updated>2009-12-04T16:37:00Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
&lt;html&gt;
&lt;head&gt;
    &lt;base href="http://cwiki.apache.org/confluence"&gt;
            &lt;link rel="stylesheet" href="/confluence/s/1519/1/11/_/styles/combined.css?spaceKey=CXF&amp;amp;forWysiwyg=true"
type="text/css"&gt;
    &lt;/head&gt;
&lt;body style="background-color: white" bgcolor="white"&gt;
&lt;div id="pageContent"&gt;
&lt;div id="notificationFormat"&gt;
&lt;div class="wiki-content"&gt;
&lt;div class="email"&gt;
     &lt;h2&gt;&lt;a href="http://cwiki.apache.org/confluence/display/CXF/DOSGi+Discovery"&gt;DOSGi
Discovery&lt;/a&gt;&lt;/h2&gt;
     &lt;h4&gt;Page &lt;b&gt;edited&lt;/b&gt; by             &lt;a href="http://cwiki.apache.org/confluence/display/~davidb@apache.org"&gt;David
Bosschaert&lt;/a&gt;
    &lt;/h4&gt;
     Update to 1.1
          &lt;div id="versionComment" class="noteMacro" style="display:none; padding: 5px;"&gt;
     Update to 1.1&lt;br /&gt;
     &lt;/div&gt;
          &lt;br/&gt;
     &lt;div class="notificationGreySide"&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="DOSGiDiscovery-Introduction"&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="DOSGiDiscovery-InstallingandruntheZooKeeperserver"&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="http://hadoop.apache.org/zookeeper/docs/current/zookeeperStarted.html"
rel="nofollow"&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="https://issues.apache.org/jira/browse/ZOOKEEPER-426" rel="nofollow"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&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="DOSGiDiscovery-InstallingtheCXFDiscoveryBundles"&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="DOSGiDiscovery-SingleBundleDistribution"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;
-&amp;gt; install http:&lt;span class="code-comment"&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="code-comment"&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="code-object"&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="DOSGiDiscovery-MultiBundleDistribution"&gt;&lt;/a&gt;Multi Bundle Distribution&lt;/h3&gt;
&lt;p&gt;TODO&lt;/p&gt;

&lt;h2&gt;&lt;a name="DOSGiDiscovery-ConfiguringDiscovery"&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="http://hadoop.apache.org/zookeeper/docs/current/zookeeperAdmin.html" rel="nofollow"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&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="/confluence/display/CXF/DOSGi+Discovery+Demo+page"
title="DOSGi Discovery Demo page"&gt;DOSGi Discovery Demo page&lt;/a&gt;.&lt;/p&gt;
     &lt;/div&gt;
     &lt;div id="commentsSection" class="wiki-content pageSection"&gt;
       &lt;div style="float: right;"&gt;
            &lt;a href="http://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey"&gt;Change Notification Preferences&lt;/a&gt;
       &lt;/div&gt;

       &lt;a href="http://cwiki.apache.org/confluence/display/CXF/DOSGi+Discovery"&gt;View
Online&lt;/a&gt;
       |
       &lt;a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=119937&amp;revisedVersion=10&amp;originalVersion=9"&gt;View
Change&lt;/a&gt;
              |
       &lt;a href="http://cwiki.apache.org/confluence/display/CXF/DOSGi+Discovery?showComments=true&amp;amp;showCommentArea=true#addcomment"&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;


</pre>
</div>
</content>
</entry>
<entry>
<title>[CONF] Apache CXF &gt; DOSGi DS Demo page</title>
<author><name>confluence@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c544155470.708.1259941500017.JavaMail.www-data@brutus%3e"/>
<id>urn:uuid:%3c544155470-708-1259941500017-JavaMail-www-data@brutus%3e</id>
<updated>2009-12-04T15:45:00Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
&lt;html&gt;
&lt;head&gt;
    &lt;base href="http://cwiki.apache.org/confluence"&gt;
            &lt;link rel="stylesheet" href="/confluence/s/1519/1/11/_/styles/combined.css?spaceKey=CXF&amp;amp;forWysiwyg=true"
type="text/css"&gt;
    &lt;/head&gt;
&lt;body style="background-color: white" bgcolor="white"&gt;
&lt;div id="pageContent"&gt;
&lt;div id="notificationFormat"&gt;
&lt;div class="wiki-content"&gt;
&lt;div class="email"&gt;
     &lt;h2&gt;&lt;a href="http://cwiki.apache.org/confluence/display/CXF/DOSGi+DS+Demo+page"&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="http://cwiki.apache.org/confluence/display/~davidb@apache.org"&gt;David
Bosschaert&lt;/a&gt;
    &lt;/h4&gt;
     Update to 1.1
          &lt;div id="versionComment" class="noteMacro" style="display:none; padding: 5px;"&gt;
     Update to 1.1&lt;br /&gt;
     &lt;/div&gt;
          &lt;br/&gt;
     &lt;div class="notificationGreySide"&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="DOSGiDSDemopage-Demodesign"&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="/confluence/download/attachments/119430/dosgi_cxf_ds.png" align="absmiddle" border="0"
/&gt; &lt;br/&gt;
The &lt;a href="http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/ds/interface/src/main/java/org/apache/cxf/dosgi/samples/ds/AdderService.java"
rel="nofollow"&gt;Adder Service interface&lt;/a&gt; is as follows:&lt;/p&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;&lt;span class="code-keyword"&gt;public&lt;/span&gt; &lt;span
class="code-keyword"&gt;interface&lt;/span&gt; AdderService {
    &lt;span class="code-object"&gt;int&lt;/span&gt; add(&lt;span class="code-object"&gt;int&lt;/span&gt;
a, &lt;span class="code-object"&gt;int&lt;/span&gt; b);
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;&lt;a name="DOSGiDSDemopage-TheAdderServiceImplementation"&gt;&lt;/a&gt;The Adder
Service Implementation&lt;/h2&gt;
&lt;p&gt;The service implementation providers a &lt;a href="http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/ds/impl/src/main/java/org/apache/cxf/dosgi/samples/ds/impl/AdderServiceImpl.java"
rel="nofollow"&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="http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/ds/impl/src/main/resources/OSGI-INF/component.xml"
rel="nofollow"&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="http://localhost:9090/adder"
rel="nofollow"&gt;http://localhost:9090/adder&lt;/a&gt;.&lt;/p&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-xml"&gt;&lt;span class="code-tag"&gt;&amp;lt;scr:component &lt;span class="code-keyword"&gt;xmlns:scr&lt;/span&gt;=&lt;span
class="code-quote"&gt;"http://www.osgi.org/xmlns/scr/v1.1.0"&lt;/span&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="code-tag"&gt;&amp;lt;implementation class=&lt;span class="code-quote"&gt;"org.apache.cxf.dosgi.samples.ds.impl.AdderServiceImpl"&lt;/span&gt;/&amp;gt;&lt;/span&gt;
  
  &lt;span class="code-tag"&gt;&amp;lt;property name=&lt;span class="code-quote"&gt;"osgi.remote.interfaces"&lt;/span&gt;&amp;gt;&lt;/span&gt;*&lt;span
class="code-tag"&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;
  &lt;span class="code-tag"&gt;&amp;lt;property name=&lt;span class="code-quote"&gt;"osgi.remote.configuration.type"&lt;/span&gt;
value=&lt;span class="code-quote"&gt;"pojo"&lt;/span&gt; /&amp;gt;&lt;/span&gt;
  &lt;span class="code-tag"&gt;&amp;lt;property name=&lt;span class="code-quote"&gt;"osgi.remote.configuration.pojo.address"&lt;/span&gt;
value=&lt;span class="code-quote"&gt;"http://localhost:9090/adder"&lt;/span&gt; /&amp;gt;&lt;/span&gt;
  
  &lt;span class="code-tag"&gt;&amp;lt;service&amp;gt;&lt;/span&gt;
    &lt;span class="code-tag"&gt;&amp;lt;provide interface=&lt;span class="code-quote"&gt;"org.apache.cxf.dosgi.samples.ds.AdderService"&lt;/span&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="code-tag"&gt;&amp;lt;/service&amp;gt;&lt;/span&gt;
&lt;span class="code-tag"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&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="/confluence/download/attachments/119430/start.JPG" align="absmiddle" border="0"
/&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="/confluence/download/attachments/119430/launch.JPG" align="absmiddle"
border="0" /&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;osgi&amp;gt; install http:&lt;span class="code-comment"&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-ds-&lt;span
class="code-keyword"&gt;interface&lt;/span&gt;/1.1/cxf-dosgi-ri-samples-ds-&lt;span class="code-keyword"&gt;interface&lt;/span&gt;-1.1.jar
&lt;/span&gt;Bundle id is 5

osgi&amp;gt; install http:&lt;span class="code-comment"&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="/confluence/images/icons/emoticons/check.gif" width="16" height="16"
align="absmiddle" alt="" border="0"&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="http://svn.apache.org/repos/asf/cxf/dosgi/trunk"
rel="nofollow"&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="/confluence/download/attachments/119430/wsdl.JPG" align="absmiddle" border="0"
/&gt;&lt;/p&gt;

&lt;h2&gt;&lt;a name="DOSGiDSDemopage-TheAdderServiceConsumer"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;&lt;span class="code-keyword"&gt;public&lt;/span&gt; class AdderConsumer
{
    &lt;span class="code-keyword"&gt;private&lt;/span&gt; AdderService adder;
    
    &lt;span class="code-keyword"&gt;public&lt;/span&gt; void bindAdder(AdderService a) {
        adder = a;
    }
    
    &lt;span class="code-keyword"&gt;public&lt;/span&gt; void unbindAdder(AdderService a)
{
        adder = &lt;span class="code-keyword"&gt;null&lt;/span&gt;;
    }
    
    &lt;span class="code-keyword"&gt;public&lt;/span&gt; void start(ComponentContext cc) {
        &lt;span class="code-object"&gt;System&lt;/span&gt;.out.println(&lt;span class="code-quote"&gt;"Using
adder service: 1 + 1 = "&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="http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/ds/client/src/main/resources/OSGI-INF/component.xml"
rel="nofollow"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-xml"&gt;&lt;span class="code-tag"&gt;&amp;lt;scr:component &lt;span class="code-keyword"&gt;xmlns:scr&lt;/span&gt;=&lt;span
class="code-quote"&gt;"http://www.osgi.org/xmlns/scr/v1.1.0"&lt;/span&gt; activate=&lt;span
class="code-quote"&gt;"start"&lt;/span&gt;&amp;gt;&lt;/span&gt;
   &lt;span class="code-tag"&gt;&amp;lt;implementation class=&lt;span class="code-quote"&gt;"org.apache.cxf.dosgi.samples.ds.consumer.AdderConsumer"&lt;/span&gt;/&amp;gt;&lt;/span&gt;
   &lt;span class="code-tag"&gt;&amp;lt;reference interface=&lt;span class="code-quote"&gt;"org.apache.cxf.dosgi.samples.ds.AdderService"&lt;/span&gt;
name=&lt;span class="code-quote"&gt;"AdderService"&lt;/span&gt; cardinality=&lt;span class="code-quote"&gt;"1..1"&lt;/span&gt;
policy=&lt;span class="code-quote"&gt;"dynamic"&lt;/span&gt; bind=&lt;span class="code-quote"&gt;"bindAdder"&lt;/span&gt;
unbind=&lt;span class="code-quote"&gt;"unbindAdder"&lt;/span&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="code-tag"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&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="http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/ds/client/src/main/resources/OSGI-INF/remote-service/remote-services.xml"
rel="nofollow"&gt;&lt;tt&gt;OSGI-INF/remote-service/remote-services.xml&lt;/tt&gt;&lt;/a&gt;
file:&lt;/p&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-xml"&gt;&lt;span class="code-tag"&gt;&amp;lt;service-descriptions xmlns=&lt;span
class="code-quote"&gt;"http://www.osgi.org/xmlns/sd/v1.0.0"&lt;/span&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="code-tag"&gt;&amp;lt;service-description&amp;gt;&lt;/span&gt;
    &lt;span class="code-tag"&gt;&amp;lt;provide interface=&lt;span class="code-quote"&gt;"org.apache.cxf.dosgi.samples.ds.AdderService"&lt;/span&gt;
/&amp;gt;&lt;/span&gt;
    &lt;span class="code-tag"&gt;&amp;lt;property name=&lt;span class="code-quote"&gt;"osgi.remote.interfaces"&lt;/span&gt;&amp;gt;&lt;/span&gt;*&lt;span
class="code-tag"&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;
    &lt;span class="code-tag"&gt;&amp;lt;property name=&lt;span class="code-quote"&gt;"osgi.remote.configuration.type"&lt;/span&gt;&amp;gt;&lt;/span&gt;pojo&lt;span
class="code-tag"&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;
    &lt;span class="code-tag"&gt;&amp;lt;property name=&lt;span class="code-quote"&gt;"osgi.remote.configuration.pojo.address"&lt;/span&gt;&amp;gt;&lt;/span&gt;http://localhost:9090/adder&lt;span
class="code-tag"&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;
  &lt;span class="code-tag"&gt;&amp;lt;/service-description&amp;gt;&lt;/span&gt;
&lt;span class="code-tag"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;osgi&amp;gt; install http:&lt;span class="code-comment"&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-ds-&lt;span
class="code-keyword"&gt;interface&lt;/span&gt;/1.1/cxf-dosgi-ri-samples-ds-&lt;span class="code-keyword"&gt;interface&lt;/span&gt;-1.1.jar
&lt;/span&gt;Bundle id is 5

osgi&amp;gt; install http:&lt;span class="code-comment"&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="code-keyword"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;Adder service invoked: 1 + 1 = 2&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
     &lt;/div&gt;
     &lt;div id="commentsSection" class="wiki-content pageSection"&gt;
       &lt;div style="float: right;"&gt;
            &lt;a href="http://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey"&gt;Change Notification Preferences&lt;/a&gt;
       &lt;/div&gt;

       &lt;a href="http://cwiki.apache.org/confluence/display/CXF/DOSGi+DS+Demo+page"&gt;View
Online&lt;/a&gt;
       |
       &lt;a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=119430&amp;revisedVersion=10&amp;originalVersion=9"&gt;View
Change&lt;/a&gt;
              |
       &lt;a href="http://cwiki.apache.org/confluence/display/CXF/DOSGi+DS+Demo+page?showComments=true&amp;amp;showCommentArea=true#addcomment"&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;


</pre>
</div>
</content>
</entry>
<entry>
<title>[CONF] Apache CXF &gt; DOSGi DS Demo page</title>
<author><name>confluence@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c631503497.706.1259940840023.JavaMail.www-data@brutus%3e"/>
<id>urn:uuid:%3c631503497-706-1259940840023-JavaMail-www-data@brutus%3e</id>
<updated>2009-12-04T15:34:00Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
&lt;html&gt;
&lt;head&gt;
    &lt;base href="http://cwiki.apache.org/confluence"&gt;
            &lt;link rel="stylesheet" href="/confluence/s/1519/1/11/_/styles/combined.css?spaceKey=CXF&amp;amp;forWysiwyg=true"
type="text/css"&gt;
    &lt;/head&gt;
&lt;body style="background-color: white" bgcolor="white"&gt;
&lt;div id="pageContent"&gt;
&lt;div id="notificationFormat"&gt;
&lt;div class="wiki-content"&gt;
&lt;div class="email"&gt;
    &lt;h2&gt;&lt;a href="http://cwiki.apache.org/confluence/display/CXF/DOSGi+DS+Demo+page"&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="http://cwiki.apache.org/confluence/display/~davidb@apache.org"&gt;David
Bosschaert&lt;/a&gt;
    &lt;/h4&gt;
    &lt;br/&gt;
    &lt;div class="notificationGreySide"&gt;
    &lt;p&gt;
            &lt;a href="http://cwiki.apache.org/confluence/download/attachments/119430/start.JPG?version=2"&gt;start.JPG&lt;/a&gt;
        &lt;span class="smalltext"&gt;(65 kB image/jpeg)&lt;/span&gt;
                    &lt;a href="http://cwiki.apache.org/confluence/download/attachments/119430/launch.JPG?version=2"&gt;launch.JPG&lt;/a&gt;
        &lt;span class="smalltext"&gt;(115 kB image/jpeg)&lt;/span&gt;
                &lt;/p&gt;
    &lt;/div&gt;
    &lt;div id="commentsSection" class="wiki-content pageSection"&gt;
       &lt;div style="float: right;"&gt;
            &lt;a href="http://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey"&gt;Change Notification Preferences&lt;/a&gt;
       &lt;/div&gt;
       &lt;a href="http://cwiki.apache.org/confluence/pages/viewpageattachments.action?pageId=119430"&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;


</pre>
</div>
</content>
</entry>
<entry>
<title>[CONF] Apache CXF &gt; DOSGi Multi Bundle Setup</title>
<author><name>confluence@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c1268629286.704.1259939280030.JavaMail.www-data@brutus%3e"/>
<id>urn:uuid:%3c1268629286-704-1259939280030-JavaMail-www-data@brutus%3e</id>
<updated>2009-12-04T15:08:00Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
&lt;html&gt;
&lt;head&gt;
    &lt;base href="http://cwiki.apache.org/confluence"&gt;
            &lt;link rel="stylesheet" href="/confluence/s/1519/1/11/_/styles/combined.css?spaceKey=CXF&amp;amp;forWysiwyg=true"
type="text/css"&gt;
    &lt;/head&gt;
&lt;body style="background-color: white" bgcolor="white"&gt;
&lt;div id="pageContent"&gt;
&lt;div id="notificationFormat"&gt;
&lt;div class="wiki-content"&gt;
&lt;div class="email"&gt;
     &lt;h2&gt;&lt;a href="http://cwiki.apache.org/confluence/display/CXF/DOSGi+Multi+Bundle+Setup"&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="http://cwiki.apache.org/confluence/display/~davidb@apache.org"&gt;David
Bosschaert&lt;/a&gt;
    &lt;/h4&gt;
     Update to 1.1
          &lt;div id="versionComment" class="noteMacro" style="display:none; padding: 5px;"&gt;
     Update to 1.1&lt;br /&gt;
     &lt;/div&gt;
          &lt;br/&gt;
     &lt;div class="notificationGreySide"&gt;
         &lt;h1&gt;&lt;a name="DOSGiMultiBundleSetup-SettinguptheMultiBundleDistributionofCXFDistributedOSGi"&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="/confluence/display/CXF/DOSGi+Releases"
title="DOSGi Releases"&gt;DOSGi Releases&lt;/a&gt; page.&lt;/p&gt;

&lt;h2&gt;&lt;a name="DOSGiMultiBundleSetup-SettingupFelix"&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="file:apache-cxf-dosgi-ri" rel="nofollow"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;... existing lines ...
org.ops4j.pax.web.session.timeout=30
org.osgi.framework.startlevel.beginning=81
felix.auto.start.50=http:&lt;span class="code-comment"&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="code-comment"&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="code-comment"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&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="code-object"&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="DOSGiMultiBundleSetup-SettingupEquinox"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&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="commentsSection" class="wiki-content pageSection"&gt;
       &lt;div style="float: right;"&gt;
            &lt;a href="http://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey"&gt;Change Notification Preferences&lt;/a&gt;
       &lt;/div&gt;

       &lt;a href="http://cwiki.apache.org/confluence/display/CXF/DOSGi+Multi+Bundle+Setup"&gt;View
Online&lt;/a&gt;
       |
       &lt;a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=119315&amp;revisedVersion=6&amp;originalVersion=5"&gt;View
Change&lt;/a&gt;
              |
       &lt;a href="http://cwiki.apache.org/confluence/display/CXF/DOSGi+Multi+Bundle+Setup?showComments=true&amp;amp;showCommentArea=true#addcomment"&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;


</pre>
</div>
</content>
</entry>
<entry>
<title>[CONF] Apache CXF &gt; DOSGi Spring-DM Demo page</title>
<author><name>confluence@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c605162040.702.1259938740018.JavaMail.www-data@brutus%3e"/>
<id>urn:uuid:%3c605162040-702-1259938740018-JavaMail-www-data@brutus%3e</id>
<updated>2009-12-04T14:59:00Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
&lt;html&gt;
&lt;head&gt;
    &lt;base href="http://cwiki.apache.org/confluence"&gt;
            &lt;link rel="stylesheet" href="/confluence/s/1519/1/11/_/styles/combined.css?spaceKey=CXF&amp;amp;forWysiwyg=true"
type="text/css"&gt;
    &lt;/head&gt;
&lt;body style="background-color: white" bgcolor="white"&gt;
&lt;div id="pageContent"&gt;
&lt;div id="notificationFormat"&gt;
&lt;div class="wiki-content"&gt;
&lt;div class="email"&gt;
     &lt;h2&gt;&lt;a href="http://cwiki.apache.org/confluence/display/CXF/DOSGi+Spring-DM+Demo+page"&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="http://cwiki.apache.org/confluence/display/~davidb@apache.org"&gt;David
Bosschaert&lt;/a&gt;
    &lt;/h4&gt;
     Changing to version 1.1
          &lt;div id="versionComment" class="noteMacro" style="display:none; padding: 5px;"&gt;
     Changing to version 1.1&lt;br /&gt;
     &lt;/div&gt;
          &lt;br/&gt;
     &lt;div class="notificationGreySide"&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="/confluence/display/CXF/DOSGi+Multi+Bundle+Setup" title="DOSGi
Multi Bundle Setup"&gt;here for instructions on installing the multi bundle distribution&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;&lt;a name="DOSGiSpring-DMDemopage-Demodesign"&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="/confluence/download/attachments/119322/dosgi_cxf_springdm.png" align="absmiddle"
border="0" /&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href="http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/spring_dm/interface/src/main/java/org/apache/cxf/dosgi/samples/springdm/DinnerService.java"
rel="nofollow"&gt;Dinner Service interface&lt;/a&gt; is as follows:&lt;/p&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;&lt;span class="code-keyword"&gt;public&lt;/span&gt; &lt;span
class="code-keyword"&gt;interface&lt;/span&gt; DinnerService {
    List&amp;lt;Restaurant&amp;gt; findRestaurants(&lt;span class="code-object"&gt;String&lt;/span&gt;
searchQuery);
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;&lt;a name="DOSGiSpring-DMDemopage-TheDinnerServiceProvider"&gt;&lt;/a&gt;The Dinner
Service Provider&lt;/h2&gt;

&lt;p&gt;The service implementation provides a &lt;a href="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"
rel="nofollow"&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="http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/spring_dm/impl/src/main/resources/META-INF/spring/spring.xml"
rel="nofollow"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-xml"&gt;
&lt;span class="code-tag"&gt;&amp;lt;beans &lt;span class="code-keyword"&gt;xmlns:osgi&lt;/span&gt;=&lt;span
class="code-quote"&gt;"..."&lt;/span&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="code-tag"&gt;&amp;lt;osgi:service interface=&lt;span class="code-quote"&gt;"org.apache.cxf.dosgi.samples.springdm.DinnerService"&lt;/span&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="code-tag"&gt;&amp;lt;osgi:service-properties&amp;gt;&lt;/span&gt;
      &lt;span class="code-tag"&gt;&amp;lt;entry key=&lt;span class="code-quote"&gt;"osgi.remote.interfaces"&lt;/span&gt;
value=&lt;span class="code-quote"&gt;"*"&lt;/span&gt; /&amp;gt;&lt;/span&gt;
    &lt;span class="code-tag"&gt;&amp;lt;/osgi:service-properties&amp;gt;&lt;/span&gt;
    
    &lt;span class="code-tag"&gt;&amp;lt;bean class=&lt;span class="code-quote"&gt;"org.apache.cxf.dosgi.samples.springdm.impl.DinnerServiceImpl"&lt;/span&gt;
/&amp;gt;&lt;/span&gt;
  &lt;span class="code-tag"&gt;&amp;lt;/osgi:service&amp;gt;&lt;/span&gt;                
     
&lt;span class="code-tag"&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="http://localhost:9000/org/apache/cxf/dosgi/samples/springdm/DinnerService"
rel="nofollow"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;-&amp;gt; start http:&lt;span class="code-comment"&gt;//repo2.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-spring-dm-&lt;span
class="code-keyword"&gt;interface&lt;/span&gt;/1.1/cxf-dosgi-ri-samples-spring-dm-&lt;span
class="code-keyword"&gt;interface&lt;/span&gt;-1.1.jar
&lt;/span&gt;-&amp;gt; start http:&lt;span class="code-comment"&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="code-object"&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="/confluence/download/attachments/119322/spring-dm-wsdl.jpeg" align="absmiddle"
border="0" /&gt;&lt;/p&gt;

&lt;h2&gt;&lt;a name="DOSGiSpring-DMDemopage-TheDinnerServiceConsumer"&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="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"
rel="nofollow"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;&lt;span class="code-keyword"&gt;public&lt;/span&gt; class DinnerServiceConsumer
{
    DinnerService dinnerService;
    
    &lt;span class="code-keyword"&gt;public&lt;/span&gt; void setDinnerService(DinnerService
ds) {
        dinnerService = ds;
    }
    
    &lt;span class="code-keyword"&gt;public&lt;/span&gt; void start() {
        &lt;span class="code-object"&gt;System&lt;/span&gt;.out.println(&lt;span class="code-quote"&gt;"Found
the following restaurants:"&lt;/span&gt;);
        &lt;span class="code-keyword"&gt;for&lt;/span&gt; (Restaurant r : dinnerService.findRestaurants(&lt;span
class="code-quote"&gt;"nice and not too expensive!"&lt;/span&gt;)) {
            &lt;span class="code-object"&gt;System&lt;/span&gt;.out.format(&lt;span class="code-quote"&gt;"
 %s (%s) Rating: %d\n"&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="http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/spring_dm/client/src/main/resources/META-INF/spring/client-spring.xml"
rel="nofollow"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-xml"&gt;
&lt;span class="code-tag"&gt;&amp;lt;beans&amp;gt;&lt;/span&gt;
  &lt;span class="code-tag"&gt;&amp;lt;osgi:reference id=&lt;span class="code-quote"&gt;"dinnerServiceRef"&lt;/span&gt;
interface=&lt;span class="code-quote"&gt;"org.apache.cxf.dosgi.samples.springdm.DinnerService"&lt;/span&gt;/&amp;gt;&lt;/span&gt;
  
  &amp;lt;bean class=&lt;span class="code-quote"&gt;"org.apache.cxf.dosgi.samples.springdm.client.DinnerServiceConsumer"&lt;/span&gt;
        init-method=&lt;span class="code-quote"&gt;"start"&lt;/span&gt;&amp;gt;
    &lt;span class="code-tag"&gt;&amp;lt;property name=&lt;span class="code-quote"&gt;"dinnerService"&lt;/span&gt;
ref=&lt;span class="code-quote"&gt;"dinnerServiceRef"&lt;/span&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="code-tag"&gt;&amp;lt;/bean&amp;gt;&lt;/span&gt;
&lt;span class="code-tag"&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="http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/spring_dm/client/src/main/resources/OSGI-INF/remote-service/remote-services.xml"
rel="nofollow"&gt;&lt;tt&gt;OSGI-INF/remote-service/remote-services.xml&lt;/tt&gt;&lt;/a&gt;
file. &lt;/p&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-xml"&gt;
&lt;span class="code-tag"&gt;&amp;lt;service-descriptions xmlns=&lt;span class="code-quote"&gt;"http://www.osgi.org/xmlns/sd/v1.0.0"&lt;/span&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="code-tag"&gt;&amp;lt;service-description&amp;gt;&lt;/span&gt;
    &lt;span class="code-tag"&gt;&amp;lt;provide interface=&lt;span class="code-quote"&gt;"org.apache.cxf.dosgi.samples.springdm.DinnerService"&lt;/span&gt;
/&amp;gt;&lt;/span&gt;
    &lt;span class="code-tag"&gt;&amp;lt;property name=&lt;span class="code-quote"&gt;"osgi.remote.interfaces"&lt;/span&gt;&amp;gt;&lt;/span&gt;*&lt;span
class="code-tag"&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;
    &lt;span class="code-tag"&gt;&amp;lt;property name=&lt;span class="code-quote"&gt;"osgi.remote.configuration.type"&lt;/span&gt;&amp;gt;&lt;/span&gt;pojo&lt;span
class="code-tag"&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;
    &lt;span class="code-tag"&gt;&amp;lt;property name=&lt;span class="code-quote"&gt;"osgi.remote.configuration.pojo.address"&lt;/span&gt;&amp;gt;&lt;/span&gt;http://localhost:9000/org/apache/cxf/dosgi/samples/springdm/DinnerService&lt;span
class="code-tag"&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;
  &lt;span class="code-tag"&gt;&amp;lt;/service-description&amp;gt;&lt;/span&gt;
&lt;span class="code-tag"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;-&amp;gt; start http:&lt;span class="code-comment"&gt;//repo2.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-spring-dm-&lt;span
class="code-keyword"&gt;interface&lt;/span&gt;/1.1/cxf-dosgi-ri-samples-spring-dm-&lt;span
class="code-keyword"&gt;interface&lt;/span&gt;-1.1.jar
&lt;/span&gt;-&amp;gt; start http:&lt;span class="code-comment"&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="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&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="commentsSection" class="wiki-content pageSection"&gt;
       &lt;div style="float: right;"&gt;
            &lt;a href="http://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey"&gt;Change Notification Preferences&lt;/a&gt;
       &lt;/div&gt;

       &lt;a href="http://cwiki.apache.org/confluence/display/CXF/DOSGi+Spring-DM+Demo+page"&gt;View
Online&lt;/a&gt;
       |
       &lt;a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=119322&amp;revisedVersion=8&amp;originalVersion=7"&gt;View
Change&lt;/a&gt;
              |
       &lt;a href="http://cwiki.apache.org/confluence/display/CXF/DOSGi+Spring-DM+Demo+page?showComments=true&amp;amp;showCommentArea=true#addcomment"&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;


</pre>
</div>
</content>
</entry>
<entry>
<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>
<author><name>dkulp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091203224214.BEE1F238899B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091203224214-BEE1F238899B@eris-apache-org%3e</id>
<updated>2009-12-03T22:42:13Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: dkulp
Date: Thu Dec  3 22:42:11 2009
New Revision: 886968

URL: http://svn.apache.org/viewvc?rev=886968&amp;view=rev
Log:
Merged revisions 886957 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r886957 | dkulp | 2009-12-03 17:26:58 -0500 (Thu, 03 Dec 2009) | 2 lines
  
  Set svn properties on everything to get svn:eol-style and such correct
........

Modified:
    cxf/branches/2.2.x-fixes/api/src/test/java/org/apache/cxf/databinding/AbstractDataBindingTest.java   (props changed)
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceClient.java   (contents, props changed)
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceSpringClient.java   (contents, props changed)
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceTester.java   (contents, props changed)
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/client-beans.xml   (contents, props changed)
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceImpl.java   (contents, props changed)
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceServer.java   (contents, props changed)
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceSpringServer.java   (contents, props changed)
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml   (contents, props changed)
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml   (contents, props changed)
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml   (contents, props changed)
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl   (contents, props changed)
    cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml   (contents, props changed)
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java   (contents, props changed)
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java   (contents, props changed)
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java   (contents, props changed)
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/resources/bindingWithWsdlLocation.xml   (props changed)
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/resources/bindingWithoutWsdlLocation.xml   (props changed)
    cxf/branches/2.2.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/jaxws/AegisJaxwsGetTest.java   (props changed)
    cxf/branches/2.2.x-fixes/rt/transports/http-osgi/pom.xml   (props changed)
    cxf/branches/2.2.x-fixes/rt/transports/http-osgi/src/main/resources/META-INF/cxf/osgi/cxf-extension-osgi.xml   (props changed)
    cxf/branches/2.2.x-fixes/rt/transports/http-osgi/src/main/resources/META-INF/spring/cxf-transport-osgi.xml   (props changed)
    cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java   (props changed)
    cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/failover_address_override.xml   (props changed)
    cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/management/persistent-id.xml   (props changed)
    cxf/branches/2.2.x-fixes/systests/wsdl_maven/codegen/pom.xml   (props changed)
    cxf/branches/2.2.x-fixes/systests/wsdl_maven/codegen/src/main/resources/defaultBinding.xml   (props changed)
    cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/pom.xml   (props changed)
    cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/java/org/apache/cxf/systests/java2ws/HelloWorld.java   (props changed)
    cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/beans.xml   (props changed)
    cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/web.xml   (props changed)
    cxf/branches/2.2.x-fixes/systests/wsdl_maven/pom.xml   (props changed)

Propchange: cxf/branches/2.2.x-fixes/api/src/test/java/org/apache/cxf/databinding/AbstractDataBindingTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceClient.java
URL: 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
==============================================================================
--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceClient.java (original)
+++ cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceClient.java Thu Dec  3 22:42:11 2009
@@ -1,40 +1,40 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package com.example.customerservice.client;
-
-import com.example.customerservice.CustomerService;
-import com.example.customerservice.CustomerServiceService;
-import com.example.customerservice.NoSuchCustomerException;
-
-public class CustomerServiceClient {
-    protected CustomerServiceClient() {
-    }
-    
-    public static void main(String args[]) throws NoSuchCustomerException {
-        // Create the service client with its default wsdlurl
-        CustomerServiceService customerServiceService = new CustomerServiceService();
-        CustomerService customerService = customerServiceService.getCustomerServicePort();
-        
-        // Initialize the test class and call the tests
-        CustomerServiceTester client = new CustomerServiceTester();
-        client.setCustomerService(customerService);
-        client.testCustomerService();
-        System.exit(0); 
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package com.example.customerservice.client;
+
+import com.example.customerservice.CustomerService;
+import com.example.customerservice.CustomerServiceService;
+import com.example.customerservice.NoSuchCustomerException;
+
+public class CustomerServiceClient {
+    protected CustomerServiceClient() {
+    }
+    
+    public static void main(String args[]) throws NoSuchCustomerException {
+        // Create the service client with its default wsdlurl
+        CustomerServiceService customerServiceService = new CustomerServiceService();
+        CustomerService customerService = customerServiceService.getCustomerServicePort();
+        
+        // Initialize the test class and call the tests
+        CustomerServiceTester client = new CustomerServiceTester();
+        client.setCustomerService(customerService);
+        client.testCustomerService();
+        System.exit(0); 
+    }
+}

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceClient.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceClient.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceSpringClient.java
URL: 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
==============================================================================
--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceSpringClient.java (original)
+++ cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceSpringClient.java Thu Dec  3 22:42:11 2009
@@ -1,39 +1,39 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package com.example.customerservice.client;
-
-
-
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-
-public final class CustomerServiceSpringClient {
-
-    private CustomerServiceSpringClient() {
-    }
-
-    public static void main(String args[]) throws Exception {
-        // Initialize the spring context and fetch our test client
-        ClassPathXmlApplicationContext context 
-            = new ClassPathXmlApplicationContext(new String[] {"classpath:client-applicationContext.xml"});
-        CustomerServiceTester client = (CustomerServiceTester)context.getBean("tester");
-        
-        client.testCustomerService();
-        System.exit(0);
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package com.example.customerservice.client;
+
+
+
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public final class CustomerServiceSpringClient {
+
+    private CustomerServiceSpringClient() {
+    }
+
+    public static void main(String args[]) throws Exception {
+        // Initialize the spring context and fetch our test client
+        ClassPathXmlApplicationContext context 
+            = new ClassPathXmlApplicationContext(new String[] {"classpath:client-applicationContext.xml"});
+        CustomerServiceTester client = (CustomerServiceTester)context.getBean("tester");
+        
+        client.testCustomerService();
+        System.exit(0);
+    }
+}

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceSpringClient.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceSpringClient.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceTester.java
URL: 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
==============================================================================
--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceTester.java (original)
+++ cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceTester.java Thu Dec  3 22:42:11 2009
@@ -1,75 +1,75 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package com.example.customerservice.client;
-
-import java.util.List;
-
-import junit.framework.Assert;
-
-import com.example.customerservice.Customer;
-import com.example.customerservice.CustomerService;
-import com.example.customerservice.NoSuchCustomerException;
-
-public final class CustomerServiceTester {
-    
-    // The CustomerService proxy will be injected either by spring or by a direct call to the setter 
-    CustomerService customerService;
-    
-    public CustomerService getCustomerService() {
-        return customerService;
-    }
-
-    public void setCustomerService(CustomerService customerService) {
-        this.customerService = customerService;
-    }
-
-    public void testCustomerService() throws NoSuchCustomerException {
-        List&lt;Customer&gt; customers = null;
-        
-        // First we test the positive case where customers are found and we retreive
-        // a list of customers
-        System.out.println("Sending request for customers named Smith");
-        customers = customerService.getCustomersByName("Smith");
-        System.out.println("Response received");
-        Assert.assertEquals(2, customers.size());
-        Assert.assertEquals("Smith", customers.get(0).getName());
-        
-        // Then we test for an unknown Customer name and expect the NoSuchCustomerException
-        try {
-            customers = customerService.getCustomersByName("None");
-            Assert.fail("We should get a NoSuchCustomerException here");
-        } catch (NoSuchCustomerException e) {
-            System.out.println(e.getMessage());
-            Assert.assertNotNull("FaultInfo must not be null", e.getFaultInfo());
-            Assert.assertEquals("None", e.getFaultInfo().getCustomerName());
-            System.out.println("NoSuchCustomer exception was received as expected");
-        }
-        
-        // The implementation of updateCustomer is set to sleep for some seconds. 
-        // Still this method should return instantly as the method is declared
-        // as a one way method in the WSDL
-        Customer customer = new Customer();
-        customer.setName("Smith");
-        customerService.updateCustomer(customer);
-        
-        System.out.println("All calls were successful");
-    }
-
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.example.customerservice.client;
+
+import java.util.List;
+
+import junit.framework.Assert;
+
+import com.example.customerservice.Customer;
+import com.example.customerservice.CustomerService;
+import com.example.customerservice.NoSuchCustomerException;
+
+public final class CustomerServiceTester {
+    
+    // The CustomerService proxy will be injected either by spring or by a direct call to the setter 
+    CustomerService customerService;
+    
+    public CustomerService getCustomerService() {
+        return customerService;
+    }
+
+    public void setCustomerService(CustomerService customerService) {
+        this.customerService = customerService;
+    }
+
+    public void testCustomerService() throws NoSuchCustomerException {
+        List&lt;Customer&gt; customers = null;
+        
+        // First we test the positive case where customers are found and we retreive
+        // a list of customers
+        System.out.println("Sending request for customers named Smith");
+        customers = customerService.getCustomersByName("Smith");
+        System.out.println("Response received");
+        Assert.assertEquals(2, customers.size());
+        Assert.assertEquals("Smith", customers.get(0).getName());
+        
+        // Then we test for an unknown Customer name and expect the NoSuchCustomerException
+        try {
+            customers = customerService.getCustomersByName("None");
+            Assert.fail("We should get a NoSuchCustomerException here");
+        } catch (NoSuchCustomerException e) {
+            System.out.println(e.getMessage());
+            Assert.assertNotNull("FaultInfo must not be null", e.getFaultInfo());
+            Assert.assertEquals("None", e.getFaultInfo().getCustomerName());
+            System.out.println("NoSuchCustomer exception was received as expected");
+        }
+        
+        // The implementation of updateCustomer is set to sleep for some seconds. 
+        // Still this method should return instantly as the method is declared
+        // as a one way method in the WSDL
+        Customer customer = new Customer();
+        customer.setName("Smith");
+        customerService.updateCustomer(customer);
+        
+        System.out.println("All calls were successful");
+    }
+
+}

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceTester.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceTester.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/client-beans.xml
URL: 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
==============================================================================
--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/client-beans.xml (original)
+++ 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  3 22:42:11 2009
@@ -1,39 +1,39 @@
-&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-&lt;!--
-	Licensed to the Apache Software Foundation (ASF) under one
-	or more contributor license agreements. See the NOTICE file
-	distributed with this work for additional information
-	regarding copyright ownership. The ASF licenses this file
-	to you under the Apache License, Version 2.0 (the
-	"License"); you may not use this file except in compliance
-	with the License. You may obtain a copy of the License at
-	
-	http://www.apache.org/licenses/LICENSE-2.0
-	
-	Unless required by applicable law or agreed to in writing,
-	software distributed under the License is distributed on an
-	"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-	KIND, either express or implied. See the License for the
-	specific language governing permissions and limitations
-	under the License.
---&gt;
-&lt;!-- START SNIPPET: beans --&gt;
-&lt;beans xmlns="http://www.springframework.org/schema/beans"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xmlns:jaxws="http://cxf.apache.org/jaxws"
-	xsi:schemaLocation="
-http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
-http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"&gt;
-
-   &lt;jaxws:client id="customerService" 
-    serviceClass="org.apache.hello_world_soap_http.Greeter"
-    serviceName="s:SOAPService"
-    endpointName="s:SoapPort"
-    xmlns:s="http://apache.org/hello_world_soap_http"
-    wsdlLocation="wsdl/hello_world.wsdl"
-    address="http://localhost:9000/SoapContext/SoapPort"/&gt;	  
-    &lt;bean id="client" class="com.example.customerservice.Client"&gt;
-    	&lt;property name=""&gt;&lt;/property&gt;
-    &lt;/bean&gt;
-&lt;/beans&gt;
-&lt;!-- END SNIPPET: beans --&gt;
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;!--
+	Licensed to the Apache Software Foundation (ASF) under one
+	or more contributor license agreements. See the NOTICE file
+	distributed with this work for additional information
+	regarding copyright ownership. The ASF licenses this file
+	to you under the Apache License, Version 2.0 (the
+	"License"); you may not use this file except in compliance
+	with the License. You may obtain a copy of the License at
+	
+	http://www.apache.org/licenses/LICENSE-2.0
+	
+	Unless required by applicable law or agreed to in writing,
+	software distributed under the License is distributed on an
+	"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+	KIND, either express or implied. See the License for the
+	specific language governing permissions and limitations
+	under the License.
+--&gt;
+&lt;!-- START SNIPPET: beans --&gt;
+&lt;beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:jaxws="http://cxf.apache.org/jaxws"
+	xsi:schemaLocation="
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"&gt;
+
+   &lt;jaxws:client id="customerService" 
+    serviceClass="org.apache.hello_world_soap_http.Greeter"
+    serviceName="s:SOAPService"
+    endpointName="s:SoapPort"
+    xmlns:s="http://apache.org/hello_world_soap_http"
+    wsdlLocation="wsdl/hello_world.wsdl"
+    address="http://localhost:9000/SoapContext/SoapPort"/&gt;	  
+    &lt;bean id="client" class="com.example.customerservice.Client"&gt;
+    	&lt;property name=""&gt;&lt;/property&gt;
+    &lt;/bean&gt;
+&lt;/beans&gt;
+&lt;!-- END SNIPPET: beans --&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
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/client-beans.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/client-beans.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceImpl.java
URL: 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
==============================================================================
--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceImpl.java (original)
+++ cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceImpl.java Thu Dec  3 22:42:11 2009
@@ -1,80 +1,80 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package com.example.customerservice.server;
-
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.List;
-
-import javax.annotation.Resource;
-import javax.xml.ws.WebServiceContext;
-
-import com.example.customerservice.Customer;
-import com.example.customerservice.CustomerService;
-import com.example.customerservice.CustomerType;
-import com.example.customerservice.NoSuchCustomer;
-import com.example.customerservice.NoSuchCustomerException;
-
-public class CustomerServiceImpl implements CustomerService {
-    
-    /**
-     * The WebServiceContext can be used to retrieve special attributes like the 
-     * user principal. Normally it is not needed
-     */
-    @Resource
-    WebServiceContext wsContext;
-
-    public List&lt;Customer&gt; getCustomersByName(String name) throws NoSuchCustomerException {
-        if ("None".equals(name)) {
-            NoSuchCustomer noSuchCustomer = new NoSuchCustomer();
-            noSuchCustomer.setCustomerName(name);
-            throw new NoSuchCustomerException("Did not find any matching customer for name=" + name,
-                                              noSuchCustomer);
-        }
-
-        List&lt;Customer&gt; customers = new ArrayList&lt;Customer&gt;();
-        for (int c = 0; c &lt; 2; c++) {
-            Customer cust = new Customer();
-            cust.setName(name);
-            cust.getAddress().add("Pine Street 200");
-            Date bDate = new GregorianCalendar(2009, 01, 01).getTime();
-            cust.setBirthDate(bDate);
-            cust.setNumOrders(1);
-            cust.setRevenue(10000);
-            cust.setTest(new BigDecimal(1.5));
-            cust.setType(CustomerType.BUSINESS);
-            customers.add(cust);
-        }
-
-        return customers;
-    }
-
-    public void updateCustomer(Customer customer) {
-        System.out.println("update request was received");
-        try {
-            Thread.sleep(10000);
-        } catch (InterruptedException e) {
-            // Nothing to do here
-        }
-        System.out.println("Customer was updated");
-    }
-
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package com.example.customerservice.server;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.List;
+
+import javax.annotation.Resource;
+import javax.xml.ws.WebServiceContext;
+
+import com.example.customerservice.Customer;
+import com.example.customerservice.CustomerService;
+import com.example.customerservice.CustomerType;
+import com.example.customerservice.NoSuchCustomer;
+import com.example.customerservice.NoSuchCustomerException;
+
+public class CustomerServiceImpl implements CustomerService {
+    
+    /**
+     * The WebServiceContext can be used to retrieve special attributes like the 
+     * user principal. Normally it is not needed
+     */
+    @Resource
+    WebServiceContext wsContext;
+
+    public List&lt;Customer&gt; getCustomersByName(String name) throws NoSuchCustomerException {
+        if ("None".equals(name)) {
+            NoSuchCustomer noSuchCustomer = new NoSuchCustomer();
+            noSuchCustomer.setCustomerName(name);
+            throw new NoSuchCustomerException("Did not find any matching customer for name=" + name,
+                                              noSuchCustomer);
+        }
+
+        List&lt;Customer&gt; customers = new ArrayList&lt;Customer&gt;();
+        for (int c = 0; c &lt; 2; c++) {
+            Customer cust = new Customer();
+            cust.setName(name);
+            cust.getAddress().add("Pine Street 200");
+            Date bDate = new GregorianCalendar(2009, 01, 01).getTime();
+            cust.setBirthDate(bDate);
+            cust.setNumOrders(1);
+            cust.setRevenue(10000);
+            cust.setTest(new BigDecimal(1.5));
+            cust.setType(CustomerType.BUSINESS);
+            customers.add(cust);
+        }
+
+        return customers;
+    }
+
+    public void updateCustomer(Customer customer) {
+        System.out.println("update request was received");
+        try {
+            Thread.sleep(10000);
+        } catch (InterruptedException e) {
+            // Nothing to do here
+        }
+        System.out.println("Customer was updated");
+    }
+
+}

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceServer.java
URL: 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
==============================================================================
--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceServer.java (original)
+++ cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceServer.java Thu Dec  3 22:42:11 2009
@@ -1,50 +1,50 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package com.example.customerservice.server;
-
-import javax.xml.ws.Endpoint;
-
-import com.example.customerservice.CustomerService;
-
-import org.apache.cxf.interceptor.LoggingInInterceptor;
-import org.apache.cxf.interceptor.LoggingOutInterceptor;
-import org.apache.cxf.jaxws.EndpointImpl;
-
-public class CustomerServiceServer {
-
-    protected CustomerServiceServer() throws Exception {
-        System.out.println("Starting Server");
-        CustomerService implementor = new CustomerServiceImpl();
-        EndpointImpl ep = (EndpointImpl)Endpoint.publish("http://localhost:9090/CustomerServicePort",
-                                                         implementor);
-
-        // Adding logging for incoming and outgoing messages
-        ep.getServer().getEndpoint().getInInterceptors().add(new LoggingInInterceptor());
-        ep.getServer().getEndpoint().getOutInterceptors().add(new LoggingOutInterceptor());
-    }
-
-    public static void main(String args[]) throws Exception {
-        new CustomerServiceServer();
-        System.out.println("Server ready...");
-        Thread.sleep(5 * 60 * 1000);
-        System.out.println("Server exiting");
-        System.exit(0);
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.example.customerservice.server;
+
+import javax.xml.ws.Endpoint;
+
+import com.example.customerservice.CustomerService;
+
+import org.apache.cxf.interceptor.LoggingInInterceptor;
+import org.apache.cxf.interceptor.LoggingOutInterceptor;
+import org.apache.cxf.jaxws.EndpointImpl;
+
+public class CustomerServiceServer {
+
+    protected CustomerServiceServer() throws Exception {
+        System.out.println("Starting Server");
+        CustomerService implementor = new CustomerServiceImpl();
+        EndpointImpl ep = (EndpointImpl)Endpoint.publish("http://localhost:9090/CustomerServicePort",
+                                                         implementor);
+
+        // Adding logging for incoming and outgoing messages
+        ep.getServer().getEndpoint().getInInterceptors().add(new LoggingInInterceptor());
+        ep.getServer().getEndpoint().getOutInterceptors().add(new LoggingOutInterceptor());
+    }
+
+    public static void main(String args[]) throws Exception {
+        new CustomerServiceServer();
+        System.out.println("Server ready...");
+        Thread.sleep(5 * 60 * 1000);
+        System.out.println("Server exiting");
+        System.exit(0);
+    }
+}

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceServer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceServer.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceSpringServer.java
URL: 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
==============================================================================
--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceSpringServer.java (original)
+++ cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceSpringServer.java Thu Dec  3 22:42:11 2009
@@ -1,32 +1,32 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package com.example.customerservice.server;
-
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-
-public class CustomerServiceSpringServer {
-    
-    protected CustomerServiceSpringServer() {
-    }
-
-    public static void main(String args[]) throws Exception {
-        new ClassPathXmlApplicationContext("server-applicationContext.xml");
-        System.in.read();
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package com.example.customerservice.server;
+
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public class CustomerServiceSpringServer {
+    
+    protected CustomerServiceSpringServer() {
+    }
+
+    public static void main(String args[]) throws Exception {
+        new ClassPathXmlApplicationContext("server-applicationContext.xml");
+        System.in.read();
+    }
+}

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceSpringServer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceSpringServer.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml
URL: 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
==============================================================================
--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml (original)
+++ cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml Thu Dec  3 22:42:11 2009
@@ -1,50 +1,50 @@
-&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-	&lt;!--
-		Licensed to the Apache Software Foundation (ASF) under one or more
-		contributor license agreements. See the NOTICE file distributed with
-		this work for additional information regarding copyright ownership.
-		The ASF licenses this file to You under the Apache License, Version
-		2.0 (the "License"); you may not use this file except in compliance
-		with the License. You may obtain a copy of the License at
-
-		http://www.apache.org/licenses/LICENSE-2.0 Unless required by
-		applicable law or agreed to in writing, software distributed under the
-		License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-		CONDITIONS OF ANY KIND, either express or implied. See the License for
-		the specific language governing permissions and limitations under the
-		License.
-	--&gt;
-&lt;beans xmlns="http://www.springframework.org/schema/beans"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xmlns:context="http://www.springframework.org/schema/context"
-	xmlns:jaxws="http://cxf.apache.org/jaxws"
-	xmlns:customer="http://customerservice.example.com/"
-	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
-		http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
-		http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
-"&gt;
-
-	&lt;import resource="classpath:META-INF/cxf/cxf.xml" /&gt;
-	&lt;import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /&gt;
-	&lt;import resource="classpath:META-INF/cxf/cxf-extension-http.xml" /&gt;
-
-	&lt;!--
-		Define a cxf endpoint based on client stub generated from a wsdl. It
-		is important to provide serviceName and endpointName so the wsdl is
-		not needed at runtime. As far as I know the serviceName and
-		endpointName do not have to have a special convention but it is good
-		practice to use the service namespace and Service Interface name in
-		the names
-	--&gt;
-	&lt;jaxws:client id="customerService" 
-		serviceName="customer:CustomerServiceService" 
-		endpointName="customer:CustomerServiceEndpoint"
-		address="http://localhost:9090/CustomerServicePort" 
-		serviceClass="com.example.customerservice.CustomerService"&gt;
-	&lt;/jaxws:client&gt;
-	
-	&lt;bean id="tester" class="com.example.customerservice.client.CustomerServiceTester"&gt;
-		&lt;property name="customerService" ref="customerService"&gt;&lt;/property&gt;
-	&lt;/bean&gt;
-&lt;/beans&gt;
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+	&lt;!--
+		Licensed to the Apache Software Foundation (ASF) under one or more
+		contributor license agreements. See the NOTICE file distributed with
+		this work for additional information regarding copyright ownership.
+		The ASF licenses this file to You under the Apache License, Version
+		2.0 (the "License"); you may not use this file except in compliance
+		with the License. You may obtain a copy of the License at
+
+		http://www.apache.org/licenses/LICENSE-2.0 Unless required by
+		applicable law or agreed to in writing, software distributed under the
+		License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+		CONDITIONS OF ANY KIND, either express or implied. See the License for
+		the specific language governing permissions and limitations under the
+		License.
+	--&gt;
+&lt;beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:context="http://www.springframework.org/schema/context"
+	xmlns:jaxws="http://cxf.apache.org/jaxws"
+	xmlns:customer="http://customerservice.example.com/"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
+		http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
+		http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
+"&gt;
+
+	&lt;import resource="classpath:META-INF/cxf/cxf.xml" /&gt;
+	&lt;import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /&gt;
+	&lt;import resource="classpath:META-INF/cxf/cxf-extension-http.xml" /&gt;
+
+	&lt;!--
+		Define a cxf endpoint based on client stub generated from a wsdl. It
+		is important to provide serviceName and endpointName so the wsdl is
+		not needed at runtime. As far as I know the serviceName and
+		endpointName do not have to have a special convention but it is good
+		practice to use the service namespace and Service Interface name in
+		the names
+	--&gt;
+	&lt;jaxws:client id="customerService" 
+		serviceName="customer:CustomerServiceService" 
+		endpointName="customer:CustomerServiceEndpoint"
+		address="http://localhost:9090/CustomerServicePort" 
+		serviceClass="com.example.customerservice.CustomerService"&gt;
+	&lt;/jaxws:client&gt;
+	
+	&lt;bean id="tester" class="com.example.customerservice.client.CustomerServiceTester"&gt;
+		&lt;property name="customerService" ref="customerService"&gt;&lt;/property&gt;
+	&lt;/bean&gt;
+&lt;/beans&gt;

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml
URL: 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
==============================================================================
--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml (original)
+++ cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml Thu Dec  3 22:42:11 2009
@@ -1,38 +1,38 @@
-&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-&lt;!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements. See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership. The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License. You may obtain a copy of the License at
- 
-  http://www.apache.org/licenses/LICENSE-2.0
- 
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied. See the License for the
-  specific language governing permissions and limitations
-  under the License.
---&gt;
-&lt;beans xmlns="http://www.springframework.org/schema/beans"
-      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-      xmlns:jaxws="http://cxf.apache.org/jaxws"
-      xmlns:soap="http://cxf.apache.org/bindings/soap"
-      xsi:schemaLocation="
-http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
-http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd
-http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"&gt;
-
-    &lt;jaxws:endpoint
-        id="hello_world"
-        implementor="demo.hw.server.GreeterImpl"
-        wsdlLocation="WEB-INF/wsdl/hello_world.wsdl"
-        address="/hello_world"&gt;
-                &lt;jaxws:features&gt;
- 		    &lt;bean class="org.apache.cxf.feature.LoggingFeature"/&gt;
-                &lt;/jaxws:features&gt;
-    &lt;/jaxws:endpoint&gt;
-&lt;/beans&gt;
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+ 
+  http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+--&gt;
+&lt;beans xmlns="http://www.springframework.org/schema/beans"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xmlns:jaxws="http://cxf.apache.org/jaxws"
+      xmlns:soap="http://cxf.apache.org/bindings/soap"
+      xsi:schemaLocation="
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd
+http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"&gt;
+
+    &lt;jaxws:endpoint
+        id="hello_world"
+        implementor="demo.hw.server.GreeterImpl"
+        wsdlLocation="WEB-INF/wsdl/hello_world.wsdl"
+        address="/hello_world"&gt;
+                &lt;jaxws:features&gt;
+ 		    &lt;bean class="org.apache.cxf.feature.LoggingFeature"/&gt;
+                &lt;/jaxws:features&gt;
+    &lt;/jaxws:endpoint&gt;
+&lt;/beans&gt;

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml
URL: 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
==============================================================================
--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml (original)
+++ cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml Thu Dec  3 22:42:11 2009
@@ -1,40 +1,40 @@
-&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-	&lt;!--
-		Licensed to the Apache Software Foundation (ASF) under one or more
-		contributor license agreements. See the NOTICE file distributed with
-		this work for additional information regarding copyright ownership.
-		The ASF licenses this file to You under the Apache License, Version
-		2.0 (the "License"); you may not use this file except in compliance
-		with the License. You may obtain a copy of the License at
-
-		http://www.apache.org/licenses/LICENSE-2.0 Unless required by
-		applicable law or agreed to in writing, software distributed under the
-		License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-		CONDITIONS OF ANY KIND, either express or implied. See the License for
-		the specific language governing permissions and limitations under the
-		License.
-	--&gt;
-&lt;beans xmlns="http://www.springframework.org/schema/beans"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"
-	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
-		http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
-		http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
-"&gt;
-
-	&lt;import resource="classpath:META-INF/cxf/cxf.xml" /&gt;
-	&lt;import resource="classpath:META-INF/cxf/cxf-extension-http.xml" /&gt;
-	&lt;import resource="classpath:META-INF/cxf/cxf-extension-http-jetty.xml" /&gt;
-	&lt;import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /&gt;
-
-	&lt;!-- HTTP Endpoint --&gt;
-	&lt;jaxws:endpoint xmlns:customer="http://customerservice.example.com/"
-		id="CustomerServiceHTTP" address="http://localhost:9090/CustomerServicePort"
-		serviceName="customer:CustomerServiceService" endpointName="customer:CustomerServiceEndpoint"
-		implementor="com.example.customerservice.server.CustomerServiceImpl"&gt;
-		&lt;jaxws:features&gt;
-			&lt;bean class="org.apache.cxf.feature.LoggingFeature" /&gt;
-		&lt;/jaxws:features&gt;
-	&lt;/jaxws:endpoint&gt;
-
-&lt;/beans&gt;
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+	&lt;!--
+		Licensed to the Apache Software Foundation (ASF) under one or more
+		contributor license agreements. See the NOTICE file distributed with
+		this work for additional information regarding copyright ownership.
+		The ASF licenses this file to You under the Apache License, Version
+		2.0 (the "License"); you may not use this file except in compliance
+		with the License. You may obtain a copy of the License at
+
+		http://www.apache.org/licenses/LICENSE-2.0 Unless required by
+		applicable law or agreed to in writing, software distributed under the
+		License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+		CONDITIONS OF ANY KIND, either express or implied. See the License for
+		the specific language governing permissions and limitations under the
+		License.
+	--&gt;
+&lt;beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
+		http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
+		http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
+"&gt;
+
+	&lt;import resource="classpath:META-INF/cxf/cxf.xml" /&gt;
+	&lt;import resource="classpath:META-INF/cxf/cxf-extension-http.xml" /&gt;
+	&lt;import resource="classpath:META-INF/cxf/cxf-extension-http-jetty.xml" /&gt;
+	&lt;import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /&gt;
+
+	&lt;!-- HTTP Endpoint --&gt;
+	&lt;jaxws:endpoint xmlns:customer="http://customerservice.example.com/"
+		id="CustomerServiceHTTP" address="http://localhost:9090/CustomerServicePort"
+		serviceName="customer:CustomerServiceService" endpointName="customer:CustomerServiceEndpoint"
+		implementor="com.example.customerservice.server.CustomerServiceImpl"&gt;
+		&lt;jaxws:features&gt;
+			&lt;bean class="org.apache.cxf.feature.LoggingFeature" /&gt;
+		&lt;/jaxws:features&gt;
+	&lt;/jaxws:endpoint&gt;
+
+&lt;/beans&gt;

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl
URL: 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
==============================================================================
--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl (original)
+++ cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl Thu Dec  3 22:42:11 2009
@@ -1,123 +1,123 @@
-&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-&lt;!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements. See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership. The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License. You may obtain a copy of the License at
- 
-  http://www.apache.org/licenses/LICENSE-2.0
- 
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied. See the License for the
-  specific language governing permissions and limitations
-  under the License.
---&gt;
-&lt;wsdl:definitions name="CustomerServiceService" targetNamespace="http://customerservice.example.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://customerservice.example.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"&gt;
-  &lt;wsdl:types&gt;
-&lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://customerservice.example.com/" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://customerservice.example.com/"&gt;
-&lt;xs:element name="getCustomersByName" type="tns:getCustomersByName"/&gt;
-&lt;xs:element name="getCustomersByNameResponse" type="tns:getCustomersByNameResponse"/&gt;
-&lt;xs:element name="updateCustomer" type="tns:updateCustomer"/&gt;
-&lt;xs:complexType name="updateCustomer"&gt;
-&lt;xs:sequence&gt;
-&lt;xs:element minOccurs="0" name="customer" type="tns:customer"/&gt;
-&lt;/xs:sequence&gt;
-&lt;/xs:complexType&gt;
-&lt;xs:complexType name="customer"&gt;
-&lt;xs:sequence&gt;
-&lt;xs:element name="customerId" type="xs:int"/&gt;
-&lt;xs:element minOccurs="0" name="name" type="xs:string"/&gt;
-&lt;xs:element maxOccurs="unbounded" minOccurs="0" name="address" nillable="true" type="xs:string"/&gt;
-&lt;xs:element minOccurs="0" name="numOrders" type="xs:int"/&gt;
-&lt;xs:element name="revenue" type="xs:double"/&gt;
-&lt;xs:element minOccurs="0" name="test" type="xs:decimal"/&gt;
-&lt;xs:element minOccurs="0" name="birthDate" type="xs:date"/&gt;
-&lt;xs:element minOccurs="0" name="type" type="tns:customerType"/&gt;
-&lt;/xs:sequence&gt;
-&lt;/xs:complexType&gt;
-&lt;xs:complexType name="getCustomersByName"&gt;
-&lt;xs:sequence&gt;
-&lt;xs:element minOccurs="0" name="name" type="xs:string"/&gt;
-&lt;/xs:sequence&gt;
-&lt;/xs:complexType&gt;
-&lt;xs:complexType name="getCustomersByNameResponse"&gt;
-&lt;xs:sequence&gt;
-&lt;xs:element maxOccurs="unbounded" minOccurs="0" name="return" type="tns:customer"/&gt;
-&lt;/xs:sequence&gt;
-&lt;/xs:complexType&gt;
-&lt;xs:simpleType name="customerType"&gt;
-&lt;xs:restriction base="xs:string"&gt;
-&lt;xs:enumeration value="PRIVATE"/&gt;
-&lt;xs:enumeration value="BUSINESS"/&gt;
-&lt;/xs:restriction&gt;
-&lt;/xs:simpleType&gt;
-&lt;xs:element name="NoSuchCustomer" type="tns:NoSuchCustomer"/&gt;
-&lt;xs:complexType name="NoSuchCustomer"&gt;
-&lt;xs:sequence&gt;
-&lt;xs:element name="customerName" nillable="true" type="xs:string"/&gt;
-&lt;/xs:sequence&gt;
-&lt;/xs:complexType&gt;
-&lt;/xs:schema&gt;
-  &lt;/wsdl:types&gt;
-  &lt;wsdl:message name="getCustomersByNameResponse"&gt;
-    &lt;wsdl:part name="parameters" element="tns:getCustomersByNameResponse"&gt;
-    &lt;/wsdl:part&gt;
-  &lt;/wsdl:message&gt;
-  &lt;wsdl:message name="getCustomersByName"&gt;
-    &lt;wsdl:part name="parameters" element="tns:getCustomersByName"&gt;
-    &lt;/wsdl:part&gt;
-  &lt;/wsdl:message&gt;
-  &lt;wsdl:message name="updateCustomer"&gt;
-    &lt;wsdl:part name="parameters" element="tns:updateCustomer"&gt;
-    &lt;/wsdl:part&gt;
-  &lt;/wsdl:message&gt;
-  &lt;wsdl:message name="NoSuchCustomerException"&gt;
-    &lt;wsdl:part name="NoSuchCustomerException" element="tns:NoSuchCustomer"&gt;
-    &lt;/wsdl:part&gt;
-  &lt;/wsdl:message&gt;
-  &lt;wsdl:portType name="CustomerService"&gt;
-    &lt;wsdl:operation name="updateCustomer"&gt;
-      &lt;wsdl:input name="updateCustomer" message="tns:updateCustomer"&gt;
-    &lt;/wsdl:input&gt;
-    &lt;/wsdl:operation&gt;
-    &lt;wsdl:operation name="getCustomersByName"&gt;
-      &lt;wsdl:input name="getCustomersByName" message="tns:getCustomersByName"&gt;
-    &lt;/wsdl:input&gt;
-      &lt;wsdl:output name="getCustomersByNameResponse" message="tns:getCustomersByNameResponse"&gt;
-    &lt;/wsdl:output&gt;
-      &lt;wsdl:fault name="NoSuchCustomerException" message="tns:NoSuchCustomerException"&gt;
-    &lt;/wsdl:fault&gt;
-    &lt;/wsdl:operation&gt;
-  &lt;/wsdl:portType&gt;
-  &lt;wsdl:binding name="CustomerServiceServiceSoapBinding" type="tns:CustomerService"&gt;
-    &lt;soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/&gt;
-    &lt;wsdl:operation name="updateCustomer"&gt;
-      &lt;soap:operation soapAction="" style="document"/&gt;
-      &lt;wsdl:input name="updateCustomer"&gt;
-        &lt;soap:body use="literal"/&gt;
-      &lt;/wsdl:input&gt;
-    &lt;/wsdl:operation&gt;
-    &lt;wsdl:operation name="getCustomersByName"&gt;
-      &lt;soap:operation soapAction="" style="document"/&gt;
-      &lt;wsdl:input name="getCustomersByName"&gt;
-        &lt;soap:body use="literal"/&gt;
-      &lt;/wsdl:input&gt;
-      &lt;wsdl:output name="getCustomersByNameResponse"&gt;
-        &lt;soap:body use="literal"/&gt;
-      &lt;/wsdl:output&gt;
-      &lt;wsdl:fault name="NoSuchCustomerException"&gt;
-        &lt;soap:fault name="NoSuchCustomerException" use="literal"/&gt;
-      &lt;/wsdl:fault&gt;
-    &lt;/wsdl:operation&gt;
-  &lt;/wsdl:binding&gt;
-  &lt;wsdl:service name="CustomerServiceService"&gt;
-    &lt;wsdl:port name="CustomerServicePort" binding="tns:CustomerServiceServiceSoapBinding"&gt;
-      &lt;soap:address location="http://localhost:9090/CustomerServicePort"/&gt;
-    &lt;/wsdl:port&gt;
-  &lt;/wsdl:service&gt;
-&lt;/wsdl:definitions&gt;
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+ 
+  http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+--&gt;
+&lt;wsdl:definitions name="CustomerServiceService" targetNamespace="http://customerservice.example.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://customerservice.example.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"&gt;
+  &lt;wsdl:types&gt;
+&lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://customerservice.example.com/" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://customerservice.example.com/"&gt;
+&lt;xs:element name="getCustomersByName" type="tns:getCustomersByName"/&gt;
+&lt;xs:element name="getCustomersByNameResponse" type="tns:getCustomersByNameResponse"/&gt;
+&lt;xs:element name="updateCustomer" type="tns:updateCustomer"/&gt;
+&lt;xs:complexType name="updateCustomer"&gt;
+&lt;xs:sequence&gt;
+&lt;xs:element minOccurs="0" name="customer" type="tns:customer"/&gt;
+&lt;/xs:sequence&gt;
+&lt;/xs:complexType&gt;
+&lt;xs:complexType name="customer"&gt;
+&lt;xs:sequence&gt;
+&lt;xs:element name="customerId" type="xs:int"/&gt;
+&lt;xs:element minOccurs="0" name="name" type="xs:string"/&gt;
+&lt;xs:element maxOccurs="unbounded" minOccurs="0" name="address" nillable="true" type="xs:string"/&gt;
+&lt;xs:element minOccurs="0" name="numOrders" type="xs:int"/&gt;
+&lt;xs:element name="revenue" type="xs:double"/&gt;
+&lt;xs:element minOccurs="0" name="test" type="xs:decimal"/&gt;
+&lt;xs:element minOccurs="0" name="birthDate" type="xs:date"/&gt;
+&lt;xs:element minOccurs="0" name="type" type="tns:customerType"/&gt;
+&lt;/xs:sequence&gt;
+&lt;/xs:complexType&gt;
+&lt;xs:complexType name="getCustomersByName"&gt;
+&lt;xs:sequence&gt;
+&lt;xs:element minOccurs="0" name="name" type="xs:string"/&gt;
+&lt;/xs:sequence&gt;
+&lt;/xs:complexType&gt;
+&lt;xs:complexType name="getCustomersByNameResponse"&gt;
+&lt;xs:sequence&gt;
+&lt;xs:element maxOccurs="unbounded" minOccurs="0" name="return" type="tns:customer"/&gt;
+&lt;/xs:sequence&gt;
+&lt;/xs:complexType&gt;
+&lt;xs:simpleType name="customerType"&gt;
+&lt;xs:restriction base="xs:string"&gt;
+&lt;xs:enumeration value="PRIVATE"/&gt;
+&lt;xs:enumeration value="BUSINESS"/&gt;
+&lt;/xs:restriction&gt;
+&lt;/xs:simpleType&gt;
+&lt;xs:element name="NoSuchCustomer" type="tns:NoSuchCustomer"/&gt;
+&lt;xs:complexType name="NoSuchCustomer"&gt;
+&lt;xs:sequence&gt;
+&lt;xs:element name="customerName" nillable="true" type="xs:string"/&gt;
+&lt;/xs:sequence&gt;
+&lt;/xs:complexType&gt;
+&lt;/xs:schema&gt;
+  &lt;/wsdl:types&gt;
+  &lt;wsdl:message name="getCustomersByNameResponse"&gt;
+    &lt;wsdl:part name="parameters" element="tns:getCustomersByNameResponse"&gt;
+    &lt;/wsdl:part&gt;
+  &lt;/wsdl:message&gt;
+  &lt;wsdl:message name="getCustomersByName"&gt;
+    &lt;wsdl:part name="parameters" element="tns:getCustomersByName"&gt;
+    &lt;/wsdl:part&gt;
+  &lt;/wsdl:message&gt;
+  &lt;wsdl:message name="updateCustomer"&gt;
+    &lt;wsdl:part name="parameters" element="tns:updateCustomer"&gt;
+    &lt;/wsdl:part&gt;
+  &lt;/wsdl:message&gt;
+  &lt;wsdl:message name="NoSuchCustomerException"&gt;
+    &lt;wsdl:part name="NoSuchCustomerException" element="tns:NoSuchCustomer"&gt;
+    &lt;/wsdl:part&gt;
+  &lt;/wsdl:message&gt;
+  &lt;wsdl:portType name="CustomerService"&gt;
+    &lt;wsdl:operation name="updateCustomer"&gt;
+      &lt;wsdl:input name="updateCustomer" message="tns:updateCustomer"&gt;
+    &lt;/wsdl:input&gt;
+    &lt;/wsdl:operation&gt;
+    &lt;wsdl:operation name="getCustomersByName"&gt;
+      &lt;wsdl:input name="getCustomersByName" message="tns:getCustomersByName"&gt;
+    &lt;/wsdl:input&gt;
+      &lt;wsdl:output name="getCustomersByNameResponse" message="tns:getCustomersByNameResponse"&gt;
+    &lt;/wsdl:output&gt;
+      &lt;wsdl:fault name="NoSuchCustomerException" message="tns:NoSuchCustomerException"&gt;
+    &lt;/wsdl:fault&gt;
+    &lt;/wsdl:operation&gt;
+  &lt;/wsdl:portType&gt;
+  &lt;wsdl:binding name="CustomerServiceServiceSoapBinding" type="tns:CustomerService"&gt;
+    &lt;soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/&gt;
+    &lt;wsdl:operation name="updateCustomer"&gt;
+      &lt;soap:operation soapAction="" style="document"/&gt;
+      &lt;wsdl:input name="updateCustomer"&gt;
+        &lt;soap:body use="literal"/&gt;
+      &lt;/wsdl:input&gt;
+    &lt;/wsdl:operation&gt;
+    &lt;wsdl:operation name="getCustomersByName"&gt;
+      &lt;soap:operation soapAction="" style="document"/&gt;
+      &lt;wsdl:input name="getCustomersByName"&gt;
+        &lt;soap:body use="literal"/&gt;
+      &lt;/wsdl:input&gt;
+      &lt;wsdl:output name="getCustomersByNameResponse"&gt;
+        &lt;soap:body use="literal"/&gt;
+      &lt;/wsdl:output&gt;
+      &lt;wsdl:fault name="NoSuchCustomerException"&gt;
+        &lt;soap:fault name="NoSuchCustomerException" use="literal"/&gt;
+      &lt;/wsdl:fault&gt;
+    &lt;/wsdl:operation&gt;
+  &lt;/wsdl:binding&gt;
+  &lt;wsdl:service name="CustomerServiceService"&gt;
+    &lt;wsdl:port name="CustomerServicePort" binding="tns:CustomerServiceServiceSoapBinding"&gt;
+      &lt;soap:address location="http://localhost:9090/CustomerServicePort"/&gt;
+    &lt;/wsdl:port&gt;
+  &lt;/wsdl:service&gt;
+&lt;/wsdl:definitions&gt;

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Thu Dec  3 22:42:11 2009
@@ -1 +1 @@
-text/plain
+text/xml

Modified: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml
URL: 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
==============================================================================
--- cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml (original)
+++ cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml Thu Dec  3 22:42:11 2009
@@ -1,17 +1,17 @@
-&lt;jaxws:bindings wsdlLocation="CustomerService.wsdl"
-          xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
-          xmlns:xs="http://www.w3.org/2001/XMLSchema"
-          xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
-          xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"&gt;
-  &lt;!-- &lt;jaxws:enableAsyncMapping&gt;true&lt;/jaxws:enableAsyncMapping&gt; --&gt;
-  &lt;jaxws:bindings  node="wsdl:definitions/wsdl:types/xs:schema"&gt;
-      &lt;jxb:globalBindings&gt;
-        &lt;jxb:javaType name="java.util.Date" xmlType="xs:dateTime"
-                      parseMethod="org.apache.cxf.tools.common.DataTypeAdapter.parseDateTime"
-                      printMethod="org.apache.cxf.tools.common.DataTypeAdapter.printDateTime"/&gt;
-        &lt;jxb:javaType name="java.util.Date" xmlType="xs:date"
-                      parseMethod="org.apache.cxf.tools.common.DataTypeAdapter.parseDate"
-                      printMethod="org.apache.cxf.tools.common.DataTypeAdapter.printDate"/&gt;
-      &lt;/jxb:globalBindings&gt;
-  &lt;/jaxws:bindings&gt;
+&lt;jaxws:bindings wsdlLocation="CustomerService.wsdl"
+          xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
+          xmlns:xs="http://www.w3.org/2001/XMLSchema"
+          xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
+          xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"&gt;
+  &lt;!-- &lt;jaxws:enableAsyncMapping&gt;true&lt;/jaxws:enableAsyncMapping&gt; --&gt;
+  &lt;jaxws:bindings  node="wsdl:definitions/wsdl:types/xs:schema"&gt;
+      &lt;jxb:globalBindings&gt;
+        &lt;jxb:javaType name="java.util.Date" xmlType="xs:dateTime"
+                      parseMethod="org.apache.cxf.tools.common.DataTypeAdapter.parseDateTime"
+                      printMethod="org.apache.cxf.tools.common.DataTypeAdapter.printDateTime"/&gt;
+        &lt;jxb:javaType name="java.util.Date" xmlType="xs:date"
+                      parseMethod="org.apache.cxf.tools.common.DataTypeAdapter.parseDate"
+                      printMethod="org.apache.cxf.tools.common.DataTypeAdapter.printDate"/&gt;
+      &lt;/jxb:globalBindings&gt;
+  &lt;/jaxws:bindings&gt;
 &lt;/jaxws:bindings&gt;
\ No newline at end of file

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.2.x-fixes/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Thu Dec  3 22:42:11 2009
@@ -1 +1 @@
-text/plain
+text/xml

Modified: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java
URL: 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
==============================================================================
--- cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java (original)
+++ cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java Thu Dec  3 22:42:11 2009
@@ -1,114 +1,114 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.maven_plugin;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.net.URI;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.logging.Log;
-
-public final class BindingFileHelper {
-    static final String LOCATION_ATTR_NAME = "wsdlLocation";
-    
-    private BindingFileHelper() {
-    }
-
-    static Document readDocument(InputStream is) throws Exception {
-        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
-        DocumentBuilder db = dbf.newDocumentBuilder();
-        Document doc = db.parse(is);
-        doc.getDocumentElement().normalize();
-        return doc;
-    }
-
-    /**
-     * Reads bindingFile from given stream, sets the attribute wsdlLocation on the top element bindings to the
-     * given wsdlLocation and writes the resulting binding file to outBindingFile
-     * 
-     * @param bindingFileStream
-     * @param wsdlLocation
-     * @param outBindingFile
-     * @throws Exception
-     */
-    public static boolean setWsdlLocationAndWrite(InputStream bindingFileStream, URI wsdlLocation,
-                                               File outBindingFile) throws Exception {
-        Document doc = readDocument(bindingFileStream);
-
-        // Find and set wsdlLocation
-        Element bindings = doc.getDocumentElement();
-        String oldLocation = bindings.getAttribute(LOCATION_ATTR_NAME);
-        if (oldLocation != null &amp;&amp; !"".equals(oldLocation)) {
-            return false;
-        }
-        bindings.setAttribute(LOCATION_ATTR_NAME, wsdlLocation.toURL().toExternalForm());
-
-        // Save to outBindingFile
-        TransformerFactory transformerFactory = TransformerFactory.newInstance();
-        Transformer transformer = transformerFactory.newTransformer();
-        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
-        DOMSource source = new DOMSource(doc);
-
-        if (!outBindingFile.exists()) {
-            outBindingFile.getParentFile().mkdirs();
-        }
-        FileOutputStream fos = new FileOutputStream(outBindingFile);
-        StreamResult result = new StreamResult(fos);
-        transformer.transform(source, result);
-        return true;
-    }
-
-    static void setWsdlLocationInBindingsIfNotSet(File baseDir, File outDir, WsdlOption o, Log log) 
-        throws MojoExecutionException {
-        try {
-            String[] bindingFiles = o.getBindingFiles();
-            for (int c = 0; c &lt; bindingFiles.length; c++) {
-                String bindingFilePath = bindingFiles[c];
-                File bindingFile = new File(bindingFilePath);
-                File outFile =  new File(outDir, "" + c + "-" + bindingFile.getName());
-                URI wsdlLocation = o.getWsdlURI(baseDir.toURI());
-                FileInputStream is = new FileInputStream(bindingFile);
-                boolean wasSet = setWsdlLocationAndWrite(is, wsdlLocation, outFile);
-                if (log != null) {
-                    log.info("Checked binding file " + bindingFilePath + " " + wasSet);
-                }
-                if (wasSet) {
-                    bindingFiles[c] = outFile.getAbsolutePath();
-                }
-            }
-        } catch (Exception e) {
-            throw new MojoExecutionException("Error setting wsdlLocation in binding file", e);
-        }
-    }
-
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.maven_plugin;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.net.URI;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.logging.Log;
+
+public final class BindingFileHelper {
+    static final String LOCATION_ATTR_NAME = "wsdlLocation";
+    
+    private BindingFileHelper() {
+    }
+
+    static Document readDocument(InputStream is) throws Exception {
+        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+        DocumentBuilder db = dbf.newDocumentBuilder();
+        Document doc = db.parse(is);
+        doc.getDocumentElement().normalize();
+        return doc;
+    }
+
+    /**
+     * Reads bindingFile from given stream, sets the attribute wsdlLocation on the top element bindings to the
+     * given wsdlLocation and writes the resulting binding file to outBindingFile
+     * 
+     * @param bindingFileStream
+     * @param wsdlLocation
+     * @param outBindingFile
+     * @throws Exception
+     */
+    public static boolean setWsdlLocationAndWrite(InputStream bindingFileStream, URI wsdlLocation,
+                                               File outBindingFile) throws Exception {
+        Document doc = readDocument(bindingFileStream);
+
+        // Find and set wsdlLocation
+        Element bindings = doc.getDocumentElement();
+        String oldLocation = bindings.getAttribute(LOCATION_ATTR_NAME);
+        if (oldLocation != null &amp;&amp; !"".equals(oldLocation)) {
+            return false;
+        }
+        bindings.setAttribute(LOCATION_ATTR_NAME, wsdlLocation.toURL().toExternalForm());
+
+        // Save to outBindingFile
+        TransformerFactory transformerFactory = TransformerFactory.newInstance();
+        Transformer transformer = transformerFactory.newTransformer();
+        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+        DOMSource source = new DOMSource(doc);
+
+        if (!outBindingFile.exists()) {
+            outBindingFile.getParentFile().mkdirs();
+        }
+        FileOutputStream fos = new FileOutputStream(outBindingFile);
+        StreamResult result = new StreamResult(fos);
+        transformer.transform(source, result);
+        return true;
+    }
+
+    static void setWsdlLocationInBindingsIfNotSet(File baseDir, File outDir, WsdlOption o, Log log) 
+        throws MojoExecutionException {
+        try {
+            String[] bindingFiles = o.getBindingFiles();
+            for (int c = 0; c &lt; bindingFiles.length; c++) {
+                String bindingFilePath = bindingFiles[c];
+                File bindingFile = new File(bindingFilePath);
+                File outFile =  new File(outDir, "" + c + "-" + bindingFile.getName());
+                URI wsdlLocation = o.getWsdlURI(baseDir.toURI());
+                FileInputStream is = new FileInputStream(bindingFile);
+                boolean wasSet = setWsdlLocationAndWrite(is, wsdlLocation, outFile);
+                if (log != null) {
+                    log.info("Checked binding file " + bindingFilePath + " " + wasSet);
+                }
+                if (wasSet) {
+                    bindingFiles[c] = outFile.getAbsolutePath();
+                }
+            }
+        } catch (Exception e) {
+            throw new MojoExecutionException("Error setting wsdlLocation in binding file", e);
+        }
+    }
+
+}

Propchange: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date




</pre>
</div>
</content>
</entry>
<entry>
<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>
<author><name>dkulp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091203224214.C434723889E7@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091203224214-C434723889E7@eris-apache-org%3e</id>
<updated>2009-12-03T22:42:13Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Modified: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java
URL: 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
==============================================================================
--- cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java
(original)
+++ cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java
Thu Dec  3 22:42:11 2009
@@ -1,65 +1,65 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.cxf.maven_plugin;
-
-/**
- * Represents a wsdl file that is stored in a maven repository
- */
-public class WsdlArtifact {
-    private String groupId;
-    private String artifactId;
-    private String version;
-    private String type;
-    
-    public WsdlArtifact() {
-        type = "wsdl";
-    }
-    
-    public String getGroupId() {
-        return groupId;
-    }
-    public void setGroupId(String groupId) {
-        this.groupId = groupId;
-    }
-    public String getArtifactId() {
-        return artifactId;
-    }
-    public void setArtifactId(String artifactId) {
-        this.artifactId = artifactId;
-    }
-    public String getVersion() {
-        return version;
-    }
-    public void setVersion(String version) {
-        this.version = version;
-    }
-    public String getType() {
-        return type;
-    }
-    public void setType(String type) {
-        this.type = type;
-    }
-    
-    public boolean doesMatch(WsdlArtifact artifact) {
-        return type.equals(artifact.getType()) &amp;&amp; groupId.equals(artifact.getGroupId())
-              &amp;&amp; artifactId.equals(artifact.getArtifactId()) 
-              &amp;&amp; (version == null || version.equals(artifact.getVersion()));
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cxf.maven_plugin;
+
+/**
+ * Represents a wsdl file that is stored in a maven repository
+ */
+public class WsdlArtifact {
+    private String groupId;
+    private String artifactId;
+    private String version;
+    private String type;
+    
+    public WsdlArtifact() {
+        type = "wsdl";
+    }
+    
+    public String getGroupId() {
+        return groupId;
+    }
+    public void setGroupId(String groupId) {
+        this.groupId = groupId;
+    }
+    public String getArtifactId() {
+        return artifactId;
+    }
+    public void setArtifactId(String artifactId) {
+        this.artifactId = artifactId;
+    }
+    public String getVersion() {
+        return version;
+    }
+    public void setVersion(String version) {
+        this.version = version;
+    }
+    public String getType() {
+        return type;
+    }
+    public void setType(String type) {
+        this.type = type;
+    }
+    
+    public boolean doesMatch(WsdlArtifact artifact) {
+        return type.equals(artifact.getType()) &amp;&amp; groupId.equals(artifact.getGroupId())
+              &amp;&amp; artifactId.equals(artifact.getArtifactId()) 
+              &amp;&amp; (version == null || version.equals(artifact.getVersion()));
+    }
+}

Propchange: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java
URL: 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
==============================================================================
--- cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java
(original)
+++ cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java
Thu Dec  3 22:42:11 2009
@@ -1,81 +1,81 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.maven_plugin;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.net.URI;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.apache.maven.plugin.MojoExecutionException;
-
-public class BindingFileHelperTest extends TestCase {
-    private static final File OUTFILE = new File("target/test-data/testbinding.xml");
-    private static final String TEST_WSDL_URL = "http://testwsdl";
-
-    public void testBindingWithWsdlLocation() throws Exception {
-        try {
-            OUTFILE.delete();
-        } catch (Exception e) {
-            // Do not fail if delete fails
-        }
-        InputStream is = this.getClass().getResourceAsStream("/bindingWithWsdlLocation.xml");
-        boolean wasSet = BindingFileHelper.setWsdlLocationAndWrite(is, new URI(TEST_WSDL_URL),
OUTFILE);
-        Assert.assertFalse("This binding file should not be changed", wasSet);
-        Assert.assertFalse(OUTFILE.exists());
-    }
-
-    public void testBindingWithoutWsdlLocation() throws Exception {
-        try {
-            OUTFILE.delete();
-        } catch (Exception e) {
-            // Do not fail if delete fails
-        }
-        InputStream is = this.getClass().getResourceAsStream("/bindingWithoutWsdlLocation.xml");
-        BindingFileHelper.setWsdlLocationAndWrite(is, new URI(TEST_WSDL_URL), OUTFILE);
-
-        Document doc = BindingFileHelper.readDocument(new FileInputStream(OUTFILE));
-        Element bindings = doc.getDocumentElement();
-        String location = bindings.getAttribute(BindingFileHelper.LOCATION_ATTR_NAME);
-        Assert.assertEquals(TEST_WSDL_URL, location);
-    }
-
-    public void testSetBindingForWsdlOption() throws MojoExecutionException {
-        WsdlOption o = new WsdlOption();
-        o.setWsdl("test.wsdl");
-        File baseDir = new File(".");
-        File tempDir = new File(baseDir, "target" + File.separator + "tempbindings");
-        File bindingFile = new File(baseDir, "src/test/resources/bindingWithoutWsdlLocation.xml");
-        o.setBindingFiles(new String[] {
-            bindingFile.getAbsolutePath()
-        });
-
-        BindingFileHelper.setWsdlLocationInBindingsIfNotSet(baseDir, tempDir, o, null);
-        String bindingFilePath = o.getBindingFiles()[0];
-        File expectedBindingFile = new File(tempDir, "0-bindingWithoutWsdlLocation.xml");
-        Assert.assertEquals("Binding file should be the temp file", expectedBindingFile.getAbsolutePath(),
-                            bindingFilePath);
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.maven_plugin;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.net.URI;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.apache.maven.plugin.MojoExecutionException;
+
+public class BindingFileHelperTest extends TestCase {
+    private static final File OUTFILE = new File("target/test-data/testbinding.xml");
+    private static final String TEST_WSDL_URL = "http://testwsdl";
+
+    public void testBindingWithWsdlLocation() throws Exception {
+        try {
+            OUTFILE.delete();
+        } catch (Exception e) {
+            // Do not fail if delete fails
+        }
+        InputStream is = this.getClass().getResourceAsStream("/bindingWithWsdlLocation.xml");
+        boolean wasSet = BindingFileHelper.setWsdlLocationAndWrite(is, new URI(TEST_WSDL_URL),
OUTFILE);
+        Assert.assertFalse("This binding file should not be changed", wasSet);
+        Assert.assertFalse(OUTFILE.exists());
+    }
+
+    public void testBindingWithoutWsdlLocation() throws Exception {
+        try {
+            OUTFILE.delete();
+        } catch (Exception e) {
+            // Do not fail if delete fails
+        }
+        InputStream is = this.getClass().getResourceAsStream("/bindingWithoutWsdlLocation.xml");
+        BindingFileHelper.setWsdlLocationAndWrite(is, new URI(TEST_WSDL_URL), OUTFILE);
+
+        Document doc = BindingFileHelper.readDocument(new FileInputStream(OUTFILE));
+        Element bindings = doc.getDocumentElement();
+        String location = bindings.getAttribute(BindingFileHelper.LOCATION_ATTR_NAME);
+        Assert.assertEquals(TEST_WSDL_URL, location);
+    }
+
+    public void testSetBindingForWsdlOption() throws MojoExecutionException {
+        WsdlOption o = new WsdlOption();
+        o.setWsdl("test.wsdl");
+        File baseDir = new File(".");
+        File tempDir = new File(baseDir, "target" + File.separator + "tempbindings");
+        File bindingFile = new File(baseDir, "src/test/resources/bindingWithoutWsdlLocation.xml");
+        o.setBindingFiles(new String[] {
+            bindingFile.getAbsolutePath()
+        });
+
+        BindingFileHelper.setWsdlLocationInBindingsIfNotSet(baseDir, tempDir, o, null);
+        String bindingFilePath = o.getBindingFiles()[0];
+        File expectedBindingFile = new File(tempDir, "0-bindingWithoutWsdlLocation.xml");
+        Assert.assertEquals("Binding file should be the temp file", expectedBindingFile.getAbsolutePath(),
+                            bindingFilePath);
+    }
+}

Propchange: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/resources/bindingWithWsdlLocation.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/resources/bindingWithWsdlLocation.xml
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Thu Dec  3 22:42:11 2009
@@ -1 +1 @@
-text/plain
+text/xml

Propchange: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/resources/bindingWithoutWsdlLocation.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/resources/bindingWithoutWsdlLocation.xml
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Thu Dec  3 22:42:11 2009
@@ -1 +1 @@
-text/plain
+text/xml

Propchange: cxf/branches/2.2.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/jaxws/AegisJaxwsGetTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.2.x-fixes/rt/transports/http-osgi/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.2.x-fixes/rt/transports/http-osgi/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Propchange: cxf/branches/2.2.x-fixes/rt/transports/http-osgi/src/main/resources/META-INF/cxf/osgi/cxf-extension-osgi.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.2.x-fixes/rt/transports/http-osgi/src/main/resources/META-INF/cxf/osgi/cxf-extension-osgi.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Propchange: cxf/branches/2.2.x-fixes/rt/transports/http-osgi/src/main/resources/META-INF/spring/cxf-transport-osgi.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.2.x-fixes/rt/transports/http-osgi/src/main/resources/META-INF/spring/cxf-transport-osgi.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Propchange: cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/failover_address_override.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/failover_address_override.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Propchange: cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/management/persistent-id.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/management/persistent-id.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/codegen/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/codegen/pom.xml
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Thu Dec  3 22:42:11 2009
@@ -1 +1 @@
-text/plain
+text/xml

Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/codegen/src/main/resources/defaultBinding.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/codegen/src/main/resources/defaultBinding.xml
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Thu Dec  3 22:42:11 2009
@@ -1 +1 @@
-text/plain
+text/xml

Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/pom.xml
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Thu Dec  3 22:42:11 2009
@@ -1 +1 @@
-text/plain
+text/xml

Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/java/org/apache/cxf/systests/java2ws/HelloWorld.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/java/org/apache/cxf/systests/java2ws/HelloWorld.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/beans.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/beans.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/beans.xml
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Thu Dec  3 22:42:11 2009
@@ -1 +1 @@
-text/plain
+text/xml

Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/web.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/web.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/web.xml
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Thu Dec  3 22:42:11 2009
@@ -1 +1 @@
-text/plain
+text/xml

Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/branches/2.2.x-fixes/systests/wsdl_maven/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml




</pre>
</div>
</content>
</entry>
<entry>
<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>
<author><name>dkulp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091203222704.04D382388A5F@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091203222704-04D382388A5F@eris-apache-org%3e</id>
<updated>2009-12-03T22:27:02Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Modified: cxf/trunk/systests/wsdl_maven/codegen/src/main/resources/defaultBinding.xml
URL: 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
==============================================================================
--- cxf/trunk/systests/wsdl_maven/codegen/src/main/resources/defaultBinding.xml (original)
+++ cxf/trunk/systests/wsdl_maven/codegen/src/main/resources/defaultBinding.xml Thu Dec  3
22:26:58 2009
@@ -1,16 +1,16 @@
-&lt;jaxws:bindings wsdlLocation=""
-          xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
-          xmlns:xs="http://www.w3.org/2001/XMLSchema"
-          xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
-          xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"&gt;
-  &lt;jaxws:bindings  node="wsdl:definitions/wsdl:types/xs:schema"&gt;
-      &lt;jxb:globalBindings&gt;
-        &lt;jxb:javaType name="java.util.Date" xmlType="xs:dateTime"
-                      parseMethod="org.apache.cxf.tools.common.DataTypeAdapter.parseDateTime"
-                      printMethod="org.apache.cxf.tools.common.DataTypeAdapter.printDateTime"/&gt;
-        &lt;jxb:javaType name="java.util.Date" xmlType="xs:date"
-                      parseMethod="org.apache.cxf.tools.common.DataTypeAdapter.parseDate"
-                      printMethod="org.apache.cxf.tools.common.DataTypeAdapter.printDate"/&gt;
-      &lt;/jxb:globalBindings&gt;
-  &lt;/jaxws:bindings&gt;
+&lt;jaxws:bindings wsdlLocation=""
+          xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
+          xmlns:xs="http://www.w3.org/2001/XMLSchema"
+          xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
+          xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"&gt;
+  &lt;jaxws:bindings  node="wsdl:definitions/wsdl:types/xs:schema"&gt;
+      &lt;jxb:globalBindings&gt;
+        &lt;jxb:javaType name="java.util.Date" xmlType="xs:dateTime"
+                      parseMethod="org.apache.cxf.tools.common.DataTypeAdapter.parseDateTime"
+                      printMethod="org.apache.cxf.tools.common.DataTypeAdapter.printDateTime"/&gt;
+        &lt;jxb:javaType name="java.util.Date" xmlType="xs:date"
+                      parseMethod="org.apache.cxf.tools.common.DataTypeAdapter.parseDate"
+                      printMethod="org.apache.cxf.tools.common.DataTypeAdapter.printDate"/&gt;
+      &lt;/jxb:globalBindings&gt;
+  &lt;/jaxws:bindings&gt;
 &lt;/jaxws:bindings&gt;
\ No newline at end of file

Propchange: cxf/trunk/systests/wsdl_maven/codegen/src/main/resources/defaultBinding.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/wsdl_maven/codegen/src/main/resources/defaultBinding.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/wsdl_maven/codegen/src/main/resources/defaultBinding.xml
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Thu Dec  3 22:26:58 2009
@@ -1 +1 @@
-text/plain
+text/xml

Modified: cxf/trunk/systests/wsdl_maven/java2ws/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/wsdl_maven/java2ws/pom.xml?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/systests/wsdl_maven/java2ws/pom.xml (original)
+++ cxf/trunk/systests/wsdl_maven/java2ws/pom.xml Thu Dec  3 22:26:58 2009
@@ -1,84 +1,84 @@
-&lt;!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements. See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership. The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License. You may obtain a copy of the License at
- 
-  http://www.apache.org/licenses/LICENSE-2.0
- 
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied. See the License for the
-  specific language governing permissions and limitations
-  under the License.
---&gt;
-&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;
-    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
-    &lt;groupId&gt;org.apache.cxf.systests.wsdl_maven&lt;/groupId&gt;
-    &lt;artifactId&gt;cxf-systests-java2ws&lt;/artifactId&gt;
-    &lt;version&gt;2.3.0-SNAPSHOT&lt;/version&gt;
-    &lt;name&gt;Test for writing wsdl to repo&lt;/name&gt;
-    &lt;parent&gt;
-        &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
-        &lt;artifactId&gt;cxf-parent&lt;/artifactId&gt;
-        &lt;version&gt;2.3.0-SNAPSHOT&lt;/version&gt;
-        &lt;relativePath&gt;../../../parent/pom.xml&lt;/relativePath&gt;
-    &lt;/parent&gt;
-    &lt;build&gt;
-        &lt;plugins&gt;
-            &lt;plugin&gt;
-                &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
-                &lt;configuration&gt;
-                    &lt;source&gt;1.5&lt;/source&gt;
-                    &lt;target&gt;1.5&lt;/target&gt;
-                &lt;/configuration&gt;
-            &lt;/plugin&gt;
-
-			&lt;plugin&gt;
-				&lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
-				&lt;artifactId&gt;cxf-java2ws-plugin&lt;/artifactId&gt;
-				&lt;version&gt;${project.version}&lt;/version&gt;
-				&lt;dependencies&gt;
-					&lt;dependency&gt;
-						&lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
-						&lt;artifactId&gt;cxf-rt-frontend-jaxws&lt;/artifactId&gt;
-						&lt;version&gt;${project.version}&lt;/version&gt;
-					&lt;/dependency&gt;
-					&lt;dependency&gt;
-						&lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
-						&lt;artifactId&gt;cxf-rt-frontend-simple&lt;/artifactId&gt;
-						&lt;version&gt;${project.version}&lt;/version&gt;
-					&lt;/dependency&gt;
-				&lt;/dependencies&gt;
-
-				&lt;executions&gt;
-					&lt;execution&gt;
-						&lt;id&gt;process-classes&lt;/id&gt;
-						&lt;phase&gt;process-classes&lt;/phase&gt;
-						&lt;configuration&gt;
-							&lt;className&gt;org.apache.cxf.systests.java2ws.HelloWorld&lt;/className&gt;
-							&lt;genWsdl&gt;true&lt;/genWsdl&gt;
-							&lt;verbose&gt;true&lt;/verbose&gt;
-							&lt;attachWsdl&gt;true&lt;/attachWsdl&gt;
-						&lt;/configuration&gt;
-						&lt;goals&gt;
-							&lt;goal&gt;java2ws&lt;/goal&gt;
-						&lt;/goals&gt;
-					&lt;/execution&gt;
-				&lt;/executions&gt;
-			&lt;/plugin&gt;
-        &lt;/plugins&gt;
-    &lt;/build&gt;
-
-    &lt;dependencies&gt;
-		&lt;dependency&gt;
-			&lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
-			&lt;artifactId&gt;cxf-rt-frontend-jaxws&lt;/artifactId&gt;
-			&lt;version&gt;${project.version}&lt;/version&gt;
-		&lt;/dependency&gt;
-	&lt;/dependencies&gt;
-&lt;/project&gt;
+&lt;!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+ 
+  http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+--&gt;
+&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;
+    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
+    &lt;groupId&gt;org.apache.cxf.systests.wsdl_maven&lt;/groupId&gt;
+    &lt;artifactId&gt;cxf-systests-java2ws&lt;/artifactId&gt;
+    &lt;version&gt;2.3.0-SNAPSHOT&lt;/version&gt;
+    &lt;name&gt;Test for writing wsdl to repo&lt;/name&gt;
+    &lt;parent&gt;
+        &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+        &lt;artifactId&gt;cxf-parent&lt;/artifactId&gt;
+        &lt;version&gt;2.3.0-SNAPSHOT&lt;/version&gt;
+        &lt;relativePath&gt;../../../parent/pom.xml&lt;/relativePath&gt;
+    &lt;/parent&gt;
+    &lt;build&gt;
+        &lt;plugins&gt;
+            &lt;plugin&gt;
+                &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
+                &lt;configuration&gt;
+                    &lt;source&gt;1.5&lt;/source&gt;
+                    &lt;target&gt;1.5&lt;/target&gt;
+                &lt;/configuration&gt;
+            &lt;/plugin&gt;
+
+			&lt;plugin&gt;
+				&lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+				&lt;artifactId&gt;cxf-java2ws-plugin&lt;/artifactId&gt;
+				&lt;version&gt;${project.version}&lt;/version&gt;
+				&lt;dependencies&gt;
+					&lt;dependency&gt;
+						&lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+						&lt;artifactId&gt;cxf-rt-frontend-jaxws&lt;/artifactId&gt;
+						&lt;version&gt;${project.version}&lt;/version&gt;
+					&lt;/dependency&gt;
+					&lt;dependency&gt;
+						&lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+						&lt;artifactId&gt;cxf-rt-frontend-simple&lt;/artifactId&gt;
+						&lt;version&gt;${project.version}&lt;/version&gt;
+					&lt;/dependency&gt;
+				&lt;/dependencies&gt;
+
+				&lt;executions&gt;
+					&lt;execution&gt;
+						&lt;id&gt;process-classes&lt;/id&gt;
+						&lt;phase&gt;process-classes&lt;/phase&gt;
+						&lt;configuration&gt;
+							&lt;className&gt;org.apache.cxf.systests.java2ws.HelloWorld&lt;/className&gt;
+							&lt;genWsdl&gt;true&lt;/genWsdl&gt;
+							&lt;verbose&gt;true&lt;/verbose&gt;
+							&lt;attachWsdl&gt;true&lt;/attachWsdl&gt;
+						&lt;/configuration&gt;
+						&lt;goals&gt;
+							&lt;goal&gt;java2ws&lt;/goal&gt;
+						&lt;/goals&gt;
+					&lt;/execution&gt;
+				&lt;/executions&gt;
+			&lt;/plugin&gt;
+        &lt;/plugins&gt;
+    &lt;/build&gt;
+
+    &lt;dependencies&gt;
+		&lt;dependency&gt;
+			&lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+			&lt;artifactId&gt;cxf-rt-frontend-jaxws&lt;/artifactId&gt;
+			&lt;version&gt;${project.version}&lt;/version&gt;
+		&lt;/dependency&gt;
+	&lt;/dependencies&gt;
+&lt;/project&gt;

Propchange: cxf/trunk/systests/wsdl_maven/java2ws/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/wsdl_maven/java2ws/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/wsdl_maven/java2ws/pom.xml
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Thu Dec  3 22:26:58 2009
@@ -1 +1 @@
-text/plain
+text/xml

Propchange: cxf/trunk/systests/wsdl_maven/java2ws/src/main/java/org/apache/cxf/systests/java2ws/HelloWorld.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/wsdl_maven/java2ws/src/main/java/org/apache/cxf/systests/java2ws/HelloWorld.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/beans.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/beans.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/beans.xml
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Thu Dec  3 22:26:58 2009
@@ -1 +1 @@
-text/plain
+text/xml

Propchange: cxf/trunk/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/web.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/web.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/web.xml
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Thu Dec  3 22:26:58 2009
@@ -1 +1 @@
-text/plain
+text/xml

Modified: cxf/trunk/systests/wsdl_maven/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/wsdl_maven/pom.xml?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/systests/wsdl_maven/pom.xml (original)
+++ cxf/trunk/systests/wsdl_maven/pom.xml Thu Dec  3 22:26:58 2009
@@ -1,40 +1,40 @@
-&lt;!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements. See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership. The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License. You may obtain a copy of the License at
- 
-  http://www.apache.org/licenses/LICENSE-2.0
- 
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied. See the License for the
-  specific language governing permissions and limitations
-  under the License.
---&gt;
-&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;
-    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
-    &lt;groupId&gt;org.apache.cxf.systests&lt;/groupId&gt;
-    &lt;artifactId&gt;cxf-wsdl-maven&lt;/artifactId&gt;
-    &lt;packaging&gt;pom&lt;/packaging&gt;
-    &lt;version&gt;2.3.0-SNAPSHOT&lt;/version&gt;
-    &lt;name&gt;Apache CXF System Tests for WSDL generation and retrieval&lt;/name&gt;
-    &lt;url&gt;http://cxf.apache.org&lt;/url&gt;
-
-    &lt;parent&gt;
-        &lt;groupId&gt;org.apache.cxf.systests&lt;/groupId&gt;
-        &lt;artifactId&gt;cxf-systests&lt;/artifactId&gt;
-        &lt;version&gt;2.3.0-SNAPSHOT&lt;/version&gt;
-    &lt;/parent&gt;
-
-    &lt;modules&gt;
-        &lt;module&gt;codegen&lt;/module&gt;
-        &lt;module&gt;java2ws&lt;/module&gt;        
-    &lt;/modules&gt;
-
-
-&lt;/project&gt;
+&lt;!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+ 
+  http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+--&gt;
+&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;
+    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
+    &lt;groupId&gt;org.apache.cxf.systests&lt;/groupId&gt;
+    &lt;artifactId&gt;cxf-wsdl-maven&lt;/artifactId&gt;
+    &lt;packaging&gt;pom&lt;/packaging&gt;
+    &lt;version&gt;2.3.0-SNAPSHOT&lt;/version&gt;
+    &lt;name&gt;Apache CXF System Tests for WSDL generation and retrieval&lt;/name&gt;
+    &lt;url&gt;http://cxf.apache.org&lt;/url&gt;
+
+    &lt;parent&gt;
+        &lt;groupId&gt;org.apache.cxf.systests&lt;/groupId&gt;
+        &lt;artifactId&gt;cxf-systests&lt;/artifactId&gt;
+        &lt;version&gt;2.3.0-SNAPSHOT&lt;/version&gt;
+    &lt;/parent&gt;
+
+    &lt;modules&gt;
+        &lt;module&gt;codegen&lt;/module&gt;
+        &lt;module&gt;java2ws&lt;/module&gt;        
+    &lt;/modules&gt;
+
+
+&lt;/project&gt;

Propchange: cxf/trunk/systests/wsdl_maven/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/wsdl_maven/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/wsdl_maven/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml




</pre>
</div>
</content>
</entry>
<entry>
<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>
<author><name>dkulp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091203222703.ED80923889F7@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091203222703-ED80923889F7@eris-apache-org%3e</id>
<updated>2009-12-03T22:27:02Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngineConfigurator.java
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngineConfigurator.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngineConfigurator.java Thu Dec  3 22:26:58 2009
@@ -1,201 +1,201 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.jaxrs.ext.logging.atom;
-
-import java.lang.reflect.Constructor;
-
-import org.apache.cxf.jaxrs.ext.logging.atom.converter.Converter;
-import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter;
-import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter.Format;
-import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter.Multiplicity;
-import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter.Output;
-import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.Deliverer;
-import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.RetryingDeliverer;
-import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.WebClientDeliverer;
-
-/**
- * Package private interpreter of incomplete input of engine configuration. Used commonly by
- * {@link AtomPushHandler properties file} and {@link AtomPushBean spring} configuration schemes.
- */
-// TODO extract 'general rules' of interpretation in handler and bean and put here
-final class AtomPushEngineConfigurator {
-
-    private Deliverer deliverer;
-    private Converter converter;
-    private String delivererClass;
-    private String converterClass;
-    private String batchSize;
-    private String delivererUrl;
-    private String retryTimeout;
-    private String retryPause;
-    private String retryPauseTime;
-    private String output;
-    private String multiplicity;
-    private String format;
-
-    public void setUrl(String url) {
-        this.delivererUrl = url;
-    }
-
-    public void setRetryTimeout(String retryTimeout) {
-        this.retryTimeout = retryTimeout;
-    }
-
-    public void setRetryPause(String retryPause) {
-        this.retryPause = retryPause;
-    }
-
-    public void setRetryPauseTime(String retryPauseTime) {
-        this.retryPauseTime = retryPauseTime;
-    }
-
-    public void setBatchSize(String batchSize) {
-        this.batchSize = batchSize;
-    }
-
-    public void setDeliverer(Deliverer deliverer) {
-        this.deliverer = deliverer;
-    }
-
-    public void setConverter(Converter converter) {
-        this.converter = converter;
-    }
-
-    public void setDelivererClass(String delivererClass) {
-        this.delivererClass = delivererClass;
-    }
-
-    public void setConverterClass(String converterClass) {
-        this.converterClass = converterClass;
-    }
-
-    public void setOutput(String output) {
-        this.output = output;
-    }
-
-    public void setMultiplicity(String multiplicity) {
-        this.multiplicity = multiplicity;
-    }
-
-    public void setFormat(String format) {
-        this.format = format;
-    }
-
-    public AtomPushEngine createEngine() {
-        Deliverer d = deliverer;
-        Converter c = converter;
-        int batch = parseInt(batchSize, 1, 1);
-        if (d == null) {
-            if (delivererUrl != null) {
-                if (delivererClass != null) {
-                    d = createDeliverer(delivererClass, delivererUrl);
-                } else {
-                    d = new WebClientDeliverer(delivererUrl);
-                }
-            } else {
-                throw new IllegalStateException("Either url, deliverer or "
-                                                + "deliverer class with url must be setup");
-            }
-        }
-        if (c == null) {
-            if (converterClass != null) {
-                c = createConverter(converterClass);
-            } else {
-                Output out = parseEnum(output, Output.FEED);
-                Multiplicity mul = parseEnum(multiplicity, Multiplicity.ONE);
-                Format form = parseEnum(format, Format.CONTENT);
-                c = new StandardConverter(out, mul, form);
-                if (retryPause != null) {
-                    int timeout = parseInt(retryTimeout, 0, 0);
-                    int pause = parseInt(retryPauseTime, 1, 30);
-                    boolean linear = !retryPause.equalsIgnoreCase("exponential");
-                    d = new RetryingDeliverer(d, timeout, pause, linear);
-                }
-            }
-        }
-        AtomPushEngine engine = new AtomPushEngine();
-        engine.setDeliverer(d);
-        engine.setConverter(c);
-        engine.setBatchSize(batch);
-        return engine;
-    }
-
-    private Deliverer createDeliverer(String clazz, String url) {
-        try {
-            Constructor&lt;Deliverer&gt; ctor = loadClass(clazz, Deliverer.class).getConstructor(String.class);
-            return ctor.newInstance(url);
-        } catch (Exception e) {
-            throw new IllegalArgumentException(e);
-        }
-    }
-
-    private Converter createConverter(String clazz) {
-        try {
-            Constructor&lt;Converter&gt; ctor = loadClass(clazz, Converter.class).getConstructor();
-            return ctor.newInstance();
-        } catch (Exception e) {
-            throw new IllegalArgumentException(e);
-        }
-    }
-
-    @SuppressWarnings("unchecked")
-    private &lt;T&gt; Class&lt;T&gt; loadClass(String clazz, Class&lt;T&gt; ifaceClass) throws ClassNotFoundException {
-        ClassLoader cl = Thread.currentThread().getContextClassLoader();
-        try {
-            return (Class&lt;T&gt;)cl.loadClass(clazz);
-        } catch (ClassNotFoundException e) {
-            try {
-                // clazz could be shorted (stripped package name) retry for interface location
-                String pkg = ifaceClass.getPackage().getName();
-                String clazz2 = pkg + "." + clazz;
-                return (Class&lt;T&gt;)cl.loadClass(clazz2);
-            } catch (Exception e1) {
-                throw new ClassNotFoundException(e.getMessage() + " or " + e1.getMessage());
-            }
-        }
-    }
-
-    private int parseInt(String property, int defaultValue) {
-        try {
-            return Integer.parseInt(property);
-        } catch (NumberFormatException e) {
-            return defaultValue;
-        }
-    }
-
-    private int parseInt(String property, int lessThan, int defaultValue) {
-        int ret = parseInt(property, defaultValue);
-        if (ret &lt; lessThan) {
-            ret = defaultValue;
-        }
-        return ret;
-    }
-
-    @SuppressWarnings("unchecked")
-    private &lt;T extends Enum&lt;T&gt;&gt; T parseEnum(String value, T defaultValue) {
-        if (value == null | "".equals(value)) {
-            return defaultValue;
-        }
-        try {
-            return (T)Enum.valueOf(defaultValue.getClass(), value.toUpperCase());
-        } catch (Exception e) {
-            return defaultValue;
-        }
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.jaxrs.ext.logging.atom;
+
+import java.lang.reflect.Constructor;
+
+import org.apache.cxf.jaxrs.ext.logging.atom.converter.Converter;
+import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter;
+import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter.Format;
+import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter.Multiplicity;
+import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter.Output;
+import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.Deliverer;
+import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.RetryingDeliverer;
+import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.WebClientDeliverer;
+
+/**
+ * Package private interpreter of incomplete input of engine configuration. Used commonly by
+ * {@link AtomPushHandler properties file} and {@link AtomPushBean spring} configuration schemes.
+ */
+// TODO extract 'general rules' of interpretation in handler and bean and put here
+final class AtomPushEngineConfigurator {
+
+    private Deliverer deliverer;
+    private Converter converter;
+    private String delivererClass;
+    private String converterClass;
+    private String batchSize;
+    private String delivererUrl;
+    private String retryTimeout;
+    private String retryPause;
+    private String retryPauseTime;
+    private String output;
+    private String multiplicity;
+    private String format;
+
+    public void setUrl(String url) {
+        this.delivererUrl = url;
+    }
+
+    public void setRetryTimeout(String retryTimeout) {
+        this.retryTimeout = retryTimeout;
+    }
+
+    public void setRetryPause(String retryPause) {
+        this.retryPause = retryPause;
+    }
+
+    public void setRetryPauseTime(String retryPauseTime) {
+        this.retryPauseTime = retryPauseTime;
+    }
+
+    public void setBatchSize(String batchSize) {
+        this.batchSize = batchSize;
+    }
+
+    public void setDeliverer(Deliverer deliverer) {
+        this.deliverer = deliverer;
+    }
+
+    public void setConverter(Converter converter) {
+        this.converter = converter;
+    }
+
+    public void setDelivererClass(String delivererClass) {
+        this.delivererClass = delivererClass;
+    }
+
+    public void setConverterClass(String converterClass) {
+        this.converterClass = converterClass;
+    }
+
+    public void setOutput(String output) {
+        this.output = output;
+    }
+
+    public void setMultiplicity(String multiplicity) {
+        this.multiplicity = multiplicity;
+    }
+
+    public void setFormat(String format) {
+        this.format = format;
+    }
+
+    public AtomPushEngine createEngine() {
+        Deliverer d = deliverer;
+        Converter c = converter;
+        int batch = parseInt(batchSize, 1, 1);
+        if (d == null) {
+            if (delivererUrl != null) {
+                if (delivererClass != null) {
+                    d = createDeliverer(delivererClass, delivererUrl);
+                } else {
+                    d = new WebClientDeliverer(delivererUrl);
+                }
+            } else {
+                throw new IllegalStateException("Either url, deliverer or "
+                                                + "deliverer class with url must be setup");
+            }
+        }
+        if (c == null) {
+            if (converterClass != null) {
+                c = createConverter(converterClass);
+            } else {
+                Output out = parseEnum(output, Output.FEED);
+                Multiplicity mul = parseEnum(multiplicity, Multiplicity.ONE);
+                Format form = parseEnum(format, Format.CONTENT);
+                c = new StandardConverter(out, mul, form);
+                if (retryPause != null) {
+                    int timeout = parseInt(retryTimeout, 0, 0);
+                    int pause = parseInt(retryPauseTime, 1, 30);
+                    boolean linear = !retryPause.equalsIgnoreCase("exponential");
+                    d = new RetryingDeliverer(d, timeout, pause, linear);
+                }
+            }
+        }
+        AtomPushEngine engine = new AtomPushEngine();
+        engine.setDeliverer(d);
+        engine.setConverter(c);
+        engine.setBatchSize(batch);
+        return engine;
+    }
+
+    private Deliverer createDeliverer(String clazz, String url) {
+        try {
+            Constructor&lt;Deliverer&gt; ctor = loadClass(clazz, Deliverer.class).getConstructor(String.class);
+            return ctor.newInstance(url);
+        } catch (Exception e) {
+            throw new IllegalArgumentException(e);
+        }
+    }
+
+    private Converter createConverter(String clazz) {
+        try {
+            Constructor&lt;Converter&gt; ctor = loadClass(clazz, Converter.class).getConstructor();
+            return ctor.newInstance();
+        } catch (Exception e) {
+            throw new IllegalArgumentException(e);
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    private &lt;T&gt; Class&lt;T&gt; loadClass(String clazz, Class&lt;T&gt; ifaceClass) throws ClassNotFoundException {
+        ClassLoader cl = Thread.currentThread().getContextClassLoader();
+        try {
+            return (Class&lt;T&gt;)cl.loadClass(clazz);
+        } catch (ClassNotFoundException e) {
+            try {
+                // clazz could be shorted (stripped package name) retry for interface location
+                String pkg = ifaceClass.getPackage().getName();
+                String clazz2 = pkg + "." + clazz;
+                return (Class&lt;T&gt;)cl.loadClass(clazz2);
+            } catch (Exception e1) {
+                throw new ClassNotFoundException(e.getMessage() + " or " + e1.getMessage());
+            }
+        }
+    }
+
+    private int parseInt(String property, int defaultValue) {
+        try {
+            return Integer.parseInt(property);
+        } catch (NumberFormatException e) {
+            return defaultValue;
+        }
+    }
+
+    private int parseInt(String property, int lessThan, int defaultValue) {
+        int ret = parseInt(property, defaultValue);
+        if (ret &lt; lessThan) {
+            ret = defaultValue;
+        }
+        return ret;
+    }
+
+    @SuppressWarnings("unchecked")
+    private &lt;T extends Enum&lt;T&gt;&gt; T parseEnum(String value, T defaultValue) {
+        if (value == null | "".equals(value)) {
+            return defaultValue;
+        }
+        try {
+            return (T)Enum.valueOf(defaultValue.getClass(), value.toUpperCase());
+        } catch (Exception e) {
+            return defaultValue;
+        }
+    }
+}

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngineConfigurator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngineConfigurator.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushHandler.java
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushHandler.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushHandler.java Thu Dec  3 22:26:58 2009
@@ -1,184 +1,184 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.jaxrs.ext.logging.atom;
-
-import java.util.logging.Handler;
-import java.util.logging.LogManager;
-
-import org.apache.cxf.jaxrs.ext.logging.LogRecord;
-import org.apache.cxf.jaxrs.ext.logging.atom.converter.Converter;
-import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.Deliverer;
-
-/**
- * Handler pushing log records in batches as Atom Feeds or Entries to registered client. Handler
- * responsibility is to adapt to JUL framework while most of job is delegated to {@link AtomPushEngine}.
- * &lt;p&gt;
- * For simple configuration using properties file (one global root-level handler of this class) following
- * properties prefixed with full name of this class can be used:
- * &lt;ul&gt;
- * &lt;li&gt;&lt;b&gt;url&lt;/b&gt; - URL where feeds will be pushed (mandatory parameter)&lt;/li&gt;
- * &lt;li&gt;&lt;b&gt;batchSize&lt;/b&gt; - integer number specifying minimal number of published log records that trigger
- * processing and pushing ATOM document. If parameter is not set, is not greater than zero or is not a number,
- * batch size is set to 1.&lt;/li&gt;
- * &lt;/ul&gt;
- * Conversion of log records into ATOM Elements can be tuned up using following parameters. Note that not all
- * combinations are meaningful, see {@link org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter}
- * for details:
- * &lt;ul&gt;
- * &lt;li&gt;&lt;b&gt;output&lt;/b&gt; - ATOM Element type pushed out, either "feed" or "entry"; when not specified or invalid
- * value provided "feed" is used.&lt;/li&gt;
- * &lt;li&gt;&lt;b&gt;multiplicity&lt;/b&gt; - multiplicity of subelement(entries in feed for output=="feed" or log records in
- * entry for output=="entry"), either "one" or "many"; when not specified or invalid value provided "one" is
- * used.&lt;/li&gt;
- * &lt;li&gt;&lt;b&gt;format&lt;/b&gt; - method of embedding data in entry, either "content" or "extension"; when not specified
- * or invalid value provided "content" is used.&lt;/li&gt;
- * &lt;/ul&gt;
- * By default delivery is served by WebClientDeliverer which does not support reliability of transport.
- * Availability of any of this parameters enables retrying of default delivery. Detailed explanation of these
- * parameter, see {@link org.apache.cxf.jaxrs.ext.logging.atom.deliverer.RetryingDeliverer} class description.
- * &lt;ul&gt;
- * &lt;li&gt;&lt;b&gt;retry.pause&lt;/b&gt; - pausing strategy of delivery retries, either &lt;b&gt;linear&lt;/b&gt; or &lt;b&gt;exponential&lt;/b&gt;
- * value (mandatory parameter). If mispelled linear is used.&lt;/li&gt;
- * &lt;li&gt;&lt;b&gt;retry.pause.time&lt;/b&gt; - pause time (in seconds) between retries. If parameter is not set, pause is
- * set to 30 seconds.&lt;/li&gt;
- * &lt;li&gt;&lt;b&gt;retry.timeout&lt;/b&gt; - maximum time (in seconds) retrying will be continued. If not set timeout is not
- * set (infinite loop of retries).&lt;/li&gt;
- * &lt;/ul&gt;
- * Ultimate control on conversion and delivery is obtained specifying own implementation classes:
- * &lt;ul&gt;
- * &lt;li&gt;&lt;b&gt;converter&lt;/b&gt; - name of class implementing {@link Converter} class replacing default conversion and
- * its specific parameters ("output", "multiplicity" and "format") are ignored. For classes located in same
- * package as Converter interface only class name can be given e.g. instead of
- * "org.apache.cxf.jaxrs.ext.logging.atom.converter.FooBarConverter" one can specify "FooBarConverter".&lt;/li&gt;
- * &lt;li&gt;&lt;b&gt;deliverer&lt;/b&gt; - name of class implementing {@link Deliverer} class replacing default delivery and
- * its specific parameters ("retry.Xxx") are ignored. For classes located in same package as Deliverer
- * interface only class name can be given e.g. instead of
- * "org.apache.cxf.jaxrs.ext.logging.atom.deliverer.WebClientDeliverer" one can specify 
- * "WebClientDeliverer".&lt;/li&gt;
- * &lt;/ul&gt;
- * Example:
- * 
- * &lt;pre&gt;
- * handlers = org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler, java.util.logging.ConsoleHandler
- * .level = INFO
- * 
- * # deliver to given URL triggering after each batch of 10 log records
- * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.url = http://localhost:9080
- * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.batchSize = 10
- * 
- * # enable retrying delivery every 10 seconds for 5 minutes
- * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.retry.pause = linear
- * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.retry.pause.time = 10
- * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.retry.timeout = 300
- * 
- * # output for AtomPub: push entries not feeds, each entry with one log record as &amp;quot;atom:extension&amp;quot; 
- * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.output = entry
- * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.multiplicity = one
- * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.format = extension
- * ...
- * &lt;/pre&gt;
- */
-public final class AtomPushHandler extends Handler {
-
-    private AtomPushEngine engine;
-    private boolean lazyConfig;
-
-    /**
-     * Creates handler with configuration taken from properties file.
-     */
-    public AtomPushHandler() {
-        // deferred configuration: configure() called from here would use utilities that attempt to log
-        // and create this handler instance in recursion; configure() will be called on first publish()
-        lazyConfig = true;
-    }
-
-    /**
-     * Creates handler with custom parameters.
-     * 
-     * @param batchSize batch size, see {@link AtomPushEngine#getBatchSize()}
-     * @param converter converter transforming logs into ATOM elements
-     * @param deliverer deliverer pushing ATOM elements to client
-     */
-    public AtomPushHandler(int batchSize, Converter converter, Deliverer deliverer) {
-        engine = new AtomPushEngine();
-        engine.setBatchSize(batchSize);
-        engine.setConverter(converter);
-        engine.setDeliverer(deliverer);
-    }
-
-    /**
-     * Creates handler using (package private).
-     * 
-     * @param engine configured engine.
-     */
-    AtomPushHandler(AtomPushEngine engine) {
-        this.engine = engine;
-    }
-
-    @Override
-    public synchronized void publish(java.util.logging.LogRecord record) {
-        if (LoggingThread.isSilent()) {
-            return;
-        }
-        LoggingThread.markSilent(true);
-        try {
-            if (lazyConfig) {
-                lazyConfig = false;
-                configure();
-            }
-            LogRecord rec = LogRecord.fromJUL(record);
-            engine.publish(rec);
-        } finally {
-            LoggingThread.markSilent(false);
-        }
-    }
-
-    @Override
-    public synchronized void close() throws SecurityException {
-        engine.shutdown();
-    }
-
-    @Override
-    public synchronized void flush() {
-        // no-op
-    }
-
-    /**
-     * Configuration from properties. Aligned to JUL strategy - properties file is only for simple
-     * configuration: it allows configure one root handler with its parameters. What is even more dummy, JUL
-     * does not allow to iterate over configuration properties to make interpretation automated (e.g. using
-     * commons-beanutils)
-     */
-    private void configure() {
-        LogManager manager = LogManager.getLogManager();
-        String cname = getClass().getName();
-        AtomPushEngineConfigurator conf = new AtomPushEngineConfigurator();
-        conf.setUrl(manager.getProperty(cname + ".url"));
-        conf.setDelivererClass(manager.getProperty(cname + ".deliverer"));
-        conf.setConverterClass(manager.getProperty(cname + ".converter"));
-        conf.setBatchSize(manager.getProperty(cname + ".batchSize"));
-        conf.setRetryPause(manager.getProperty(cname + ".retry.pause"));
-        conf.setRetryPauseTime(manager.getProperty(cname + ".retry.pause.time"));
-        conf.setRetryTimeout(manager.getProperty(cname + ".retry.timeout"));
-        conf.setOutput(manager.getProperty(cname + ".output"));
-        conf.setMultiplicity(manager.getProperty(cname + ".multiplicity"));
-        conf.setFormat(manager.getProperty(cname + ".format"));
-        engine = conf.createEngine();
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.jaxrs.ext.logging.atom;
+
+import java.util.logging.Handler;
+import java.util.logging.LogManager;
+
+import org.apache.cxf.jaxrs.ext.logging.LogRecord;
+import org.apache.cxf.jaxrs.ext.logging.atom.converter.Converter;
+import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.Deliverer;
+
+/**
+ * Handler pushing log records in batches as Atom Feeds or Entries to registered client. Handler
+ * responsibility is to adapt to JUL framework while most of job is delegated to {@link AtomPushEngine}.
+ * &lt;p&gt;
+ * For simple configuration using properties file (one global root-level handler of this class) following
+ * properties prefixed with full name of this class can be used:
+ * &lt;ul&gt;
+ * &lt;li&gt;&lt;b&gt;url&lt;/b&gt; - URL where feeds will be pushed (mandatory parameter)&lt;/li&gt;
+ * &lt;li&gt;&lt;b&gt;batchSize&lt;/b&gt; - integer number specifying minimal number of published log records that trigger
+ * processing and pushing ATOM document. If parameter is not set, is not greater than zero or is not a number,
+ * batch size is set to 1.&lt;/li&gt;
+ * &lt;/ul&gt;
+ * Conversion of log records into ATOM Elements can be tuned up using following parameters. Note that not all
+ * combinations are meaningful, see {@link org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter}
+ * for details:
+ * &lt;ul&gt;
+ * &lt;li&gt;&lt;b&gt;output&lt;/b&gt; - ATOM Element type pushed out, either "feed" or "entry"; when not specified or invalid
+ * value provided "feed" is used.&lt;/li&gt;
+ * &lt;li&gt;&lt;b&gt;multiplicity&lt;/b&gt; - multiplicity of subelement(entries in feed for output=="feed" or log records in
+ * entry for output=="entry"), either "one" or "many"; when not specified or invalid value provided "one" is
+ * used.&lt;/li&gt;
+ * &lt;li&gt;&lt;b&gt;format&lt;/b&gt; - method of embedding data in entry, either "content" or "extension"; when not specified
+ * or invalid value provided "content" is used.&lt;/li&gt;
+ * &lt;/ul&gt;
+ * By default delivery is served by WebClientDeliverer which does not support reliability of transport.
+ * Availability of any of this parameters enables retrying of default delivery. Detailed explanation of these
+ * parameter, see {@link org.apache.cxf.jaxrs.ext.logging.atom.deliverer.RetryingDeliverer} class description.
+ * &lt;ul&gt;
+ * &lt;li&gt;&lt;b&gt;retry.pause&lt;/b&gt; - pausing strategy of delivery retries, either &lt;b&gt;linear&lt;/b&gt; or &lt;b&gt;exponential&lt;/b&gt;
+ * value (mandatory parameter). If mispelled linear is used.&lt;/li&gt;
+ * &lt;li&gt;&lt;b&gt;retry.pause.time&lt;/b&gt; - pause time (in seconds) between retries. If parameter is not set, pause is
+ * set to 30 seconds.&lt;/li&gt;
+ * &lt;li&gt;&lt;b&gt;retry.timeout&lt;/b&gt; - maximum time (in seconds) retrying will be continued. If not set timeout is not
+ * set (infinite loop of retries).&lt;/li&gt;
+ * &lt;/ul&gt;
+ * Ultimate control on conversion and delivery is obtained specifying own implementation classes:
+ * &lt;ul&gt;
+ * &lt;li&gt;&lt;b&gt;converter&lt;/b&gt; - name of class implementing {@link Converter} class replacing default conversion and
+ * its specific parameters ("output", "multiplicity" and "format") are ignored. For classes located in same
+ * package as Converter interface only class name can be given e.g. instead of
+ * "org.apache.cxf.jaxrs.ext.logging.atom.converter.FooBarConverter" one can specify "FooBarConverter".&lt;/li&gt;
+ * &lt;li&gt;&lt;b&gt;deliverer&lt;/b&gt; - name of class implementing {@link Deliverer} class replacing default delivery and
+ * its specific parameters ("retry.Xxx") are ignored. For classes located in same package as Deliverer
+ * interface only class name can be given e.g. instead of
+ * "org.apache.cxf.jaxrs.ext.logging.atom.deliverer.WebClientDeliverer" one can specify 
+ * "WebClientDeliverer".&lt;/li&gt;
+ * &lt;/ul&gt;
+ * Example:
+ * 
+ * &lt;pre&gt;
+ * handlers = org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler, java.util.logging.ConsoleHandler
+ * .level = INFO
+ * 
+ * # deliver to given URL triggering after each batch of 10 log records
+ * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.url = http://localhost:9080
+ * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.batchSize = 10
+ * 
+ * # enable retrying delivery every 10 seconds for 5 minutes
+ * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.retry.pause = linear
+ * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.retry.pause.time = 10
+ * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.retry.timeout = 300
+ * 
+ * # output for AtomPub: push entries not feeds, each entry with one log record as &amp;quot;atom:extension&amp;quot; 
+ * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.output = entry
+ * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.multiplicity = one
+ * org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.format = extension
+ * ...
+ * &lt;/pre&gt;
+ */
+public final class AtomPushHandler extends Handler {
+
+    private AtomPushEngine engine;
+    private boolean lazyConfig;
+
+    /**
+     * Creates handler with configuration taken from properties file.
+     */
+    public AtomPushHandler() {
+        // deferred configuration: configure() called from here would use utilities that attempt to log
+        // and create this handler instance in recursion; configure() will be called on first publish()
+        lazyConfig = true;
+    }
+
+    /**
+     * Creates handler with custom parameters.
+     * 
+     * @param batchSize batch size, see {@link AtomPushEngine#getBatchSize()}
+     * @param converter converter transforming logs into ATOM elements
+     * @param deliverer deliverer pushing ATOM elements to client
+     */
+    public AtomPushHandler(int batchSize, Converter converter, Deliverer deliverer) {
+        engine = new AtomPushEngine();
+        engine.setBatchSize(batchSize);
+        engine.setConverter(converter);
+        engine.setDeliverer(deliverer);
+    }
+
+    /**
+     * Creates handler using (package private).
+     * 
+     * @param engine configured engine.
+     */
+    AtomPushHandler(AtomPushEngine engine) {
+        this.engine = engine;
+    }
+
+    @Override
+    public synchronized void publish(java.util.logging.LogRecord record) {
+        if (LoggingThread.isSilent()) {
+            return;
+        }
+        LoggingThread.markSilent(true);
+        try {
+            if (lazyConfig) {
+                lazyConfig = false;
+                configure();
+            }
+            LogRecord rec = LogRecord.fromJUL(record);
+            engine.publish(rec);
+        } finally {
+            LoggingThread.markSilent(false);
+        }
+    }
+
+    @Override
+    public synchronized void close() throws SecurityException {
+        engine.shutdown();
+    }
+
+    @Override
+    public synchronized void flush() {
+        // no-op
+    }
+
+    /**
+     * Configuration from properties. Aligned to JUL strategy - properties file is only for simple
+     * configuration: it allows configure one root handler with its parameters. What is even more dummy, JUL
+     * does not allow to iterate over configuration properties to make interpretation automated (e.g. using
+     * commons-beanutils)
+     */
+    private void configure() {
+        LogManager manager = LogManager.getLogManager();
+        String cname = getClass().getName();
+        AtomPushEngineConfigurator conf = new AtomPushEngineConfigurator();
+        conf.setUrl(manager.getProperty(cname + ".url"));
+        conf.setDelivererClass(manager.getProperty(cname + ".deliverer"));
+        conf.setConverterClass(manager.getProperty(cname + ".converter"));
+        conf.setBatchSize(manager.getProperty(cname + ".batchSize"));
+        conf.setRetryPause(manager.getProperty(cname + ".retry.pause"));
+        conf.setRetryPauseTime(manager.getProperty(cname + ".retry.pause.time"));
+        conf.setRetryTimeout(manager.getProperty(cname + ".retry.timeout"));
+        conf.setOutput(manager.getProperty(cname + ".output"));
+        conf.setMultiplicity(manager.getProperty(cname + ".multiplicity"));
+        conf.setFormat(manager.getProperty(cname + ".format"));
+        engine = conf.createEngine();
+    }
+}

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushHandler.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushHandler.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/LoggingThread.java
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/LoggingThread.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/LoggingThread.java Thu Dec  3 22:26:58 2009
@@ -1,51 +1,51 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.jaxrs.ext.logging.atom;
-
-/**
- * Helps disable logging from calls of the same thread. Motivation: log handlers in this package causes other
- * threads (from executor) to start logging (by using JAXB that itself uses JUL) which in turn can be caught
- * by the same handler leading to infinite loop.
- * &lt;p&gt;
- * Other approach than using thread local storage would be scanning of stack trace of current thread to see if
- * root of call comes from same package as package of handler - it's less effective so TLS is using here.
- */
-final class LoggingThread {
-
-    private static ThreadLocal&lt;LoggingThread&gt; threadLocal = new ThreadLocal&lt;LoggingThread&gt;() {
-        @Override
-        protected LoggingThread initialValue() {
-            return new LoggingThread();
-        }
-    };
-
-    private boolean isSilent;
-
-    private LoggingThread() {
-    }
-
-    public static void markSilent(boolean silent) {
-        LoggingThread lt = threadLocal.get();
-        lt.isSilent = silent;
-    }
-
-    public static boolean isSilent() {
-        return threadLocal.get().isSilent;
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.jaxrs.ext.logging.atom;
+
+/**
+ * Helps disable logging from calls of the same thread. Motivation: log handlers in this package causes other
+ * threads (from executor) to start logging (by using JAXB that itself uses JUL) which in turn can be caught
+ * by the same handler leading to infinite loop.
+ * &lt;p&gt;
+ * Other approach than using thread local storage would be scanning of stack trace of current thread to see if
+ * root of call comes from same package as package of handler - it's less effective so TLS is using here.
+ */
+final class LoggingThread {
+
+    private static ThreadLocal&lt;LoggingThread&gt; threadLocal = new ThreadLocal&lt;LoggingThread&gt;() {
+        @Override
+        protected LoggingThread initialValue() {
+            return new LoggingThread();
+        }
+    };
+
+    private boolean isSilent;
+
+    private LoggingThread() {
+    }
+
+    public static void markSilent(boolean silent) {
+        LoggingThread lt = threadLocal.get();
+        lt.isSilent = silent;
+    }
+
+    public static boolean isSilent() {
+        return threadLocal.get().isSilent;
+    }
+}

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/LoggingThread.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/LoggingThread.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/Converter.java
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/Converter.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/Converter.java Thu Dec  3 22:26:58 2009
@@ -1,38 +1,38 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.jaxrs.ext.logging.atom.converter;
-
-import java.util.List;
-
-import org.apache.abdera.model.Element;
-import org.apache.cxf.jaxrs.ext.logging.LogRecord;
-
-/**
- * Converts batch of log records into one or more ATOM Elements to deliver.
- */
-public interface Converter {
-
-    /**
-     * Converts given collection.
-     * 
-     * @param records not-null collection of records
-     * @return non-empty collection of ATOM Elements that represent log records
-     */
-    List&lt;? extends Element&gt; convert(List&lt;LogRecord&gt; records);
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.jaxrs.ext.logging.atom.converter;
+
+import java.util.List;
+
+import org.apache.abdera.model.Element;
+import org.apache.cxf.jaxrs.ext.logging.LogRecord;
+
+/**
+ * Converts batch of log records into one or more ATOM Elements to deliver.
+ */
+public interface Converter {
+
+    /**
+     * Converts given collection.
+     * 
+     * @param records not-null collection of records
+     * @return non-empty collection of ATOM Elements that represent log records
+     */
+    List&lt;? extends Element&gt; convert(List&lt;LogRecord&gt; records);
+}

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/Converter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/Converter.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/StandardConverter.java
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/StandardConverter.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/StandardConverter.java Thu Dec  3 22:26:58 2009
@@ -1,315 +1,315 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.jaxrs.ext.logging.atom.converter;
-
-import java.io.StringWriter;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
-import java.util.UUID;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
-import javax.xml.namespace.QName;
-
-import org.apache.abdera.Abdera;
-import org.apache.abdera.factory.Factory;
-import org.apache.abdera.model.Content;
-import org.apache.abdera.model.Element;
-import org.apache.abdera.model.Entry;
-import org.apache.abdera.model.ExtensibleElement;
-import org.apache.abdera.model.Feed;
-import org.apache.commons.lang.Validate;
-import org.apache.cxf.jaxrs.ext.logging.LogRecord;
-import org.apache.cxf.jaxrs.ext.logging.LogRecordsList;
-
-/**
- * Converter producing ATOM Feeds on standalone Entries with LogRecords or LogRecordsLists embedded as content
- * or extension. For configuration details see constructor documentation.
- */
-public final class StandardConverter implements Converter {
-
-    /** Conversion output */
-    public enum Output {
-        FEED,
-        ENTRY
-    }
-
-    /** Quantities of entries in feed or logrecords in entry */
-    public enum Multiplicity {
-        ONE,
-        MANY
-    }
-
-    /** Entity format */
-    public enum Format {
-        CONTENT,
-        EXTENSION
-    }
-
-    /**
-     * Post-processing for feeds/entries properties customization eg setup of dates, titles, author etc.
-     */
-    public interface Postprocessor {
-
-        /** Called after entry creation for given log records. */
-        void afterEntry(Entry entry, List&lt;LogRecord&gt; records);
-
-        /** Called after feed creation; at this stage feed has associated entries. */
-        void afterFeed(Feed feed);
-    }
-
-    private Factory factory;
-    private Marshaller marsh;
-    private DateFormat df;
-    private Converter worker;
-    private Postprocessor postprocessor;
-
-    /**
-     * Creates configured converter with custom feeds/entries post-processor. Regardless of "format",
-     * combination of "output" and "multiplicity" flags can be interpreted as follow:
-     * &lt;ul&gt;
-     * &lt;li&gt;ENTRY ONE - for each log record one entry is produced, converter returns list of entries&lt;/li&gt;
-     * &lt;li&gt;ENTRY MANY - list of log records is packed in one entry, converter return one entry.&lt;/li&gt;
-     * &lt;li&gt;FEED ONE - list of log records is packed in one entry, entry is inserted to feed, converter returns
-     * one feed.&lt;/li&gt;
-     * &lt;li&gt;FEED MANY - for each log record one entry is produced, entries are collected in one feed, converter
-     * returns one feed.&lt;/li&gt;
-     * &lt;/ul&gt;
-     * 
-     * @param output whether root elements if Feed or Entry (e.g. for AtomPub).
-     * @param multiplicity for output==FEED it is multiplicity of entities in feed for output==ENTITY it is
-     *            multiplicity of log records in entity.
-     * @param format log records embedded as entry content or extension.
-     * @param postprocessor custom feeds/entries post-processor.
-     */
-    public StandardConverter(Output output, Multiplicity multiplicity, Format format,
-                             Postprocessor postprocessor) {
-        Validate.notNull(output, "output is null");
-        Validate.notNull(multiplicity, "multiplicity is null");
-        Validate.notNull(format, "format is null");
-        Validate.notNull(postprocessor, "interceptor is null");
-        configure(output, multiplicity, format);
-        this.postprocessor = postprocessor;
-        df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
-        factory = Abdera.getNewFactory();
-        try {
-            marsh = JAXBContext.newInstance(LogRecordsList.class).createMarshaller();
-        } catch (JAXBException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    /**
-     * Creates configured converter with default post-processing of feeds/entries mandatory properties. See
-     * {@link #StandardConverter(Output, Multiplicity, Format, Postprocessor)} for description.
-     */
-    public StandardConverter(Output output, Multiplicity multiplicity, Format format) {
-        this(output, multiplicity, format, new DefaultPostprocessor());
-    }
-
-    public List&lt;? extends Element&gt; convert(List&lt;LogRecord&gt; records) {
-        return worker.convert(records);
-    }
-
-    private void configure(final Output output, final Multiplicity multiplicity, final Format format) {
-        if (output == Output.ENTRY &amp;&amp; multiplicity == Multiplicity.ONE) {
-            worker = new Converter() {
-                public List&lt;? extends Element&gt; convert(List&lt;LogRecord&gt; records) {
-                    // produces many entries, each entry with one log record
-                    List&lt;Element&gt; ret = new ArrayList&lt;Element&gt;();
-                    for (LogRecord record : records) {
-                        Entry e;
-                        if (format == Format.CONTENT) {
-                            e = createEntry(createContent(record));
-                        } else {
-                            e = createEntry(createExtension(record));
-                        }
-                        ret.add(e);
-                        postprocessor.afterEntry(e, Collections.singletonList(record));
-                    }
-                    return ret;
-                }
-            };
-        }
-        if (output == Output.ENTRY &amp;&amp; multiplicity == Multiplicity.MANY) {
-            worker = new Converter() {
-                public List&lt;? extends Element&gt; convert(List&lt;LogRecord&gt; records) {
-                    // produces one entry with list of all log records
-                    Entry e;
-                    if (format == Format.CONTENT) {
-                        e = createEntry(createContent(records));
-                    } else {
-                        e = createEntry(createExtension(records));
-                    }
-                    postprocessor.afterEntry(e, records);
-                    return Arrays.asList(e);
-                }
-            };
-        }
-        if (output == Output.FEED &amp;&amp; multiplicity == Multiplicity.ONE) {
-            worker = new Converter() {
-                public List&lt;? extends Element&gt; convert(List&lt;LogRecord&gt; records) {
-                    // produces one feed with one entry with list of all log records
-                    Entry e;
-                    if (format == Format.CONTENT) {
-                        e = createEntry(createContent(records));
-                    } else {
-                        e = createEntry(createExtension(records));
-                    }
-                    postprocessor.afterEntry(e, records);
-                    Feed f = createFeed(e);
-                    postprocessor.afterFeed(f);
-                    return Arrays.asList(f);
-                }
-            };
-        }
-        if (output == Output.FEED &amp;&amp; multiplicity == Multiplicity.MANY) {
-            worker = new Converter() {
-                public List&lt;? extends Element&gt; convert(List&lt;LogRecord&gt; records) {
-                    // produces one feed with many entries, each entry with one log record
-                    List&lt;Entry&gt; entries = new ArrayList&lt;Entry&gt;();
-                    for (LogRecord record : records) {
-                        Entry e;
-                        if (format == Format.CONTENT) {
-                            e = createEntry(createContent(record));
-                        } else {
-                            e = createEntry(createExtension(record));
-                        }
-                        entries.add(e);
-                        postprocessor.afterEntry(e, Collections.singletonList(record));
-                    }
-                    Feed f = createFeed(entries);
-                    postprocessor.afterFeed(f);
-                    return Arrays.asList(f);
-                }
-            };
-        }
-        if (worker == null) {
-            throw new IllegalArgumentException("Unsupported configuration");
-        }
-    }
-
-    private String createContent(LogRecord record) {
-        StringWriter writer = new StringWriter();
-        try {
-            marsh.marshal(record, writer);
-        } catch (JAXBException e) {
-            throw new RuntimeException(e);
-        }
-        return writer.toString();
-    }
-
-    private String createContent(List&lt;LogRecord&gt; records) {
-        StringWriter writer = new StringWriter();
-        LogRecordsList list = new LogRecordsList();
-        list.setLogRecords(records);
-        try {
-            marsh.marshal(list, writer);
-        } catch (JAXBException e) {
-            throw new RuntimeException(e);
-        }
-        return writer.toString();
-    }
-
-    private ExtensibleElement createExtension(LogRecord record) {
-        ExtensibleElement erec = factory.newExtensionElement(qn("logRecord"));
-        String date = df.format(record.getEventTimestamp());
-        // timezone in date does not have semicolon as XML Date requires
-        // e.g we have "2009-11-23T22:03:53.996+0100"
-        // instead of "2009-11-23T22:03:53.996+01:00"
-        date = date.substring(0, date.length() - 2) + ":" + date.substring(date.length() - 2);
-        // forget about single line "addExtension().setText()" since
-        // javac failure "org.apache.abdera.model.Element cannot be dereferenced"
-        Element e = erec.addExtension(qn("eventTimestamp"));
-        e.setText(date);
-        e = erec.addExtension(qn("level"));
-        e.setText(record.getLevel().toString());
-        e = erec.addExtension(qn("loggerName"));
-        e.setText(record.getLoggerName());
-        e = erec.addExtension(qn("message"));
-        e.setText(record.getMessage());
-        e = erec.addExtension(qn("threadName"));
-        e.setText(record.getThreadName());
-        e = erec.addExtension(qn("throwable"));
-        e.setText(record.getThrowable());
-        return erec;
-    }
-
-    private QName qn(String name) {
-        return new QName("http://cxf.apache.org/jaxrs/log", name, "log");
-    }
-
-    private ExtensibleElement createExtension(List&lt;LogRecord&gt; records) {
-        ExtensibleElement list = factory.newExtensionElement(qn("logRecordsList"));
-        for (LogRecord rec : records) {
-            list.addExtension(createExtension(rec));
-        }
-        return list;
-    }
-
-    private Entry createEntry(String content) {
-        Entry entry = factory.newEntry();
-        entry.setContent(content, Content.Type.XML);
-        return entry;
-    }
-
-    private Entry createEntry(ExtensibleElement ext) {
-        Entry entry = factory.newEntry();
-        entry.addExtension(ext);
-        return entry;
-    }
-
-    private Feed createFeed(Entry entry) {
-        Feed feed = factory.newFeed();
-        feed.addEntry(entry);
-        return feed;
-    }
-
-    private Feed createFeed(List&lt;Entry&gt; entries) {
-        Feed feed = factory.newFeed();
-        for (Entry entry : entries) {
-            feed.addEntry(entry);
-        }
-        return feed;
-    }
-
-    private static class DefaultPostprocessor implements Postprocessor {
-        public void afterEntry(Entry entry, List&lt;LogRecord&gt; records) {
-            // required fields (see RFC 4287)
-            entry.setId("uuid:" + UUID.randomUUID().toString());
-            entry.addAuthor("CXF");
-            entry.setTitle(String.format("Entry with %d log record(s)", records.size()));
-            entry.setUpdated(new Date());
-        }
-
-        public void afterFeed(Feed feed) {
-            // required fields (see RFC 4287)
-            feed.setId("uuid:" + UUID.randomUUID().toString());
-            feed.addAuthor("CXF");
-            feed.setTitle(String.format("Feed with %d entry(ies)", feed.getEntries().size()));
-            feed.setUpdated(new Date());
-        }
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.jaxrs.ext.logging.atom.converter;
+
+import java.io.StringWriter;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+import javax.xml.namespace.QName;
+
+import org.apache.abdera.Abdera;
+import org.apache.abdera.factory.Factory;
+import org.apache.abdera.model.Content;
+import org.apache.abdera.model.Element;
+import org.apache.abdera.model.Entry;
+import org.apache.abdera.model.ExtensibleElement;
+import org.apache.abdera.model.Feed;
+import org.apache.commons.lang.Validate;
+import org.apache.cxf.jaxrs.ext.logging.LogRecord;
+import org.apache.cxf.jaxrs.ext.logging.LogRecordsList;
+
+/**
+ * Converter producing ATOM Feeds on standalone Entries with LogRecords or LogRecordsLists embedded as content
+ * or extension. For configuration details see constructor documentation.
+ */
+public final class StandardConverter implements Converter {
+
+    /** Conversion output */
+    public enum Output {
+        FEED,
+        ENTRY
+    }
+
+    /** Quantities of entries in feed or logrecords in entry */
+    public enum Multiplicity {
+        ONE,
+        MANY
+    }
+
+    /** Entity format */
+    public enum Format {
+        CONTENT,
+        EXTENSION
+    }
+
+    /**
+     * Post-processing for feeds/entries properties customization eg setup of dates, titles, author etc.
+     */
+    public interface Postprocessor {
+
+        /** Called after entry creation for given log records. */
+        void afterEntry(Entry entry, List&lt;LogRecord&gt; records);
+
+        /** Called after feed creation; at this stage feed has associated entries. */
+        void afterFeed(Feed feed);
+    }
+
+    private Factory factory;
+    private Marshaller marsh;
+    private DateFormat df;
+    private Converter worker;
+    private Postprocessor postprocessor;
+
+    /**
+     * Creates configured converter with custom feeds/entries post-processor. Regardless of "format",
+     * combination of "output" and "multiplicity" flags can be interpreted as follow:
+     * &lt;ul&gt;
+     * &lt;li&gt;ENTRY ONE - for each log record one entry is produced, converter returns list of entries&lt;/li&gt;
+     * &lt;li&gt;ENTRY MANY - list of log records is packed in one entry, converter return one entry.&lt;/li&gt;
+     * &lt;li&gt;FEED ONE - list of log records is packed in one entry, entry is inserted to feed, converter returns
+     * one feed.&lt;/li&gt;
+     * &lt;li&gt;FEED MANY - for each log record one entry is produced, entries are collected in one feed, converter
+     * returns one feed.&lt;/li&gt;
+     * &lt;/ul&gt;
+     * 
+     * @param output whether root elements if Feed or Entry (e.g. for AtomPub).
+     * @param multiplicity for output==FEED it is multiplicity of entities in feed for output==ENTITY it is
+     *            multiplicity of log records in entity.
+     * @param format log records embedded as entry content or extension.
+     * @param postprocessor custom feeds/entries post-processor.
+     */
+    public StandardConverter(Output output, Multiplicity multiplicity, Format format,
+                             Postprocessor postprocessor) {
+        Validate.notNull(output, "output is null");
+        Validate.notNull(multiplicity, "multiplicity is null");
+        Validate.notNull(format, "format is null");
+        Validate.notNull(postprocessor, "interceptor is null");
+        configure(output, multiplicity, format);
+        this.postprocessor = postprocessor;
+        df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
+        factory = Abdera.getNewFactory();
+        try {
+            marsh = JAXBContext.newInstance(LogRecordsList.class).createMarshaller();
+        } catch (JAXBException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    /**
+     * Creates configured converter with default post-processing of feeds/entries mandatory properties. See
+     * {@link #StandardConverter(Output, Multiplicity, Format, Postprocessor)} for description.
+     */
+    public StandardConverter(Output output, Multiplicity multiplicity, Format format) {
+        this(output, multiplicity, format, new DefaultPostprocessor());
+    }
+
+    public List&lt;? extends Element&gt; convert(List&lt;LogRecord&gt; records) {
+        return worker.convert(records);
+    }
+
+    private void configure(final Output output, final Multiplicity multiplicity, final Format format) {
+        if (output == Output.ENTRY &amp;&amp; multiplicity == Multiplicity.ONE) {
+            worker = new Converter() {
+                public List&lt;? extends Element&gt; convert(List&lt;LogRecord&gt; records) {
+                    // produces many entries, each entry with one log record
+                    List&lt;Element&gt; ret = new ArrayList&lt;Element&gt;();
+                    for (LogRecord record : records) {
+                        Entry e;
+                        if (format == Format.CONTENT) {
+                            e = createEntry(createContent(record));
+                        } else {
+                            e = createEntry(createExtension(record));
+                        }
+                        ret.add(e);
+                        postprocessor.afterEntry(e, Collections.singletonList(record));
+                    }
+                    return ret;
+                }
+            };
+        }
+        if (output == Output.ENTRY &amp;&amp; multiplicity == Multiplicity.MANY) {
+            worker = new Converter() {
+                public List&lt;? extends Element&gt; convert(List&lt;LogRecord&gt; records) {
+                    // produces one entry with list of all log records
+                    Entry e;
+                    if (format == Format.CONTENT) {
+                        e = createEntry(createContent(records));
+                    } else {
+                        e = createEntry(createExtension(records));
+                    }
+                    postprocessor.afterEntry(e, records);
+                    return Arrays.asList(e);
+                }
+            };
+        }
+        if (output == Output.FEED &amp;&amp; multiplicity == Multiplicity.ONE) {
+            worker = new Converter() {
+                public List&lt;? extends Element&gt; convert(List&lt;LogRecord&gt; records) {
+                    // produces one feed with one entry with list of all log records
+                    Entry e;
+                    if (format == Format.CONTENT) {
+                        e = createEntry(createContent(records));
+                    } else {
+                        e = createEntry(createExtension(records));
+                    }
+                    postprocessor.afterEntry(e, records);
+                    Feed f = createFeed(e);
+                    postprocessor.afterFeed(f);
+                    return Arrays.asList(f);
+                }
+            };
+        }
+        if (output == Output.FEED &amp;&amp; multiplicity == Multiplicity.MANY) {
+            worker = new Converter() {
+                public List&lt;? extends Element&gt; convert(List&lt;LogRecord&gt; records) {
+                    // produces one feed with many entries, each entry with one log record
+                    List&lt;Entry&gt; entries = new ArrayList&lt;Entry&gt;();
+                    for (LogRecord record : records) {
+                        Entry e;
+                        if (format == Format.CONTENT) {
+                            e = createEntry(createContent(record));
+                        } else {
+                            e = createEntry(createExtension(record));
+                        }
+                        entries.add(e);
+                        postprocessor.afterEntry(e, Collections.singletonList(record));
+                    }
+                    Feed f = createFeed(entries);
+                    postprocessor.afterFeed(f);
+                    return Arrays.asList(f);
+                }
+            };
+        }
+        if (worker == null) {
+            throw new IllegalArgumentException("Unsupported configuration");
+        }
+    }
+
+    private String createContent(LogRecord record) {
+        StringWriter writer = new StringWriter();
+        try {
+            marsh.marshal(record, writer);
+        } catch (JAXBException e) {
+            throw new RuntimeException(e);
+        }
+        return writer.toString();
+    }
+
+    private String createContent(List&lt;LogRecord&gt; records) {
+        StringWriter writer = new StringWriter();
+        LogRecordsList list = new LogRecordsList();
+        list.setLogRecords(records);
+        try {
+            marsh.marshal(list, writer);
+        } catch (JAXBException e) {
+            throw new RuntimeException(e);
+        }
+        return writer.toString();
+    }
+
+    private ExtensibleElement createExtension(LogRecord record) {
+        ExtensibleElement erec = factory.newExtensionElement(qn("logRecord"));
+        String date = df.format(record.getEventTimestamp());
+        // timezone in date does not have semicolon as XML Date requires
+        // e.g we have "2009-11-23T22:03:53.996+0100"
+        // instead of "2009-11-23T22:03:53.996+01:00"
+        date = date.substring(0, date.length() - 2) + ":" + date.substring(date.length() - 2);
+        // forget about single line "addExtension().setText()" since
+        // javac failure "org.apache.abdera.model.Element cannot be dereferenced"
+        Element e = erec.addExtension(qn("eventTimestamp"));
+        e.setText(date);
+        e = erec.addExtension(qn("level"));
+        e.setText(record.getLevel().toString());
+        e = erec.addExtension(qn("loggerName"));
+        e.setText(record.getLoggerName());
+        e = erec.addExtension(qn("message"));
+        e.setText(record.getMessage());
+        e = erec.addExtension(qn("threadName"));
+        e.setText(record.getThreadName());
+        e = erec.addExtension(qn("throwable"));
+        e.setText(record.getThrowable());
+        return erec;
+    }
+
+    private QName qn(String name) {
+        return new QName("http://cxf.apache.org/jaxrs/log", name, "log");
+    }
+
+    private ExtensibleElement createExtension(List&lt;LogRecord&gt; records) {
+        ExtensibleElement list = factory.newExtensionElement(qn("logRecordsList"));
+        for (LogRecord rec : records) {
+            list.addExtension(createExtension(rec));
+        }
+        return list;
+    }
+
+    private Entry createEntry(String content) {
+        Entry entry = factory.newEntry();
+        entry.setContent(content, Content.Type.XML);
+        return entry;
+    }
+
+    private Entry createEntry(ExtensibleElement ext) {
+        Entry entry = factory.newEntry();
+        entry.addExtension(ext);
+        return entry;
+    }
+
+    private Feed createFeed(Entry entry) {
+        Feed feed = factory.newFeed();
+        feed.addEntry(entry);
+        return feed;
+    }
+
+    private Feed createFeed(List&lt;Entry&gt; entries) {
+        Feed feed = factory.newFeed();
+        for (Entry entry : entries) {
+            feed.addEntry(entry);
+        }
+        return feed;
+    }
+
+    private static class DefaultPostprocessor implements Postprocessor {
+        public void afterEntry(Entry entry, List&lt;LogRecord&gt; records) {
+            // required fields (see RFC 4287)
+            entry.setId("uuid:" + UUID.randomUUID().toString());
+            entry.addAuthor("CXF");
+            entry.setTitle(String.format("Entry with %d log record(s)", records.size()));
+            entry.setUpdated(new Date());
+        }
+
+        public void afterFeed(Feed feed) {
+            // required fields (see RFC 4287)
+            feed.setId("uuid:" + UUID.randomUUID().toString());
+            feed.addAuthor("CXF");
+            feed.setTitle(String.format("Feed with %d entry(ies)", feed.getEntries().size()));
+            feed.setUpdated(new Date());
+        }
+    }
+}

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/StandardConverter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/StandardConverter.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/Deliverer.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/Deliverer.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/Deliverer.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/Deliverer.java Thu Dec  3 22:26:58 2009
@@ -1,36 +1,36 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.jaxrs.ext.logging.atom.deliverer;
-
-import org.apache.abdera.model.Element;
-
-/**
- * ATOM element deliverer. Represents transport strategy e.g. using
- * {@link org.apache.cxf.jaxrs.client.WebClient}, SOAP reliable messaging etc.
- */
-public interface Deliverer {
-
-    /**
-     * Delivers ATOM element.
-     * 
-     * @param element element to deliver.
-     * @return true if delivery successful, false otherwise.
-     */
-    boolean deliver(Element element) throws InterruptedException;
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.jaxrs.ext.logging.atom.deliverer;
+
+import org.apache.abdera.model.Element;
+
+/**
+ * ATOM element deliverer. Represents transport strategy e.g. using
+ * {@link org.apache.cxf.jaxrs.client.WebClient}, SOAP reliable messaging etc.
+ */
+public interface Deliverer {
+
+    /**
+     * Delivers ATOM element.
+     * 
+     * @param element element to deliver.
+     * @return true if delivery successful, false otherwise.
+     */
+    boolean deliver(Element element) throws InterruptedException;
+}

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/Deliverer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/Deliverer.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/FireAndForgetDeliverer.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/FireAndForgetDeliverer.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/FireAndForgetDeliverer.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/FireAndForgetDeliverer.java Thu Dec  3 22:26:58 2009
@@ -1,41 +1,41 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.jaxrs.ext.logging.atom.deliverer;
-
-import org.apache.abdera.model.Element;
-import org.apache.commons.lang.Validate;
-
-/**
- * Fires delivery of wrapper deliverer and forgets about status always assuming success. Fire-and-forget works
- * only for regular flow, runtime and interrupted exceptions are not handled.
- */
-public final class FireAndForgetDeliverer implements Deliverer {
-
-    private Deliverer deliverer;
-
-    public FireAndForgetDeliverer(Deliverer worker) {
-        Validate.notNull(worker, "worker is null");
-        deliverer = worker;
-    }
-
-    public boolean deliver(Element element) throws InterruptedException {
-        deliverer.deliver(element);
-        return true;
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.jaxrs.ext.logging.atom.deliverer;
+
+import org.apache.abdera.model.Element;
+import org.apache.commons.lang.Validate;
+
+/**
+ * Fires delivery of wrapper deliverer and forgets about status always assuming success. Fire-and-forget works
+ * only for regular flow, runtime and interrupted exceptions are not handled.
+ */
+public final class FireAndForgetDeliverer implements Deliverer {
+
+    private Deliverer deliverer;
+
+    public FireAndForgetDeliverer(Deliverer worker) {
+        Validate.notNull(worker, "worker is null");
+        deliverer = worker;
+    }
+
+    public boolean deliver(Element element) throws InterruptedException {
+        deliverer.deliver(element);
+        return true;
+    }
+}

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/FireAndForgetDeliverer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/FireAndForgetDeliverer.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date




</pre>
</div>
</content>
</entry>
<entry>
<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>
<author><name>dkulp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091203222703.E743823889E7@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091203222703-E743823889E7@eris-apache-org%3e</id>
<updated>2009-12-03T22:27:02Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Modified: cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java
URL: 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
==============================================================================
--- cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java (original)
+++ cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java Thu Dec  3 22:26:58 2009
@@ -1,114 +1,114 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.maven_plugin;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.net.URI;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.logging.Log;
-
-public final class BindingFileHelper {
-    static final String LOCATION_ATTR_NAME = "wsdlLocation";
-    
-    private BindingFileHelper() {
-    }
-
-    static Document readDocument(InputStream is) throws Exception {
-        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
-        DocumentBuilder db = dbf.newDocumentBuilder();
-        Document doc = db.parse(is);
-        doc.getDocumentElement().normalize();
-        return doc;
-    }
-
-    /**
-     * Reads bindingFile from given stream, sets the attribute wsdlLocation on the top element bindings to the
-     * given wsdlLocation and writes the resulting binding file to outBindingFile
-     * 
-     * @param bindingFileStream
-     * @param wsdlLocation
-     * @param outBindingFile
-     * @throws Exception
-     */
-    public static boolean setWsdlLocationAndWrite(InputStream bindingFileStream, URI wsdlLocation,
-                                               File outBindingFile) throws Exception {
-        Document doc = readDocument(bindingFileStream);
-
-        // Find and set wsdlLocation
-        Element bindings = doc.getDocumentElement();
-        String oldLocation = bindings.getAttribute(LOCATION_ATTR_NAME);
-        if (oldLocation != null &amp;&amp; !"".equals(oldLocation)) {
-            return false;
-        }
-        bindings.setAttribute(LOCATION_ATTR_NAME, wsdlLocation.toURL().toExternalForm());
-
-        // Save to outBindingFile
-        TransformerFactory transformerFactory = TransformerFactory.newInstance();
-        Transformer transformer = transformerFactory.newTransformer();
-        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
-        DOMSource source = new DOMSource(doc);
-
-        if (!outBindingFile.exists()) {
-            outBindingFile.getParentFile().mkdirs();
-        }
-        FileOutputStream fos = new FileOutputStream(outBindingFile);
-        StreamResult result = new StreamResult(fos);
-        transformer.transform(source, result);
-        return true;
-    }
-
-    static void setWsdlLocationInBindingsIfNotSet(File baseDir, File outDir, WsdlOption o, Log log) 
-        throws MojoExecutionException {
-        try {
-            String[] bindingFiles = o.getBindingFiles();
-            for (int c = 0; c &lt; bindingFiles.length; c++) {
-                String bindingFilePath = bindingFiles[c];
-                File bindingFile = new File(bindingFilePath);
-                File outFile =  new File(outDir, "" + c + "-" + bindingFile.getName());
-                URI wsdlLocation = o.getWsdlURI(baseDir.toURI());
-                FileInputStream is = new FileInputStream(bindingFile);
-                boolean wasSet = setWsdlLocationAndWrite(is, wsdlLocation, outFile);
-                if (log != null) {
-                    log.info("Checked binding file " + bindingFilePath + " " + wasSet);
-                }
-                if (wasSet) {
-                    bindingFiles[c] = outFile.getAbsolutePath();
-                }
-            }
-        } catch (Exception e) {
-            throw new MojoExecutionException("Error setting wsdlLocation in binding file", e);
-        }
-    }
-
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.maven_plugin;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.net.URI;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.logging.Log;
+
+public final class BindingFileHelper {
+    static final String LOCATION_ATTR_NAME = "wsdlLocation";
+    
+    private BindingFileHelper() {
+    }
+
+    static Document readDocument(InputStream is) throws Exception {
+        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+        DocumentBuilder db = dbf.newDocumentBuilder();
+        Document doc = db.parse(is);
+        doc.getDocumentElement().normalize();
+        return doc;
+    }
+
+    /**
+     * Reads bindingFile from given stream, sets the attribute wsdlLocation on the top element bindings to the
+     * given wsdlLocation and writes the resulting binding file to outBindingFile
+     * 
+     * @param bindingFileStream
+     * @param wsdlLocation
+     * @param outBindingFile
+     * @throws Exception
+     */
+    public static boolean setWsdlLocationAndWrite(InputStream bindingFileStream, URI wsdlLocation,
+                                               File outBindingFile) throws Exception {
+        Document doc = readDocument(bindingFileStream);
+
+        // Find and set wsdlLocation
+        Element bindings = doc.getDocumentElement();
+        String oldLocation = bindings.getAttribute(LOCATION_ATTR_NAME);
+        if (oldLocation != null &amp;&amp; !"".equals(oldLocation)) {
+            return false;
+        }
+        bindings.setAttribute(LOCATION_ATTR_NAME, wsdlLocation.toURL().toExternalForm());
+
+        // Save to outBindingFile
+        TransformerFactory transformerFactory = TransformerFactory.newInstance();
+        Transformer transformer = transformerFactory.newTransformer();
+        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+        DOMSource source = new DOMSource(doc);
+
+        if (!outBindingFile.exists()) {
+            outBindingFile.getParentFile().mkdirs();
+        }
+        FileOutputStream fos = new FileOutputStream(outBindingFile);
+        StreamResult result = new StreamResult(fos);
+        transformer.transform(source, result);
+        return true;
+    }
+
+    static void setWsdlLocationInBindingsIfNotSet(File baseDir, File outDir, WsdlOption o, Log log) 
+        throws MojoExecutionException {
+        try {
+            String[] bindingFiles = o.getBindingFiles();
+            for (int c = 0; c &lt; bindingFiles.length; c++) {
+                String bindingFilePath = bindingFiles[c];
+                File bindingFile = new File(bindingFilePath);
+                File outFile =  new File(outDir, "" + c + "-" + bindingFile.getName());
+                URI wsdlLocation = o.getWsdlURI(baseDir.toURI());
+                FileInputStream is = new FileInputStream(bindingFile);
+                boolean wasSet = setWsdlLocationAndWrite(is, wsdlLocation, outFile);
+                if (log != null) {
+                    log.info("Checked binding file " + bindingFilePath + " " + wasSet);
+                }
+                if (wasSet) {
+                    bindingFiles[c] = outFile.getAbsolutePath();
+                }
+            }
+        } catch (Exception e) {
+            throw new MojoExecutionException("Error setting wsdlLocation in binding file", e);
+        }
+    }
+
+}

Propchange: cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java
URL: 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
==============================================================================
--- cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java (original)
+++ cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java Thu Dec  3 22:26:58 2009
@@ -1,65 +1,65 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.cxf.maven_plugin;
-
-/**
- * Represents a wsdl file that is stored in a maven repository
- */
-public class WsdlArtifact {
-    private String groupId;
-    private String artifactId;
-    private String version;
-    private String type;
-    
-    public WsdlArtifact() {
-        type = "wsdl";
-    }
-    
-    public String getGroupId() {
-        return groupId;
-    }
-    public void setGroupId(String groupId) {
-        this.groupId = groupId;
-    }
-    public String getArtifactId() {
-        return artifactId;
-    }
-    public void setArtifactId(String artifactId) {
-        this.artifactId = artifactId;
-    }
-    public String getVersion() {
-        return version;
-    }
-    public void setVersion(String version) {
-        this.version = version;
-    }
-    public String getType() {
-        return type;
-    }
-    public void setType(String type) {
-        this.type = type;
-    }
-    
-    public boolean doesMatch(WsdlArtifact artifact) {
-        return type.equals(artifact.getType()) &amp;&amp; groupId.equals(artifact.getGroupId())
-              &amp;&amp; artifactId.equals(artifact.getArtifactId()) 
-              &amp;&amp; (version == null || version.equals(artifact.getVersion()));
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cxf.maven_plugin;
+
+/**
+ * Represents a wsdl file that is stored in a maven repository
+ */
+public class WsdlArtifact {
+    private String groupId;
+    private String artifactId;
+    private String version;
+    private String type;
+    
+    public WsdlArtifact() {
+        type = "wsdl";
+    }
+    
+    public String getGroupId() {
+        return groupId;
+    }
+    public void setGroupId(String groupId) {
+        this.groupId = groupId;
+    }
+    public String getArtifactId() {
+        return artifactId;
+    }
+    public void setArtifactId(String artifactId) {
+        this.artifactId = artifactId;
+    }
+    public String getVersion() {
+        return version;
+    }
+    public void setVersion(String version) {
+        this.version = version;
+    }
+    public String getType() {
+        return type;
+    }
+    public void setType(String type) {
+        this.type = type;
+    }
+    
+    public boolean doesMatch(WsdlArtifact artifact) {
+        return type.equals(artifact.getType()) &amp;&amp; groupId.equals(artifact.getGroupId())
+              &amp;&amp; artifactId.equals(artifact.getArtifactId()) 
+              &amp;&amp; (version == null || version.equals(artifact.getVersion()));
+    }
+}

Propchange: cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java
URL: 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
==============================================================================
--- cxf/trunk/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java (original)
+++ cxf/trunk/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java Thu Dec  3 22:26:58 2009
@@ -1,81 +1,81 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.maven_plugin;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.net.URI;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.apache.maven.plugin.MojoExecutionException;
-
-public class BindingFileHelperTest extends TestCase {
-    private static final File OUTFILE = new File("target/test-data/testbinding.xml");
-    private static final String TEST_WSDL_URL = "http://testwsdl";
-
-    public void testBindingWithWsdlLocation() throws Exception {
-        try {
-            OUTFILE.delete();
-        } catch (Exception e) {
-            // Do not fail if delete fails
-        }
-        InputStream is = this.getClass().getResourceAsStream("/bindingWithWsdlLocation.xml");
-        boolean wasSet = BindingFileHelper.setWsdlLocationAndWrite(is, new URI(TEST_WSDL_URL), OUTFILE);
-        Assert.assertFalse("This binding file should not be changed", wasSet);
-        Assert.assertFalse(OUTFILE.exists());
-    }
-
-    public void testBindingWithoutWsdlLocation() throws Exception {
-        try {
-            OUTFILE.delete();
-        } catch (Exception e) {
-            // Do not fail if delete fails
-        }
-        InputStream is = this.getClass().getResourceAsStream("/bindingWithoutWsdlLocation.xml");
-        BindingFileHelper.setWsdlLocationAndWrite(is, new URI(TEST_WSDL_URL), OUTFILE);
-
-        Document doc = BindingFileHelper.readDocument(new FileInputStream(OUTFILE));
-        Element bindings = doc.getDocumentElement();
-        String location = bindings.getAttribute(BindingFileHelper.LOCATION_ATTR_NAME);
-        Assert.assertEquals(TEST_WSDL_URL, location);
-    }
-
-    public void testSetBindingForWsdlOption() throws MojoExecutionException {
-        WsdlOption o = new WsdlOption();
-        o.setWsdl("test.wsdl");
-        File baseDir = new File(".");
-        File tempDir = new File(baseDir, "target" + File.separator + "tempbindings");
-        File bindingFile = new File(baseDir, "src/test/resources/bindingWithoutWsdlLocation.xml");
-        o.setBindingFiles(new String[] {
-            bindingFile.getAbsolutePath()
-        });
-
-        BindingFileHelper.setWsdlLocationInBindingsIfNotSet(baseDir, tempDir, o, null);
-        String bindingFilePath = o.getBindingFiles()[0];
-        File expectedBindingFile = new File(tempDir, "0-bindingWithoutWsdlLocation.xml");
-        Assert.assertEquals("Binding file should be the temp file", expectedBindingFile.getAbsolutePath(),
-                            bindingFilePath);
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.maven_plugin;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.net.URI;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.apache.maven.plugin.MojoExecutionException;
+
+public class BindingFileHelperTest extends TestCase {
+    private static final File OUTFILE = new File("target/test-data/testbinding.xml");
+    private static final String TEST_WSDL_URL = "http://testwsdl";
+
+    public void testBindingWithWsdlLocation() throws Exception {
+        try {
+            OUTFILE.delete();
+        } catch (Exception e) {
+            // Do not fail if delete fails
+        }
+        InputStream is = this.getClass().getResourceAsStream("/bindingWithWsdlLocation.xml");
+        boolean wasSet = BindingFileHelper.setWsdlLocationAndWrite(is, new URI(TEST_WSDL_URL), OUTFILE);
+        Assert.assertFalse("This binding file should not be changed", wasSet);
+        Assert.assertFalse(OUTFILE.exists());
+    }
+
+    public void testBindingWithoutWsdlLocation() throws Exception {
+        try {
+            OUTFILE.delete();
+        } catch (Exception e) {
+            // Do not fail if delete fails
+        }
+        InputStream is = this.getClass().getResourceAsStream("/bindingWithoutWsdlLocation.xml");
+        BindingFileHelper.setWsdlLocationAndWrite(is, new URI(TEST_WSDL_URL), OUTFILE);
+
+        Document doc = BindingFileHelper.readDocument(new FileInputStream(OUTFILE));
+        Element bindings = doc.getDocumentElement();
+        String location = bindings.getAttribute(BindingFileHelper.LOCATION_ATTR_NAME);
+        Assert.assertEquals(TEST_WSDL_URL, location);
+    }
+
+    public void testSetBindingForWsdlOption() throws MojoExecutionException {
+        WsdlOption o = new WsdlOption();
+        o.setWsdl("test.wsdl");
+        File baseDir = new File(".");
+        File tempDir = new File(baseDir, "target" + File.separator + "tempbindings");
+        File bindingFile = new File(baseDir, "src/test/resources/bindingWithoutWsdlLocation.xml");
+        o.setBindingFiles(new String[] {
+            bindingFile.getAbsolutePath()
+        });
+
+        BindingFileHelper.setWsdlLocationInBindingsIfNotSet(baseDir, tempDir, o, null);
+        String bindingFilePath = o.getBindingFiles()[0];
+        File expectedBindingFile = new File(tempDir, "0-bindingWithoutWsdlLocation.xml");
+        Assert.assertEquals("Binding file should be the temp file", expectedBindingFile.getAbsolutePath(),
+                            bindingFilePath);
+    }
+}

Propchange: cxf/trunk/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/maven-plugins/codegen-plugin/src/test/resources/bindingWithWsdlLocation.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/maven-plugins/codegen-plugin/src/test/resources/bindingWithWsdlLocation.xml
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Thu Dec  3 22:26:58 2009
@@ -1 +1 @@
-text/plain
+text/xml

Propchange: cxf/trunk/maven-plugins/codegen-plugin/src/test/resources/bindingWithoutWsdlLocation.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/maven-plugins/codegen-plugin/src/test/resources/bindingWithoutWsdlLocation.xml
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Thu Dec  3 22:26:58 2009
@@ -1 +1 @@
-text/plain
+text/xml

Propchange: cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/ParameterizedTypeFactory.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/SimpleParameterizedType.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/inheritance/ws1/WS1.aegis.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Propchange: cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/jaxws/AegisJaxwsGetTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogLevel.java
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogLevel.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogLevel.java Thu Dec  3 22:26:58 2009
@@ -1,89 +1,89 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.jaxrs.ext.logging;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.logging.Level;
-
-import javax.xml.bind.annotation.XmlEnum;
-import javax.xml.bind.annotation.XmlTransient;
-
-/**
- * Log level of {@link LogRecord}. Based on SLF4J being popular facade for loggers like JUL, Log4J, JCL and so
- * on. Severities order is: FATAL &gt; ERROR &gt; WARN &gt; INFO &gt; DEBUG &gt; TRACE.
- * &lt;p&gt;
- * Mapping of levels:
- * &lt;ol&gt;
- * &lt;li&gt;JUL - same as &lt;a href="http://www.slf4j.org/apidocs/org/slf4j/bridge/SLF4JBridgeHandler.html"&gt;SLF4J
- * approach&lt;/a&gt;.&lt;/li&gt;
- * &lt;li&gt;Log4J - levels are identical&lt;/li&gt;
- * &lt;/ol&gt;
- */
-@XmlEnum
-public enum LogLevel {
-    ALL,
-    FATAL,
-    ERROR,
-    WARN,
-    INFO,
-    DEBUG,
-    TRACE,
-    OFF;
-
-    @XmlTransient
-    private static Map&lt;Level, LogLevel&gt; fromJul = new HashMap&lt;Level, LogLevel&gt;();
-
-    @XmlTransient
-    private static Map&lt;LogLevel, Level&gt; toJul = new HashMap&lt;LogLevel, Level&gt;();
-
-    static {        
-        fromJul.put(Level.ALL, LogLevel.ALL);
-        fromJul.put(Level.SEVERE, LogLevel.ERROR);
-        fromJul.put(Level.WARNING, LogLevel.WARN);
-        fromJul.put(Level.INFO, LogLevel.INFO);
-        fromJul.put(Level.FINE, LogLevel.DEBUG);
-        fromJul.put(Level.FINER, LogLevel.DEBUG);
-        fromJul.put(Level.FINEST, LogLevel.TRACE);
-        fromJul.put(Level.OFF, LogLevel.OFF);
-
-        toJul.put(LogLevel.ALL, Level.ALL);
-        toJul.put(LogLevel.FATAL, Level.SEVERE);
-        toJul.put(LogLevel.ERROR, Level.SEVERE);
-        toJul.put(LogLevel.WARN, Level.WARNING);
-        toJul.put(LogLevel.INFO, Level.INFO);
-        toJul.put(LogLevel.DEBUG, Level.FINE);
-        toJul.put(LogLevel.TRACE, Level.FINEST);
-        toJul.put(LogLevel.OFF, Level.OFF);
-    }
-
-    /**
-     * Creates this enum from JUL {@link Level}.
-     */
-    public static LogLevel fromJUL(Level level) {
-        return fromJul.get(level);
-    }
-
-    /**
-     * Creates this JUL {@link Level} from this enum.
-     */
-    public static Level toJUL(LogLevel level) {
-        return toJul.get(level);
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.jaxrs.ext.logging;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.logging.Level;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlTransient;
+
+/**
+ * Log level of {@link LogRecord}. Based on SLF4J being popular facade for loggers like JUL, Log4J, JCL and so
+ * on. Severities order is: FATAL &gt; ERROR &gt; WARN &gt; INFO &gt; DEBUG &gt; TRACE.
+ * &lt;p&gt;
+ * Mapping of levels:
+ * &lt;ol&gt;
+ * &lt;li&gt;JUL - same as &lt;a href="http://www.slf4j.org/apidocs/org/slf4j/bridge/SLF4JBridgeHandler.html"&gt;SLF4J
+ * approach&lt;/a&gt;.&lt;/li&gt;
+ * &lt;li&gt;Log4J - levels are identical&lt;/li&gt;
+ * &lt;/ol&gt;
+ */
+@XmlEnum
+public enum LogLevel {
+    ALL,
+    FATAL,
+    ERROR,
+    WARN,
+    INFO,
+    DEBUG,
+    TRACE,
+    OFF;
+
+    @XmlTransient
+    private static Map&lt;Level, LogLevel&gt; fromJul = new HashMap&lt;Level, LogLevel&gt;();
+
+    @XmlTransient
+    private static Map&lt;LogLevel, Level&gt; toJul = new HashMap&lt;LogLevel, Level&gt;();
+
+    static {        
+        fromJul.put(Level.ALL, LogLevel.ALL);
+        fromJul.put(Level.SEVERE, LogLevel.ERROR);
+        fromJul.put(Level.WARNING, LogLevel.WARN);
+        fromJul.put(Level.INFO, LogLevel.INFO);
+        fromJul.put(Level.FINE, LogLevel.DEBUG);
+        fromJul.put(Level.FINER, LogLevel.DEBUG);
+        fromJul.put(Level.FINEST, LogLevel.TRACE);
+        fromJul.put(Level.OFF, LogLevel.OFF);
+
+        toJul.put(LogLevel.ALL, Level.ALL);
+        toJul.put(LogLevel.FATAL, Level.SEVERE);
+        toJul.put(LogLevel.ERROR, Level.SEVERE);
+        toJul.put(LogLevel.WARN, Level.WARNING);
+        toJul.put(LogLevel.INFO, Level.INFO);
+        toJul.put(LogLevel.DEBUG, Level.FINE);
+        toJul.put(LogLevel.TRACE, Level.FINEST);
+        toJul.put(LogLevel.OFF, Level.OFF);
+    }
+
+    /**
+     * Creates this enum from JUL {@link Level}.
+     */
+    public static LogLevel fromJUL(Level level) {
+        return fromJul.get(level);
+    }
+
+    /**
+     * Creates this JUL {@link Level} from this enum.
+     */
+    public static Level toJUL(LogLevel level) {
+        return toJul.get(level);
+    }
+}

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogLevel.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogLevel.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecord.java
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecord.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecord.java Thu Dec  3 22:26:58 2009
@@ -1,167 +1,167 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.jaxrs.ext.logging;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.text.MessageFormat;
-import java.util.Date;
-
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-
-import org.apache.commons.lang.Validate;
-import org.apache.commons.lang.builder.EqualsBuilder;
-import org.apache.commons.lang.builder.HashCodeBuilder;
-import org.apache.commons.lang.builder.ToStringBuilder;
-import org.apache.commons.lang.builder.ToStringStyle;
-
-/**
- * Log entry serializable to XML. Based on common set of {@link java.util.logging.LogRecord} and
- * {@link org.apache.log4j.spi.LoggingEvent} attributes.
- * &lt;p&gt;
- * LogRecord are never null; if some attributes are not set (e.g. logger name, or rendered cause taken from
- * Throwable) empty strings are returned.
- */
-@XmlRootElement(namespace = "http://cxf.apache.org/jaxrs/log")
-public class LogRecord {
-
-    private Date eventTimestamp = new Date();
-    private LogLevel level = LogLevel.INFO;
-    private String message = "";
-    private String loggerName = "";
-    private String threadName = "";
-    private String throwable = "";
-
-    /**
-     * Creates this object from JUL LogRecord. Most attributes are copied, others are converted as follows:
-     * raw {@link java.util.logging.LogRecord#getMessage() message} is formatted with
-     * {@link java.util.logging.LogRecord#getParameters() parameters} using {@link MessageFormat}, attached
-     * {@link java.util.logging.LogRecord#getThrown() throwable} has full stack trace dumped, and log levels
-     * are mapped as specified in {@link LogRecord}.
-     * 
-     * @param julRecord log record to convert.
-     * @return conversion result.
-     */
-    public static LogRecord fromJUL(java.util.logging.LogRecord julRecord) {
-        Validate.notNull(julRecord, "julRecord is null");
-        LogRecord record = new LogRecord();
-        record.setEventTimestamp(new Date(julRecord.getMillis()));
-        record.setLevel(LogLevel.fromJUL(julRecord.getLevel()));
-        record.setLoggerName(julRecord.getLoggerName());
-        if (julRecord.getThrown() != null) {
-            record.setThrowable(julRecord.getThrown());
-        }
-        if (julRecord.getParameters() != null) {
-            record.setMessage(MessageFormat.format(julRecord.getMessage(), julRecord.getParameters()));
-        } else {
-            record.setMessage(julRecord.getMessage());
-        }
-        record.setThreadName(Integer.toString(julRecord.getThreadID()));
-        return record;
-    }
-
-    @XmlElement(namespace = "http://cxf.apache.org/jaxrs/log")
-    public Date getEventTimestamp() {
-        return eventTimestamp;
-    }
-
-    public void setEventTimestamp(Date eventTimestamp) {
-        Validate.notNull(eventTimestamp, "eventTimestamp is null");
-        this.eventTimestamp = eventTimestamp;
-    }
-
-    @XmlElement(namespace = "http://cxf.apache.org/jaxrs/log")
-    public LogLevel getLevel() {
-        return level;
-    }
-
-    public void setLevel(LogLevel level) {
-        Validate.notNull(level, "level is null");
-        this.level = level;
-    }
-
-    /**
-     * Formatted message with parameters filled in.
-     */
-    @XmlElement(namespace = "http://cxf.apache.org/jaxrs/log")
-    public String getMessage() {
-        return message;
-    }
-
-    public void setMessage(String renderedMessage) {
-        Validate.notNull(level, "message is null");
-        this.message = renderedMessage;
-    }
-
-    @XmlElement(namespace = "http://cxf.apache.org/jaxrs/log")
-    public String getLoggerName() {
-        return loggerName;
-    }
-
-    public void setLoggerName(String loggerName) {
-        Validate.notNull(level, "loggerName is null");
-        this.loggerName = loggerName;
-    }
-
-    @XmlElement(namespace = "http://cxf.apache.org/jaxrs/log")
-    public String getThreadName() {
-        return threadName;
-    }
-
-    public void setThreadName(String threadName) {
-        Validate.notNull(level, "threadName is null");
-        this.threadName = threadName;
-    }
-
-    /**
-     * Full stack trace of {@link Throwable} associated with log record.
-     */
-    @XmlElement(namespace = "http://cxf.apache.org/jaxrs/log")
-    public String getThrowable() {
-        return throwable;
-    }
-
-    public void setThrowable(String throwable) {
-        Validate.notNull(throwable, "throwable is null");
-        this.throwable = throwable;
-    }
-
-    public void setThrowable(Throwable thr) {
-        Validate.notNull(thr, "throwable is null");
-        StringWriter sw = new StringWriter();
-        thr.printStackTrace(new PrintWriter(sw));
-        this.throwable = sw.getBuffer().toString();
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        return EqualsBuilder.reflectionEquals(obj, this);
-    }
-
-    @Override
-    public int hashCode() {
-        return HashCodeBuilder.reflectionHashCode(this);
-    }
-
-    @Override
-    public String toString() {
-        return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.jaxrs.ext.logging;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.text.MessageFormat;
+import java.util.Date;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.commons.lang.Validate;
+import org.apache.commons.lang.builder.EqualsBuilder;
+import org.apache.commons.lang.builder.HashCodeBuilder;
+import org.apache.commons.lang.builder.ToStringBuilder;
+import org.apache.commons.lang.builder.ToStringStyle;
+
+/**
+ * Log entry serializable to XML. Based on common set of {@link java.util.logging.LogRecord} and
+ * {@link org.apache.log4j.spi.LoggingEvent} attributes.
+ * &lt;p&gt;
+ * LogRecord are never null; if some attributes are not set (e.g. logger name, or rendered cause taken from
+ * Throwable) empty strings are returned.
+ */
+@XmlRootElement(namespace = "http://cxf.apache.org/jaxrs/log")
+public class LogRecord {
+
+    private Date eventTimestamp = new Date();
+    private LogLevel level = LogLevel.INFO;
+    private String message = "";
+    private String loggerName = "";
+    private String threadName = "";
+    private String throwable = "";
+
+    /**
+     * Creates this object from JUL LogRecord. Most attributes are copied, others are converted as follows:
+     * raw {@link java.util.logging.LogRecord#getMessage() message} is formatted with
+     * {@link java.util.logging.LogRecord#getParameters() parameters} using {@link MessageFormat}, attached
+     * {@link java.util.logging.LogRecord#getThrown() throwable} has full stack trace dumped, and log levels
+     * are mapped as specified in {@link LogRecord}.
+     * 
+     * @param julRecord log record to convert.
+     * @return conversion result.
+     */
+    public static LogRecord fromJUL(java.util.logging.LogRecord julRecord) {
+        Validate.notNull(julRecord, "julRecord is null");
+        LogRecord record = new LogRecord();
+        record.setEventTimestamp(new Date(julRecord.getMillis()));
+        record.setLevel(LogLevel.fromJUL(julRecord.getLevel()));
+        record.setLoggerName(julRecord.getLoggerName());
+        if (julRecord.getThrown() != null) {
+            record.setThrowable(julRecord.getThrown());
+        }
+        if (julRecord.getParameters() != null) {
+            record.setMessage(MessageFormat.format(julRecord.getMessage(), julRecord.getParameters()));
+        } else {
+            record.setMessage(julRecord.getMessage());
+        }
+        record.setThreadName(Integer.toString(julRecord.getThreadID()));
+        return record;
+    }
+
+    @XmlElement(namespace = "http://cxf.apache.org/jaxrs/log")
+    public Date getEventTimestamp() {
+        return eventTimestamp;
+    }
+
+    public void setEventTimestamp(Date eventTimestamp) {
+        Validate.notNull(eventTimestamp, "eventTimestamp is null");
+        this.eventTimestamp = eventTimestamp;
+    }
+
+    @XmlElement(namespace = "http://cxf.apache.org/jaxrs/log")
+    public LogLevel getLevel() {
+        return level;
+    }
+
+    public void setLevel(LogLevel level) {
+        Validate.notNull(level, "level is null");
+        this.level = level;
+    }
+
+    /**
+     * Formatted message with parameters filled in.
+     */
+    @XmlElement(namespace = "http://cxf.apache.org/jaxrs/log")
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String renderedMessage) {
+        Validate.notNull(level, "message is null");
+        this.message = renderedMessage;
+    }
+
+    @XmlElement(namespace = "http://cxf.apache.org/jaxrs/log")
+    public String getLoggerName() {
+        return loggerName;
+    }
+
+    public void setLoggerName(String loggerName) {
+        Validate.notNull(level, "loggerName is null");
+        this.loggerName = loggerName;
+    }
+
+    @XmlElement(namespace = "http://cxf.apache.org/jaxrs/log")
+    public String getThreadName() {
+        return threadName;
+    }
+
+    public void setThreadName(String threadName) {
+        Validate.notNull(level, "threadName is null");
+        this.threadName = threadName;
+    }
+
+    /**
+     * Full stack trace of {@link Throwable} associated with log record.
+     */
+    @XmlElement(namespace = "http://cxf.apache.org/jaxrs/log")
+    public String getThrowable() {
+        return throwable;
+    }
+
+    public void setThrowable(String throwable) {
+        Validate.notNull(throwable, "throwable is null");
+        this.throwable = throwable;
+    }
+
+    public void setThrowable(Throwable thr) {
+        Validate.notNull(thr, "throwable is null");
+        StringWriter sw = new StringWriter();
+        thr.printStackTrace(new PrintWriter(sw));
+        this.throwable = sw.getBuffer().toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        return EqualsBuilder.reflectionEquals(obj, this);
+    }
+
+    @Override
+    public int hashCode() {
+        return HashCodeBuilder.reflectionHashCode(this);
+    }
+
+    @Override
+    public String toString() {
+        return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
+    }
+}

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecord.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecord.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecordsList.java
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecordsList.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecordsList.java Thu Dec  3 22:26:58 2009
@@ -1,65 +1,65 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.jaxrs.ext.logging;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-
-import org.apache.commons.lang.Validate;
-import org.apache.commons.lang.builder.EqualsBuilder;
-import org.apache.commons.lang.builder.HashCodeBuilder;
-import org.apache.commons.lang.builder.ToStringBuilder;
-import org.apache.commons.lang.builder.ToStringStyle;
-
-/**
- * List of {@link LogRecord}s. Necessary wrapper for {@link List} used in JAXB context.
- */
-@XmlRootElement(namespace = "http://cxf.apache.org/jaxrs/log")
-public class LogRecordsList {
-
-    private List&lt;LogRecord&gt; logRecords = new ArrayList&lt;LogRecord&gt;();
-
-    @XmlElement(name = "logRecord", namespace = "http://cxf.apache.org/jaxrs/log")
-    public List&lt;LogRecord&gt; getLogRecords() {
-        return logRecords;
-    }
-
-    public void setLogRecords(List&lt;LogRecord&gt; logRecords) {
-        Validate.notNull(logRecords, "logRecords is null");
-        this.logRecords = logRecords;
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        return EqualsBuilder.reflectionEquals(obj, this);
-    }
-
-    @Override
-    public int hashCode() {
-        return HashCodeBuilder.reflectionHashCode(this);
-    }
-
-    @Override
-    public String toString() {
-        return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.jaxrs.ext.logging;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.commons.lang.Validate;
+import org.apache.commons.lang.builder.EqualsBuilder;
+import org.apache.commons.lang.builder.HashCodeBuilder;
+import org.apache.commons.lang.builder.ToStringBuilder;
+import org.apache.commons.lang.builder.ToStringStyle;
+
+/**
+ * List of {@link LogRecord}s. Necessary wrapper for {@link List} used in JAXB context.
+ */
+@XmlRootElement(namespace = "http://cxf.apache.org/jaxrs/log")
+public class LogRecordsList {
+
+    private List&lt;LogRecord&gt; logRecords = new ArrayList&lt;LogRecord&gt;();
+
+    @XmlElement(name = "logRecord", namespace = "http://cxf.apache.org/jaxrs/log")
+    public List&lt;LogRecord&gt; getLogRecords() {
+        return logRecords;
+    }
+
+    public void setLogRecords(List&lt;LogRecord&gt; logRecords) {
+        Validate.notNull(logRecords, "logRecords is null");
+        this.logRecords = logRecords;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        return EqualsBuilder.reflectionEquals(obj, this);
+    }
+
+    @Override
+    public int hashCode() {
+        return HashCodeBuilder.reflectionHashCode(this);
+    }
+
+    @Override
+    public String toString() {
+        return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
+    }
+}

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecordsList.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecordsList.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushBean.java
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushBean.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushBean.java Thu Dec  3 22:26:58 2009
@@ -1,308 +1,308 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.jaxrs.ext.logging.atom;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
-import java.util.logging.Handler;
-import java.util.logging.Logger;
-
-import org.apache.commons.lang.Validate;
-import org.apache.cxf.common.logging.LogUtils;
-import org.apache.cxf.jaxrs.ext.logging.LogLevel;
-import org.apache.cxf.jaxrs.ext.logging.atom.converter.Converter;
-import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.Deliverer;
-
-/**
- * Bean used to configure {@link AtomPushHandler JUL handler} with Spring instead of properties file. See
- * {@link AtomPushHandler} class for detailed description of parameters. Next to configuration of handler,
- * Spring bean offers simple configuration of associated loggers that share ATOM push-style handler.
- * &lt;p&gt;
- * General rules:
- * &lt;ul&gt;
- * &lt;li&gt;When {@link #setDeliverer(Deliverer) deliverer} property is not set explicitly, URL must be set to
- * create default deliverer.&lt;/li&gt;
- * &lt;li&gt;When {@link #setConverter(Converter) converter} property is not set explicitly, default converter is
- * created.&lt;/li&gt;
- * &lt;li&gt;When {@link #setLoggers(String) loggers} property is used, it overrides pair of
- * {@link #setLogger(String) logger} and {@link #setLevel(String) level} properties; and vice versa.&lt;/li&gt;
- * &lt;li&gt;When logger is not set, handler is attached to root logger (named ""); when level is not set for
- * logger, default "INFO" level is used.&lt;/li&gt;
- * &lt;li&gt;When {@link #setBatchSize(String) batchSize} property is not set or set to wrong value, default batch
- * size of "1" is used.&lt;/li&gt;
- * &lt;li&gt;When deliverer property is NOT set, use of "retryXxx" properties causes creation of retrying default
- * deliverer.&lt;/li&gt;
- * &lt;/ul&gt;
- * Examples:
- * &lt;p&gt;
- * ATOM push handler with registered with root logger for all levels or log events, pushing one feed per event
- * to specified URL, using default delivery and conversion methods:
- * 
- * &lt;pre&gt;
- *   &amp;lt;bean class=&amp;quot;org.apache.cxf.jaxrs.ext.logging.atom.AtomPushBean&amp;quot; 
- *     init-method=&amp;quot;init&amp;quot;&amp;gt;
- *       &amp;lt;property name=&amp;quot;url&amp;quot; value=&amp;quot;http://localhost:9080/feed&amp;quot;/&amp;gt;
- *       &amp;lt;property name=&amp;quot;level&amp;quot; value=&amp;quot;ALL&amp;quot; /&amp;gt;
- *   &amp;lt;/bean&amp;gt;
- * &lt;/pre&gt;
- * 
- * ATOM push handler registered with multiple loggers and listening for different levels (see
- * {@link #setLoggers(String) loggers} property description for syntax details). Custom deliverer will take
- * care of feeds, each of which carries batch of 10 log events:
- * 
- * &lt;pre&gt;
- *   &amp;lt;bean id=&amp;quot;soapDeliverer&amp;quot; ...
- *   ...
- *   &amp;lt;bean class=&amp;quot;org.apache.cxf.jaxrs.ext.logging.atom.AtomPushBean&amp;quot; 
- *     init-method=&amp;quot;init&amp;quot;&amp;gt;
- *       &amp;lt;property name=&amp;quot;deliverer&amp;quot;&amp;gt;
- *           &amp;lt;ref bean=&amp;quot;soapDeliverer&amp;quot;/&amp;gt;
- *       &amp;lt;/property&amp;gt;
- *       &amp;lt;property name=&amp;quot;loggers&amp;quot; value=&amp;quot;
- *           org.apache.cxf:DEBUG,
- *           org.apache.cxf.jaxrs,
- *           org.apache.cxf.bus:ERROR&amp;quot; /&amp;gt;
- *       &amp;lt;property name=&amp;quot;batchSize&amp;quot; value=&amp;quot;10&amp;quot; /&amp;gt;
- *   &amp;lt;/bean&amp;gt;
- * &lt;/pre&gt;
- */
-public final class AtomPushBean {
-
-    private AtomPushEngineConfigurator conf = new AtomPushEngineConfigurator();
-    private List&lt;LoggerLevel&gt; loggers = new ArrayList&lt;LoggerLevel&gt;();
-    private boolean initialized;
-
-    /**
-     * Creates unconfigured and uninitialized bean. To configure setters must be used, then {@link #init()}
-     * must be called.
-     */
-    public AtomPushBean() {
-        initSingleLogger();
-    }
-
-    private void initSingleLogger() {
-        loggers = new ArrayList&lt;LoggerLevel&gt;();
-        loggers.add(new LoggerLevel("", "INFO"));
-    }
-
-    /**
-     * Set URL used when custom deliverer is not set (default deliverer is being created).
-     */
-    public void setUrl(String url) {
-        checkInit();
-        Validate.notNull(url, "url is null");
-        conf.setUrl(url);
-    }
-
-    /**
-     * Set initialized deliverer.
-     */
-    public void setDeliverer(Deliverer deliverer) {
-        checkInit();
-        Validate.notNull(deliverer, "deliverer is null");
-        conf.setDeliverer(deliverer);
-    }
-
-    /**
-     * Set initialized converter.
-     */
-    public void setConverter(Converter converter) {
-        checkInit();
-        Validate.notNull(converter, "converter is null");
-        conf.setConverter(converter);
-    }
-
-    /**
-     * Set one or more loggers and levels descriptor. &lt;br&gt;
-     * Parsed input syntax is:
-     * 
-     * &lt;pre&gt;
-     * loggers   := &amp;lt;logger&amp;gt;(&amp;lt;separator&amp;gt;&amp;lt;logger&amp;gt;)*
-     * logger    := &amp;lt;name&amp;gt;[&amp;quot;:&amp;quot;&amp;lt;level&amp;gt;]
-     * separator := &amp;quot;,&amp;quot; | &amp;quot; &amp;quot; | &amp;quot;\n&amp;quot;
-     * &lt;/pre&gt;
-     * 
-     * Examples:
-     * &lt;p&gt;
-     * Two loggers and two levels: &lt;br&gt;
-     * &lt;tt&gt;org.apache.cxf:INFO, org.apache.cxf.jaxrs:DEBUG&lt;/tt&gt;
-     * &lt;p&gt;
-     * Three loggers, first with default "INFO" level: &lt;br&gt;
-     * &lt;tt&gt;org.apache.cxf, org.apache.cxf.jaxrs:DEBUG, namedLogger:ERROR&lt;/tt&gt;&lt;br&gt;
-     * &lt;p&gt;
-     * One logger with default "INFO" level: &lt;br&gt;
-     * &lt;tt&gt;org.apache.cxf&lt;/tt&gt;&lt;br&gt;
-     */
-    public void setLoggers(String loggers) {
-        checkInit();
-        Validate.notNull(loggers, "loggers is null");
-        parseLoggers(loggers);
-    }
-
-    /**
-     * Name of logger to associate with ATOM push handler; empty string for root logger.
-     */
-    public void setLogger(String logger) {
-        checkInit();
-        Validate.notNull(logger, "logger is null");
-        if (loggers.size() != 1) {
-            initSingleLogger();
-        }
-        loggers.get(0).setLogger(logger);
-    }
-
-    /**
-     * Name of level that logger will use publishing log events to ATOM push handler; empty string for default
-     * "INFO" level.
-     */
-    public void setLevel(String level) {
-        checkInit();
-        Validate.notNull(level, "level is null");
-        if (loggers.size() != 1) {
-            initSingleLogger();
-        }
-        loggers.get(0).setLevel(level);
-    }
-
-    /**
-     * Size of batch; empty string for default one element batch.
-     */
-    public void setBatchSize(String batchSize) {
-        checkInit();
-        Validate.notNull(batchSize, "batchSize is null");
-        conf.setBatchSize(batchSize);
-    }
-
-    /**
-     * Retry pause calculation strategy, either "linear" or "exponential".
-     */
-    public void setRetryPause(String retryPause) {
-        checkInit();
-        Validate.notNull(retryPause, "retryPause is null");
-        conf.setRetryPause(retryPause);
-    }
-
-    /**
-     * Retry pause time (in seconds).
-     */
-    public void setRetryPauseTime(String time) {
-        checkInit();
-        Validate.notNull(time, "time is null");
-        conf.setRetryPauseTime(time);
-    }
-
-    /**
-     * Retry timeout (in seconds).
-     */
-    public void setRetryTimeout(String timeout) {
-        checkInit();
-        Validate.notNull(timeout, "timeout is null");
-        conf.setRetryTimeout(timeout);
-    }
-
-    /**
-     * Conversion output type: "feed" or "entry".
-     */
-    public void setOutput(String output) {
-        checkInit();
-        Validate.notNull(output, "output is null");
-        conf.setOutput(output);
-    }
-
-    /**
-     * Multiplicity of subelement of output: "one" or "many".
-     */
-    public void setMultiplicity(String multiplicity) {
-        checkInit();
-        Validate.notNull(multiplicity, "multiplicity is null");
-        conf.setMultiplicity(multiplicity);
-    }
-
-    /**
-     * Entry data format: "content" or "extension".
-     */
-    public void setFormat(String format) {
-        checkInit();
-        Validate.notNull(format, "format is null");
-        conf.setFormat(format);
-    }
-
-    /**
-     * Initializes bean; creates ATOM push handler based on current properties state, and attaches handler to
-     * logger(s).
-     */
-    public void init() {
-        checkInit();
-        initialized = true;
-        Handler h = new AtomPushHandler(conf.createEngine());
-        for (int i = 0; i &lt; loggers.size(); i++) {
-            Logger l = LogUtils.getL7dLogger(AtomPushBean.class, null, loggers.get(i).getLogger());
-            l.addHandler(h);
-            l.setLevel(LogLevel.toJUL(LogLevel.valueOf(loggers.get(i).getLevel())));
-        }
-    }
-
-    private void checkInit() {
-        if (initialized) {
-            throw new IllegalStateException("Bean is already initialized");
-        }
-    }
-
-    private void parseLoggers(String param) {
-        loggers = new ArrayList&lt;LoggerLevel&gt;();
-        StringTokenizer st1 = new StringTokenizer(param, ", \t\n\r\f");
-        while (st1.hasMoreTokens()) {
-            String tok = st1.nextToken();
-            int idx = tok.indexOf(":");
-            if (idx != -1) {
-                loggers.add(new LoggerLevel(tok.substring(0, idx), tok.substring(idx + 1, tok.length())));
-            } else {
-                loggers.add(new LoggerLevel(tok, "INFO"));
-            }
-        }
-    }
-
-    private static class LoggerLevel {
-        private String logger;
-        private String level;
-
-        public LoggerLevel(String logger, String level) {
-            this.logger = logger;
-            this.level = level;
-        }
-
-        public String getLogger() {
-            return logger;
-        }
-
-        public void setLogger(String logger) {
-            this.logger = logger;
-        }
-
-        public String getLevel() {
-            return level;
-        }
-
-        public void setLevel(String level) {
-            this.level = level;
-        }
-
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.jaxrs.ext.logging.atom;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
+import java.util.logging.Handler;
+import java.util.logging.Logger;
+
+import org.apache.commons.lang.Validate;
+import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.jaxrs.ext.logging.LogLevel;
+import org.apache.cxf.jaxrs.ext.logging.atom.converter.Converter;
+import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.Deliverer;
+
+/**
+ * Bean used to configure {@link AtomPushHandler JUL handler} with Spring instead of properties file. See
+ * {@link AtomPushHandler} class for detailed description of parameters. Next to configuration of handler,
+ * Spring bean offers simple configuration of associated loggers that share ATOM push-style handler.
+ * &lt;p&gt;
+ * General rules:
+ * &lt;ul&gt;
+ * &lt;li&gt;When {@link #setDeliverer(Deliverer) deliverer} property is not set explicitly, URL must be set to
+ * create default deliverer.&lt;/li&gt;
+ * &lt;li&gt;When {@link #setConverter(Converter) converter} property is not set explicitly, default converter is
+ * created.&lt;/li&gt;
+ * &lt;li&gt;When {@link #setLoggers(String) loggers} property is used, it overrides pair of
+ * {@link #setLogger(String) logger} and {@link #setLevel(String) level} properties; and vice versa.&lt;/li&gt;
+ * &lt;li&gt;When logger is not set, handler is attached to root logger (named ""); when level is not set for
+ * logger, default "INFO" level is used.&lt;/li&gt;
+ * &lt;li&gt;When {@link #setBatchSize(String) batchSize} property is not set or set to wrong value, default batch
+ * size of "1" is used.&lt;/li&gt;
+ * &lt;li&gt;When deliverer property is NOT set, use of "retryXxx" properties causes creation of retrying default
+ * deliverer.&lt;/li&gt;
+ * &lt;/ul&gt;
+ * Examples:
+ * &lt;p&gt;
+ * ATOM push handler with registered with root logger for all levels or log events, pushing one feed per event
+ * to specified URL, using default delivery and conversion methods:
+ * 
+ * &lt;pre&gt;
+ *   &amp;lt;bean class=&amp;quot;org.apache.cxf.jaxrs.ext.logging.atom.AtomPushBean&amp;quot; 
+ *     init-method=&amp;quot;init&amp;quot;&amp;gt;
+ *       &amp;lt;property name=&amp;quot;url&amp;quot; value=&amp;quot;http://localhost:9080/feed&amp;quot;/&amp;gt;
+ *       &amp;lt;property name=&amp;quot;level&amp;quot; value=&amp;quot;ALL&amp;quot; /&amp;gt;
+ *   &amp;lt;/bean&amp;gt;
+ * &lt;/pre&gt;
+ * 
+ * ATOM push handler registered with multiple loggers and listening for different levels (see
+ * {@link #setLoggers(String) loggers} property description for syntax details). Custom deliverer will take
+ * care of feeds, each of which carries batch of 10 log events:
+ * 
+ * &lt;pre&gt;
+ *   &amp;lt;bean id=&amp;quot;soapDeliverer&amp;quot; ...
+ *   ...
+ *   &amp;lt;bean class=&amp;quot;org.apache.cxf.jaxrs.ext.logging.atom.AtomPushBean&amp;quot; 
+ *     init-method=&amp;quot;init&amp;quot;&amp;gt;
+ *       &amp;lt;property name=&amp;quot;deliverer&amp;quot;&amp;gt;
+ *           &amp;lt;ref bean=&amp;quot;soapDeliverer&amp;quot;/&amp;gt;
+ *       &amp;lt;/property&amp;gt;
+ *       &amp;lt;property name=&amp;quot;loggers&amp;quot; value=&amp;quot;
+ *           org.apache.cxf:DEBUG,
+ *           org.apache.cxf.jaxrs,
+ *           org.apache.cxf.bus:ERROR&amp;quot; /&amp;gt;
+ *       &amp;lt;property name=&amp;quot;batchSize&amp;quot; value=&amp;quot;10&amp;quot; /&amp;gt;
+ *   &amp;lt;/bean&amp;gt;
+ * &lt;/pre&gt;
+ */
+public final class AtomPushBean {
+
+    private AtomPushEngineConfigurator conf = new AtomPushEngineConfigurator();
+    private List&lt;LoggerLevel&gt; loggers = new ArrayList&lt;LoggerLevel&gt;();
+    private boolean initialized;
+
+    /**
+     * Creates unconfigured and uninitialized bean. To configure setters must be used, then {@link #init()}
+     * must be called.
+     */
+    public AtomPushBean() {
+        initSingleLogger();
+    }
+
+    private void initSingleLogger() {
+        loggers = new ArrayList&lt;LoggerLevel&gt;();
+        loggers.add(new LoggerLevel("", "INFO"));
+    }
+
+    /**
+     * Set URL used when custom deliverer is not set (default deliverer is being created).
+     */
+    public void setUrl(String url) {
+        checkInit();
+        Validate.notNull(url, "url is null");
+        conf.setUrl(url);
+    }
+
+    /**
+     * Set initialized deliverer.
+     */
+    public void setDeliverer(Deliverer deliverer) {
+        checkInit();
+        Validate.notNull(deliverer, "deliverer is null");
+        conf.setDeliverer(deliverer);
+    }
+
+    /**
+     * Set initialized converter.
+     */
+    public void setConverter(Converter converter) {
+        checkInit();
+        Validate.notNull(converter, "converter is null");
+        conf.setConverter(converter);
+    }
+
+    /**
+     * Set one or more loggers and levels descriptor. &lt;br&gt;
+     * Parsed input syntax is:
+     * 
+     * &lt;pre&gt;
+     * loggers   := &amp;lt;logger&amp;gt;(&amp;lt;separator&amp;gt;&amp;lt;logger&amp;gt;)*
+     * logger    := &amp;lt;name&amp;gt;[&amp;quot;:&amp;quot;&amp;lt;level&amp;gt;]
+     * separator := &amp;quot;,&amp;quot; | &amp;quot; &amp;quot; | &amp;quot;\n&amp;quot;
+     * &lt;/pre&gt;
+     * 
+     * Examples:
+     * &lt;p&gt;
+     * Two loggers and two levels: &lt;br&gt;
+     * &lt;tt&gt;org.apache.cxf:INFO, org.apache.cxf.jaxrs:DEBUG&lt;/tt&gt;
+     * &lt;p&gt;
+     * Three loggers, first with default "INFO" level: &lt;br&gt;
+     * &lt;tt&gt;org.apache.cxf, org.apache.cxf.jaxrs:DEBUG, namedLogger:ERROR&lt;/tt&gt;&lt;br&gt;
+     * &lt;p&gt;
+     * One logger with default "INFO" level: &lt;br&gt;
+     * &lt;tt&gt;org.apache.cxf&lt;/tt&gt;&lt;br&gt;
+     */
+    public void setLoggers(String loggers) {
+        checkInit();
+        Validate.notNull(loggers, "loggers is null");
+        parseLoggers(loggers);
+    }
+
+    /**
+     * Name of logger to associate with ATOM push handler; empty string for root logger.
+     */
+    public void setLogger(String logger) {
+        checkInit();
+        Validate.notNull(logger, "logger is null");
+        if (loggers.size() != 1) {
+            initSingleLogger();
+        }
+        loggers.get(0).setLogger(logger);
+    }
+
+    /**
+     * Name of level that logger will use publishing log events to ATOM push handler; empty string for default
+     * "INFO" level.
+     */
+    public void setLevel(String level) {
+        checkInit();
+        Validate.notNull(level, "level is null");
+        if (loggers.size() != 1) {
+            initSingleLogger();
+        }
+        loggers.get(0).setLevel(level);
+    }
+
+    /**
+     * Size of batch; empty string for default one element batch.
+     */
+    public void setBatchSize(String batchSize) {
+        checkInit();
+        Validate.notNull(batchSize, "batchSize is null");
+        conf.setBatchSize(batchSize);
+    }
+
+    /**
+     * Retry pause calculation strategy, either "linear" or "exponential".
+     */
+    public void setRetryPause(String retryPause) {
+        checkInit();
+        Validate.notNull(retryPause, "retryPause is null");
+        conf.setRetryPause(retryPause);
+    }
+
+    /**
+     * Retry pause time (in seconds).
+     */
+    public void setRetryPauseTime(String time) {
+        checkInit();
+        Validate.notNull(time, "time is null");
+        conf.setRetryPauseTime(time);
+    }
+
+    /**
+     * Retry timeout (in seconds).
+     */
+    public void setRetryTimeout(String timeout) {
+        checkInit();
+        Validate.notNull(timeout, "timeout is null");
+        conf.setRetryTimeout(timeout);
+    }
+
+    /**
+     * Conversion output type: "feed" or "entry".
+     */
+    public void setOutput(String output) {
+        checkInit();
+        Validate.notNull(output, "output is null");
+        conf.setOutput(output);
+    }
+
+    /**
+     * Multiplicity of subelement of output: "one" or "many".
+     */
+    public void setMultiplicity(String multiplicity) {
+        checkInit();
+        Validate.notNull(multiplicity, "multiplicity is null");
+        conf.setMultiplicity(multiplicity);
+    }
+
+    /**
+     * Entry data format: "content" or "extension".
+     */
+    public void setFormat(String format) {
+        checkInit();
+        Validate.notNull(format, "format is null");
+        conf.setFormat(format);
+    }
+
+    /**
+     * Initializes bean; creates ATOM push handler based on current properties state, and attaches handler to
+     * logger(s).
+     */
+    public void init() {
+        checkInit();
+        initialized = true;
+        Handler h = new AtomPushHandler(conf.createEngine());
+        for (int i = 0; i &lt; loggers.size(); i++) {
+            Logger l = LogUtils.getL7dLogger(AtomPushBean.class, null, loggers.get(i).getLogger());
+            l.addHandler(h);
+            l.setLevel(LogLevel.toJUL(LogLevel.valueOf(loggers.get(i).getLevel())));
+        }
+    }
+
+    private void checkInit() {
+        if (initialized) {
+            throw new IllegalStateException("Bean is already initialized");
+        }
+    }
+
+    private void parseLoggers(String param) {
+        loggers = new ArrayList&lt;LoggerLevel&gt;();
+        StringTokenizer st1 = new StringTokenizer(param, ", \t\n\r\f");
+        while (st1.hasMoreTokens()) {
+            String tok = st1.nextToken();
+            int idx = tok.indexOf(":");
+            if (idx != -1) {
+                loggers.add(new LoggerLevel(tok.substring(0, idx), tok.substring(idx + 1, tok.length())));
+            } else {
+                loggers.add(new LoggerLevel(tok, "INFO"));
+            }
+        }
+    }
+
+    private static class LoggerLevel {
+        private String logger;
+        private String level;
+
+        public LoggerLevel(String logger, String level) {
+            this.logger = logger;
+            this.level = level;
+        }
+
+        public String getLogger() {
+            return logger;
+        }
+
+        public void setLogger(String logger) {
+            this.logger = logger;
+        }
+
+        public String getLevel() {
+            return level;
+        }
+
+        public void setLevel(String level) {
+            this.level = level;
+        }
+
+    }
+}

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushBean.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngine.java
URL: 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
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngine.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngine.java Thu Dec  3 22:26:58 2009
@@ -1,151 +1,151 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.jaxrs.ext.logging.atom;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-import org.apache.abdera.model.Element;
-import org.apache.commons.lang.Validate;
-import org.apache.cxf.jaxrs.ext.logging.LogRecord;
-import org.apache.cxf.jaxrs.ext.logging.atom.converter.Converter;
-import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.Deliverer;
-
-/**
- * Package private ATOM push-style engine. Engine enqueues log records as they are {@link #publish(LogRecord)
- * published}. After queue size exceeds {@link #getBatchSize() batch size} processing of collection of these
- * records (in size of batch size) is triggered.
- * &lt;p&gt;
- * Processing is done in separate thread not to block publishing interface. Processing is two step: first list
- * of log records is transformed by {@link Converter converter} to ATOM {@link Element element} and then it is
- * pushed out by {@link Deliverer deliverer} to client. Next to transport deliverer is indirectly responsible
- * for marshaling ATOM element to XML.
- * &lt;p&gt;
- * Processing is done by single threaded {@link java.util.concurrent.Executor executor}; next batch of records
- * is taken from queue only when currently processed batch finishes and queue has enough elements to proceed.
- * &lt;p&gt;
- * First failure of any delivery shuts engine down. To avoid this situation engine must have registered
- * reliable deliverer or use wrapping
- * {@link org.apache.cxf.jaxrs.ext.logging.atom.deliverer.RetryingDeliverer}.
- */
-// TODO add internal diagnostics - log messages somewhere except for logger :D
-final class AtomPushEngine {
-    private List&lt;LogRecord&gt; queue = new ArrayList&lt;LogRecord&gt;();
-    private ExecutorService executor = Executors.newSingleThreadExecutor();
-    private int batchSize = 1;
-    private Converter converter;
-    private Deliverer deliverer;
-
-    /**
-     * Put record to publishing queue. Engine accepts published records only if is in proper state - is
-     * properly configured (has deliverer and converter registered) and is not shot down; otherwise calls to
-     * publish are ignored.
-     * 
-     * @param record record to be published.
-     */
-    public synchronized void publish(LogRecord record) {
-        Validate.notNull(record, "record is null");
-        if (isValid()) {
-            queue.add(record);
-            if (queue.size() &gt;= batchSize) {
-                publishBatch(queue);
-                queue = new ArrayList&lt;LogRecord&gt;();
-            }
-        }
-    }
-
-    /**
-     * Shuts engine down.
-     */
-    public synchronized void shutdown() {
-        executor.shutdownNow();
-    }
-
-    private boolean isValid() {
-        if (deliverer == null) {
-            // TODO report cause
-            System.err.println("deliverer is not set");
-            return false;
-        }
-        if (converter == null) {
-            System.err.println("converter is not set");
-            return false;
-        }
-        if (executor.isShutdown()) {
-            System.err.println("engine shutdown");
-            return false;
-        }
-        return true;
-    }
-
-    private void publishBatch(final List&lt;LogRecord&gt; batch) {
-        executor.execute(new Runnable() {
-            public void run() {
-                try {
-                    LoggingThread.markSilent(true);
-                    // syncing for safe converter/deliverer on the fly replacement
-                    synchronized (this) {
-                        // TODO diagnostic output here: System.out.println(element.toString());
-                        List&lt;? extends Element&gt; elements = converter.convert(batch);
-                        for (Element element : elements) {
-                            if (!deliverer.deliver(element)) {
-                                System.err.println("Delivery failed, shutting engine down");
-                                executor.shutdownNow();
-                                break;
-                            }
-                        }
-                    }
-                } catch (InterruptedException e) {
-                    // no action on executor.shutdownNow();
-                } finally {
-                    LoggingThread.markSilent(false);
-                }
-            }
-        });
-    }
-
-    public int getBatchSize() {
-        return batchSize;
-    }
-
-    public void setBatchSize(int batchSize) {
-        Validate.isTrue(batchSize &gt; 0, "batch size is not greater than zero");
-        this.batchSize = batchSize;
-    }
-
-    public Converter getConverter() {
-        return converter;
-    }
-
-    public synchronized void setConverter(Converter converter) {
-        Validate.notNull(converter, "converter is null");
-        this.converter = converter;
-    }
-
-    public Deliverer getDeliverer() {
-        return deliverer;
-    }
-
-    public synchronized void setDeliverer(Deliverer deliverer) {
-        Validate.notNull(deliverer, "deliverer is null");
-        this.deliverer = deliverer;
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.jaxrs.ext.logging.atom;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+import org.apache.abdera.model.Element;
+import org.apache.commons.lang.Validate;
+import org.apache.cxf.jaxrs.ext.logging.LogRecord;
+import org.apache.cxf.jaxrs.ext.logging.atom.converter.Converter;
+import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.Deliverer;
+
+/**
+ * Package private ATOM push-style engine. Engine enqueues log records as they are {@link #publish(LogRecord)
+ * published}. After queue size exceeds {@link #getBatchSize() batch size} processing of collection of these
+ * records (in size of batch size) is triggered.
+ * &lt;p&gt;
+ * Processing is done in separate thread not to block publishing interface. Processing is two step: first list
+ * of log records is transformed by {@link Converter converter} to ATOM {@link Element element} and then it is
+ * pushed out by {@link Deliverer deliverer} to client. Next to transport deliverer is indirectly responsible
+ * for marshaling ATOM element to XML.
+ * &lt;p&gt;
+ * Processing is done by single threaded {@link java.util.concurrent.Executor executor}; next batch of records
+ * is taken from queue only when currently processed batch finishes and queue has enough elements to proceed.
+ * &lt;p&gt;
+ * First failure of any delivery shuts engine down. To avoid this situation engine must have registered
+ * reliable deliverer or use wrapping
+ * {@link org.apache.cxf.jaxrs.ext.logging.atom.deliverer.RetryingDeliverer}.
+ */
+// TODO add internal diagnostics - log messages somewhere except for logger :D
+final class AtomPushEngine {
+    private List&lt;LogRecord&gt; queue = new ArrayList&lt;LogRecord&gt;();
+    private ExecutorService executor = Executors.newSingleThreadExecutor();
+    private int batchSize = 1;
+    private Converter converter;
+    private Deliverer deliverer;
+
+    /**
+     * Put record to publishing queue. Engine accepts published records only if is in proper state - is
+     * properly configured (has deliverer and converter registered) and is not shot down; otherwise calls to
+     * publish are ignored.
+     * 
+     * @param record record to be published.
+     */
+    public synchronized void publish(LogRecord record) {
+        Validate.notNull(record, "record is null");
+        if (isValid()) {
+            queue.add(record);
+            if (queue.size() &gt;= batchSize) {
+                publishBatch(queue);
+                queue = new ArrayList&lt;LogRecord&gt;();
+            }
+        }
+    }
+
+    /**
+     * Shuts engine down.
+     */
+    public synchronized void shutdown() {
+        executor.shutdownNow();
+    }
+
+    private boolean isValid() {
+        if (deliverer == null) {
+            // TODO report cause
+            System.err.println("deliverer is not set");
+            return false;
+        }
+        if (converter == null) {
+            System.err.println("converter is not set");
+            return false;
+        }
+        if (executor.isShutdown()) {
+            System.err.println("engine shutdown");
+            return false;
+        }
+        return true;
+    }
+
+    private void publishBatch(final List&lt;LogRecord&gt; batch) {
+        executor.execute(new Runnable() {
+            public void run() {
+                try {
+                    LoggingThread.markSilent(true);
+                    // syncing for safe converter/deliverer on the fly replacement
+                    synchronized (this) {
+                        // TODO diagnostic output here: System.out.println(element.toString());
+                        List&lt;? extends Element&gt; elements = converter.convert(batch);
+                        for (Element element : elements) {
+                            if (!deliverer.deliver(element)) {
+                                System.err.println("Delivery failed, shutting engine down");
+                                executor.shutdownNow();
+                                break;
+                            }
+                        }
+                    }
+                } catch (InterruptedException e) {
+                    // no action on executor.shutdownNow();
+                } finally {
+                    LoggingThread.markSilent(false);
+                }
+            }
+        });
+    }
+
+    public int getBatchSize() {
+        return batchSize;
+    }
+
+    public void setBatchSize(int batchSize) {
+        Validate.isTrue(batchSize &gt; 0, "batch size is not greater than zero");
+        this.batchSize = batchSize;
+    }
+
+    public Converter getConverter() {
+        return converter;
+    }
+
+    public synchronized void setConverter(Converter converter) {
+        Validate.notNull(converter, "converter is null");
+        this.converter = converter;
+    }
+
+    public Deliverer getDeliverer() {
+        return deliverer;
+    }
+
+    public synchronized void setDeliverer(Deliverer deliverer) {
+        Validate.notNull(deliverer, "deliverer is null");
+        this.deliverer = deliverer;
+    }
+}

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngine.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngine.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886957 [4/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>
<author><name>dkulp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091203222703.F36162388A02@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091203222703-F36162388A02@eris-apache-org%3e</id>
<updated>2009-12-03T22:27:02Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/RetryingDeliverer.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/RetryingDeliverer.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/RetryingDeliverer.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/RetryingDeliverer.java Thu Dec  3 22:26:58 2009
@@ -1,139 +1,139 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.jaxrs.ext.logging.atom.deliverer;
-
-import java.util.Calendar;
-import java.util.Date;
-
-import org.apache.abdera.model.Element;
-import org.apache.commons.lang.Validate;
-
-/**
- * Wrapper on other deliverer retrying delivery in case of failure. Delivery attempts repeat in loop with some
- * pause time between retries until successful delivery or exceeding time limit. Time delay between delivery
- * is configurable strategy. Two predefined strategies are given: each time pause same amount of time (linear)
- * and each next time pause time doubles (exponential).
- */
-public final class RetryingDeliverer implements Deliverer {
-
-    private Deliverer deliverer;
-    private PauseCalculator pauser;
-    private int timeout;
-
-    /**
-     * Creates retrying deliverer with predefined retry strategy.
-     * 
-     * @param worker real deliverer used to push data out.
-     * @param timeout maximum time range (in seconds) that retrial is continued; time spent on delivery call
-     *            is included. No timeout (infinite loop) if set to zero.
-     * @param pause time of pause (in seconds) greater than zero.
-     * @param linear if true linear strategy (each time pause same amount of time), exponential otherwise
-     *            (each next time pause time doubles).
-     */
-    public RetryingDeliverer(Deliverer worker, int timeout, int pause, boolean linear) {
-        Validate.notNull(worker, "worker is null");
-        Validate.isTrue(timeout &gt;= 0, "timeout is negative");
-        Validate.isTrue(pause &gt; 0, "pause is not greater than zero");
-        deliverer = worker;
-        this.timeout = timeout;
-        this.pauser = linear ? new ConstantPause(pause) : new ExponentialPause(pause);
-    }
-
-    /**
-     * Creates retrying deliverer with custom retry strategy.
-     * 
-     * @param worker real deliverer used to push data out.
-     * @param timeout maximum time range (in seconds) that retrial is continued; time spent on delivery call
-     *            is included. No timeout (infinite loop) if set to zero.
-     * @param strategy custom retry pausing strategy.
-     */
-    public RetryingDeliverer(Deliverer worker, int timeout, PauseCalculator strategy) {
-        Validate.notNull(worker, "worker is null");
-        Validate.notNull(strategy, "strategy is null");
-        Validate.isTrue(timeout &gt;= 0, "timeout is negative");
-        deliverer = worker;
-        pauser = strategy;
-        this.timeout = timeout;
-    }
-
-    public boolean deliver(Element element) throws InterruptedException {
-        Calendar cal = Calendar.getInstance();
-        cal.add(Calendar.SECOND, timeout);
-        Date timeoutDate = cal.getTime();
-        while (!deliverer.deliver(element)) {
-            int sleep = pauser.nextPause();
-            cal = Calendar.getInstance();
-            cal.add(Calendar.SECOND, sleep);
-            if (timeout == 0 || timeoutDate.after(cal.getTime())) {
-                Thread.sleep(sleep * 1000);
-            } else {
-                pauser.reset();
-                return false;
-            }
-        }
-        pauser.reset();
-        return true;
-    }
-
-    /** Calculates time of subsequent pauses between delivery attempts. */
-    public interface PauseCalculator {
-
-        /** Time of next pause (in seconds). */
-        int nextPause();
-
-        /** Restarts calculation. */
-        void reset();
-    }
-
-    private static class ConstantPause implements PauseCalculator {
-        private int pause;
-
-        public ConstantPause(int pause) {
-            this.pause = pause;
-        }
-
-        public int nextPause() {
-            return pause;
-        }
-
-        public void reset() {
-        }
-    }
-
-    private static class ExponentialPause implements PauseCalculator {
-        private int pause;
-        private int current;
-
-        public ExponentialPause(int pause) {
-            this.pause = pause;
-            current = pause;
-        }
-
-        public int nextPause() {
-            int c = current;
-            current *= 2;
-            return c;
-        }
-
-        public void reset() {
-            current = pause;
-        }
-    }
-
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.jaxrs.ext.logging.atom.deliverer;
+
+import java.util.Calendar;
+import java.util.Date;
+
+import org.apache.abdera.model.Element;
+import org.apache.commons.lang.Validate;
+
+/**
+ * Wrapper on other deliverer retrying delivery in case of failure. Delivery attempts repeat in loop with some
+ * pause time between retries until successful delivery or exceeding time limit. Time delay between delivery
+ * is configurable strategy. Two predefined strategies are given: each time pause same amount of time (linear)
+ * and each next time pause time doubles (exponential).
+ */
+public final class RetryingDeliverer implements Deliverer {
+
+    private Deliverer deliverer;
+    private PauseCalculator pauser;
+    private int timeout;
+
+    /**
+     * Creates retrying deliverer with predefined retry strategy.
+     * 
+     * @param worker real deliverer used to push data out.
+     * @param timeout maximum time range (in seconds) that retrial is continued; time spent on delivery call
+     *            is included. No timeout (infinite loop) if set to zero.
+     * @param pause time of pause (in seconds) greater than zero.
+     * @param linear if true linear strategy (each time pause same amount of time), exponential otherwise
+     *            (each next time pause time doubles).
+     */
+    public RetryingDeliverer(Deliverer worker, int timeout, int pause, boolean linear) {
+        Validate.notNull(worker, "worker is null");
+        Validate.isTrue(timeout &gt;= 0, "timeout is negative");
+        Validate.isTrue(pause &gt; 0, "pause is not greater than zero");
+        deliverer = worker;
+        this.timeout = timeout;
+        this.pauser = linear ? new ConstantPause(pause) : new ExponentialPause(pause);
+    }
+
+    /**
+     * Creates retrying deliverer with custom retry strategy.
+     * 
+     * @param worker real deliverer used to push data out.
+     * @param timeout maximum time range (in seconds) that retrial is continued; time spent on delivery call
+     *            is included. No timeout (infinite loop) if set to zero.
+     * @param strategy custom retry pausing strategy.
+     */
+    public RetryingDeliverer(Deliverer worker, int timeout, PauseCalculator strategy) {
+        Validate.notNull(worker, "worker is null");
+        Validate.notNull(strategy, "strategy is null");
+        Validate.isTrue(timeout &gt;= 0, "timeout is negative");
+        deliverer = worker;
+        pauser = strategy;
+        this.timeout = timeout;
+    }
+
+    public boolean deliver(Element element) throws InterruptedException {
+        Calendar cal = Calendar.getInstance();
+        cal.add(Calendar.SECOND, timeout);
+        Date timeoutDate = cal.getTime();
+        while (!deliverer.deliver(element)) {
+            int sleep = pauser.nextPause();
+            cal = Calendar.getInstance();
+            cal.add(Calendar.SECOND, sleep);
+            if (timeout == 0 || timeoutDate.after(cal.getTime())) {
+                Thread.sleep(sleep * 1000);
+            } else {
+                pauser.reset();
+                return false;
+            }
+        }
+        pauser.reset();
+        return true;
+    }
+
+    /** Calculates time of subsequent pauses between delivery attempts. */
+    public interface PauseCalculator {
+
+        /** Time of next pause (in seconds). */
+        int nextPause();
+
+        /** Restarts calculation. */
+        void reset();
+    }
+
+    private static class ConstantPause implements PauseCalculator {
+        private int pause;
+
+        public ConstantPause(int pause) {
+            this.pause = pause;
+        }
+
+        public int nextPause() {
+            return pause;
+        }
+
+        public void reset() {
+        }
+    }
+
+    private static class ExponentialPause implements PauseCalculator {
+        private int pause;
+        private int current;
+
+        public ExponentialPause(int pause) {
+            this.pause = pause;
+            current = pause;
+        }
+
+        public int nextPause() {
+            int c = current;
+            current *= 2;
+            return c;
+        }
+
+        public void reset() {
+            current = pause;
+        }
+    }
+
+}

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/RetryingDeliverer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/RetryingDeliverer.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/WebClientDeliverer.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/WebClientDeliverer.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/WebClientDeliverer.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/WebClientDeliverer.java Thu Dec  3 22:26:58 2009
@@ -1,56 +1,56 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.jaxrs.ext.logging.atom.deliverer;
-
-import java.util.Arrays;
-import java.util.List;
-
-import javax.ws.rs.core.Response;
-
-import org.apache.abdera.model.Element;
-import org.apache.commons.lang.Validate;
-import org.apache.cxf.jaxrs.client.WebClient;
-import org.apache.cxf.jaxrs.provider.AtomEntryProvider;
-import org.apache.cxf.jaxrs.provider.AtomFeedProvider;
-
-/**
- * Marshaling and delivering based on JAXRS' WebClient.
- */
-public final class WebClientDeliverer implements Deliverer {
-    private WebClient wc;
-
-    @SuppressWarnings("unchecked")
-    public WebClientDeliverer(String deliveryAddress) {
-        Validate.notEmpty(deliveryAddress, "deliveryAddress is empty or null");
-        List&lt;?&gt; providers = Arrays.asList(new AtomFeedProvider(), new AtomEntryProvider());
-        wc = WebClient.create(deliveryAddress, providers);
-        wc.type("application/atom+xml");
-    }
-
-    public WebClientDeliverer(WebClient wc) {
-        Validate.notNull(wc, "wc is null");
-        this.wc = wc;
-    }
-
-    public boolean deliver(Element element) {
-        Response res = wc.post(element);
-        int status = res.getStatus();
-        return status &gt;= 200 &amp;&amp; status &lt;= 299;
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.jaxrs.ext.logging.atom.deliverer;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.ws.rs.core.Response;
+
+import org.apache.abdera.model.Element;
+import org.apache.commons.lang.Validate;
+import org.apache.cxf.jaxrs.client.WebClient;
+import org.apache.cxf.jaxrs.provider.AtomEntryProvider;
+import org.apache.cxf.jaxrs.provider.AtomFeedProvider;
+
+/**
+ * Marshaling and delivering based on JAXRS' WebClient.
+ */
+public final class WebClientDeliverer implements Deliverer {
+    private WebClient wc;
+
+    @SuppressWarnings("unchecked")
+    public WebClientDeliverer(String deliveryAddress) {
+        Validate.notEmpty(deliveryAddress, "deliveryAddress is empty or null");
+        List&lt;?&gt; providers = Arrays.asList(new AtomFeedProvider(), new AtomEntryProvider());
+        wc = WebClient.create(deliveryAddress, providers);
+        wc.type("application/atom+xml");
+    }
+
+    public WebClientDeliverer(WebClient wc) {
+        Validate.notNull(wc, "wc is null");
+        this.wc = wc;
+    }
+
+    public boolean deliver(Element element) {
+        Response res = wc.post(element);
+        int status = res.getStatus();
+        return status &gt;= 200 &amp;&amp; status &lt;= 299;
+    }
+}

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/WebClientDeliverer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/WebClientDeliverer.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/package-info.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/package-info.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/package-info.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/package-info.java Thu Dec  3 22:26:58 2009
@@ -1,27 +1,27 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Support for producing logs in
- * &lt;a href="http://tools.ietf.org/html/rfc4287"&gt;ATOM Syndication Format&lt;/a&gt;.
- * Allows to configure &lt;tt&gt;java.util.logging&lt;/tt&gt; (JUL) loggers to use
- * handlers producing ATOM feeds that are either pushed to or pulled by client.  
- */
-package org.apache.cxf.jaxrs.ext.logging.atom;
-
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * Support for producing logs in
+ * &lt;a href="http://tools.ietf.org/html/rfc4287"&gt;ATOM Syndication Format&lt;/a&gt;.
+ * Allows to configure &lt;tt&gt;java.util.logging&lt;/tt&gt; (JUL) loggers to use
+ * handlers producing ATOM feeds that are either pushed to or pulled by client.  
+ */
+package org.apache.cxf.jaxrs.ext.logging.atom;
+

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/package-info.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/package-info.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/package-info.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/package-info.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/package-info.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/package-info.java Thu Dec  3 22:26:58 2009
@@ -1,31 +1,31 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * JAX-RS specific logging support. Based on &lt;tt&gt;java.util.logging&lt;/tt&gt; (JUL)
- * with use of different logging frameworks factored out; assumes that client 
- * with source code logging to other systems, like Log4J, can bridge 
- * to this implementation applying &lt;a href="www.slf4j.org"&gt;SLF4J&lt;/a&gt; 
- * that JAXRS already depends on.
- */
-@javax.xml.bind.annotation.XmlSchema(xmlns = {
-        @javax.xml.bind.annotation.XmlNs(namespaceURI = "http://cxf.apache.org/jaxrs/log", prefix = "log")
-            })
-package org.apache.cxf.jaxrs.ext.logging;
-
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * JAX-RS specific logging support. Based on &lt;tt&gt;java.util.logging&lt;/tt&gt; (JUL)
+ * with use of different logging frameworks factored out; assumes that client 
+ * with source code logging to other systems, like Log4J, can bridge 
+ * to this implementation applying &lt;a href="www.slf4j.org"&gt;SLF4J&lt;/a&gt; 
+ * that JAXRS already depends on.
+ */
+@javax.xml.bind.annotation.XmlSchema(xmlns = {
+        @javax.xml.bind.annotation.XmlNs(namespaceURI = "http://cxf.apache.org/jaxrs/log", prefix = "log")
+            })
+package org.apache.cxf.jaxrs.ext.logging;
+

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/package-info.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/package-info.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/PrefixCollectingXMLStreamWriter.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/PrefixRespectingMappedNamespaceConvention.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/frontend/jaxrs/src/test/resources/org/apache/cxf/jaxrs/provider/jsonCases.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/JaxWsWebServicePublisherBeanPostProcessor.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/Messages.properties
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/transports/http-osgi/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/transports/http-osgi/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/transports/http-osgi/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Propchange: cxf/trunk/rt/transports/http-osgi/src/main/resources/META-INF/cxf/osgi/cxf-extension-osgi.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/transports/http-osgi/src/main/resources/META-INF/cxf/osgi/cxf-extension-osgi.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Propchange: cxf/trunk/rt/transports/http-osgi/src/main/resources/META-INF/spring/cxf-transport-osgi.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/transports/http-osgi/src/main/resources/META-INF/spring/cxf-transport-osgi.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Propchange: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookServerResourceJacksonSpringProviders.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceJacksonSpringProviderTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSLoggingAtomPushSpringTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSLoggingAtomPushSpringTest.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSLoggingAtomPushSpringTest.java (original)
+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSLoggingAtomPushSpringTest.java Thu Dec  3 22:26:58 2009
@@ -1,110 +1,110 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.systest.jaxrs;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.LogRecord;
-import java.util.logging.Logger;
-
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-
-import org.apache.abdera.model.Element;
-import org.apache.abdera.model.Feed;
-import org.apache.cxf.common.logging.LogUtils;
-import org.apache.cxf.jaxrs.client.WebClient;
-import org.apache.cxf.testutil.common.AbstractClientServerTestBase;
-
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Ignore;
-import org.junit.Test;
-
-public class JAXRSLoggingAtomPushSpringTest extends AbstractClientServerTestBase {
-
-    private static List&lt;Element&gt; retrieved = new ArrayList&lt;Element&gt;();
-
-    @BeforeClass
-    public static void beforeClass() throws Exception {
-        // must be 'in-process' to communicate with inner class in single JVM
-        // and to spawn class SpringServer w/o using main() method
-        launchServer(SpringServer.class, true);
-    }
-
-    @Ignore
-    public static class SpringServer extends AbstractSpringServer {
-        public SpringServer() {
-            super("/jaxrs_logging_atompush");
-        }
-    }
-
-    @Before
-    public void before() {
-        retrieved.clear();
-    }
-
-    @Ignore
-    @Path("/")
-    public static class Resource {
-        private static final Logger LOG1 = LogUtils.getL7dLogger(Resource.class);
-        private static final Logger LOG2 = LogUtils.getL7dLogger(Resource.class, null, "namedLogger");
-
-        @GET
-        @Path("/log")
-        public void doLogging() {
-            LOG1.severe("severe message");
-            LOG1.warning("warning message");
-            LOG1.info("info message");
-            LogRecord r = new LogRecord(Level.FINE, "fine message");
-            r.setThrown(new IllegalArgumentException("tadaam"));
-            LOG1.log(r);
-            r = new LogRecord(Level.FINER, "finer message with {0} and {1}");
-            r.setParameters(new Object[] {
-                "param1", "param2"
-            });
-            r.setLoggerName("faky-logger");
-            LOG1.log(r);
-            LOG1.finest("finest message");
-
-            // for LOG2 only 'warning' and above messages should be logged
-            LOG2.severe("severe message");
-            LOG2.info("info message - should not pass!");
-            LOG2.finer("finer message - should not pass!");
-        }
-
-        // 2. ATOM push handler should populate logs here
-        @POST
-        @Path("/feed")
-        public void consume(Feed feed) {
-            // System.out.println(feed);
-            retrieved.add(feed);
-        }
-    }
-
-    @Test
-    public void testLogEvents() throws Exception {
-        WebClient wc = WebClient.create("http://localhost:9080");
-        wc.path("/log").get();
-        Thread.sleep(1000);
-        assertEquals(7, retrieved.size());
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.systest.jaxrs;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.LogRecord;
+import java.util.logging.Logger;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+
+import org.apache.abdera.model.Element;
+import org.apache.abdera.model.Feed;
+import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.jaxrs.client.WebClient;
+import org.apache.cxf.testutil.common.AbstractClientServerTestBase;
+
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Test;
+
+public class JAXRSLoggingAtomPushSpringTest extends AbstractClientServerTestBase {
+
+    private static List&lt;Element&gt; retrieved = new ArrayList&lt;Element&gt;();
+
+    @BeforeClass
+    public static void beforeClass() throws Exception {
+        // must be 'in-process' to communicate with inner class in single JVM
+        // and to spawn class SpringServer w/o using main() method
+        launchServer(SpringServer.class, true);
+    }
+
+    @Ignore
+    public static class SpringServer extends AbstractSpringServer {
+        public SpringServer() {
+            super("/jaxrs_logging_atompush");
+        }
+    }
+
+    @Before
+    public void before() {
+        retrieved.clear();
+    }
+
+    @Ignore
+    @Path("/")
+    public static class Resource {
+        private static final Logger LOG1 = LogUtils.getL7dLogger(Resource.class);
+        private static final Logger LOG2 = LogUtils.getL7dLogger(Resource.class, null, "namedLogger");
+
+        @GET
+        @Path("/log")
+        public void doLogging() {
+            LOG1.severe("severe message");
+            LOG1.warning("warning message");
+            LOG1.info("info message");
+            LogRecord r = new LogRecord(Level.FINE, "fine message");
+            r.setThrown(new IllegalArgumentException("tadaam"));
+            LOG1.log(r);
+            r = new LogRecord(Level.FINER, "finer message with {0} and {1}");
+            r.setParameters(new Object[] {
+                "param1", "param2"
+            });
+            r.setLoggerName("faky-logger");
+            LOG1.log(r);
+            LOG1.finest("finest message");
+
+            // for LOG2 only 'warning' and above messages should be logged
+            LOG2.severe("severe message");
+            LOG2.info("info message - should not pass!");
+            LOG2.finer("finer message - should not pass!");
+        }
+
+        // 2. ATOM push handler should populate logs here
+        @POST
+        @Path("/feed")
+        public void consume(Feed feed) {
+            // System.out.println(feed);
+            retrieved.add(feed);
+        }
+    }
+
+    @Test
+    public void testLogEvents() throws Exception {
+        WebClient wc = WebClient.create("http://localhost:9080");
+        wc.path("/log").get();
+        Thread.sleep(1000);
+        assertEquals(7, retrieved.size());
+    }
+}

Propchange: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSLoggingAtomPushSpringTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSLoggingAtomPushSpringTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSLoggingAtomPushTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSLoggingAtomPushTest.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSLoggingAtomPushTest.java (original)
+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSLoggingAtomPushTest.java Thu Dec  3 22:26:58 2009
@@ -1,183 +1,183 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.systest.jaxrs;
-
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.logging.Handler;
-import java.util.logging.Level;
-import java.util.logging.LogManager;
-import java.util.logging.LogRecord;
-import java.util.logging.Logger;
-
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-
-import org.apache.abdera.model.Entry;
-import org.apache.abdera.model.Feed;
-import org.apache.cxf.common.logging.LogUtils;
-import org.apache.cxf.endpoint.Server;
-import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
-import org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler;
-import org.apache.cxf.jaxrs.ext.logging.atom.converter.Converter;
-import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter;
-import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter.Format;
-import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter.Multiplicity;
-import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter.Output;
-import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.Deliverer;
-import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.WebClientDeliverer;
-import org.apache.cxf.jaxrs.provider.AtomEntryProvider;
-import org.apache.cxf.jaxrs.provider.AtomFeedProvider;
-
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Ignore;
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
-
-public class JAXRSLoggingAtomPushTest {
-    private static final Logger LOG = LogUtils.getL7dLogger(JAXRSLoggingAtomPushTest.class);
-    private static Server server;
-    private static List&lt;Feed&gt; feeds = new ArrayList&lt;Feed&gt;();
-    private static List&lt;Entry&gt; entries = new ArrayList&lt;Entry&gt;();
-
-    @Ignore
-    @Path("/")
-    public static class Resource {
-        @POST
-        public void consume(Feed feed) {
-            System.out.println(feed);
-            feeds.add(feed);
-        }
-
-        @POST
-        @Path("/atomPub")
-        public void consume(Entry entry) {
-            System.out.println(entry);
-            entries.add(entry);
-        }
-    }
-
-    @SuppressWarnings("unchecked")
-    @BeforeClass
-    public static void beforeClass() throws Exception {
-        // disable logging for server startup
-        configureLogging("resources/logging_atompush_disabled.properties");
-
-        JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
-        sf.setResourceClasses(JAXRSLoggingAtomPushTest.Resource.class);
-        sf.setAddress("http://localhost:9080/");
-        sf.setProviders(Arrays.asList(new AtomFeedProvider(), new AtomEntryProvider()));
-        server = sf.create();
-        server.start();
-    }
-
-    /** Configures global logging */
-    private static void configureLogging(String propFile) throws Exception {
-        LogManager lm = LogManager.getLogManager();
-        InputStream ins = JAXRSLoggingAtomPushTest.class.getResourceAsStream(propFile);
-        lm.readConfiguration(ins);
-    }
-
-    private static void logSixEvents(Logger log) {
-        log.severe("severe message");
-        log.warning("warning message");
-        log.info("info message");
-        LogRecord r = new LogRecord(Level.FINE, "fine message");
-        r.setThrown(new IllegalArgumentException("tadaam"));
-        log.log(r);
-        r = new LogRecord(Level.FINER, "finer message with {0} and {1}");
-        r.setParameters(new Object[] {
-            "param1", "param2"
-        });
-        r.setLoggerName("faky-logger");
-        log.log(r);
-        log.finest("finest message");
-    }
-
-    @AfterClass
-    public static void afterClass() throws Exception {
-        if (server != null) {
-            server.stop();
-        }
-        LogManager lm = LogManager.getLogManager();
-        try {
-            // restoring original configuration to not use tested logging handlers
-            lm.readConfiguration();
-        } catch (Exception e) {
-            // ignore missing config file
-        }
-    }
-
-    @Before
-    public void before() throws Exception {
-        feeds.clear();
-        entries.clear();
-    }
-
-    @Test
-    public void testOneElementBatch() throws Exception {
-        configureLogging("resources/logging_atompush.properties");
-        logSixEvents(LOG);
-        // need to wait: multithreaded and client-server journey
-        Thread.sleep(1000);
-        assertEquals("Different logged events count;", 6, feeds.size());
-    }
-
-    @Test
-    public void testMultiElementBatch() throws Exception {
-        configureLogging("resources/logging_atompush_batch.properties");
-        logSixEvents(LOG);
-        // need to wait: multithreaded and client-server journey
-        Thread.sleep(1000);
-        // 6 events / 3 element batch = 2 feeds expected
-        assertEquals("Different logged events count;", 2, feeds.size());
-    }
-
-    @Test
-    public void testPrivateLogger() throws Exception {
-        configureLogging("resources/logging_atompush_disabled.properties");
-        Logger log = LogUtils.getL7dLogger(JAXRSLoggingAtomPushTest.class, null, "private-log");
-        Converter c = new StandardConverter(Output.FEED, Multiplicity.ONE, Format.CONTENT);
-        Deliverer d = new WebClientDeliverer("http://localhost:9080");
-        Handler h = new AtomPushHandler(2, c, d);
-        log.addHandler(h);
-        log.setLevel(Level.ALL);
-        logSixEvents(log);
-        // need to wait: multithreaded and client-server journey
-        Thread.sleep(1000);
-        // 6 events / 2 element batch = 3 feeds expected
-        assertEquals("Different logged events count;", 3, feeds.size());
-    }
-
-    @Test
-    public void testAtomPubEntries() throws Exception {
-        configureLogging("resources/logging_atompush_atompub.properties");
-        logSixEvents(LOG);
-        // need to wait: multithreaded and client-server journey
-        Thread.sleep(1000);
-        // 6 events logged as entries
-        assertEquals("Different logged events count;", 6, entries.size());
-    }
-
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.systest.jaxrs;
+
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.logging.Handler;
+import java.util.logging.Level;
+import java.util.logging.LogManager;
+import java.util.logging.LogRecord;
+import java.util.logging.Logger;
+
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+
+import org.apache.abdera.model.Entry;
+import org.apache.abdera.model.Feed;
+import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.endpoint.Server;
+import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
+import org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler;
+import org.apache.cxf.jaxrs.ext.logging.atom.converter.Converter;
+import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter;
+import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter.Format;
+import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter.Multiplicity;
+import org.apache.cxf.jaxrs.ext.logging.atom.converter.StandardConverter.Output;
+import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.Deliverer;
+import org.apache.cxf.jaxrs.ext.logging.atom.deliverer.WebClientDeliverer;
+import org.apache.cxf.jaxrs.provider.AtomEntryProvider;
+import org.apache.cxf.jaxrs.provider.AtomFeedProvider;
+
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class JAXRSLoggingAtomPushTest {
+    private static final Logger LOG = LogUtils.getL7dLogger(JAXRSLoggingAtomPushTest.class);
+    private static Server server;
+    private static List&lt;Feed&gt; feeds = new ArrayList&lt;Feed&gt;();
+    private static List&lt;Entry&gt; entries = new ArrayList&lt;Entry&gt;();
+
+    @Ignore
+    @Path("/")
+    public static class Resource {
+        @POST
+        public void consume(Feed feed) {
+            System.out.println(feed);
+            feeds.add(feed);
+        }
+
+        @POST
+        @Path("/atomPub")
+        public void consume(Entry entry) {
+            System.out.println(entry);
+            entries.add(entry);
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    @BeforeClass
+    public static void beforeClass() throws Exception {
+        // disable logging for server startup
+        configureLogging("resources/logging_atompush_disabled.properties");
+
+        JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
+        sf.setResourceClasses(JAXRSLoggingAtomPushTest.Resource.class);
+        sf.setAddress("http://localhost:9080/");
+        sf.setProviders(Arrays.asList(new AtomFeedProvider(), new AtomEntryProvider()));
+        server = sf.create();
+        server.start();
+    }
+
+    /** Configures global logging */
+    private static void configureLogging(String propFile) throws Exception {
+        LogManager lm = LogManager.getLogManager();
+        InputStream ins = JAXRSLoggingAtomPushTest.class.getResourceAsStream(propFile);
+        lm.readConfiguration(ins);
+    }
+
+    private static void logSixEvents(Logger log) {
+        log.severe("severe message");
+        log.warning("warning message");
+        log.info("info message");
+        LogRecord r = new LogRecord(Level.FINE, "fine message");
+        r.setThrown(new IllegalArgumentException("tadaam"));
+        log.log(r);
+        r = new LogRecord(Level.FINER, "finer message with {0} and {1}");
+        r.setParameters(new Object[] {
+            "param1", "param2"
+        });
+        r.setLoggerName("faky-logger");
+        log.log(r);
+        log.finest("finest message");
+    }
+
+    @AfterClass
+    public static void afterClass() throws Exception {
+        if (server != null) {
+            server.stop();
+        }
+        LogManager lm = LogManager.getLogManager();
+        try {
+            // restoring original configuration to not use tested logging handlers
+            lm.readConfiguration();
+        } catch (Exception e) {
+            // ignore missing config file
+        }
+    }
+
+    @Before
+    public void before() throws Exception {
+        feeds.clear();
+        entries.clear();
+    }
+
+    @Test
+    public void testOneElementBatch() throws Exception {
+        configureLogging("resources/logging_atompush.properties");
+        logSixEvents(LOG);
+        // need to wait: multithreaded and client-server journey
+        Thread.sleep(1000);
+        assertEquals("Different logged events count;", 6, feeds.size());
+    }
+
+    @Test
+    public void testMultiElementBatch() throws Exception {
+        configureLogging("resources/logging_atompush_batch.properties");
+        logSixEvents(LOG);
+        // need to wait: multithreaded and client-server journey
+        Thread.sleep(1000);
+        // 6 events / 3 element batch = 2 feeds expected
+        assertEquals("Different logged events count;", 2, feeds.size());
+    }
+
+    @Test
+    public void testPrivateLogger() throws Exception {
+        configureLogging("resources/logging_atompush_disabled.properties");
+        Logger log = LogUtils.getL7dLogger(JAXRSLoggingAtomPushTest.class, null, "private-log");
+        Converter c = new StandardConverter(Output.FEED, Multiplicity.ONE, Format.CONTENT);
+        Deliverer d = new WebClientDeliverer("http://localhost:9080");
+        Handler h = new AtomPushHandler(2, c, d);
+        log.addHandler(h);
+        log.setLevel(Level.ALL);
+        logSixEvents(log);
+        // need to wait: multithreaded and client-server journey
+        Thread.sleep(1000);
+        // 6 events / 2 element batch = 3 feeds expected
+        assertEquals("Different logged events count;", 3, feeds.size());
+    }
+
+    @Test
+    public void testAtomPubEntries() throws Exception {
+        configureLogging("resources/logging_atompush_atompub.properties");
+        logSixEvents(LOG);
+        // need to wait: multithreaded and client-server journey
+        Thread.sleep(1000);
+        // 6 events logged as entries
+        assertEquals("Different logged events count;", 6, entries.size());
+    }
+
+}

Propchange: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSLoggingAtomPushTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSLoggingAtomPushTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush.properties
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush.properties?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush.properties (original)
+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush.properties Thu Dec  3 22:26:58 2009
@@ -1,30 +1,30 @@
-# Atom logger plus echo on console
-handlers = org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler, java.util.logging.ConsoleHandler
-
-# Set the default logging level for the root logger
-.level = ALL
-
-# Set logging levels for the package-named loggers 
-org.apache.cxf.systest.jaxrs.level = ALL
-
-# Need to turn off logging from surrounding environment to properly count log entries in tests
-# (specified sub-entries since root level overrides sub-levels... yes, JUL is dumb :)
-org.apache.cxf.jaxrs.level = OFF
-org.apache.cxf.phase.level = OFF
-org.apache.cxf.service.level = OFF
-org.apache.cxf.interceptor.level = OFF
-org.apache.cxf.transport.level = OFF
-org.apache.cxf.bus.level = OFF
-org.apache.cxf.configuration.level = OFF
-org.apache.cxf.endpoint.level = OFF
-org.apache.cxf.resource.level = OFF
-org.springframework.level = OFF
-org.mortbay.level = OFF
-org.apache.axiom.level = OFF
-
-# Atom handler specific settings
-org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.url = http://localhost:9080
-org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.batchSize = 1
-org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.output = feed
-org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.entries = one
-org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.format = content
+# Atom logger plus echo on console
+handlers = org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler, java.util.logging.ConsoleHandler
+
+# Set the default logging level for the root logger
+.level = ALL
+
+# Set logging levels for the package-named loggers 
+org.apache.cxf.systest.jaxrs.level = ALL
+
+# Need to turn off logging from surrounding environment to properly count log entries in tests
+# (specified sub-entries since root level overrides sub-levels... yes, JUL is dumb :)
+org.apache.cxf.jaxrs.level = OFF
+org.apache.cxf.phase.level = OFF
+org.apache.cxf.service.level = OFF
+org.apache.cxf.interceptor.level = OFF
+org.apache.cxf.transport.level = OFF
+org.apache.cxf.bus.level = OFF
+org.apache.cxf.configuration.level = OFF
+org.apache.cxf.endpoint.level = OFF
+org.apache.cxf.resource.level = OFF
+org.springframework.level = OFF
+org.mortbay.level = OFF
+org.apache.axiom.level = OFF
+
+# Atom handler specific settings
+org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.url = http://localhost:9080
+org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.batchSize = 1
+org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.output = feed
+org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.entries = one
+org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.format = content

Propchange: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush.properties
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_atompub.properties
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_atompub.properties?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_atompub.properties (original)
+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_atompub.properties Thu Dec  3 22:26:58 2009
@@ -1,31 +1,31 @@
-# Atom logger plus echo on console
-handlers = org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler, java.util.logging.ConsoleHandler
-
-# Set the default logging level for the root logger
-.level = ALL
-
-# Set logging levels for the package-named loggers 
-org.apache.cxf.systest.jaxrs.level = ALL
-
-# Need to turn off logging from surrounding environment to properly count log entries in tests
-# (specified sub-entries since root level overrides sub-levels... yes, JUL is dumb :)
-org.apache.cxf.jaxrs.level = OFF
-org.apache.cxf.phase.level = OFF
-org.apache.cxf.service.level = OFF
-org.apache.cxf.interceptor.level = OFF
-org.apache.cxf.transport.level = OFF
-org.apache.cxf.bus.level = OFF
-org.apache.cxf.configuration.level = OFF
-org.apache.cxf.endpoint.level = OFF
-org.apache.cxf.resource.level = OFF
-org.springframework.level = OFF
-org.mortbay.level = OFF
-org.apache.axiom.level = OFF
-
-# Atom handler specific settings
-org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.url = http://localhost:9080/atomPub
-org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.batchSize = 1
-org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.output = entry
-org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.multiplicity = one
-org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.format = extension
-
+# Atom logger plus echo on console
+handlers = org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler, java.util.logging.ConsoleHandler
+
+# Set the default logging level for the root logger
+.level = ALL
+
+# Set logging levels for the package-named loggers 
+org.apache.cxf.systest.jaxrs.level = ALL
+
+# Need to turn off logging from surrounding environment to properly count log entries in tests
+# (specified sub-entries since root level overrides sub-levels... yes, JUL is dumb :)
+org.apache.cxf.jaxrs.level = OFF
+org.apache.cxf.phase.level = OFF
+org.apache.cxf.service.level = OFF
+org.apache.cxf.interceptor.level = OFF
+org.apache.cxf.transport.level = OFF
+org.apache.cxf.bus.level = OFF
+org.apache.cxf.configuration.level = OFF
+org.apache.cxf.endpoint.level = OFF
+org.apache.cxf.resource.level = OFF
+org.springframework.level = OFF
+org.mortbay.level = OFF
+org.apache.axiom.level = OFF
+
+# Atom handler specific settings
+org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.url = http://localhost:9080/atomPub
+org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.batchSize = 1
+org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.output = entry
+org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.multiplicity = one
+org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.format = extension
+

Propchange: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_atompub.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_atompub.properties
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_atompub.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_batch.properties
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_batch.properties?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_batch.properties (original)
+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_batch.properties Thu Dec  3 22:26:58 2009
@@ -1,27 +1,27 @@
-# Atom logger plus echo on console
-handlers = org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler, java.util.logging.ConsoleHandler
-
-# Set the default logging level for the root logger
-.level = ALL
-
-# Set logging levels for the package-named loggers 
-org.apache.cxf.systest.jaxrs.level = ALL
-
-# Need to turn off logging from surrounding environment to properly count log entries in tests
-# (specified sub-entries since root level overrides sub-levels... yes, JUL is dumb :)
-org.apache.cxf.jaxrs.level = OFF
-org.apache.cxf.phase.level = OFF
-org.apache.cxf.service.level = OFF
-org.apache.cxf.interceptor.level = OFF
-org.apache.cxf.transport.level = OFF
-org.apache.cxf.bus.level = OFF
-org.apache.cxf.configuration.level = OFF
-org.apache.cxf.endpoint.level = OFF
-org.apache.cxf.resource.level = OFF
-org.springframework.level = OFF
-org.mortbay.level = OFF
-org.apache.axiom.level = OFF
-
-# Atom handler specific settings
-org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.url = http://localhost:9080
-org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.batchSize = 3
+# Atom logger plus echo on console
+handlers = org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler, java.util.logging.ConsoleHandler
+
+# Set the default logging level for the root logger
+.level = ALL
+
+# Set logging levels for the package-named loggers 
+org.apache.cxf.systest.jaxrs.level = ALL
+
+# Need to turn off logging from surrounding environment to properly count log entries in tests
+# (specified sub-entries since root level overrides sub-levels... yes, JUL is dumb :)
+org.apache.cxf.jaxrs.level = OFF
+org.apache.cxf.phase.level = OFF
+org.apache.cxf.service.level = OFF
+org.apache.cxf.interceptor.level = OFF
+org.apache.cxf.transport.level = OFF
+org.apache.cxf.bus.level = OFF
+org.apache.cxf.configuration.level = OFF
+org.apache.cxf.endpoint.level = OFF
+org.apache.cxf.resource.level = OFF
+org.springframework.level = OFF
+org.mortbay.level = OFF
+org.apache.axiom.level = OFF
+
+# Atom handler specific settings
+org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.url = http://localhost:9080
+org.apache.cxf.jaxrs.ext.logging.atom.AtomPushHandler.batchSize = 3

Propchange: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_batch.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_batch.properties
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_batch.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_disabled.properties
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_disabled.properties?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_disabled.properties (original)
+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_disabled.properties Thu Dec  3 22:26:58 2009
@@ -1,15 +1,15 @@
-handlers = java.util.logging.ConsoleHandler
-.level = OFF
-org.apache.cxf.jaxrs.level = OFF
-org.apache.cxf.phase.level = OFF
-org.apache.cxf.service.level = OFF
-org.apache.cxf.interceptor.level = OFF
-org.apache.cxf.transport.level = OFF
-org.apache.cxf.bus.level = OFF
-org.apache.cxf.configuration.level = OFF
-org.apache.cxf.endpoint.level = OFF
-org.apache.cxf.resource.level = OFF
-org.springframework.level = OFF
-org.mortbay.level = OFF
-org.apache.axiom.level = OFF
-
+handlers = java.util.logging.ConsoleHandler
+.level = OFF
+org.apache.cxf.jaxrs.level = OFF
+org.apache.cxf.phase.level = OFF
+org.apache.cxf.service.level = OFF
+org.apache.cxf.interceptor.level = OFF
+org.apache.cxf.transport.level = OFF
+org.apache.cxf.bus.level = OFF
+org.apache.cxf.configuration.level = OFF
+org.apache.cxf.endpoint.level = OFF
+org.apache.cxf.resource.level = OFF
+org.springframework.level = OFF
+org.mortbay.level = OFF
+org.apache.axiom.level = OFF
+

Propchange: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_disabled.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_disabled.properties
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_disabled.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Propchange: cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_jackson_provider/WEB-INF/beans.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_jackson_provider/WEB-INF/web.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_logging_atompush/WEB-INF/beans.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_logging_atompush/WEB-INF/beans.xml?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_logging_atompush/WEB-INF/beans.xml (original)
+++ cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_logging_atompush/WEB-INF/beans.xml Thu Dec  3 22:26:58 2009
@@ -1,92 +1,92 @@
-&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-	&lt;!--
-		Licensed to the Apache Software Foundation (ASF) under one or more
-		contributor license agreements. See the NOTICE file distributed with
-		this work for additional information regarding copyright ownership.
-		The ASF licenses this file to you under the Apache License, Version
-		2.0 (the "License"); you may not use this file except in compliance
-		with the License. You may obtain a copy of the License at
-
-		http://www.apache.org/licenses/LICENSE-2.0 Unless required by
-		applicable law or agreed to in writing, software distributed under the
-		License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-		CONDITIONS OF ANY KIND, either express or implied. See the License for
-		the specific language governing permissions and limitations under the
-		License.
-	--&gt;
-	&lt;!-- START SNIPPET: beans --&gt;
-	&lt;!--
-		beans xmlns="http://www.springframework.org/schema/beans"
-		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-		xmlns:simple="http://cxf.apache.org/simple" xsi:schemaLocation="
-		http://www.springframework.org/schema/beans
-		http://www.springframework.org/schema/beans/spring-beans.xsd
-		http://cxf.apache.org/simple http://cxf.apache.org/schemas/simple.xsd"
-	--&gt;
-&lt;beans xmlns="http://www.springframework.org/schema/beans"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxrs="http://cxf.apache.org/jaxrs"
-	xmlns:aop="http://www.springframework.org/schema/aop"
-	xsi:schemaLocation="
-http://www.springframework.org/schema/beans 
-http://www.springframework.org/schema/beans/spring-beans.xsd
-http://cxf.apache.org/jaxrs
-http://cxf.apache.org/schemas/jaxrs.xsd"&gt;
-
-	&lt;import resource="classpath:META-INF/cxf/cxf.xml" /&gt;
-	&lt;import resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml" /&gt;
-	&lt;import resource="classpath:META-INF/cxf/cxf-servlet.xml" /&gt;
-
-	&lt;bean class="org.apache.cxf.jaxrs.ext.logging.atom.AtomPushBean"
-		init-method="init"&gt;
-		&lt;property name="url" value="http://localhost:9080/feed" /&gt;
-		&lt;!-- Mind the '$' instead of '.' for inner classes! --&gt;
-		&lt;property name="loggers"
-			value="
-			org.apache.cxf.systest.jaxrs.JAXRSLoggingAtomPushSpringTest$Resource:ALL,
-			namedLogger:WARN" /&gt;
-	&lt;/bean&gt;
-
-	&lt;!--  
-	Other config samples:
-	
-	&lt;bean class="org.apache.cxf.jaxrs.ext.logging.atom.AtomPushBean"
-		init-method="init"&gt;
-
-		&lt;property name="url" value="http://localhost:9080/feed" /&gt;
-		&lt;property name="level" value="ALL" /&gt;
-	&lt;/bean&gt;
-
-	&lt;bean id="soapDeliverer" ... /&gt;
-	&lt;bean class="org.apache.cxf.jaxrs.ext.logging.atom.AtomPushBean"
-		init-method="init"&gt;
-		&lt;property name="deliverer"&gt;
-			&lt;ref bean="soapDeliverer" /&gt;
-		&lt;/property&gt;
-		&lt;property name="loggers"
-			value="
-			  org.apache.cxf:DEBUG,
-			  org.apache.cxf.jaxrs:ALL,
-			  org.apache.cxf.bus:WARNING" /&gt;
-		&lt;property name="batchSize" value="10" /&gt;
-	&lt;/bean&gt;
- 	--&gt;
- 	
-	&lt;jaxrs:server id="atomserver" address="/"&gt;
-		&lt;jaxrs:serviceBeans&gt;
-			&lt;ref bean="atombean" /&gt;
-		&lt;/jaxrs:serviceBeans&gt;
-		&lt;jaxrs:providers&gt;
-			&lt;ref bean="feed" /&gt;
-			&lt;ref bean="entry" /&gt;
-		&lt;/jaxrs:providers&gt;
-	&lt;/jaxrs:server&gt;
-
-	&lt;!-- Mind the '$' instead of '.' for inner classes! --&gt;
-	&lt;bean id="atombean"
-		class="org.apache.cxf.systest.jaxrs.JAXRSLoggingAtomPushSpringTest$Resource" /&gt;
-	&lt;bean id="feed" class="org.apache.cxf.jaxrs.provider.AtomFeedProvider" /&gt;
-	&lt;bean id="entry" class="org.apache.cxf.jaxrs.provider.AtomEntryProvider" /&gt;
-
-&lt;/beans&gt;
-	&lt;!-- END SNIPPET: beans --&gt;
-
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+	&lt;!--
+		Licensed to the Apache Software Foundation (ASF) under one or more
+		contributor license agreements. See the NOTICE file distributed with
+		this work for additional information regarding copyright ownership.
+		The ASF licenses this file to you under the Apache License, Version
+		2.0 (the "License"); you may not use this file except in compliance
+		with the License. You may obtain a copy of the License at
+
+		http://www.apache.org/licenses/LICENSE-2.0 Unless required by
+		applicable law or agreed to in writing, software distributed under the
+		License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+		CONDITIONS OF ANY KIND, either express or implied. See the License for
+		the specific language governing permissions and limitations under the
+		License.
+	--&gt;
+	&lt;!-- START SNIPPET: beans --&gt;
+	&lt;!--
+		beans xmlns="http://www.springframework.org/schema/beans"
+		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+		xmlns:simple="http://cxf.apache.org/simple" xsi:schemaLocation="
+		http://www.springframework.org/schema/beans
+		http://www.springframework.org/schema/beans/spring-beans.xsd
+		http://cxf.apache.org/simple http://cxf.apache.org/schemas/simple.xsd"
+	--&gt;
+&lt;beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxrs="http://cxf.apache.org/jaxrs"
+	xmlns:aop="http://www.springframework.org/schema/aop"
+	xsi:schemaLocation="
+http://www.springframework.org/schema/beans 
+http://www.springframework.org/schema/beans/spring-beans.xsd
+http://cxf.apache.org/jaxrs
+http://cxf.apache.org/schemas/jaxrs.xsd"&gt;
+
+	&lt;import resource="classpath:META-INF/cxf/cxf.xml" /&gt;
+	&lt;import resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml" /&gt;
+	&lt;import resource="classpath:META-INF/cxf/cxf-servlet.xml" /&gt;
+
+	&lt;bean class="org.apache.cxf.jaxrs.ext.logging.atom.AtomPushBean"
+		init-method="init"&gt;
+		&lt;property name="url" value="http://localhost:9080/feed" /&gt;
+		&lt;!-- Mind the '$' instead of '.' for inner classes! --&gt;
+		&lt;property name="loggers"
+			value="
+			org.apache.cxf.systest.jaxrs.JAXRSLoggingAtomPushSpringTest$Resource:ALL,
+			namedLogger:WARN" /&gt;
+	&lt;/bean&gt;
+
+	&lt;!--  
+	Other config samples:
+	
+	&lt;bean class="org.apache.cxf.jaxrs.ext.logging.atom.AtomPushBean"
+		init-method="init"&gt;
+
+		&lt;property name="url" value="http://localhost:9080/feed" /&gt;
+		&lt;property name="level" value="ALL" /&gt;
+	&lt;/bean&gt;
+
+	&lt;bean id="soapDeliverer" ... /&gt;
+	&lt;bean class="org.apache.cxf.jaxrs.ext.logging.atom.AtomPushBean"
+		init-method="init"&gt;
+		&lt;property name="deliverer"&gt;
+			&lt;ref bean="soapDeliverer" /&gt;
+		&lt;/property&gt;
+		&lt;property name="loggers"
+			value="
+			  org.apache.cxf:DEBUG,
+			  org.apache.cxf.jaxrs:ALL,
+			  org.apache.cxf.bus:WARNING" /&gt;
+		&lt;property name="batchSize" value="10" /&gt;
+	&lt;/bean&gt;
+ 	--&gt;
+ 	
+	&lt;jaxrs:server id="atomserver" address="/"&gt;
+		&lt;jaxrs:serviceBeans&gt;
+			&lt;ref bean="atombean" /&gt;
+		&lt;/jaxrs:serviceBeans&gt;
+		&lt;jaxrs:providers&gt;
+			&lt;ref bean="feed" /&gt;
+			&lt;ref bean="entry" /&gt;
+		&lt;/jaxrs:providers&gt;
+	&lt;/jaxrs:server&gt;
+
+	&lt;!-- Mind the '$' instead of '.' for inner classes! --&gt;
+	&lt;bean id="atombean"
+		class="org.apache.cxf.systest.jaxrs.JAXRSLoggingAtomPushSpringTest$Resource" /&gt;
+	&lt;bean id="feed" class="org.apache.cxf.jaxrs.provider.AtomFeedProvider" /&gt;
+	&lt;bean id="entry" class="org.apache.cxf.jaxrs.provider.AtomEntryProvider" /&gt;
+
+&lt;/beans&gt;
+	&lt;!-- END SNIPPET: beans --&gt;
+

Propchange: cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_logging_atompush/WEB-INF/beans.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_logging_atompush/WEB-INF/beans.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_logging_atompush/WEB-INF/beans.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_logging_atompush/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_logging_atompush/WEB-INF/web.xml?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_logging_atompush/WEB-INF/web.xml (original)
+++ cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_logging_atompush/WEB-INF/web.xml Thu Dec  3 22:26:58 2009
@@ -1,51 +1,51 @@
-&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
-&lt;!DOCTYPE web-app
-    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
-    "http://java.sun.com/dtd/web-app_2_3.dtd"&gt;
-&lt;!--
-	Licensed to the Apache Software Foundation (ASF) under one
-	or more contributor license agreements. See the NOTICE file
-	distributed with this work for additional information
-	regarding copyright ownership. The ASF licenses this file
-	to you under the Apache License, Version 2.0 (the
-	"License"); you may not use this file except in compliance
-	with the License. You may obtain a copy of the License at
-	
-	http://www.apache.org/licenses/LICENSE-2.0
-	
-	Unless required by applicable law or agreed to in writing,
-	software distributed under the License is distributed on an
-	"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-	KIND, either express or implied. See the License for the
-	specific language governing permissions and limitations
-	under the License.
---&gt;
-&lt;!-- START SNIPPET: webxml --&gt;
-&lt;web-app&gt;
-	&lt;context-param&gt;
-		&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;
-		&lt;param-value&gt;WEB-INF/beans.xml&lt;/param-value&gt;
-	&lt;/context-param&gt;
-
-	&lt;listener&gt;
-		&lt;listener-class&gt;
-			org.springframework.web.context.ContextLoaderListener
-		&lt;/listener-class&gt;
-	&lt;/listener&gt;
-
-	&lt;servlet&gt;
-		&lt;servlet-name&gt;CXFServlet&lt;/servlet-name&gt;
-		&lt;display-name&gt;CXF Servlet&lt;/display-name&gt;
-		&lt;servlet-class&gt;
-			org.apache.cxf.transport.servlet.CXFServlet
-		&lt;/servlet-class&gt;
-		&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
-	&lt;/servlet&gt;
-	
-	&lt;servlet-mapping&gt;
-		&lt;servlet-name&gt;CXFServlet&lt;/servlet-name&gt;
-		&lt;url-pattern&gt;/*&lt;/url-pattern&gt;
-	&lt;/servlet-mapping&gt;
-	
-&lt;/web-app&gt;
-&lt;!-- END SNIPPET: webxml --&gt;
+&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
+&lt;!DOCTYPE web-app
+    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+    "http://java.sun.com/dtd/web-app_2_3.dtd"&gt;
+&lt;!--
+	Licensed to the Apache Software Foundation (ASF) under one
+	or more contributor license agreements. See the NOTICE file
+	distributed with this work for additional information
+	regarding copyright ownership. The ASF licenses this file
+	to you under the Apache License, Version 2.0 (the
+	"License"); you may not use this file except in compliance
+	with the License. You may obtain a copy of the License at
+	
+	http://www.apache.org/licenses/LICENSE-2.0
+	
+	Unless required by applicable law or agreed to in writing,
+	software distributed under the License is distributed on an
+	"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+	KIND, either express or implied. See the License for the
+	specific language governing permissions and limitations
+	under the License.
+--&gt;
+&lt;!-- START SNIPPET: webxml --&gt;
+&lt;web-app&gt;
+	&lt;context-param&gt;
+		&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;
+		&lt;param-value&gt;WEB-INF/beans.xml&lt;/param-value&gt;
+	&lt;/context-param&gt;
+
+	&lt;listener&gt;
+		&lt;listener-class&gt;
+			org.springframework.web.context.ContextLoaderListener
+		&lt;/listener-class&gt;
+	&lt;/listener&gt;
+
+	&lt;servlet&gt;
+		&lt;servlet-name&gt;CXFServlet&lt;/servlet-name&gt;
+		&lt;display-name&gt;CXF Servlet&lt;/display-name&gt;
+		&lt;servlet-class&gt;
+			org.apache.cxf.transport.servlet.CXFServlet
+		&lt;/servlet-class&gt;
+		&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
+	&lt;/servlet&gt;
+	
+	&lt;servlet-mapping&gt;
+		&lt;servlet-name&gt;CXFServlet&lt;/servlet-name&gt;
+		&lt;url-pattern&gt;/*&lt;/url-pattern&gt;
+	&lt;/servlet-mapping&gt;
+	
+&lt;/web-app&gt;
+&lt;!-- END SNIPPET: webxml --&gt;

Propchange: cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_logging_atompush/WEB-INF/web.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_logging_atompush/WEB-INF/web.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_logging_atompush/WEB-INF/web.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Propchange: cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/beanpostprocessor/BeanPostProcessorTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/beanpostprocessor/CustomizedfBeanPostProcessorTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/beanpostprocessor/IWebServiceRUs.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/beanpostprocessor/WebServiceRUs.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/jaxws/src/test/resources/org/apache/cxf/systest/jaxws/beanpostprocessor/context.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/jaxws/src/test/resources/org/apache/cxf/systest/jaxws/beanpostprocessor/customized-context.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/servlet/SpringAutoPublishServletTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/servlet/spring-auto-launch.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/servlet/web-spring-auto-launch.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/failover_address_override.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/failover_address_override.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/failover_address_override.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Propchange: cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/management/persistent-id.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/management/persistent-id.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/management/persistent-id.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: cxf/trunk/systests/wsdl_maven/codegen/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/wsdl_maven/codegen/pom.xml?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/systests/wsdl_maven/codegen/pom.xml (original)
+++ cxf/trunk/systests/wsdl_maven/codegen/pom.xml Thu Dec  3 22:26:58 2009
@@ -1,76 +1,76 @@
-&lt;!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements. See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership. The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License. You may obtain a copy of the License at
- 
-  http://www.apache.org/licenses/LICENSE-2.0
- 
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied. See the License for the
-  specific language governing permissions and limitations
-  under the License.
---&gt;
-&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;
-    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
-    &lt;groupId&gt;org.apache.cxf.systests.wsdl_maven&lt;/groupId&gt;
-    &lt;artifactId&gt;cxf-systests-codegen&lt;/artifactId&gt;
-    &lt;version&gt;2.3.0-SNAPSHOT&lt;/version&gt;
-    &lt;name&gt;Test for reading wsdl from repo and generating code from it&lt;/name&gt;
-    &lt;parent&gt;
-        &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
-        &lt;artifactId&gt;cxf-parent&lt;/artifactId&gt;
-        &lt;version&gt;2.3.0-SNAPSHOT&lt;/version&gt;
-        &lt;relativePath&gt;../../../parent/pom.xml&lt;/relativePath&gt;
-    &lt;/parent&gt;
-    &lt;build&gt;
-        &lt;plugins&gt;
-            &lt;plugin&gt;
-                &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
-                &lt;configuration&gt;
-                    &lt;source&gt;1.5&lt;/source&gt;
-                    &lt;target&gt;1.5&lt;/target&gt;
-                &lt;/configuration&gt;
-            &lt;/plugin&gt;
-            &lt;plugin&gt;
-                &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
-                &lt;artifactId&gt;cxf-codegen-plugin&lt;/artifactId&gt;
-                &lt;version&gt;${project.version}&lt;/version&gt;
-                &lt;executions&gt;
-                    &lt;execution&gt;
-                        &lt;id&gt;generate-sources&lt;/id&gt;
-                        &lt;phase&gt;generate-sources&lt;/phase&gt;
-
-                        &lt;goals&gt;
-                            &lt;goal&gt;wsdl2java&lt;/goal&gt;
-                        &lt;/goals&gt;
-                    &lt;/execution&gt;
-                &lt;/executions&gt;
-            &lt;/plugin&gt;
-        &lt;/plugins&gt;
-    &lt;/build&gt;
-    
-    &lt;dependencies&gt;
-        &lt;dependency&gt;
-            &lt;groupId&gt;org.apache.cxf.systests.wsdl_maven&lt;/groupId&gt;
-            &lt;artifactId&gt;cxf-systests-java2ws&lt;/artifactId&gt;
-            &lt;version&gt;${project.version}&lt;/version&gt;
-	  &lt;type&gt;wsdl&lt;/type&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
-            &lt;artifactId&gt;cxf-rt-frontend-jaxws&lt;/artifactId&gt;
-            &lt;version&gt;${project.version}&lt;/version&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;groupId&gt;org.apache.cxf.systests.wsdl_maven&lt;/groupId&gt;
-            &lt;artifactId&gt;cxf-systests-java2ws&lt;/artifactId&gt;
-            &lt;version&gt;${project.version}&lt;/version&gt;
-        &lt;/dependency&gt;
-    &lt;/dependencies&gt;
-&lt;/project&gt;
+&lt;!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+ 
+  http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+--&gt;
+&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;
+    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
+    &lt;groupId&gt;org.apache.cxf.systests.wsdl_maven&lt;/groupId&gt;
+    &lt;artifactId&gt;cxf-systests-codegen&lt;/artifactId&gt;
+    &lt;version&gt;2.3.0-SNAPSHOT&lt;/version&gt;
+    &lt;name&gt;Test for reading wsdl from repo and generating code from it&lt;/name&gt;
+    &lt;parent&gt;
+        &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+        &lt;artifactId&gt;cxf-parent&lt;/artifactId&gt;
+        &lt;version&gt;2.3.0-SNAPSHOT&lt;/version&gt;
+        &lt;relativePath&gt;../../../parent/pom.xml&lt;/relativePath&gt;
+    &lt;/parent&gt;
+    &lt;build&gt;
+        &lt;plugins&gt;
+            &lt;plugin&gt;
+                &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
+                &lt;configuration&gt;
+                    &lt;source&gt;1.5&lt;/source&gt;
+                    &lt;target&gt;1.5&lt;/target&gt;
+                &lt;/configuration&gt;
+            &lt;/plugin&gt;
+            &lt;plugin&gt;
+                &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+                &lt;artifactId&gt;cxf-codegen-plugin&lt;/artifactId&gt;
+                &lt;version&gt;${project.version}&lt;/version&gt;
+                &lt;executions&gt;
+                    &lt;execution&gt;
+                        &lt;id&gt;generate-sources&lt;/id&gt;
+                        &lt;phase&gt;generate-sources&lt;/phase&gt;
+
+                        &lt;goals&gt;
+                            &lt;goal&gt;wsdl2java&lt;/goal&gt;
+                        &lt;/goals&gt;
+                    &lt;/execution&gt;
+                &lt;/executions&gt;
+            &lt;/plugin&gt;
+        &lt;/plugins&gt;
+    &lt;/build&gt;
+    
+    &lt;dependencies&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.cxf.systests.wsdl_maven&lt;/groupId&gt;
+            &lt;artifactId&gt;cxf-systests-java2ws&lt;/artifactId&gt;
+            &lt;version&gt;${project.version}&lt;/version&gt;
+	  &lt;type&gt;wsdl&lt;/type&gt;
+        &lt;/dependency&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+            &lt;artifactId&gt;cxf-rt-frontend-jaxws&lt;/artifactId&gt;
+            &lt;version&gt;${project.version}&lt;/version&gt;
+        &lt;/dependency&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.cxf.systests.wsdl_maven&lt;/groupId&gt;
+            &lt;artifactId&gt;cxf-systests-java2ws&lt;/artifactId&gt;
+            &lt;version&gt;${project.version}&lt;/version&gt;
+        &lt;/dependency&gt;
+    &lt;/dependencies&gt;
+&lt;/project&gt;

Propchange: cxf/trunk/systests/wsdl_maven/codegen/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/systests/wsdl_maven/codegen/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/systests/wsdl_maven/codegen/pom.xml
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Thu Dec  3 22:26:58 2009
@@ -1 +1 @@
-text/plain
+text/xml




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886957 [1/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>
<author><name>dkulp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091203222703.E168C238899B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091203222703-E168C238899B@eris-apache-org%3e</id>
<updated>2009-12-03T22:27:02Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: dkulp
Date: Thu Dec  3 22:26:58 2009
New Revision: 886957

URL: http://svn.apache.org/viewvc?rev=886957&amp;view=rev
Log:
Set svn properties on everything to get svn:eol-style and such correct

Modified:
    cxf/trunk/api/src/test/java/org/apache/cxf/databinding/AbstractDataBindingTest.java   (props changed)
    cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceClient.java   (contents, props changed)
    cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceSpringClient.java   (contents, props changed)
    cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceTester.java   (contents, props changed)
    cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/client-beans.xml   (contents, props changed)
    cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceImpl.java   (contents, props changed)
    cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceServer.java   (contents, props changed)
    cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceSpringServer.java   (contents, props changed)
    cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml   (contents, props changed)
    cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml   (contents, props changed)
    cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml   (contents, props changed)
    cxf/trunk/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl   (contents, props changed)
    cxf/trunk/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml   (contents, props changed)
    cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java   (contents, props changed)
    cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java   (contents, props changed)
    cxf/trunk/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java   (contents, props changed)
    cxf/trunk/maven-plugins/codegen-plugin/src/test/resources/bindingWithWsdlLocation.xml   (props changed)
    cxf/trunk/maven-plugins/codegen-plugin/src/test/resources/bindingWithoutWsdlLocation.xml   (props changed)
    cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/ParameterizedTypeFactory.java   (props changed)
    cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/SimpleParameterizedType.java   (props changed)
    cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/inheritance/ws1/WS1.aegis.xml   (props changed)
    cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/jaxws/AegisJaxwsGetTest.java   (props changed)
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogLevel.java   (contents, props changed)
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecord.java   (contents, props changed)
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/LogRecordsList.java   (contents, props changed)
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushBean.java   (contents, props changed)
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngine.java   (contents, props changed)
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushEngineConfigurator.java   (contents, props changed)
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/AtomPushHandler.java   (contents, props changed)
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/LoggingThread.java   (contents, props changed)
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/Converter.java   (contents, props changed)
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/converter/StandardConverter.java   (contents, props changed)
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/Deliverer.java   (contents, props changed)
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/FireAndForgetDeliverer.java   (contents, props changed)
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/RetryingDeliverer.java   (contents, props changed)
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/deliverer/WebClientDeliverer.java   (contents, props changed)
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/atom/package-info.java   (contents, props changed)
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/logging/package-info.java   (contents, props changed)
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/PrefixCollectingXMLStreamWriter.java   (props changed)
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/PrefixRespectingMappedNamespaceConvention.java   (props changed)
    cxf/trunk/rt/frontend/jaxrs/src/test/resources/org/apache/cxf/jaxrs/provider/jsonCases.xml   (props changed)
    cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/JaxWsWebServicePublisherBeanPostProcessor.java   (props changed)
    cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/Messages.properties   (props changed)
    cxf/trunk/rt/transports/http-osgi/pom.xml   (props changed)
    cxf/trunk/rt/transports/http-osgi/src/main/resources/META-INF/cxf/osgi/cxf-extension-osgi.xml   (props changed)
    cxf/trunk/rt/transports/http-osgi/src/main/resources/META-INF/spring/cxf-transport-osgi.xml   (props changed)
    cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookServerResourceJacksonSpringProviders.java   (props changed)
    cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerResourceJacksonSpringProviderTest.java   (props changed)
    cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSLoggingAtomPushSpringTest.java   (contents, props changed)
    cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSLoggingAtomPushTest.java   (contents, props changed)
    cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush.properties   (contents, props changed)
    cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_atompub.properties   (contents, props changed)
    cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_batch.properties   (contents, props changed)
    cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/logging_atompush_disabled.properties   (contents, props changed)
    cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_jackson_provider/WEB-INF/beans.xml   (props changed)
    cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_jackson_provider/WEB-INF/web.xml   (props changed)
    cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_logging_atompush/WEB-INF/beans.xml   (contents, props changed)
    cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_logging_atompush/WEB-INF/web.xml   (contents, props changed)
    cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/beanpostprocessor/BeanPostProcessorTest.java   (props changed)
    cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/beanpostprocessor/CustomizedfBeanPostProcessorTest.java   (props changed)
    cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/beanpostprocessor/IWebServiceRUs.java   (props changed)
    cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/jaxws/beanpostprocessor/WebServiceRUs.java   (props changed)
    cxf/trunk/systests/jaxws/src/test/resources/org/apache/cxf/systest/jaxws/beanpostprocessor/context.xml   (props changed)
    cxf/trunk/systests/jaxws/src/test/resources/org/apache/cxf/systest/jaxws/beanpostprocessor/customized-context.xml   (props changed)
    cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/servlet/SpringAutoPublishServletTest.java   (props changed)
    cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/servlet/spring-auto-launch.xml   (props changed)
    cxf/trunk/systests/transports/src/test/java/org/apache/cxf/systest/servlet/web-spring-auto-launch.xml   (props changed)
    cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java   (props changed)
    cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/failover_address_override.xml   (props changed)
    cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/management/persistent-id.xml   (props changed)
    cxf/trunk/systests/wsdl_maven/codegen/pom.xml   (contents, props changed)
    cxf/trunk/systests/wsdl_maven/codegen/src/main/resources/defaultBinding.xml   (contents, props changed)
    cxf/trunk/systests/wsdl_maven/java2ws/pom.xml   (contents, props changed)
    cxf/trunk/systests/wsdl_maven/java2ws/src/main/java/org/apache/cxf/systests/java2ws/HelloWorld.java   (props changed)
    cxf/trunk/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/beans.xml   (props changed)
    cxf/trunk/systests/wsdl_maven/java2ws/src/main/webapp/WEB-INF/web.xml   (props changed)
    cxf/trunk/systests/wsdl_maven/pom.xml   (contents, props changed)

Propchange: cxf/trunk/api/src/test/java/org/apache/cxf/databinding/AbstractDataBindingTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceClient.java
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceClient.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceClient.java (original)
+++ cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceClient.java Thu Dec  3 22:26:58 2009
@@ -1,40 +1,40 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package com.example.customerservice.client;
-
-import com.example.customerservice.CustomerService;
-import com.example.customerservice.CustomerServiceService;
-import com.example.customerservice.NoSuchCustomerException;
-
-public class CustomerServiceClient {
-    protected CustomerServiceClient() {
-    }
-    
-    public static void main(String args[]) throws NoSuchCustomerException {
-        // Create the service client with its default wsdlurl
-        CustomerServiceService customerServiceService = new CustomerServiceService();
-        CustomerService customerService = customerServiceService.getCustomerServicePort();
-        
-        // Initialize the test class and call the tests
-        CustomerServiceTester client = new CustomerServiceTester();
-        client.setCustomerService(customerService);
-        client.testCustomerService();
-        System.exit(0); 
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package com.example.customerservice.client;
+
+import com.example.customerservice.CustomerService;
+import com.example.customerservice.CustomerServiceService;
+import com.example.customerservice.NoSuchCustomerException;
+
+public class CustomerServiceClient {
+    protected CustomerServiceClient() {
+    }
+    
+    public static void main(String args[]) throws NoSuchCustomerException {
+        // Create the service client with its default wsdlurl
+        CustomerServiceService customerServiceService = new CustomerServiceService();
+        CustomerService customerService = customerServiceService.getCustomerServicePort();
+        
+        // Initialize the test class and call the tests
+        CustomerServiceTester client = new CustomerServiceTester();
+        client.setCustomerService(customerService);
+        client.testCustomerService();
+        System.exit(0); 
+    }
+}

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceClient.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceClient.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceSpringClient.java
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceSpringClient.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceSpringClient.java (original)
+++ cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceSpringClient.java Thu Dec  3 22:26:58 2009
@@ -1,39 +1,39 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package com.example.customerservice.client;
-
-
-
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-
-public final class CustomerServiceSpringClient {
-
-    private CustomerServiceSpringClient() {
-    }
-
-    public static void main(String args[]) throws Exception {
-        // Initialize the spring context and fetch our test client
-        ClassPathXmlApplicationContext context 
-            = new ClassPathXmlApplicationContext(new String[] {"classpath:client-applicationContext.xml"});
-        CustomerServiceTester client = (CustomerServiceTester)context.getBean("tester");
-        
-        client.testCustomerService();
-        System.exit(0);
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package com.example.customerservice.client;
+
+
+
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public final class CustomerServiceSpringClient {
+
+    private CustomerServiceSpringClient() {
+    }
+
+    public static void main(String args[]) throws Exception {
+        // Initialize the spring context and fetch our test client
+        ClassPathXmlApplicationContext context 
+            = new ClassPathXmlApplicationContext(new String[] {"classpath:client-applicationContext.xml"});
+        CustomerServiceTester client = (CustomerServiceTester)context.getBean("tester");
+        
+        client.testCustomerService();
+        System.exit(0);
+    }
+}

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceSpringClient.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceSpringClient.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceTester.java
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceTester.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceTester.java (original)
+++ cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceTester.java Thu Dec  3 22:26:58 2009
@@ -1,75 +1,75 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package com.example.customerservice.client;
-
-import java.util.List;
-
-import junit.framework.Assert;
-
-import com.example.customerservice.Customer;
-import com.example.customerservice.CustomerService;
-import com.example.customerservice.NoSuchCustomerException;
-
-public final class CustomerServiceTester {
-    
-    // The CustomerService proxy will be injected either by spring or by a direct call to the setter 
-    CustomerService customerService;
-    
-    public CustomerService getCustomerService() {
-        return customerService;
-    }
-
-    public void setCustomerService(CustomerService customerService) {
-        this.customerService = customerService;
-    }
-
-    public void testCustomerService() throws NoSuchCustomerException {
-        List&lt;Customer&gt; customers = null;
-        
-        // First we test the positive case where customers are found and we retreive
-        // a list of customers
-        System.out.println("Sending request for customers named Smith");
-        customers = customerService.getCustomersByName("Smith");
-        System.out.println("Response received");
-        Assert.assertEquals(2, customers.size());
-        Assert.assertEquals("Smith", customers.get(0).getName());
-        
-        // Then we test for an unknown Customer name and expect the NoSuchCustomerException
-        try {
-            customers = customerService.getCustomersByName("None");
-            Assert.fail("We should get a NoSuchCustomerException here");
-        } catch (NoSuchCustomerException e) {
-            System.out.println(e.getMessage());
-            Assert.assertNotNull("FaultInfo must not be null", e.getFaultInfo());
-            Assert.assertEquals("None", e.getFaultInfo().getCustomerName());
-            System.out.println("NoSuchCustomer exception was received as expected");
-        }
-        
-        // The implementation of updateCustomer is set to sleep for some seconds. 
-        // Still this method should return instantly as the method is declared
-        // as a one way method in the WSDL
-        Customer customer = new Customer();
-        customer.setName("Smith");
-        customerService.updateCustomer(customer);
-        
-        System.out.println("All calls were successful");
-    }
-
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.example.customerservice.client;
+
+import java.util.List;
+
+import junit.framework.Assert;
+
+import com.example.customerservice.Customer;
+import com.example.customerservice.CustomerService;
+import com.example.customerservice.NoSuchCustomerException;
+
+public final class CustomerServiceTester {
+    
+    // The CustomerService proxy will be injected either by spring or by a direct call to the setter 
+    CustomerService customerService;
+    
+    public CustomerService getCustomerService() {
+        return customerService;
+    }
+
+    public void setCustomerService(CustomerService customerService) {
+        this.customerService = customerService;
+    }
+
+    public void testCustomerService() throws NoSuchCustomerException {
+        List&lt;Customer&gt; customers = null;
+        
+        // First we test the positive case where customers are found and we retreive
+        // a list of customers
+        System.out.println("Sending request for customers named Smith");
+        customers = customerService.getCustomersByName("Smith");
+        System.out.println("Response received");
+        Assert.assertEquals(2, customers.size());
+        Assert.assertEquals("Smith", customers.get(0).getName());
+        
+        // Then we test for an unknown Customer name and expect the NoSuchCustomerException
+        try {
+            customers = customerService.getCustomersByName("None");
+            Assert.fail("We should get a NoSuchCustomerException here");
+        } catch (NoSuchCustomerException e) {
+            System.out.println(e.getMessage());
+            Assert.assertNotNull("FaultInfo must not be null", e.getFaultInfo());
+            Assert.assertEquals("None", e.getFaultInfo().getCustomerName());
+            System.out.println("NoSuchCustomer exception was received as expected");
+        }
+        
+        // The implementation of updateCustomer is set to sleep for some seconds. 
+        // Still this method should return instantly as the method is declared
+        // as a one way method in the WSDL
+        Customer customer = new Customer();
+        customer.setName("Smith");
+        customerService.updateCustomer(customer);
+        
+        System.out.println("All calls were successful");
+    }
+
+}

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceTester.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/CustomerServiceTester.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/client-beans.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/client-beans.xml?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/client-beans.xml (original)
+++ cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/client-beans.xml Thu Dec  3 22:26:58 2009
@@ -1,39 +1,39 @@
-&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-&lt;!--
-	Licensed to the Apache Software Foundation (ASF) under one
-	or more contributor license agreements. See the NOTICE file
-	distributed with this work for additional information
-	regarding copyright ownership. The ASF licenses this file
-	to you under the Apache License, Version 2.0 (the
-	"License"); you may not use this file except in compliance
-	with the License. You may obtain a copy of the License at
-	
-	http://www.apache.org/licenses/LICENSE-2.0
-	
-	Unless required by applicable law or agreed to in writing,
-	software distributed under the License is distributed on an
-	"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-	KIND, either express or implied. See the License for the
-	specific language governing permissions and limitations
-	under the License.
---&gt;
-&lt;!-- START SNIPPET: beans --&gt;
-&lt;beans xmlns="http://www.springframework.org/schema/beans"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xmlns:jaxws="http://cxf.apache.org/jaxws"
-	xsi:schemaLocation="
-http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
-http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"&gt;
-
-   &lt;jaxws:client id="customerService" 
-    serviceClass="org.apache.hello_world_soap_http.Greeter"
-    serviceName="s:SOAPService"
-    endpointName="s:SoapPort"
-    xmlns:s="http://apache.org/hello_world_soap_http"
-    wsdlLocation="wsdl/hello_world.wsdl"
-    address="http://localhost:9000/SoapContext/SoapPort"/&gt;	  
-    &lt;bean id="client" class="com.example.customerservice.Client"&gt;
-    	&lt;property name=""&gt;&lt;/property&gt;
-    &lt;/bean&gt;
-&lt;/beans&gt;
-&lt;!-- END SNIPPET: beans --&gt;
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;!--
+	Licensed to the Apache Software Foundation (ASF) under one
+	or more contributor license agreements. See the NOTICE file
+	distributed with this work for additional information
+	regarding copyright ownership. The ASF licenses this file
+	to you under the Apache License, Version 2.0 (the
+	"License"); you may not use this file except in compliance
+	with the License. You may obtain a copy of the License at
+	
+	http://www.apache.org/licenses/LICENSE-2.0
+	
+	Unless required by applicable law or agreed to in writing,
+	software distributed under the License is distributed on an
+	"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+	KIND, either express or implied. See the License for the
+	specific language governing permissions and limitations
+	under the License.
+--&gt;
+&lt;!-- START SNIPPET: beans --&gt;
+&lt;beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:jaxws="http://cxf.apache.org/jaxws"
+	xsi:schemaLocation="
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"&gt;
+
+   &lt;jaxws:client id="customerService" 
+    serviceClass="org.apache.hello_world_soap_http.Greeter"
+    serviceName="s:SOAPService"
+    endpointName="s:SoapPort"
+    xmlns:s="http://apache.org/hello_world_soap_http"
+    wsdlLocation="wsdl/hello_world.wsdl"
+    address="http://localhost:9000/SoapContext/SoapPort"/&gt;	  
+    &lt;bean id="client" class="com.example.customerservice.Client"&gt;
+    	&lt;property name=""&gt;&lt;/property&gt;
+    &lt;/bean&gt;
+&lt;/beans&gt;
+&lt;!-- END SNIPPET: beans --&gt;

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/client-beans.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/client-beans.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/client/client-beans.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceImpl.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceImpl.java (original)
+++ cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceImpl.java Thu Dec  3 22:26:58 2009
@@ -1,80 +1,80 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package com.example.customerservice.server;
-
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.List;
-
-import javax.annotation.Resource;
-import javax.xml.ws.WebServiceContext;
-
-import com.example.customerservice.Customer;
-import com.example.customerservice.CustomerService;
-import com.example.customerservice.CustomerType;
-import com.example.customerservice.NoSuchCustomer;
-import com.example.customerservice.NoSuchCustomerException;
-
-public class CustomerServiceImpl implements CustomerService {
-    
-    /**
-     * The WebServiceContext can be used to retrieve special attributes like the 
-     * user principal. Normally it is not needed
-     */
-    @Resource
-    WebServiceContext wsContext;
-
-    public List&lt;Customer&gt; getCustomersByName(String name) throws NoSuchCustomerException {
-        if ("None".equals(name)) {
-            NoSuchCustomer noSuchCustomer = new NoSuchCustomer();
-            noSuchCustomer.setCustomerName(name);
-            throw new NoSuchCustomerException("Did not find any matching customer for name=" + name,
-                                              noSuchCustomer);
-        }
-
-        List&lt;Customer&gt; customers = new ArrayList&lt;Customer&gt;();
-        for (int c = 0; c &lt; 2; c++) {
-            Customer cust = new Customer();
-            cust.setName(name);
-            cust.getAddress().add("Pine Street 200");
-            Date bDate = new GregorianCalendar(2009, 01, 01).getTime();
-            cust.setBirthDate(bDate);
-            cust.setNumOrders(1);
-            cust.setRevenue(10000);
-            cust.setTest(new BigDecimal(1.5));
-            cust.setType(CustomerType.BUSINESS);
-            customers.add(cust);
-        }
-
-        return customers;
-    }
-
-    public void updateCustomer(Customer customer) {
-        System.out.println("update request was received");
-        try {
-            Thread.sleep(10000);
-        } catch (InterruptedException e) {
-            // Nothing to do here
-        }
-        System.out.println("Customer was updated");
-    }
-
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package com.example.customerservice.server;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.List;
+
+import javax.annotation.Resource;
+import javax.xml.ws.WebServiceContext;
+
+import com.example.customerservice.Customer;
+import com.example.customerservice.CustomerService;
+import com.example.customerservice.CustomerType;
+import com.example.customerservice.NoSuchCustomer;
+import com.example.customerservice.NoSuchCustomerException;
+
+public class CustomerServiceImpl implements CustomerService {
+    
+    /**
+     * The WebServiceContext can be used to retrieve special attributes like the 
+     * user principal. Normally it is not needed
+     */
+    @Resource
+    WebServiceContext wsContext;
+
+    public List&lt;Customer&gt; getCustomersByName(String name) throws NoSuchCustomerException {
+        if ("None".equals(name)) {
+            NoSuchCustomer noSuchCustomer = new NoSuchCustomer();
+            noSuchCustomer.setCustomerName(name);
+            throw new NoSuchCustomerException("Did not find any matching customer for name=" + name,
+                                              noSuchCustomer);
+        }
+
+        List&lt;Customer&gt; customers = new ArrayList&lt;Customer&gt;();
+        for (int c = 0; c &lt; 2; c++) {
+            Customer cust = new Customer();
+            cust.setName(name);
+            cust.getAddress().add("Pine Street 200");
+            Date bDate = new GregorianCalendar(2009, 01, 01).getTime();
+            cust.setBirthDate(bDate);
+            cust.setNumOrders(1);
+            cust.setRevenue(10000);
+            cust.setTest(new BigDecimal(1.5));
+            cust.setType(CustomerType.BUSINESS);
+            customers.add(cust);
+        }
+
+        return customers;
+    }
+
+    public void updateCustomer(Customer customer) {
+        System.out.println("update request was received");
+        try {
+            Thread.sleep(10000);
+        } catch (InterruptedException e) {
+            // Nothing to do here
+        }
+        System.out.println("Customer was updated");
+    }
+
+}

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceServer.java
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceServer.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceServer.java (original)
+++ cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceServer.java Thu Dec  3 22:26:58 2009
@@ -1,50 +1,50 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package com.example.customerservice.server;
-
-import javax.xml.ws.Endpoint;
-
-import com.example.customerservice.CustomerService;
-
-import org.apache.cxf.interceptor.LoggingInInterceptor;
-import org.apache.cxf.interceptor.LoggingOutInterceptor;
-import org.apache.cxf.jaxws.EndpointImpl;
-
-public class CustomerServiceServer {
-
-    protected CustomerServiceServer() throws Exception {
-        System.out.println("Starting Server");
-        CustomerService implementor = new CustomerServiceImpl();
-        EndpointImpl ep = (EndpointImpl)Endpoint.publish("http://localhost:9090/CustomerServicePort",
-                                                         implementor);
-
-        // Adding logging for incoming and outgoing messages
-        ep.getServer().getEndpoint().getInInterceptors().add(new LoggingInInterceptor());
-        ep.getServer().getEndpoint().getOutInterceptors().add(new LoggingOutInterceptor());
-    }
-
-    public static void main(String args[]) throws Exception {
-        new CustomerServiceServer();
-        System.out.println("Server ready...");
-        Thread.sleep(5 * 60 * 1000);
-        System.out.println("Server exiting");
-        System.exit(0);
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.example.customerservice.server;
+
+import javax.xml.ws.Endpoint;
+
+import com.example.customerservice.CustomerService;
+
+import org.apache.cxf.interceptor.LoggingInInterceptor;
+import org.apache.cxf.interceptor.LoggingOutInterceptor;
+import org.apache.cxf.jaxws.EndpointImpl;
+
+public class CustomerServiceServer {
+
+    protected CustomerServiceServer() throws Exception {
+        System.out.println("Starting Server");
+        CustomerService implementor = new CustomerServiceImpl();
+        EndpointImpl ep = (EndpointImpl)Endpoint.publish("http://localhost:9090/CustomerServicePort",
+                                                         implementor);
+
+        // Adding logging for incoming and outgoing messages
+        ep.getServer().getEndpoint().getInInterceptors().add(new LoggingInInterceptor());
+        ep.getServer().getEndpoint().getOutInterceptors().add(new LoggingOutInterceptor());
+    }
+
+    public static void main(String args[]) throws Exception {
+        new CustomerServiceServer();
+        System.out.println("Server ready...");
+        Thread.sleep(5 * 60 * 1000);
+        System.out.println("Server exiting");
+        System.exit(0);
+    }
+}

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceServer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceServer.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceSpringServer.java
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceSpringServer.java?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceSpringServer.java (original)
+++ cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceSpringServer.java Thu Dec  3 22:26:58 2009
@@ -1,32 +1,32 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package com.example.customerservice.server;
-
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-
-public class CustomerServiceSpringServer {
-    
-    protected CustomerServiceSpringServer() {
-    }
-
-    public static void main(String args[]) throws Exception {
-        new ClassPathXmlApplicationContext("server-applicationContext.xml");
-        System.in.read();
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package com.example.customerservice.server;
+
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public class CustomerServiceSpringServer {
+    
+    protected CustomerServiceSpringServer() {
+    }
+
+    public static void main(String args[]) throws Exception {
+        new ClassPathXmlApplicationContext("server-applicationContext.xml");
+        System.in.read();
+    }
+}

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceSpringServer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/java/com/example/customerservice/server/CustomerServiceSpringServer.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml (original)
+++ cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml Thu Dec  3 22:26:58 2009
@@ -1,50 +1,50 @@
-&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-	&lt;!--
-		Licensed to the Apache Software Foundation (ASF) under one or more
-		contributor license agreements. See the NOTICE file distributed with
-		this work for additional information regarding copyright ownership.
-		The ASF licenses this file to You under the Apache License, Version
-		2.0 (the "License"); you may not use this file except in compliance
-		with the License. You may obtain a copy of the License at
-
-		http://www.apache.org/licenses/LICENSE-2.0 Unless required by
-		applicable law or agreed to in writing, software distributed under the
-		License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-		CONDITIONS OF ANY KIND, either express or implied. See the License for
-		the specific language governing permissions and limitations under the
-		License.
-	--&gt;
-&lt;beans xmlns="http://www.springframework.org/schema/beans"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xmlns:context="http://www.springframework.org/schema/context"
-	xmlns:jaxws="http://cxf.apache.org/jaxws"
-	xmlns:customer="http://customerservice.example.com/"
-	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
-		http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
-		http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
-"&gt;
-
-	&lt;import resource="classpath:META-INF/cxf/cxf.xml" /&gt;
-	&lt;import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /&gt;
-	&lt;import resource="classpath:META-INF/cxf/cxf-extension-http.xml" /&gt;
-
-	&lt;!--
-		Define a cxf endpoint based on client stub generated from a wsdl. It
-		is important to provide serviceName and endpointName so the wsdl is
-		not needed at runtime. As far as I know the serviceName and
-		endpointName do not have to have a special convention but it is good
-		practice to use the service namespace and Service Interface name in
-		the names
-	--&gt;
-	&lt;jaxws:client id="customerService" 
-		serviceName="customer:CustomerServiceService" 
-		endpointName="customer:CustomerServiceEndpoint"
-		address="http://localhost:9090/CustomerServicePort" 
-		serviceClass="com.example.customerservice.CustomerService"&gt;
-	&lt;/jaxws:client&gt;
-	
-	&lt;bean id="tester" class="com.example.customerservice.client.CustomerServiceTester"&gt;
-		&lt;property name="customerService" ref="customerService"&gt;&lt;/property&gt;
-	&lt;/bean&gt;
-&lt;/beans&gt;
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+	&lt;!--
+		Licensed to the Apache Software Foundation (ASF) under one or more
+		contributor license agreements. See the NOTICE file distributed with
+		this work for additional information regarding copyright ownership.
+		The ASF licenses this file to You under the Apache License, Version
+		2.0 (the "License"); you may not use this file except in compliance
+		with the License. You may obtain a copy of the License at
+
+		http://www.apache.org/licenses/LICENSE-2.0 Unless required by
+		applicable law or agreed to in writing, software distributed under the
+		License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+		CONDITIONS OF ANY KIND, either express or implied. See the License for
+		the specific language governing permissions and limitations under the
+		License.
+	--&gt;
+&lt;beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:context="http://www.springframework.org/schema/context"
+	xmlns:jaxws="http://cxf.apache.org/jaxws"
+	xmlns:customer="http://customerservice.example.com/"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
+		http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
+		http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
+"&gt;
+
+	&lt;import resource="classpath:META-INF/cxf/cxf.xml" /&gt;
+	&lt;import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /&gt;
+	&lt;import resource="classpath:META-INF/cxf/cxf-extension-http.xml" /&gt;
+
+	&lt;!--
+		Define a cxf endpoint based on client stub generated from a wsdl. It
+		is important to provide serviceName and endpointName so the wsdl is
+		not needed at runtime. As far as I know the serviceName and
+		endpointName do not have to have a special convention but it is good
+		practice to use the service namespace and Service Interface name in
+		the names
+	--&gt;
+	&lt;jaxws:client id="customerService" 
+		serviceName="customer:CustomerServiceService" 
+		endpointName="customer:CustomerServiceEndpoint"
+		address="http://localhost:9090/CustomerServicePort" 
+		serviceClass="com.example.customerservice.CustomerService"&gt;
+	&lt;/jaxws:client&gt;
+	
+	&lt;bean id="tester" class="com.example.customerservice.client.CustomerServiceTester"&gt;
+		&lt;property name="customerService" ref="customerService"&gt;&lt;/property&gt;
+	&lt;/bean&gt;
+&lt;/beans&gt;

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/client-applicationContext.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml (original)
+++ cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml Thu Dec  3 22:26:58 2009
@@ -1,38 +1,38 @@
-&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-&lt;!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements. See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership. The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License. You may obtain a copy of the License at
- 
-  http://www.apache.org/licenses/LICENSE-2.0
- 
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied. See the License for the
-  specific language governing permissions and limitations
-  under the License.
---&gt;
-&lt;beans xmlns="http://www.springframework.org/schema/beans"
-      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-      xmlns:jaxws="http://cxf.apache.org/jaxws"
-      xmlns:soap="http://cxf.apache.org/bindings/soap"
-      xsi:schemaLocation="
-http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
-http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd
-http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"&gt;
-
-    &lt;jaxws:endpoint
-        id="hello_world"
-        implementor="demo.hw.server.GreeterImpl"
-        wsdlLocation="WEB-INF/wsdl/hello_world.wsdl"
-        address="/hello_world"&gt;
-                &lt;jaxws:features&gt;
- 		    &lt;bean class="org.apache.cxf.feature.LoggingFeature"/&gt;
-                &lt;/jaxws:features&gt;
-    &lt;/jaxws:endpoint&gt;
-&lt;/beans&gt;
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+ 
+  http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+--&gt;
+&lt;beans xmlns="http://www.springframework.org/schema/beans"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xmlns:jaxws="http://cxf.apache.org/jaxws"
+      xmlns:soap="http://cxf.apache.org/bindings/soap"
+      xsi:schemaLocation="
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd
+http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"&gt;
+
+    &lt;jaxws:endpoint
+        id="hello_world"
+        implementor="demo.hw.server.GreeterImpl"
+        wsdlLocation="WEB-INF/wsdl/hello_world.wsdl"
+        address="/hello_world"&gt;
+                &lt;jaxws:features&gt;
+ 		    &lt;bean class="org.apache.cxf.feature.LoggingFeature"/&gt;
+                &lt;/jaxws:features&gt;
+    &lt;/jaxws:endpoint&gt;
+&lt;/beans&gt;

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/cxf-servlet.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml (original)
+++ cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml Thu Dec  3 22:26:58 2009
@@ -1,40 +1,40 @@
-&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-	&lt;!--
-		Licensed to the Apache Software Foundation (ASF) under one or more
-		contributor license agreements. See the NOTICE file distributed with
-		this work for additional information regarding copyright ownership.
-		The ASF licenses this file to You under the Apache License, Version
-		2.0 (the "License"); you may not use this file except in compliance
-		with the License. You may obtain a copy of the License at
-
-		http://www.apache.org/licenses/LICENSE-2.0 Unless required by
-		applicable law or agreed to in writing, software distributed under the
-		License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-		CONDITIONS OF ANY KIND, either express or implied. See the License for
-		the specific language governing permissions and limitations under the
-		License.
-	--&gt;
-&lt;beans xmlns="http://www.springframework.org/schema/beans"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"
-	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
-		http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
-		http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
-"&gt;
-
-	&lt;import resource="classpath:META-INF/cxf/cxf.xml" /&gt;
-	&lt;import resource="classpath:META-INF/cxf/cxf-extension-http.xml" /&gt;
-	&lt;import resource="classpath:META-INF/cxf/cxf-extension-http-jetty.xml" /&gt;
-	&lt;import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /&gt;
-
-	&lt;!-- HTTP Endpoint --&gt;
-	&lt;jaxws:endpoint xmlns:customer="http://customerservice.example.com/"
-		id="CustomerServiceHTTP" address="http://localhost:9090/CustomerServicePort"
-		serviceName="customer:CustomerServiceService" endpointName="customer:CustomerServiceEndpoint"
-		implementor="com.example.customerservice.server.CustomerServiceImpl"&gt;
-		&lt;jaxws:features&gt;
-			&lt;bean class="org.apache.cxf.feature.LoggingFeature" /&gt;
-		&lt;/jaxws:features&gt;
-	&lt;/jaxws:endpoint&gt;
-
-&lt;/beans&gt;
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+	&lt;!--
+		Licensed to the Apache Software Foundation (ASF) under one or more
+		contributor license agreements. See the NOTICE file distributed with
+		this work for additional information regarding copyright ownership.
+		The ASF licenses this file to You under the Apache License, Version
+		2.0 (the "License"); you may not use this file except in compliance
+		with the License. You may obtain a copy of the License at
+
+		http://www.apache.org/licenses/LICENSE-2.0 Unless required by
+		applicable law or agreed to in writing, software distributed under the
+		License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+		CONDITIONS OF ANY KIND, either express or implied. See the License for
+		the specific language governing permissions and limitations under the
+		License.
+	--&gt;
+&lt;beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
+		http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
+		http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
+"&gt;
+
+	&lt;import resource="classpath:META-INF/cxf/cxf.xml" /&gt;
+	&lt;import resource="classpath:META-INF/cxf/cxf-extension-http.xml" /&gt;
+	&lt;import resource="classpath:META-INF/cxf/cxf-extension-http-jetty.xml" /&gt;
+	&lt;import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /&gt;
+
+	&lt;!-- HTTP Endpoint --&gt;
+	&lt;jaxws:endpoint xmlns:customer="http://customerservice.example.com/"
+		id="CustomerServiceHTTP" address="http://localhost:9090/CustomerServicePort"
+		serviceName="customer:CustomerServiceService" endpointName="customer:CustomerServiceEndpoint"
+		implementor="com.example.customerservice.server.CustomerServiceImpl"&gt;
+		&lt;jaxws:features&gt;
+			&lt;bean class="org.apache.cxf.feature.LoggingFeature" /&gt;
+		&lt;/jaxws:features&gt;
+	&lt;/jaxws:endpoint&gt;
+
+&lt;/beans&gt;

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/src/main/resources/server-applicationContext.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: cxf/trunk/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl (original)
+++ cxf/trunk/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl Thu Dec  3 22:26:58 2009
@@ -1,123 +1,123 @@
-&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-&lt;!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements. See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership. The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License. You may obtain a copy of the License at
- 
-  http://www.apache.org/licenses/LICENSE-2.0
- 
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied. See the License for the
-  specific language governing permissions and limitations
-  under the License.
---&gt;
-&lt;wsdl:definitions name="CustomerServiceService" targetNamespace="http://customerservice.example.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://customerservice.example.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"&gt;
-  &lt;wsdl:types&gt;
-&lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://customerservice.example.com/" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://customerservice.example.com/"&gt;
-&lt;xs:element name="getCustomersByName" type="tns:getCustomersByName"/&gt;
-&lt;xs:element name="getCustomersByNameResponse" type="tns:getCustomersByNameResponse"/&gt;
-&lt;xs:element name="updateCustomer" type="tns:updateCustomer"/&gt;
-&lt;xs:complexType name="updateCustomer"&gt;
-&lt;xs:sequence&gt;
-&lt;xs:element minOccurs="0" name="customer" type="tns:customer"/&gt;
-&lt;/xs:sequence&gt;
-&lt;/xs:complexType&gt;
-&lt;xs:complexType name="customer"&gt;
-&lt;xs:sequence&gt;
-&lt;xs:element name="customerId" type="xs:int"/&gt;
-&lt;xs:element minOccurs="0" name="name" type="xs:string"/&gt;
-&lt;xs:element maxOccurs="unbounded" minOccurs="0" name="address" nillable="true" type="xs:string"/&gt;
-&lt;xs:element minOccurs="0" name="numOrders" type="xs:int"/&gt;
-&lt;xs:element name="revenue" type="xs:double"/&gt;
-&lt;xs:element minOccurs="0" name="test" type="xs:decimal"/&gt;
-&lt;xs:element minOccurs="0" name="birthDate" type="xs:date"/&gt;
-&lt;xs:element minOccurs="0" name="type" type="tns:customerType"/&gt;
-&lt;/xs:sequence&gt;
-&lt;/xs:complexType&gt;
-&lt;xs:complexType name="getCustomersByName"&gt;
-&lt;xs:sequence&gt;
-&lt;xs:element minOccurs="0" name="name" type="xs:string"/&gt;
-&lt;/xs:sequence&gt;
-&lt;/xs:complexType&gt;
-&lt;xs:complexType name="getCustomersByNameResponse"&gt;
-&lt;xs:sequence&gt;
-&lt;xs:element maxOccurs="unbounded" minOccurs="0" name="return" type="tns:customer"/&gt;
-&lt;/xs:sequence&gt;
-&lt;/xs:complexType&gt;
-&lt;xs:simpleType name="customerType"&gt;
-&lt;xs:restriction base="xs:string"&gt;
-&lt;xs:enumeration value="PRIVATE"/&gt;
-&lt;xs:enumeration value="BUSINESS"/&gt;
-&lt;/xs:restriction&gt;
-&lt;/xs:simpleType&gt;
-&lt;xs:element name="NoSuchCustomer" type="tns:NoSuchCustomer"/&gt;
-&lt;xs:complexType name="NoSuchCustomer"&gt;
-&lt;xs:sequence&gt;
-&lt;xs:element name="customerName" nillable="true" type="xs:string"/&gt;
-&lt;/xs:sequence&gt;
-&lt;/xs:complexType&gt;
-&lt;/xs:schema&gt;
-  &lt;/wsdl:types&gt;
-  &lt;wsdl:message name="getCustomersByNameResponse"&gt;
-    &lt;wsdl:part name="parameters" element="tns:getCustomersByNameResponse"&gt;
-    &lt;/wsdl:part&gt;
-  &lt;/wsdl:message&gt;
-  &lt;wsdl:message name="getCustomersByName"&gt;
-    &lt;wsdl:part name="parameters" element="tns:getCustomersByName"&gt;
-    &lt;/wsdl:part&gt;
-  &lt;/wsdl:message&gt;
-  &lt;wsdl:message name="updateCustomer"&gt;
-    &lt;wsdl:part name="parameters" element="tns:updateCustomer"&gt;
-    &lt;/wsdl:part&gt;
-  &lt;/wsdl:message&gt;
-  &lt;wsdl:message name="NoSuchCustomerException"&gt;
-    &lt;wsdl:part name="NoSuchCustomerException" element="tns:NoSuchCustomer"&gt;
-    &lt;/wsdl:part&gt;
-  &lt;/wsdl:message&gt;
-  &lt;wsdl:portType name="CustomerService"&gt;
-    &lt;wsdl:operation name="updateCustomer"&gt;
-      &lt;wsdl:input name="updateCustomer" message="tns:updateCustomer"&gt;
-    &lt;/wsdl:input&gt;
-    &lt;/wsdl:operation&gt;
-    &lt;wsdl:operation name="getCustomersByName"&gt;
-      &lt;wsdl:input name="getCustomersByName" message="tns:getCustomersByName"&gt;
-    &lt;/wsdl:input&gt;
-      &lt;wsdl:output name="getCustomersByNameResponse" message="tns:getCustomersByNameResponse"&gt;
-    &lt;/wsdl:output&gt;
-      &lt;wsdl:fault name="NoSuchCustomerException" message="tns:NoSuchCustomerException"&gt;
-    &lt;/wsdl:fault&gt;
-    &lt;/wsdl:operation&gt;
-  &lt;/wsdl:portType&gt;
-  &lt;wsdl:binding name="CustomerServiceServiceSoapBinding" type="tns:CustomerService"&gt;
-    &lt;soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/&gt;
-    &lt;wsdl:operation name="updateCustomer"&gt;
-      &lt;soap:operation soapAction="" style="document"/&gt;
-      &lt;wsdl:input name="updateCustomer"&gt;
-        &lt;soap:body use="literal"/&gt;
-      &lt;/wsdl:input&gt;
-    &lt;/wsdl:operation&gt;
-    &lt;wsdl:operation name="getCustomersByName"&gt;
-      &lt;soap:operation soapAction="" style="document"/&gt;
-      &lt;wsdl:input name="getCustomersByName"&gt;
-        &lt;soap:body use="literal"/&gt;
-      &lt;/wsdl:input&gt;
-      &lt;wsdl:output name="getCustomersByNameResponse"&gt;
-        &lt;soap:body use="literal"/&gt;
-      &lt;/wsdl:output&gt;
-      &lt;wsdl:fault name="NoSuchCustomerException"&gt;
-        &lt;soap:fault name="NoSuchCustomerException" use="literal"/&gt;
-      &lt;/wsdl:fault&gt;
-    &lt;/wsdl:operation&gt;
-  &lt;/wsdl:binding&gt;
-  &lt;wsdl:service name="CustomerServiceService"&gt;
-    &lt;wsdl:port name="CustomerServicePort" binding="tns:CustomerServiceServiceSoapBinding"&gt;
-      &lt;soap:address location="http://localhost:9090/CustomerServicePort"/&gt;
-    &lt;/wsdl:port&gt;
-  &lt;/wsdl:service&gt;
-&lt;/wsdl:definitions&gt;
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+ 
+  http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+--&gt;
+&lt;wsdl:definitions name="CustomerServiceService" targetNamespace="http://customerservice.example.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://customerservice.example.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"&gt;
+  &lt;wsdl:types&gt;
+&lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://customerservice.example.com/" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://customerservice.example.com/"&gt;
+&lt;xs:element name="getCustomersByName" type="tns:getCustomersByName"/&gt;
+&lt;xs:element name="getCustomersByNameResponse" type="tns:getCustomersByNameResponse"/&gt;
+&lt;xs:element name="updateCustomer" type="tns:updateCustomer"/&gt;
+&lt;xs:complexType name="updateCustomer"&gt;
+&lt;xs:sequence&gt;
+&lt;xs:element minOccurs="0" name="customer" type="tns:customer"/&gt;
+&lt;/xs:sequence&gt;
+&lt;/xs:complexType&gt;
+&lt;xs:complexType name="customer"&gt;
+&lt;xs:sequence&gt;
+&lt;xs:element name="customerId" type="xs:int"/&gt;
+&lt;xs:element minOccurs="0" name="name" type="xs:string"/&gt;
+&lt;xs:element maxOccurs="unbounded" minOccurs="0" name="address" nillable="true" type="xs:string"/&gt;
+&lt;xs:element minOccurs="0" name="numOrders" type="xs:int"/&gt;
+&lt;xs:element name="revenue" type="xs:double"/&gt;
+&lt;xs:element minOccurs="0" name="test" type="xs:decimal"/&gt;
+&lt;xs:element minOccurs="0" name="birthDate" type="xs:date"/&gt;
+&lt;xs:element minOccurs="0" name="type" type="tns:customerType"/&gt;
+&lt;/xs:sequence&gt;
+&lt;/xs:complexType&gt;
+&lt;xs:complexType name="getCustomersByName"&gt;
+&lt;xs:sequence&gt;
+&lt;xs:element minOccurs="0" name="name" type="xs:string"/&gt;
+&lt;/xs:sequence&gt;
+&lt;/xs:complexType&gt;
+&lt;xs:complexType name="getCustomersByNameResponse"&gt;
+&lt;xs:sequence&gt;
+&lt;xs:element maxOccurs="unbounded" minOccurs="0" name="return" type="tns:customer"/&gt;
+&lt;/xs:sequence&gt;
+&lt;/xs:complexType&gt;
+&lt;xs:simpleType name="customerType"&gt;
+&lt;xs:restriction base="xs:string"&gt;
+&lt;xs:enumeration value="PRIVATE"/&gt;
+&lt;xs:enumeration value="BUSINESS"/&gt;
+&lt;/xs:restriction&gt;
+&lt;/xs:simpleType&gt;
+&lt;xs:element name="NoSuchCustomer" type="tns:NoSuchCustomer"/&gt;
+&lt;xs:complexType name="NoSuchCustomer"&gt;
+&lt;xs:sequence&gt;
+&lt;xs:element name="customerName" nillable="true" type="xs:string"/&gt;
+&lt;/xs:sequence&gt;
+&lt;/xs:complexType&gt;
+&lt;/xs:schema&gt;
+  &lt;/wsdl:types&gt;
+  &lt;wsdl:message name="getCustomersByNameResponse"&gt;
+    &lt;wsdl:part name="parameters" element="tns:getCustomersByNameResponse"&gt;
+    &lt;/wsdl:part&gt;
+  &lt;/wsdl:message&gt;
+  &lt;wsdl:message name="getCustomersByName"&gt;
+    &lt;wsdl:part name="parameters" element="tns:getCustomersByName"&gt;
+    &lt;/wsdl:part&gt;
+  &lt;/wsdl:message&gt;
+  &lt;wsdl:message name="updateCustomer"&gt;
+    &lt;wsdl:part name="parameters" element="tns:updateCustomer"&gt;
+    &lt;/wsdl:part&gt;
+  &lt;/wsdl:message&gt;
+  &lt;wsdl:message name="NoSuchCustomerException"&gt;
+    &lt;wsdl:part name="NoSuchCustomerException" element="tns:NoSuchCustomer"&gt;
+    &lt;/wsdl:part&gt;
+  &lt;/wsdl:message&gt;
+  &lt;wsdl:portType name="CustomerService"&gt;
+    &lt;wsdl:operation name="updateCustomer"&gt;
+      &lt;wsdl:input name="updateCustomer" message="tns:updateCustomer"&gt;
+    &lt;/wsdl:input&gt;
+    &lt;/wsdl:operation&gt;
+    &lt;wsdl:operation name="getCustomersByName"&gt;
+      &lt;wsdl:input name="getCustomersByName" message="tns:getCustomersByName"&gt;
+    &lt;/wsdl:input&gt;
+      &lt;wsdl:output name="getCustomersByNameResponse" message="tns:getCustomersByNameResponse"&gt;
+    &lt;/wsdl:output&gt;
+      &lt;wsdl:fault name="NoSuchCustomerException" message="tns:NoSuchCustomerException"&gt;
+    &lt;/wsdl:fault&gt;
+    &lt;/wsdl:operation&gt;
+  &lt;/wsdl:portType&gt;
+  &lt;wsdl:binding name="CustomerServiceServiceSoapBinding" type="tns:CustomerService"&gt;
+    &lt;soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/&gt;
+    &lt;wsdl:operation name="updateCustomer"&gt;
+      &lt;soap:operation soapAction="" style="document"/&gt;
+      &lt;wsdl:input name="updateCustomer"&gt;
+        &lt;soap:body use="literal"/&gt;
+      &lt;/wsdl:input&gt;
+    &lt;/wsdl:operation&gt;
+    &lt;wsdl:operation name="getCustomersByName"&gt;
+      &lt;soap:operation soapAction="" style="document"/&gt;
+      &lt;wsdl:input name="getCustomersByName"&gt;
+        &lt;soap:body use="literal"/&gt;
+      &lt;/wsdl:input&gt;
+      &lt;wsdl:output name="getCustomersByNameResponse"&gt;
+        &lt;soap:body use="literal"/&gt;
+      &lt;/wsdl:output&gt;
+      &lt;wsdl:fault name="NoSuchCustomerException"&gt;
+        &lt;soap:fault name="NoSuchCustomerException" use="literal"/&gt;
+      &lt;/wsdl:fault&gt;
+    &lt;/wsdl:operation&gt;
+  &lt;/wsdl:binding&gt;
+  &lt;wsdl:service name="CustomerServiceService"&gt;
+    &lt;wsdl:port name="CustomerServicePort" binding="tns:CustomerServiceServiceSoapBinding"&gt;
+      &lt;soap:address location="http://localhost:9090/CustomerServicePort"/&gt;
+    &lt;/wsdl:port&gt;
+  &lt;/wsdl:service&gt;
+&lt;/wsdl:definitions&gt;

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/wsdl/CustomerService.wsdl
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Thu Dec  3 22:26:58 2009
@@ -1 +1 @@
-text/plain
+text/xml

Modified: cxf/trunk/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml?rev=886957&amp;r1=886956&amp;r2=886957&amp;view=diff
==============================================================================
--- cxf/trunk/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml (original)
+++ cxf/trunk/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml Thu Dec  3 22:26:58 2009
@@ -1,17 +1,17 @@
-&lt;jaxws:bindings wsdlLocation="CustomerService.wsdl"
-          xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
-          xmlns:xs="http://www.w3.org/2001/XMLSchema"
-          xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
-          xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"&gt;
-  &lt;!-- &lt;jaxws:enableAsyncMapping&gt;true&lt;/jaxws:enableAsyncMapping&gt; --&gt;
-  &lt;jaxws:bindings  node="wsdl:definitions/wsdl:types/xs:schema"&gt;
-      &lt;jxb:globalBindings&gt;
-        &lt;jxb:javaType name="java.util.Date" xmlType="xs:dateTime"
-                      parseMethod="org.apache.cxf.tools.common.DataTypeAdapter.parseDateTime"
-                      printMethod="org.apache.cxf.tools.common.DataTypeAdapter.printDateTime"/&gt;
-        &lt;jxb:javaType name="java.util.Date" xmlType="xs:date"
-                      parseMethod="org.apache.cxf.tools.common.DataTypeAdapter.parseDate"
-                      printMethod="org.apache.cxf.tools.common.DataTypeAdapter.printDate"/&gt;
-      &lt;/jxb:globalBindings&gt;
-  &lt;/jaxws:bindings&gt;
+&lt;jaxws:bindings wsdlLocation="CustomerService.wsdl"
+          xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
+          xmlns:xs="http://www.w3.org/2001/XMLSchema"
+          xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
+          xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"&gt;
+  &lt;!-- &lt;jaxws:enableAsyncMapping&gt;true&lt;/jaxws:enableAsyncMapping&gt; --&gt;
+  &lt;jaxws:bindings  node="wsdl:definitions/wsdl:types/xs:schema"&gt;
+      &lt;jxb:globalBindings&gt;
+        &lt;jxb:javaType name="java.util.Date" xmlType="xs:dateTime"
+                      parseMethod="org.apache.cxf.tools.common.DataTypeAdapter.parseDateTime"
+                      printMethod="org.apache.cxf.tools.common.DataTypeAdapter.printDateTime"/&gt;
+        &lt;jxb:javaType name="java.util.Date" xmlType="xs:date"
+                      parseMethod="org.apache.cxf.tools.common.DataTypeAdapter.parseDate"
+                      printMethod="org.apache.cxf.tools.common.DataTypeAdapter.printDate"/&gt;
+      &lt;/jxb:globalBindings&gt;
+  &lt;/jaxws:bindings&gt;
 &lt;/jaxws:bindings&gt;
\ No newline at end of file

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/distribution/src/main/release/samples/wsdl_first/wsdl/binding.xml
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Thu Dec  3 22:26:58 2009
@@ -1 +1 @@
-text/plain
+text/xml




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886953 - in /cxf/branches/2.2.x-fixes: ./ rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLManagerImpl.java</title>
<author><name>dkulp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091203221940.13F3523889E7@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091203221940-13F3523889E7@eris-apache-org%3e</id>
<updated>2009-12-03T22:19:39Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: dkulp
Date: Thu Dec  3 22:19:39 2009
New Revision: 886953

URL: http://svn.apache.org/viewvc?rev=886953&amp;view=rev
Log:
Merged revisions 886934 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r886934 | dkulp | 2009-12-03 16:54:19 -0500 (Thu, 03 Dec 2009) | 2 lines
  
  Put in place a guard against problems of our resolvers not being able to
  resolve a wsdl, but wsd4j can.
........

Modified:
    cxf/branches/2.2.x-fixes/   (props changed)
    cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLManagerImpl.java

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLManagerImpl.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLManagerImpl.java?rev=886953&amp;r1=886952&amp;r2=886953&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLManagerImpl.java
(original)
+++ cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLManagerImpl.java
Thu Dec  3 22:19:39 2009
@@ -212,21 +212,26 @@
                                                                                 catLocator,
                                                                                 bus);
         InputSource src = wsdlLocator.getBaseInputSource();
-        Document doc;
-        try {
-            doc = StaxUtils.read(StaxUtils.createXMLStreamReader(src), true);
-            if (src.getSystemId() != null) {
-                try {
-                    doc.setDocumentURI(new String(src.getSystemId()));
-                } catch (Exception e) {
-                    // ignore - probably not DOM level 3
+        Definition def = null;
+        if (src.getByteStream() != null || src.getCharacterStream() != null) {
+            Document doc;
+            try {
+                doc = StaxUtils.read(StaxUtils.createXMLStreamReader(src), true);
+                if (src.getSystemId() != null) {
+                    try {
+                        doc.setDocumentURI(new String(src.getSystemId()));
+                    } catch (Exception e) {
+                        //ignore - probably not DOM level 3
+                    }
                 }
+            } catch (Exception e) {
+                throw new WSDLException(WSDLException.PARSER_ERROR, e.getMessage(), e);
             }
-        } catch (Exception e) {
-            throw new WSDLException(WSDLException.PARSER_ERROR, e.getMessage(), e);
+            def = reader.readWSDL(wsdlLocator, doc.getDocumentElement());
+        } else {
+            def = reader.readWSDL(wsdlLocator);
         }
         
-        Definition def = reader.readWSDL(wsdlLocator, doc.getDocumentElement());
         synchronized (definitionsMap) {
             definitionsMap.put(url, def);
         }




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886949 - in /cxf/branches/2.2.x-fixes: ./ rt/javascript/src/main/java/org/apache/cxf/javascript/ rt/javascript/src/main/java/org/apache/cxf/javascript/types/ rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/ rt/javascript/src/...</title>
<author><name>dkulp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091203221734.1BA0523888EC@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091203221734-1BA0523888EC@eris-apache-org%3e</id>
<updated>2009-12-03T22:17:33Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: dkulp
Date: Thu Dec  3 22:17:33 2009
New Revision: 886949

URL: http://svn.apache.org/viewvc?rev=886949&amp;view=rev
Log:
Merged revisions 885760 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r885760 | bimargulies | 2009-12-01 08:28:42 -0500 (Tue, 01 Dec 2009) | 1 line
  
  CXF-2568
........

Modified:
    cxf/branches/2.2.x-fixes/   (props changed)
    cxf/branches/2.2.x-fixes/rt/javascript/src/main/java/org/apache/cxf/javascript/ParticleInfo.java
    cxf/branches/2.2.x-fixes/rt/javascript/src/main/java/org/apache/cxf/javascript/types/SchemaJavascriptBuilder.java
    cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SimpleDocLitWrapped.java
    cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SimpleDocLitWrappedImpl.java
    cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/TestBean1.java
    cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/TestBean3.java
    cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/types/SerializationTest.java
    cxf/branches/2.2.x-fixes/rt/javascript/src/test/resources/serializationTests.js

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.2.x-fixes/rt/javascript/src/main/java/org/apache/cxf/javascript/ParticleInfo.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/javascript/src/main/java/org/apache/cxf/javascript/ParticleInfo.java?rev=886949&amp;r1=886948&amp;r2=886949&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/javascript/src/main/java/org/apache/cxf/javascript/ParticleInfo.java
(original)
+++ cxf/branches/2.2.x-fixes/rt/javascript/src/main/java/org/apache/cxf/javascript/ParticleInfo.java
Thu Dec  3 22:17:33 2009
@@ -189,7 +189,15 @@
             // with elements with identical local names and different
             // namespaces.
             elementInfo.javascriptName = elementQName.getLocalPart();
-            elementInfo.defaultValue = element.getDefaultValue();
+            String schemaDefaultValue = element.getDefaultValue();
+            /*
+             * Schema default values are carried as strings. 
+             * In javascript, for actual strings, we need quotes, but not for
+             * numbers. The following is a trick.
+             */
+            schemaDefaultValue = protectDefaultValue(schemaDefaultValue);
+
+            elementInfo.defaultValue = schemaDefaultValue;
             factorySetupType(element, schemaCollection, elementInfo);
         } else { // any
             elementInfo.any = true;
@@ -201,6 +209,40 @@
         }
     }
 
+    private static String protectDefaultValue(String schemaDefaultValue) {
+        if (schemaDefaultValue == null) {
+            return null;
+        }
+        boolean leaveAlone = false;
+        try {
+            Long.parseLong(schemaDefaultValue);
+            leaveAlone = true;
+        } catch (NumberFormatException nfe) {
+            try {
+                Double.parseDouble(schemaDefaultValue);
+                leaveAlone = true;
+            } catch (NumberFormatException nfe2) {
+                //
+            }
+        }
+        if (!leaveAlone) {
+            StringBuilder builder = new StringBuilder();
+            builder.append("'");
+            for (char c : schemaDefaultValue.toCharArray()) {
+                if (c == '\'') {
+                    builder.append("\\'");
+                } else if (c == '\\') {
+                    builder.append("\\\\");
+                } else {
+                    builder.append(c);
+                }
+            }
+            builder.append('\'');
+            schemaDefaultValue = builder.toString(); 
+        }
+        return schemaDefaultValue;
+    }
+
     private static void factorySetupType(XmlSchemaElement element, SchemaCollection schemaCollection,
                                          ParticleInfo elementInfo) {
         elementInfo.type = element.getSchemaType();
@@ -351,4 +393,9 @@
     public boolean isGlobal() {
         return global;
     }
+
+    @Override
+    public String toString() {
+        return "ItemInfo: " + javascriptName;
+    }
 }

Modified: cxf/branches/2.2.x-fixes/rt/javascript/src/main/java/org/apache/cxf/javascript/types/SchemaJavascriptBuilder.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/javascript/src/main/java/org/apache/cxf/javascript/types/SchemaJavascriptBuilder.java?rev=886949&amp;r1=886948&amp;r2=886949&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/javascript/src/main/java/org/apache/cxf/javascript/types/SchemaJavascriptBuilder.java
(original)
+++ cxf/branches/2.2.x-fixes/rt/javascript/src/main/java/org/apache/cxf/javascript/types/SchemaJavascriptBuilder.java
Thu Dec  3 22:17:33 2009
@@ -230,7 +230,6 @@
                                   final String elementPrefix, 
                                   String typeObjectName, 
                                   ItemInfo itemInfo) {
-
             
         String accessorSuffix = StringUtils.capitalize(itemInfo.getJavascriptName());
 
@@ -287,6 +286,7 @@
             // application code is responsible for this.
             utils.appendLine("this._" + itemInfo.getJavascriptName() + " = null;");
         } else {
+
             if (itemInfo.getDefaultValue() == null) {
                 itemInfo.setDefaultValue(utils.getDefaultValueForSimpleType(itemInfo.getType()));
             }

Modified: cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SimpleDocLitWrapped.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SimpleDocLitWrapped.java?rev=886949&amp;r1=886948&amp;r2=886949&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SimpleDocLitWrapped.java
(original)
+++ cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SimpleDocLitWrapped.java
Thu Dec  3 22:17:33 2009
@@ -76,4 +76,7 @@
     
     @WebMethod 
     void inheritanceTestFunction(@WebParam(name = "d") InheritanceTestDerived d);
+    
+    @WebMethod
+    AnEnum enumEcho(@WebParam(name = "ev") AnEnum value);
 }

Modified: cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SimpleDocLitWrappedImpl.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SimpleDocLitWrappedImpl.java?rev=886949&amp;r1=886948&amp;r2=886949&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SimpleDocLitWrappedImpl.java
(original)
+++ cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SimpleDocLitWrappedImpl.java
Thu Dec  3 22:17:33 2009
@@ -163,4 +163,8 @@
         return lastInheritanceTestDerived;
     }
 
+    public AnEnum enumEcho(AnEnum value) {
+        return value;
+    }
+
 }

Modified: cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/TestBean1.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/TestBean1.java?rev=886949&amp;r1=886948&amp;r2=886949&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/TestBean1.java
(original)
+++ cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/TestBean1.java
Thu Dec  3 22:17:33 2009
@@ -22,11 +22,13 @@
 import java.util.Arrays;
 
 import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 
 /**
  * Bean with a selection of elements suitable for testing the JavaScript client.
  */
+@XmlRootElement(namespace = "uri:org.apache.cxf.javascript.testns")
 @XmlType(namespace = "uri:org.apache.cxf.javascript.testns")
 public class TestBean1 {
     
@@ -35,6 +37,7 @@
         doubleItem = -1.0;
         beanTwoItem = new TestBean2("required=true");
         beanTwoNotRequiredItem = null;
+        enumeration = AnEnum.Animal;
     }
     
     //CHECKSTYLE:OFF
@@ -56,13 +59,12 @@
     public TestBean2 beanTwoItem;
     @XmlElement(required = false)
     public TestBean2 beanTwoNotRequiredItem;
+    @XmlElement(defaultValue = "Animal", required = true)
     public AnEnum enumeration;
+    @XmlElement 
+    public AnEnum enum2;
     //CHECKSTYLE:ON
     
-    public AnEnum getEnumeration() {
-        return enumeration;
-    }
-    
     @Override
     public boolean equals(Object obj) {
         if (!(obj instanceof TestBean1)) {

Modified: cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/TestBean3.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/TestBean3.java?rev=886949&amp;r1=886948&amp;r2=886949&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/TestBean3.java
(original)
+++ cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/TestBean3.java
Thu Dec  3 22:17:33 2009
@@ -123,7 +123,7 @@
     @Override
     public String toString() {
         StringBuilder builder = new StringBuilder();
-        builder.append("TestBean1");
+        builder.append("TestBean3");
         builder.append(" stringItem ");
         builder.append(stringItem == null ? "Null" : stringItem);
         builder.append(" intItem ");

Modified: cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/types/SerializationTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/types/SerializationTest.java?rev=886949&amp;r1=886948&amp;r2=886949&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/types/SerializationTest.java
(original)
+++ cxf/branches/2.2.x-fixes/rt/javascript/src/test/java/org/apache/cxf/javascript/types/SerializationTest.java
Thu Dec  3 22:17:33 2009
@@ -43,7 +43,6 @@
 import org.apache.cxf.javascript.NamespacePrefixAccumulator;
 import org.apache.cxf.javascript.fortest.TestBean1;
 import org.apache.cxf.javascript.fortest.TestBean2;
-import org.apache.cxf.javascript.fortest.TestBean3;
 import org.apache.cxf.jaxb.JAXBDataBinding;
 import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
 import org.apache.cxf.service.model.SchemaInfo;
@@ -86,15 +85,15 @@
     public void testDeserialization() throws Exception {
         setupClientAndRhino("simple-dlwu-proxy-factory");
         testUtilities.readResourceIntoRhino("/deserializationTests.js");
-        DataBinding dataBinding = new JAXBDataBinding(TestBean3.class, TestBean2.class);
+        DataBinding dataBinding = new JAXBDataBinding(TestBean1.class, TestBean2.class);
         assertNotNull(dataBinding);
-        TestBean3 bean = new TestBean3();
+        TestBean1 bean = new TestBean1();
         bean.stringItem = "bean1&gt;stringItem";
         bean.doubleItem = -1.0;
         String serialized = serializeObject(dataBinding, bean);
         testUtilities.rhinoCallInContext("deserializeTestBean3_1", serialized);
 
-        bean = new TestBean3();
+        bean = new TestBean1();
         bean.stringItem = null;
         bean.intItem = 21;
         bean.longItem = 200000001;
@@ -109,7 +108,7 @@
         testUtilities.rhinoCallInContext("deserializeTestBean3_2", serialized);
     }
 
-    private String serializeObject(DataBinding dataBinding, TestBean3 bean) throws XMLStreamException
{
+    private String serializeObject(DataBinding dataBinding, TestBean1 bean) throws XMLStreamException
{
         DataWriter&lt;XMLStreamWriter&gt; writer = dataBinding.createWriter(XMLStreamWriter.class);
         StringWriter stringWriter = new StringWriter();
         XMLStreamWriter xmlStreamWriter = xmlOutputFactory.createXMLStreamWriter(stringWriter);

Modified: cxf/branches/2.2.x-fixes/rt/javascript/src/test/resources/serializationTests.js
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/javascript/src/test/resources/serializationTests.js?rev=886949&amp;r1=886948&amp;r2=886949&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/javascript/src/test/resources/serializationTests.js (original)
+++ cxf/branches/2.2.x-fixes/rt/javascript/src/test/resources/serializationTests.js Thu Dec
 3 22:17:33 2009
@@ -39,6 +39,7 @@
  	var a = [];
  	a.push(543);
  	bean1.setOptionalIntArrayItem(a);
+ 	bean1.setEnum2('Mineral');
 	return bean1.serialize(jsutils, "testBean1");
 } 
 




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886948 - in /cxf/branches/2.2.x-fixes: ./ api/src/main/java/org/apache/cxf/clustering/ rt/core/src/main/java/org/apache/cxf/clustering/ systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/</title>
<author><name>dkulp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091203221529.22B3223888EC@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091203221529-22B3223888EC@eris-apache-org%3e</id>
<updated>2009-12-03T22:15:28Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: dkulp
Date: Thu Dec  3 22:15:28 2009
New Revision: 886948

URL: http://svn.apache.org/viewvc?rev=886948&amp;view=rev
Log:
Merged revisions 885426 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r885426 | eglynn | 2009-11-30 08:46:34 -0500 (Mon, 30 Nov 2009) | 2 lines
  
  Allowing failover addresses to be overridden in configuration
........

Added:
    cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java
      - copied unchanged from r885426, cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverAddressOverrideTest.java
    cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/failover_address_override.xml
      - copied unchanged from r885426, cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/failover_address_override.xml
Modified:
    cxf/branches/2.2.x-fixes/   (props changed)
    cxf/branches/2.2.x-fixes/api/src/main/java/org/apache/cxf/clustering/FailoverStrategy.java
    cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/AbstractStaticFailoverStrategy.java
    cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/FailoverTargetSelector.java
    cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/Messages.properties
    cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/RandomStrategy.java
    cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/SequentialStrategy.java

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.2.x-fixes/api/src/main/java/org/apache/cxf/clustering/FailoverStrategy.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/api/src/main/java/org/apache/cxf/clustering/FailoverStrategy.java?rev=886948&amp;r1=886947&amp;r2=886948&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/api/src/main/java/org/apache/cxf/clustering/FailoverStrategy.java
(original)
+++ cxf/branches/2.2.x-fixes/api/src/main/java/org/apache/cxf/clustering/FailoverStrategy.java
Thu Dec  3 22:15:28 2009
@@ -44,4 +44,21 @@
      * @return the selected endpoint
      */
     Endpoint selectAlternateEndpoint(List&lt;Endpoint&gt; alternates);
+
+    /**
+     * Get the alternate addresses for this invocation.
+     * These addresses over-ride any addresses specified in the WSDL.
+     * 
+     * @param exchange the current Exchange     
+     * @return a failover endpoint if one is available
+     */
+    List&lt;String&gt; getAlternateAddresses(Exchange exchange);
+
+    /**
+     * Select one of the alternate addresses for a retried invocation.
+     * 
+     * @param alternates List of alternate addresses if available
+     * @return the selected address
+     */
+    String selectAlternateAddress(List&lt;String&gt; addresses);
 }

Modified: cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/AbstractStaticFailoverStrategy.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/AbstractStaticFailoverStrategy.java?rev=886948&amp;r1=886947&amp;r2=886948&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/AbstractStaticFailoverStrategy.java
(original)
+++ cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/AbstractStaticFailoverStrategy.java
Thu Dec  3 22:15:28 2009
@@ -38,10 +38,47 @@
  * multiple endpoints associated with the same service instance.
  */
 public abstract class AbstractStaticFailoverStrategy implements FailoverStrategy {
-    
     private static final Logger LOG =
         LogUtils.getL7dLogger(AbstractStaticFailoverStrategy.class);
-    
+
+    private List&lt;String&gt; alternateAddresses;
+
+
+    public void setAlternateAddresses(List&lt;String&gt; alternateAddresses) {
+        this.alternateAddresses = alternateAddresses;
+    }
+   
+    /**
+     * Get the alternate addresses for this invocation.
+     * 
+     * @param exchange the current Exchange
+     * @return a List of alternate addresses if available
+     */
+    public List&lt;String&gt; getAlternateAddresses(Exchange exchange) {
+        return alternateAddresses != null
+               ? new ArrayList&lt;String&gt;(alternateAddresses)
+               : null;
+    }
+
+    /**
+     * Select one of the alternate addresses for a retried invocation.
+     * 
+     * @param a List of alternate addresses if available
+     * @return the selected address
+     */
+    public String selectAlternateAddress(List&lt;String&gt; alternates) {
+        String selected = null;
+        if (alternates != null &amp;&amp; alternates.size() &gt; 0) {
+            selected = getNextAlternate(alternates);
+            LOG.log(Level.WARNING,
+                    "FAILING_OVER_TO_ADDRESS_OVERRIDE",
+                    selected);
+        } else {
+            LOG.warning("NO_ALTERNATE_TARGETS_REMAIN");
+        }
+        return selected;
+    }
+
     /**
      * Get the alternate endpoints for this invocation.
      * 
@@ -53,6 +90,26 @@
     }
     
     /**
+     * Select one of the alternate endpoints for a retried invocation.
+     * 
+     * @param a List of alternate endpoints if available
+     * @return the selected endpoint
+     */
+    public Endpoint selectAlternateEndpoint(List&lt;Endpoint&gt; alternates) {
+        Endpoint selected = null;
+        if (alternates != null &amp;&amp; alternates.size() &gt; 0) {
+            selected = getNextAlternate(alternates);
+            LOG.log(Level.WARNING,
+                    "FAILING_OVER_TO_ALTERNATE_ENDPOINT",
+                     new Object[] {selected.getEndpointInfo().getName(),
+                                   selected.getEndpointInfo().getAddress()});
+        } else {
+            LOG.warning("NO_ALTERNATE_TARGETS_REMAIN");
+        }
+        return selected;
+    }
+    
+    /**
      * Get the endpoints for this invocation.
      * 
      * @param exchange the current Exchange
@@ -91,30 +148,10 @@
     }
 
     /**
-     * Select one of the alternate endpoints for a retried invocation.
-     * 
-     * @param a List of alternate endpoints if available
-     * @return the selected endpoint
-     */
-    public Endpoint selectAlternateEndpoint(List&lt;Endpoint&gt; alternates) {
-        Endpoint selected = null;
-        if (alternates != null &amp;&amp; alternates.size() &gt; 0) {
-            selected = getNextAlternate(alternates);
-            LOG.log(Level.WARNING,
-                    "FAILING_OVER_TO",
-                     new Object[] {selected.getEndpointInfo().getName(),
-                                   selected.getEndpointInfo().getAddress()});
-        } else {
-            LOG.warning("NO_ALTERNATE_TARGETS_REMAIN");
-        }
-        return selected;
-    }
-    
-    /**
      * Get next alternate endpoint.
      * 
      * @param alternates non-empty List of alternate endpoints 
      * @return
      */
-    protected abstract Endpoint getNextAlternate(List&lt;Endpoint&gt; alternates);
+    protected abstract &lt;T&gt; T getNextAlternate(List&lt;T&gt; alternates);
 }

Modified: cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/FailoverTargetSelector.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/FailoverTargetSelector.java?rev=886948&amp;r1=886947&amp;r2=886948&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/FailoverTargetSelector.java
(original)
+++ cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/FailoverTargetSelector.java
Thu Dec  3 22:15:28 2009
@@ -102,7 +102,7 @@
     }
 
     /**
-     * Called on completion of the MEP for which the Conduit was required.
+     * Called on completion of the MEP for which the Condit was required.
      * 
      * @param exchange represents the completed MEP
      */
@@ -116,7 +116,7 @@
         if (requiresFailover(exchange)) {
             Endpoint failoverTarget = getFailoverTarget(exchange, invocation);
             if (failoverTarget != null) {
-                endpoint = failoverTarget;
+                setEndpoint(failoverTarget);
                 selectedConduit.close();
                 selectedConduit = null;
                 Exception prevExchangeFault =
@@ -146,12 +146,7 @@
                     }
                 }
             } else {
-                if (endpoint != invocation.getOriginalEndpoint()) {
-                    endpoint = invocation.getOriginalEndpoint();
-                    getLogger().log(Level.INFO,
-                                    "REVERT_TO_ORIGINAL_TARGET",
-                                    endpoint.getEndpointInfo().getName());
-                }
+                setEndpoint(invocation.retrieveOriginalEndpoint(endpoint));
             }
         }
         if (!failover) {
@@ -225,16 +220,39 @@
      * @return a failover endpoint if one is available
      */
     private Endpoint getFailoverTarget(Exchange exchange,
-                                       InvocationContext invocation) {        
-        if (invocation.getAlternateTargets() == null) {
+                                       InvocationContext invocation) {
+        List&lt;String&gt; alternateAddresses = null;
+        if (!invocation.hasAlternates()) {
             // no previous failover attempt on this invocation
             //
-            invocation.setAlternateTargets(
-                getStrategy().getAlternateEndpoints(exchange));
-        } 
+            alternateAddresses = 
+                getStrategy().getAlternateAddresses(exchange);
+            if (alternateAddresses != null) {
+                invocation.setAlternateAddresses(alternateAddresses);
+            } else {
+                invocation.setAlternateEndpoints(
+                    getStrategy().getAlternateEndpoints(exchange));
+            }
+        } else {
+            alternateAddresses = invocation.getAlternateAddresses();
+        }
 
-        return getStrategy().selectAlternateEndpoint(
-                   invocation.getAlternateTargets());
+        Endpoint failoverTarget = null;
+        if (alternateAddresses != null) {
+            String alternateAddress = 
+                getStrategy().selectAlternateAddress(alternateAddresses);
+            if (alternateAddress != null) {
+                // re-use current endpoint
+                //
+                failoverTarget = getEndpoint();
+
+                failoverTarget.getEndpointInfo().setAddress(alternateAddress);
+            }
+        } else {
+            failoverTarget = getStrategy().selectAlternateEndpoint(
+                                 invocation.getAlternateEndpoints());
+        }
+        return failoverTarget;
     }
     
     /**
@@ -282,24 +300,38 @@
     /**
      * Records the context of an invocation.
      */
-    private static class InvocationContext {
+    private class InvocationContext {
         private Endpoint originalEndpoint;
+        private String originalAddress;
         private BindingOperationInfo bindingOperationInfo;
         private Object[] params; 
         private Map&lt;String, Object&gt; context;
-        private List&lt;Endpoint&gt; alternateTargets;
+        private List&lt;Endpoint&gt; alternateEndpoints;
+        private List&lt;String&gt; alternateAddresses;
         
         InvocationContext(Endpoint endpoint,
                           BindingOperationInfo boi,
                           Object[] prms, 
                           Map&lt;String, Object&gt; ctx) {
             originalEndpoint = endpoint;
+            originalAddress = endpoint.getEndpointInfo().getAddress();
             bindingOperationInfo = boi;
             params = prms;
             context = ctx;
         }
 
-        Endpoint getOriginalEndpoint() {
+        Endpoint retrieveOriginalEndpoint(Endpoint endpoint) {
+            if (endpoint != originalEndpoint) {
+                getLogger().log(Level.INFO,
+                                "REVERT_TO_ORIGINAL_TARGET",
+                                endpoint.getEndpointInfo().getName());
+            }
+            if (!endpoint.getEndpointInfo().getAddress().equals(originalAddress)) {
+                endpoint.getEndpointInfo().setAddress(originalAddress);
+                getLogger().log(Level.INFO,
+                                "REVERT_TO_ORIGINAL_ADDRESS",
+                                endpoint.getEndpointInfo().getAddress());
+            }
             return originalEndpoint;
         }
         
@@ -315,12 +347,24 @@
             return context;
         }
         
-        List&lt;Endpoint&gt; getAlternateTargets() {
-            return alternateTargets;
+        List&lt;Endpoint&gt; getAlternateEndpoints() {
+            return alternateEndpoints;
+        }
+
+        List&lt;String&gt; getAlternateAddresses() {
+            return alternateAddresses;
+        }
+
+        void setAlternateEndpoints(List&lt;Endpoint&gt; alternates) {
+            alternateEndpoints = alternates;
+        }
+
+        void setAlternateAddresses(List&lt;String&gt; alternates) {
+            alternateAddresses = alternates;
         }
 
-        void setAlternateTargets(List&lt;Endpoint&gt; alternates) {
-            alternateTargets = alternates;
+        boolean hasAlternates() {
+            return !(alternateEndpoints == null &amp;&amp; alternateAddresses == null);
         }
     }    
 }

Modified: cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/Messages.properties
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/Messages.properties?rev=886948&amp;r1=886947&amp;r2=886948&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/Messages.properties
(original)
+++ cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/Messages.properties
Thu Dec  3 22:15:28 2009
@@ -20,10 +20,12 @@
 #
 USING_STRATEGY = Using failover strategy {0}
 REVERT_TO_ORIGINAL_TARGET = reverted to original endpoint {0}
+REVERT_TO_ORIGINAL_ADDRESS = reverted to original address {0}
 FAILOVER_NOT_REQUIRED = failover not required
 NO_ALTERNATE_TARGETS_REMAIN = no alternate targets remain =&gt; giving up on failover
 CHECK_LAST_INVOKE_FAILED = last invocation raised fault?: {0}
 CHECK_FAILURE_IN_TRANSPORT = failure {0} caused at transport level?: {1}
 FAILOVER_CANDIDATE_ACCEPTED = failover candidate {0} accepted
 FAILOVER_CANDIDATE_REJECTED = failover candidate {0} rejected on binding mismatch
-FAILING_OVER_TO = failing over to alternate target {0}
\ No newline at end of file
+FAILING_OVER_TO_ALTERNATE_ENDPOINT = failing over to alternate target {0}
+FAILING_OVER_TO_ADRESS_OVERRIDE = failing over to alternate address {0}

Modified: cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/RandomStrategy.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/RandomStrategy.java?rev=886948&amp;r1=886947&amp;r2=886948&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/RandomStrategy.java
(original)
+++ cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/RandomStrategy.java
Thu Dec  3 22:15:28 2009
@@ -22,8 +22,6 @@
 import java.util.List;
 import java.util.Random;
 
-import org.apache.cxf.endpoint.Endpoint;
-
 /**
  * Failover strategy based on a randomized walk through the
  * static cluster represented by multiple endpoints associated 
@@ -46,7 +44,7 @@
      * @param alternates non-empty List of alternate endpoints 
      * @return
      */
-    protected Endpoint getNextAlternate(List&lt;Endpoint&gt; alternates) {
+    protected &lt;T&gt; T getNextAlternate(List&lt;T&gt; alternates) {
         return alternates.remove(random.nextInt(alternates.size()));
     }
 }
\ No newline at end of file

Modified: cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/SequentialStrategy.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/SequentialStrategy.java?rev=886948&amp;r1=886947&amp;r2=886948&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/SequentialStrategy.java
(original)
+++ cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/clustering/SequentialStrategy.java
Thu Dec  3 22:15:28 2009
@@ -21,8 +21,6 @@
 
 import java.util.List;
 
-import org.apache.cxf.endpoint.Endpoint;
-
 /**
  * Failover strategy based on a sequential walk through the
  * static cluster represented by multiple endpoints associated 
@@ -36,7 +34,7 @@
      * @param alternates non-empty List of alternate endpoints 
      * @return
      */
-    protected Endpoint getNextAlternate(List&lt;Endpoint&gt; alternates) {
+    protected &lt;T&gt; T getNextAlternate(List&lt;T&gt; alternates) {
         return alternates.remove(0);
     }
 }




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886947 - in /cxf/branches/2.2.x-fixes: ./ systests/wsdl_maven/codegen/ systests/wsdl_maven/codegen/src/ systests/wsdl_maven/codegen/src/main/ systests/wsdl_maven/codegen/src/main/resources/ systests/wsdl_maven/java2ws/src/main/java/org/apa...</title>
<author><name>dkulp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091203221401.0FF9623889ED@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091203221401-0FF9623889ED@eris-apache-org%3e</id>
<updated>2009-12-03T22:14:00Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: dkulp
Date: Thu Dec  3 22:14:00 2009
New Revision: 886947

URL: http://svn.apache.org/viewvc?rev=886947&amp;view=rev
Log:
Merged revisions 885212 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r885212 | cschneider | 2009-11-29 06:05:59 -0500 (Sun, 29 Nov 2009) | 1 line
  
  CXF-2275: Maven plugins: Support reading WSDLs from Maven repository - Should be complete
now
........

Added:
    cxf/branches/2.2.x-fixes/systests/wsdl_maven/codegen/src/
      - copied from r885212, cxf/trunk/systests/wsdl_maven/codegen/src/
    cxf/branches/2.2.x-fixes/systests/wsdl_maven/codegen/src/main/
      - copied from r885212, cxf/trunk/systests/wsdl_maven/codegen/src/main/
    cxf/branches/2.2.x-fixes/systests/wsdl_maven/codegen/src/main/resources/
      - copied from r885212, cxf/trunk/systests/wsdl_maven/codegen/src/main/resources/
    cxf/branches/2.2.x-fixes/systests/wsdl_maven/codegen/src/main/resources/defaultBinding.xml
      - copied unchanged from r885212, cxf/trunk/systests/wsdl_maven/codegen/src/main/resources/defaultBinding.xml
Modified:
    cxf/branches/2.2.x-fixes/   (props changed)
    cxf/branches/2.2.x-fixes/systests/wsdl_maven/codegen/pom.xml
    cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/java/org/apache/cxf/systests/java2ws/HelloWorld.java

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.2.x-fixes/systests/wsdl_maven/codegen/pom.xml
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/systests/wsdl_maven/codegen/pom.xml?rev=886947&amp;r1=886946&amp;r2=886947&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/systests/wsdl_maven/codegen/pom.xml (original)
+++ cxf/branches/2.2.x-fixes/systests/wsdl_maven/codegen/pom.xml Thu Dec  3 22:14:00 2009
@@ -1,74 +1,77 @@
-&lt;!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements. See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership. The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License. You may obtain a copy of the License at
- 
-  http://www.apache.org/licenses/LICENSE-2.0
- 
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied. See the License for the
-  specific language governing permissions and limitations
-  under the License.
---&gt;
-&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;
-    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
-    &lt;groupId&gt;org.apache.cxf.systests.wsdl_maven&lt;/groupId&gt;
-    &lt;artifactId&gt;cxf-systests-codegen&lt;/artifactId&gt;
-    &lt;version&gt;2.2.6-SNAPSHOT&lt;/version&gt;
-    &lt;name&gt;Test for reading wsdl from repo and generating code from it&lt;/name&gt;
-    &lt;parent&gt;
-        &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
-        &lt;artifactId&gt;cxf-parent&lt;/artifactId&gt;
-        &lt;version&gt;2.2.6-SNAPSHOT&lt;/version&gt;
-        &lt;relativePath&gt;../../../parent/pom.xml&lt;/relativePath&gt;
-    &lt;/parent&gt;
-    &lt;build&gt;
-        &lt;plugins&gt;
-            &lt;plugin&gt;
-                &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
-                &lt;artifactId&gt;cxf-codegen-plugin&lt;/artifactId&gt;
-                &lt;version&gt;${project.version}&lt;/version&gt;
-                &lt;executions&gt;
-                    &lt;execution&gt;
-                        &lt;id&gt;generate-sources&lt;/id&gt;
-                        &lt;phase&gt;generate-sources&lt;/phase&gt;
-                        &lt;configuration&gt;
-                            &lt;wsdlOptions&gt;
-                                &lt;wsdlOption&gt;
-                                    &lt;wsdlArtifact&gt;
-				                        &lt;groupId&gt;org.apache.cxf.systests.wsdl_maven&lt;/groupId&gt;
-				                        &lt;artifactId&gt;cxf-systests-java2ws&lt;/artifactId&gt;
-				                        &lt;version&gt;${project.version}&lt;/version&gt;
-			                        &lt;/wsdlArtifact&gt;
-                                &lt;/wsdlOption&gt;
-                            &lt;/wsdlOptions&gt;
-                        &lt;/configuration&gt;
-                        &lt;goals&gt;
-                            &lt;goal&gt;wsdl2java&lt;/goal&gt;
-                        &lt;/goals&gt;
-                    &lt;/execution&gt;
-                &lt;/executions&gt;
-            &lt;/plugin&gt;
-        &lt;/plugins&gt;
-    &lt;/build&gt;
-    
-
-    &lt;dependencies&gt;
-        &lt;dependency&gt;
-            &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
-            &lt;artifactId&gt;cxf-rt-frontend-jaxws&lt;/artifactId&gt;
-            &lt;version&gt;${project.version}&lt;/version&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;groupId&gt;org.apache.cxf.systests.wsdl_maven&lt;/groupId&gt;
-            &lt;artifactId&gt;cxf-systests-java2ws&lt;/artifactId&gt;
-            &lt;version&gt;${project.version}&lt;/version&gt;
-        &lt;/dependency&gt;
-    &lt;/dependencies&gt;
+&lt;!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+ 
+  http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+--&gt;
+&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;
+    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
+    &lt;groupId&gt;org.apache.cxf.systests.wsdl_maven&lt;/groupId&gt;
+    &lt;artifactId&gt;cxf-systests-codegen&lt;/artifactId&gt;
+    &lt;version&gt;2.2.6-SNAPSHOT&lt;/version&gt;
+    &lt;name&gt;Test for reading wsdl from repo and generating code from it&lt;/name&gt;
+    &lt;parent&gt;
+        &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+        &lt;artifactId&gt;cxf-parent&lt;/artifactId&gt;
+        &lt;version&gt;2.2.6-SNAPSHOT&lt;/version&gt;
+        &lt;relativePath&gt;../../../parent/pom.xml&lt;/relativePath&gt;
+    &lt;/parent&gt;
+    &lt;build&gt;
+        &lt;plugins&gt;
+            &lt;plugin&gt;
+                &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
+                &lt;configuration&gt;
+                    &lt;source&gt;1.5&lt;/source&gt;
+                    &lt;target&gt;1.5&lt;/target&gt;
+                &lt;/configuration&gt;
+            &lt;/plugin&gt;
+            &lt;plugin&gt;
+                &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+                &lt;artifactId&gt;cxf-codegen-plugin&lt;/artifactId&gt;
+                &lt;version&gt;${project.version}&lt;/version&gt;
+                &lt;executions&gt;
+                    &lt;execution&gt;
+                        &lt;id&gt;generate-sources&lt;/id&gt;
+                        &lt;phase&gt;generate-sources&lt;/phase&gt;
+
+                        &lt;goals&gt;
+                            &lt;goal&gt;wsdl2java&lt;/goal&gt;
+                        &lt;/goals&gt;
+                    &lt;/execution&gt;
+                &lt;/executions&gt;
+            &lt;/plugin&gt;
+        &lt;/plugins&gt;
+    &lt;/build&gt;
+    
+    &lt;dependencies&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.cxf.systests.wsdl_maven&lt;/groupId&gt;
+            &lt;artifactId&gt;cxf-systests-java2ws&lt;/artifactId&gt;
+            &lt;version&gt;${project.version}&lt;/version&gt;
+	  &lt;type&gt;wsdl&lt;/type&gt;
+        &lt;/dependency&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+            &lt;artifactId&gt;cxf-rt-frontend-jaxws&lt;/artifactId&gt;
+            &lt;version&gt;${project.version}&lt;/version&gt;
+        &lt;/dependency&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.cxf.systests.wsdl_maven&lt;/groupId&gt;
+            &lt;artifactId&gt;cxf-systests-java2ws&lt;/artifactId&gt;
+            &lt;version&gt;${project.version}&lt;/version&gt;
+        &lt;/dependency&gt;
+    &lt;/dependencies&gt;
 &lt;/project&gt;
+

Modified: cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/java/org/apache/cxf/systests/java2ws/HelloWorld.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/java/org/apache/cxf/systests/java2ws/HelloWorld.java?rev=886947&amp;r1=886946&amp;r2=886947&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/java/org/apache/cxf/systests/java2ws/HelloWorld.java
(original)
+++ cxf/branches/2.2.x-fixes/systests/wsdl_maven/java2ws/src/main/java/org/apache/cxf/systests/java2ws/HelloWorld.java
Thu Dec  3 22:14:00 2009
@@ -19,11 +19,13 @@
 
 package org.apache.cxf.systests.java2ws;
 
+import java.util.Date;
+
 import javax.jws.WebParam;
 import javax.jws.WebService;
 
 
 @WebService
 public interface HelloWorld {
-    String sayHi(@WebParam(name = "text") String text);
+    String sayHi(@WebParam(name = "text") String text, @WebParam(name = "date") Date date);
 }




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886944 - in /cxf/branches/2.2.x-fixes: ./ maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/ maven-plugins/codegen-plugin/src/test/java/ maven-plugins/codegen-plugin/src/test/java/org/ maven-plugins/codegen-plugin/src/...</title>
<author><name>dkulp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091203220837.B6D4B23888EC@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091203220837-B6D4B23888EC@eris-apache-org%3e</id>
<updated>2009-12-03T22:08:37Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: dkulp
Date: Thu Dec  3 22:08:36 2009
New Revision: 886944

URL: http://svn.apache.org/viewvc?rev=886944&amp;view=rev
Log:
Merged revisions 885211 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r885211 | cschneider | 2009-11-29 06:03:29 -0500 (Sun, 29 Nov 2009) | 1 line
  
  CXF-2275: Maven plugins: Support reading WSDLs from Maven repository - Should be complete
now
........

Added:
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java
      - copied unchanged from r885211, cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/BindingFileHelper.java
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/java/
      - copied from r885211, cxf/trunk/maven-plugins/codegen-plugin/src/test/java/
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/java/org/
      - copied from r885211, cxf/trunk/maven-plugins/codegen-plugin/src/test/java/org/
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/java/org/apache/
      - copied from r885211, cxf/trunk/maven-plugins/codegen-plugin/src/test/java/org/apache/
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/
      - copied from r885211, cxf/trunk/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/
      - copied from r885211, cxf/trunk/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java
      - copied unchanged from r885211, cxf/trunk/maven-plugins/codegen-plugin/src/test/java/org/apache/cxf/maven_plugin/BindingFileHelperTest.java
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/resources/
      - copied from r885211, cxf/trunk/maven-plugins/codegen-plugin/src/test/resources/
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/resources/bindingWithWsdlLocation.xml
      - copied unchanged from r885211, cxf/trunk/maven-plugins/codegen-plugin/src/test/resources/bindingWithWsdlLocation.xml
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/test/resources/bindingWithoutWsdlLocation.xml
      - copied unchanged from r885211, cxf/trunk/maven-plugins/codegen-plugin/src/test/resources/bindingWithoutWsdlLocation.xml
Modified:
    cxf/branches/2.2.x-fixes/   (props changed)
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/Option.java
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOption.java
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOptionLoader.java

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/Option.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/Option.java?rev=886944&amp;r1=886943&amp;r2=886944&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/Option.java
(original)
+++ cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/Option.java
Thu Dec  3 22:08:36 2009
@@ -25,6 +25,8 @@
 
 
 public class Option {
+    static final String DEFAULT_BINDING_FILE_PATH = "src" + File.separator + "main"
+        + File.separator + "resources" + File.separator + "defaultBinding.xml";
 
     /**
      * As maven will set null for an empty parameter we need
@@ -36,7 +38,7 @@
     /**
      * 
      */
-    protected List&lt;String&gt; packagenames;
+    protected List&lt;String&gt; packagenames = new ArrayList&lt;String&gt;();
 
     /**
      * Extra arguments to pass to the command-line code generator. For compatibility as well
as to
@@ -60,7 +62,7 @@
      * Also, optionally specifies the Java package name used by types described in the excluded

      * namespace(s) using schema-namespace[=java-packagename]
      */
-    List&lt;String&gt; namespaceExcludes;
+    List&lt;String&gt; namespaceExcludes = new ArrayList&lt;String&gt;();
 
     /**
      * Enables or disables the loading of the default excludes namespace mapping. Default
is true.
@@ -225,7 +227,14 @@
         String tmp[] = new String[bindingFiles.length + 1];
         System.arraycopy(bindingFiles, 0, tmp, 0, bindingFiles.length);
         bindingFiles = tmp;
-        bindingFiles[bindingFiles.length - 1] = file.toURI().toString();
+        bindingFiles[bindingFiles.length - 1] = file.getAbsolutePath();
+    }
+    
+    public void addDefaultBindingFileIfExists(File baseDir) {
+        File defaultBindingFile = new File(baseDir, DEFAULT_BINDING_FILE_PATH);
+        if (defaultBindingFile.exists()) {
+            addBindingFile(defaultBindingFile);
+        }
     }
 
     public void setWsdlLocation(String s) {
@@ -369,65 +378,35 @@
         }
         destination.setWsdlVersion(getWsdlVersion());
     }
-    public void merge(Option defaultOptions) {
-        if (wsdlList == null) {
-            wsdlList = defaultOptions.wsdlList;
-        }
-        if (extendedSoapHeaders == null) {
-            extendedSoapHeaders = defaultOptions.extendedSoapHeaders;
-        }
-        if (validateWsdl == null) {
-            validateWsdl = defaultOptions.validateWsdl;
-        }
-        if (autoNameResolution == null) {
-            autoNameResolution = defaultOptions.autoNameResolution;
-        }
-        if (noAddressBinding == null) {
-            noAddressBinding = defaultOptions.noAddressBinding;
-        }
-        if (allowElementRefs == null) {
-            allowElementRefs = defaultOptions.allowElementRefs;
-        }
-        if (defaultExcludesNamespace == null) {
-            defaultExcludesNamespace = defaultOptions.defaultExcludesNamespace;
-        }
-        if (defaultNamespacePackageMapping == null) {
-            defaultNamespacePackageMapping = defaultOptions.defaultNamespacePackageMapping;
-        }
-        if (frontEnd == null) {
-            frontEnd = defaultOptions.frontEnd;
-        }
-        if (dataBinding == null) {
-            dataBinding = defaultOptions.dataBinding;
-        }
-        if (wsdlVersion == null) {
-            wsdlVersion = defaultOptions.wsdlVersion;
-        }
-        if (catalog == null) {
-            catalog = defaultOptions.catalog;
-        }
-        if (serviceName == null) {
-            serviceName = defaultOptions.serviceName;
-        }
-        if (outputDir == null) {
-            outputDir = defaultOptions.outputDir;
+    
+    private void setIfNull(Object dest, Object source) {
+        if (dest == null) {
+            dest = source;
         }
+    }
+    
+    public void merge(Option defaultOptions) {
+        setIfNull(wsdlList, defaultOptions.wsdlList);
+        setIfNull(extendedSoapHeaders, defaultOptions.extendedSoapHeaders);
+        setIfNull(validateWsdl, defaultOptions.validateWsdl);
+        setIfNull(autoNameResolution, defaultOptions.autoNameResolution);
+        setIfNull(noAddressBinding, defaultOptions.noAddressBinding);
+        setIfNull(allowElementRefs, defaultOptions.allowElementRefs);
+        setIfNull(defaultExcludesNamespace, defaultOptions.defaultExcludesNamespace);
+        setIfNull(defaultNamespacePackageMapping, defaultOptions.defaultNamespacePackageMapping);
+        setIfNull(frontEnd, defaultOptions.frontEnd);
+        setIfNull(dataBinding, defaultOptions.dataBinding);
+        setIfNull(wsdlVersion, defaultOptions.wsdlVersion);
+        setIfNull(catalog, defaultOptions.catalog);
+        setIfNull(serviceName, defaultOptions.serviceName);
+        setIfNull(outputDir, defaultOptions.outputDir);
         extraargs.addAll(defaultOptions.extraargs);
         xjcargs.addAll(defaultOptions.xjcargs);
-        
         bindingFiles = mergeList(bindingFiles, defaultOptions.bindingFiles, String.class);
         dependencies = mergeList(dependencies, defaultOptions.dependencies, File.class);
         redundantDirs = mergeList(redundantDirs, defaultOptions.redundantDirs, File.class);
-        if (packagenames == null) {
-            packagenames = defaultOptions.packagenames;
-        } else {
-            packagenames.addAll(defaultOptions.packagenames);
-        }
-        if (namespaceExcludes == null) {
-            namespaceExcludes = defaultOptions.namespaceExcludes;
-        } else {
-            namespaceExcludes.addAll(defaultOptions.namespaceExcludes);
-        }
+        packagenames.addAll(defaultOptions.packagenames);
+        namespaceExcludes.addAll(defaultOptions.namespaceExcludes);
     }
     
     @SuppressWarnings("unchecked")

Modified: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java?rev=886944&amp;r1=886943&amp;r2=886944&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java
(original)
+++ cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java
Thu Dec  3 22:08:36 2009
@@ -50,6 +50,8 @@
  * @requiresDependencyResolution test
  */
 public class WSDL2JavaMojo extends AbstractMojo {
+    private static final String TEMPBINDINGS_DIR = "tempbindings";
+
     /**
      * @parameter expression="${cxf.testSourceRoot}"
      */
@@ -81,7 +83,7 @@
      * 
      * @parameter
      */
-    Option defaultOptions;
+    Option defaultOptions = new Option();
 
     /**
      * @parameter
@@ -125,6 +127,12 @@
     boolean disableDirectoryScan;
 
     /**
+     * By default all maven dependencies of type "wsdl" are added to the effective wsdlOptions.
Setting this
+     * parameter to true disables this functionality
+     */
+    boolean disableDependencyScan;
+
+    /**
      * A list of wsdl files to include. Can contain ant-style wildcards and double wildcards.
Defaults to
      * *.wsdl
      * 
@@ -232,21 +240,32 @@
      * @return effective WsdlOptions
      * @throws MojoExecutionException
      */
-    private List&lt;WsdlOption&gt; createWsdlOptionsFromWsdlFilesAndExplicitWsdlOptions()
+    private List&lt;WsdlOption&gt; createWsdlOptionsFromScansAndExplicitWsdlOptions() 
         throws MojoExecutionException {
         List&lt;WsdlOption&gt; effectiveWsdlOptions = new ArrayList&lt;WsdlOption&gt;();
+        List&lt;WsdlOption&gt; temp;
         if (wsdlRoot != null &amp;&amp; wsdlRoot.exists() &amp;&amp; !disableDirectoryScan)
{
-            effectiveWsdlOptions.addAll(WsdlOptionLoader.loadWsdlOptionsFromFiles(wsdlRoot,
includes,
-                                                                                  excludes,
defaultOptions,
-                                                                                  sourceRoot));
+            temp = WsdlOptionLoader.loadWsdlOptionsFromFiles(wsdlRoot, includes, excludes,
defaultOptions,
+                                                             sourceRoot);
+            effectiveWsdlOptions.addAll(temp);
         }
         if (testWsdlRoot != null &amp;&amp; testWsdlRoot.exists() &amp;&amp; !disableDirectoryScan)
{
-            effectiveWsdlOptions.addAll(WsdlOptionLoader.loadWsdlOptionsFromFiles(testWsdlRoot,
includes,
-                                                                                  excludes,
defaultOptions,
-                                                                                  testSourceRoot));
+            temp = WsdlOptionLoader.loadWsdlOptionsFromFiles(testWsdlRoot, includes, excludes,
+                                                             defaultOptions, testSourceRoot);
+            effectiveWsdlOptions.addAll(temp);
+        }
+        if (!disableDependencyScan) {
+            temp = WsdlOptionLoader.loadWsdlOptionsFromDependencies(project, defaultOptions,
sourceRoot);
+            effectiveWsdlOptions.addAll(temp);
         }
         mergeOptions(effectiveWsdlOptions);
         downloadRemoteWsdls(effectiveWsdlOptions);
+        String buildDir = project.getBuild().getDirectory();
+        File tempBindingDir = new File(buildDir, TEMPBINDINGS_DIR);
+        for (WsdlOption o : effectiveWsdlOptions) {
+            BindingFileHelper.setWsdlLocationInBindingsIfNotSet(project.getBasedir(), tempBindingDir,
o,
+                                                                getLog());
+        }
         return effectiveWsdlOptions;
     }
     
@@ -300,9 +319,9 @@
             if (wsdlA == null) {
                 return;
             }
-            Artifact wsdlArtifact = artifactFactory.createArtifact(wsdlA.getGroupId(), wsdlA
-                                                               .getArtifactId(), wsdlA.getVersion(),

-                                                               Artifact.SCOPE_COMPILE, wsdlA.getType());
+            Artifact wsdlArtifact = artifactFactory.createArtifact(wsdlA.getGroupId(), wsdlA.getArtifactId(),
+                                                                   wsdlA.getVersion(),
+                                                                   Artifact.SCOPE_COMPILE,
wsdlA.getType());
             wsdlArtifact = resolveRemoteWsdlArtifact(remoteRepos, wsdlArtifact);
             if (wsdlArtifact != null) {
                 String path = wsdlArtifact.getFile().getAbsolutePath();
@@ -318,12 +337,12 @@
                 "*.wsdl"
             };
         }
-
+        defaultOptions.addDefaultBindingFileIfExists(project.getBasedir());
         File classesDir = new File(classesDirectory);
         classesDir.mkdirs();
         markerDirectory.mkdirs();
 
-        List&lt;WsdlOption&gt; effectiveWsdlOptions = createWsdlOptionsFromWsdlFilesAndExplicitWsdlOptions();
+        List&lt;WsdlOption&gt; effectiveWsdlOptions = createWsdlOptionsFromScansAndExplicitWsdlOptions();
 
         if (effectiveWsdlOptions.size() == 0) {
             getLog().info("Nothing to generate");
@@ -368,11 +387,8 @@
     private void callWsdl2Java(WsdlOption wsdlOption) throws MojoExecutionException {
         File outputDirFile = wsdlOption.getOutputDir();
         outputDirFile.mkdirs();
-
-        String wsdlLocation = wsdlOption.getWsdl();
-        File wsdlFile = new File(wsdlLocation);
         URI basedir = project.getBasedir().toURI();
-        URI wsdlURI = wsdlFile.exists() ? wsdlFile.toURI() : basedir.resolve(wsdlLocation);
+        URI wsdlURI = wsdlOption.getWsdlURI(basedir);
         File doneFile = getDoneFile(basedir, wsdlURI);
 
         if (!shouldRun(wsdlOption, doneFile, wsdlURI)) {
@@ -380,11 +396,12 @@
         }
         
         doneFile.delete();
-        List&lt;String&gt; list = wsdlOption.generateCommandLine(outputDirFile, basedir,
wsdlURI, 
-                                                           getLog().isDebugEnabled());
-        getLog().debug("Calling wsdl2java with args: " + list);
+        List&lt;String&gt; list = wsdlOption.generateCommandLine(outputDirFile, basedir,
wsdlURI, getLog()
+            .isDebugEnabled());
+        String[] args = (String[])list.toArray(new String[list.size()]);
+        getLog().debug("Calling wsdl2java with args: " + args);
         try {
-            new WSDLToJava((String[])list.toArray(new String[list.size()])).run(new ToolContext());
+            new WSDLToJava(args).run(new ToolContext());
         } catch (Throwable e) {
             getLog().debug(e);
             throw new MojoExecutionException(e.getMessage(), e);

Modified: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java
URL: 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=886944&amp;r1=886943&amp;r2=886944&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java
(original)
+++ cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java
Thu Dec  3 22:08:36 2009
@@ -57,4 +57,9 @@
         this.type = type;
     }
     
+    public boolean doesMatch(WsdlArtifact artifact) {
+        return type.equals(artifact.getType()) &amp;&amp; groupId.equals(artifact.getGroupId())
+              &amp;&amp; artifactId.equals(artifact.getArtifactId()) 
+              &amp;&amp; (version == null || version.equals(artifact.getVersion()));
+    }
 }

Modified: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOption.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOption.java?rev=886944&amp;r1=886943&amp;r2=886944&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOption.java
(original)
+++ cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOption.java
Thu Dec  3 22:08:36 2009
@@ -79,6 +79,12 @@
         }
         return file;
     }
+    
+    public URI getWsdlURI(URI baseURI) {
+        String wsdlLocation = getWsdl();
+        File wsdlFile = new File(wsdlLocation);
+        return wsdlFile.exists() ? wsdlFile.toURI() : baseURI.resolve(wsdlLocation);
+    }
 
     public boolean isDefServiceName() {
         if (extraargs == null) {

Modified: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOptionLoader.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOptionLoader.java?rev=886944&amp;r1=886943&amp;r2=886944&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOptionLoader.java
(original)
+++ cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOptionLoader.java
Thu Dec  3 22:08:36 2009
@@ -24,17 +24,53 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Set;
 
 import org.apache.cxf.helpers.CastUtils;
 import org.apache.cxf.helpers.FileUtils;
+import org.apache.maven.artifact.Artifact;
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.project.MavenProject;
 
 public final class WsdlOptionLoader {
+    private static final String WSDL_TYPE = "wsdl";
     private static final String WSDL_OPTIONS = "-options$";
     private static final String WSDL_BINDINGS = "-binding-?\\d*.xml$";
     
     private WsdlOptionLoader() {
     }
+    
+    @SuppressWarnings("unchecked")
+    public static List&lt;WsdlOption&gt; loadWsdlOptionsFromDependencies(MavenProject project,

+                                                                   Option defaultOptions,
File outputDir) {
+        List&lt;WsdlOption&gt; options = new ArrayList&lt;WsdlOption&gt;();
+        Set&lt;Artifact&gt; dependencies = project.getDependencyArtifacts();
+        for (Artifact artifact : dependencies) {
+            WsdlOption option = generateWsdlOptionFromArtifact(artifact, outputDir);
+            if (option != null) {
+                if (defaultOptions != null) {
+                    option.merge(defaultOptions);
+                }
+                options.add(option);
+            }
+        }
+        return options;
+    }
+
+    private static WsdlOption generateWsdlOptionFromArtifact(Artifact artifact, File outputDir)
{
+        if (!WSDL_TYPE.equals(artifact.getType())) {
+            return null;
+        }
+        WsdlOption option = new WsdlOption();
+        WsdlArtifact wsdlArtifact = new WsdlArtifact();
+        wsdlArtifact.setArtifactId(artifact.getArtifactId());
+        wsdlArtifact.setGroupId(artifact.getGroupId());
+        wsdlArtifact.setType(artifact.getType());
+        wsdlArtifact.setVersion(artifact.getVersion());
+        option.setWsdlArtifact(wsdlArtifact);
+        option.setOutputDir(outputDir);
+        return option;
+    }
 
     /**
      * Scan files in a directory and generate one wsdlOption per file found. Extra args for
code generation




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886943 - in /cxf/branches/2.2.x-fixes: ./ rt/javascript/src/main/resources/org/apache/cxf/javascript/cxf-utils.js</title>
<author><name>dkulp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091203220520.E5EC523889BB@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091203220520-E5EC523889BB@eris-apache-org%3e</id>
<updated>2009-12-03T22:05:20Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: dkulp
Date: Thu Dec  3 22:05:20 2009
New Revision: 886943

URL: http://svn.apache.org/viewvc?rev=886943&amp;view=rev
Log:
Merged revisions 885055 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r885055 | bimargulies | 2009-11-27 19:36:57 -0500 (Fri, 27 Nov 2009) | 1 line
  
  protect against clever people who add extra properties to all arrays in Javascript.
........

Modified:
    cxf/branches/2.2.x-fixes/   (props changed)
    cxf/branches/2.2.x-fixes/rt/javascript/src/main/resources/org/apache/cxf/javascript/cxf-utils.js

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.2.x-fixes/rt/javascript/src/main/resources/org/apache/cxf/javascript/cxf-utils.js
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/javascript/src/main/resources/org/apache/cxf/javascript/cxf-utils.js?rev=886943&amp;r1=886942&amp;r2=886943&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/javascript/src/main/resources/org/apache/cxf/javascript/cxf-utils.js
(original)
+++ cxf/branches/2.2.x-fixes/rt/javascript/src/main/resources/org/apache/cxf/javascript/cxf-utils.js
Thu Dec  3 22:05:20 2009
@@ -715,11 +715,14 @@
 		this.req.setRequestHeader("Content-Type", "text/xml;charset=utf-8");
 	}
 
-	if (headers) { // must be array indexed by header field.
-		for (var h in headers) {
-			this.req.setRequestHeader(h, headers[h]);
-		}
-	}
+    if (headers) { // must be array indexed by header field.
+        // avoid extra properties on the headers.
+        for (var h in headers) {
+            if(headers.hasOwnProperty(h)) {
+                this.req.setRequestHeader(h, headers[h]);
+            }
+        }
+    }	
 
 	this.req.setRequestHeader("SOAPAction", this.soapAction);
 	this.req.setRequestHeader("MessageType", this.messageType);




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886941 - in /cxf/branches/2.2.x-fixes: ./ maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOption.java</title>
<author><name>dkulp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091203220412.189872388A87@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091203220412-189872388A87@eris-apache-org%3e</id>
<updated>2009-12-03T22:04:11Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: dkulp
Date: Thu Dec  3 22:04:11 2009
New Revision: 886941

URL: http://svn.apache.org/viewvc?rev=886941&amp;view=rev
Log:
Merged revisions 882711 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r882711 | cschneider | 2009-11-20 16:02:00 -0500 (Fri, 20 Nov 2009) | 1 line
  
  Refactoring
........

Modified:
    cxf/branches/2.2.x-fixes/   (props changed)
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOption.java

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java?rev=886941&amp;r1=886940&amp;r2=886941&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java
(original)
+++ cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java
Thu Dec  3 22:04:11 2009
@@ -22,7 +22,6 @@
 import java.io.File;
 import java.net.URI;
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
@@ -192,34 +191,7 @@
      */
     private ArtifactResolver artifactResolver;
 
-    /**
-     * Try to find a file matching the given wsdlPath (either absolutely, relatively to the
current dir or to
-     * the project base dir)
-     * 
-     * @param wsdlPath
-     * @return wsdl file
-     */
-    private File getFileFromWsdlPath(String wsdlPath) {
-        if (wsdlPath == null) {
-            return null;
-        }
-        File file = null;
-        try {
-            URI uri = new URI(wsdlPath);
-            if (uri.isAbsolute()) {
-                file = new File(uri);
-            }
-        } catch (Exception e) {
-            // ignore
-        }
-        if (file == null || !file.exists()) {
-            file = new File(wsdlPath);
-        }
-        if (!file.exists()) {
-            file = new File(project.getBasedir(), wsdlPath);
-        }
-        return file;
-    }
+
 
     /**
      * Merge WsdlOptions that point to the same file by adding the extraargs to the first
option and deleting
@@ -240,11 +212,11 @@
                 o.setOutputDir(outputDirFile);
             }
 
-            File file = getFileFromWsdlPath(o.getWsdl());
+            File file = o.getWsdlFile(project.getBasedir());
             if (file != null &amp;&amp; file.exists()) {
                 file = file.getAbsoluteFile();
                 for (WsdlOption o2 : effectiveWsdlOptions) {
-                    File file2 = getFileFromWsdlPath(o2.getWsdl());
+                    File file2 = o2.getWsdlFile(project.getBasedir());
                     if (file2 != null &amp;&amp; file2.exists() &amp;&amp; file2.getAbsoluteFile().equals(file))
{
                         o.getExtraargs().addAll(0, o2.getExtraargs());
                         effectiveWsdlOptions.remove(o2);
@@ -365,7 +337,7 @@
             classLoaderSwitcher.switchClassLoader(project, useCompileClasspath, classesDir);
 
             for (WsdlOption o : effectiveWsdlOptions) {
-                processWsdl(o);
+                callWsdl2Java(o);
 
                 File dirs[] = o.getDeleteDirs();
                 if (dirs != null) {
@@ -393,34 +365,63 @@
         System.gc();
     }
 
-    private void processWsdl(WsdlOption wsdlOption) throws MojoExecutionException {
-
+    private void callWsdl2Java(WsdlOption wsdlOption) throws MojoExecutionException {
         File outputDirFile = wsdlOption.getOutputDir();
         outputDirFile.mkdirs();
 
         String wsdlLocation = wsdlOption.getWsdl();
         File wsdlFile = new File(wsdlLocation);
         URI basedir = project.getBasedir().toURI();
-        URI wsdlURI;
-        if (wsdlFile.exists()) {
-            wsdlURI = wsdlFile.toURI();
-        } else {
-            wsdlURI = basedir.resolve(wsdlLocation);
+        URI wsdlURI = wsdlFile.exists() ? wsdlFile.toURI() : basedir.resolve(wsdlLocation);
+        File doneFile = getDoneFile(basedir, wsdlURI);
+
+        if (!shouldRun(wsdlOption, doneFile, wsdlURI)) {
+            return;
+        }
+        
+        doneFile.delete();
+        List&lt;String&gt; list = wsdlOption.generateCommandLine(outputDirFile, basedir,
wsdlURI, 
+                                                           getLog().isDebugEnabled());
+        getLog().debug("Calling wsdl2java with args: " + list);
+        try {
+            new WSDLToJava((String[])list.toArray(new String[list.size()])).run(new ToolContext());
+        } catch (Throwable e) {
+            getLog().debug(e);
+            throw new MojoExecutionException(e.getMessage(), e);
         }
+        try {
+            doneFile.createNewFile();
+        } catch (Throwable e) {
+            getLog().warn("Could not create marker file " + doneFile.getAbsolutePath());
+            getLog().debug(e);
+        }
+    }
 
+    private File getDoneFile(URI basedir, URI wsdlURI) {
         String doneFileName = wsdlURI.toString();
+        
+        // Strip the basedir from the doneFileName
         if (doneFileName.startsWith(basedir.toString())) {
             doneFileName = doneFileName.substring(basedir.toString().length());
         }
 
         // If URL to WSDL, replace ? and &amp; since they're invalid chars for file names
         // Not to mention slashes.
-
         doneFileName = doneFileName.replace('?', '_').replace('&amp;', '_').replace('/',
'_').replace('\\', '_')
             .replace(':', '_');
 
-        File doneFile = new File(markerDirectory, "." + doneFileName + ".DONE");
+        return new File(markerDirectory, "." + doneFileName + ".DONE");
+    }
 
+    /**
+     * Determine if code should be generated from the given wsdl
+     * 
+     * @param wsdlOption
+     * @param doneFile
+     * @param wsdlURI
+     * @return
+     */
+    private boolean shouldRun(WsdlOption wsdlOption, File doneFile, URI wsdlURI) {
         long timestamp = 0;
         if ("file".equals(wsdlURI.getScheme())) {
             timestamp = new File(wsdlURI).lastModified();
@@ -431,13 +432,12 @@
                 // ignore
             }
         }
-
         boolean doWork = false;
         if (!doneFile.exists()) {
             doWork = true;
         } else if (timestamp &gt; doneFile.lastModified()) {
             doWork = true;
-        } else if (isDefServiceName(wsdlOption)) {
+        } else if (wsdlOption.isDefServiceName()) {
             doWork = true;
         } else {
             File files[] = wsdlOption.getDependencies();
@@ -449,140 +449,15 @@
                 }
             }
         }
-
-        if (doWork) {
-            doneFile.delete();
-
-            List&lt;String&gt; list = generateCommandLine(wsdlOption, outputDirFile, basedir,
wsdlURI);
-
-            getLog().debug("Calling wsdl2java with args: " + list);
-            try {
-                new WSDLToJava((String[])list.toArray(new String[list.size()])).run(new ToolContext());
-            } catch (Throwable e) {
-                getLog().debug(e);
-                throw new MojoExecutionException(e.getMessage(), e);
-            }
-            try {
-                doneFile.createNewFile();
-            } catch (Throwable e) {
-                getLog().warn("Could not create marker file " + doneFile.getAbsolutePath());
-                getLog().debug(e);
-            }
-        }
-    }
-
-    private List&lt;String&gt; generateCommandLine(WsdlOption wsdlOption, File outputDirFile,
URI basedir,
-                                             URI wsdlURI) {
-        List&lt;String&gt; list = new ArrayList&lt;String&gt;();
-        if (wsdlOption.getPackagenames() != null) {
-            Iterator&lt;String&gt; it = wsdlOption.getPackagenames().iterator();
-            while (it.hasNext()) {
-                list.add("-p");
-                list.add(it.next());
-            }
-        }
-        if (wsdlOption.getNamespaceExcludes() != null) {
-            Iterator&lt;String&gt; it = wsdlOption.getNamespaceExcludes().iterator();
-            while (it.hasNext()) {
-                list.add("-nexclude");
-                list.add(it.next());
-            }
-        }
-
-        // -d specify the dir for generated source code
-        list.add("-d");
-        list.add(outputDirFile.toString());
-
-        for (String binding : wsdlOption.getBindingFiles()) {
-            File bindingFile = new File(binding);
-            URI bindingURI;
-            if (bindingFile.exists()) {
-                bindingURI = bindingFile.toURI();
-            } else {
-                bindingURI = basedir.resolve(binding);
-            }
-            list.add("-b");
-            list.add(bindingURI.toString());
-        }
-        if (wsdlOption.getFrontEnd() != null) {
-            list.add("-fe");
-            list.add(wsdlOption.getFrontEnd());
-        }
-        if (wsdlOption.getDataBinding() != null) {
-            list.add("-db");
-            list.add(wsdlOption.getDataBinding());
-        }
-        if (wsdlOption.getWsdlVersion() != null) {
-            list.add("-wv");
-            list.add(wsdlOption.getWsdlVersion());
-        }
-        if (wsdlOption.getCatalog() != null) {
-            list.add("-catalog");
-            list.add(wsdlOption.getCatalog());
-        }
-        if (wsdlOption.isExtendedSoapHeaders()) {
-            list.add("-exsh");
-            list.add("true");
-        }
-        if (wsdlOption.isAllowElementRefs()) {
-            list.add("-allowElementRefs");
-        }
-        if (wsdlOption.isValidateWsdl()) {
-            list.add("-validate");
-        }
-        if (wsdlOption.getDefaultExcludesNamespace() != null) {
-            list.add("-dex");
-            list.add(wsdlOption.getDefaultExcludesNamespace().toString());
-        }
-        if (wsdlOption.getDefaultNamespacePackageMapping() != null) {
-            list.add("-dns");
-            list.add(wsdlOption.getDefaultNamespacePackageMapping().toString());
-        }
-        if (wsdlOption.getServiceName() != null) {
-            list.add("-sn");
-            list.add(wsdlOption.getServiceName());
-        }
-        if (wsdlOption.isAutoNameResolution()) {
-            list.add("-autoNameResolution");
-        }
-        if (wsdlOption.isNoAddressBinding()) {
-            list.add("-noAddressBinding");
-        }
-        if (wsdlOption.getXJCargs() != null) {
-            
-            for (String value : wsdlOption.getXJCargs()) {
-                if (value == null) {
-                    value = ""; // Maven makes empty tags into null
-                                // instead of empty strings.
-                }
-                list.add("-xjc" + value);
-            }
-        }
-        if (wsdlOption.getExtraargs() != null) {
-            Iterator&lt;String&gt; it = wsdlOption.getExtraargs().iterator();
-            while (it.hasNext()) {
-                Object value = it.next();
-                if (value == null) {
-                    value = ""; // Maven makes empty tags into null
-                    // instead of empty strings.
-                }
-                list.add(value.toString());
-            }
-        }
-        if (wsdlOption.isSetWsdlLocation()) {
-            list.add("-wsdlLocation");
-            list.add(wsdlOption.getWsdlLocation() == null ? "" : wsdlOption.getWsdlLocation());
-        }
-        if (wsdlOption.isWsdlList()) {
-            list.add("-wsdlList");
-        }
-        if (getLog().isDebugEnabled() &amp;&amp; !list.contains("-verbose")) {
-            list.add("-verbose");
-        }
-        list.add(wsdlURI.toString());
-        return list;
+        return doWork;
     }
 
+    /**
+     * Recursively delete the given directory
+     * 
+     * @param f
+     * @return
+     */
     private boolean deleteDir(File f) {
         if (f.isDirectory()) {
             File files[] = f.listFiles();
@@ -598,18 +473,4 @@
         return true;
     }
 
-    private boolean isDefServiceName(WsdlOption wsdlOption) {
-        List&lt;String&gt; args = wsdlOption.extraargs;
-        if (args == null) {
-            return false;
-        }
-        for (int i = 0; i &lt; args.size(); i++) {
-            if ("-sn".equalsIgnoreCase(args.get(i))) {
-                return true;
-            }
-        }
-        return false;
-
-    }
-
 }

Modified: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOption.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOption.java?rev=886941&amp;r1=886940&amp;r2=886941&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOption.java
(original)
+++ cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOption.java
Thu Dec  3 22:04:11 2009
@@ -19,6 +19,10 @@
 
 package org.apache.cxf.maven_plugin;
 
+import java.io.File;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
 
 public class WsdlOption extends Option {
 
@@ -26,7 +30,7 @@
      * The WSDL file to process.
      */
     String wsdl;
-    
+
     /**
      * Alternatively to the wsdl string an artifact can be specified
      */
@@ -48,6 +52,47 @@
         this.wsdlArtifact = wsdlArtifact;
     }
     
+    /**
+     * Try to find a file matching the wsdl path (either absolutely, relatively to the current
dir or to
+     * the project base dir)
+     * 
+     * @return wsdl file
+     */
+    public File getWsdlFile(File baseDir) {
+        if (wsdl == null) {
+            return null;
+        }
+        File file = null;
+        try {
+            URI uri = new URI(wsdl);
+            if (uri.isAbsolute()) {
+                file = new File(uri);
+            }
+        } catch (Exception e) {
+            // ignore
+        }
+        if (file == null || !file.exists()) {
+            file = new File(wsdl);
+        }
+        if (!file.exists()) {
+            file = new File(baseDir, wsdl);
+        }
+        return file;
+    }
+
+    public boolean isDefServiceName() {
+        if (extraargs == null) {
+            return false;
+        }
+        for (int i = 0; i &lt; extraargs.size(); i++) {
+            if ("-sn".equalsIgnoreCase(extraargs.get(i))) {
+                return true;
+            }
+        }
+        return false;
+
+    }
+
     public int hashCode() {
         if (wsdl != null) {
             return wsdl.hashCode();
@@ -59,11 +104,11 @@
         if (!(obj instanceof WsdlOption)) {
             return false;
         }
-        
-        WsdlOption t = (WsdlOption) obj;
+
+        WsdlOption t = (WsdlOption)obj;
         return t.getWsdl().equals(getWsdl());
     }
-    
+
     public String toString() {
         StringBuilder builder = new StringBuilder();
         builder.append("WSDL: ").append(wsdl).append('\n');
@@ -75,4 +120,72 @@
         return builder.toString();
     }
 
+    public List&lt;String&gt; generateCommandLine(File outputDirFile, URI basedir, URI wsdlURI,
boolean debug) {
+        List&lt;String&gt; list = new ArrayList&lt;String&gt;();
+        addList(list, "-p", true, getPackagenames());
+        addList(list, "-nexclude", true, getNamespaceExcludes());
+        addIfNotNull(list, outputDirFile, "-d");
+        for (String binding : getBindingFiles()) {
+            File bindingFile = new File(binding);
+            URI bindingURI = bindingFile.exists() ? bindingFile.toURI() : basedir.resolve(binding);
+            list.add("-b");
+            list.add(bindingURI.toString());
+        }
+        addIfNotNull(list, getFrontEnd(), "-fe");
+        addIfNotNull(list, getDataBinding(), "-db");
+        addIfNotNull(list, getWsdlVersion(), "-wv");
+        addIfNotNull(list, getCatalog(), "-catalog");
+        if (isExtendedSoapHeaders()) {
+            list.add("-exsh");
+            list.add("true");
+        }
+        addIfTrue(list, isAllowElementRefs(), "-allowElementRefs");
+        addIfTrue(list, isValidateWsdl(), "-validate");
+        addIfNotNull(list, getDefaultExcludesNamespace(), "-dex");
+        addIfNotNull(list, getDefaultNamespacePackageMapping(), "-dns");
+        addIfNotNull(list, getServiceName(), "-sn");
+        addIfTrue(list, isAutoNameResolution(), "-autoNameResolution");
+        addIfTrue(list, isNoAddressBinding(), "-noAddressBinding");
+        addList(list, "-xjc", false, getXJCargs());
+        addList(list, "", false, getExtraargs());
+        if (isSetWsdlLocation()) {
+            list.add("-wsdlLocation");
+            list.add(getWsdlLocation() == null ? "" : getWsdlLocation());
+        }
+        addIfTrue(list, isWsdlList(), "-wsdlList");
+        addIfTrue(list, debug &amp;&amp; !list.contains("-verbose"), "-verbose");
+        list.add(wsdlURI.toString());
+        return list;
+    }
+
+    private static void addIfTrue(List&lt;String&gt; list, boolean expression, String key)
{
+        if (expression) {
+            list.add(key);
+        }
+    }
+
+    private static void addIfNotNull(List&lt;String&gt; list, Object value, String key) {
+        if (value != null) {
+            list.add(key);
+            list.add(value.toString());
+        }
+    }
+
+    private static void addList(List&lt;String&gt; destList, String key, boolean keyAsOwnElement,
+                                List&lt;String&gt; sourceList) {
+        if (sourceList == null) {
+            return;
+        }
+        for (String value : sourceList) {
+            if (keyAsOwnElement) {
+                destList.add(key);
+                destList.add(value);
+            } else {
+                // Maven makes empty tags into null
+                // instead of empty strings. so replace null by ""
+                destList.add(key + ((value == null) ? "" : value));
+            }
+        }
+    }
+
 }




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886939 - in /cxf/branches/2.2.x-fixes: ./ maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/</title>
<author><name>dkulp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091203220150.75FF723888EC@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091203220150-75FF723888EC@eris-apache-org%3e</id>
<updated>2009-12-03T22:01:50Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: dkulp
Date: Thu Dec  3 22:01:49 2009
New Revision: 886939

URL: http://svn.apache.org/viewvc?rev=886939&amp;view=rev
Log:
Merged revisions 882468 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r882468 | cschneider | 2009-11-20 04:44:22 -0500 (Fri, 20 Nov 2009) | 1 line
  
  Refactoring and documentation
........

Modified:
    cxf/branches/2.2.x-fixes/   (props changed)
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java
    cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOptionLoader.java

Propchange: cxf/branches/2.2.x-fixes/
            ('svn:mergeinfo' removed)

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java?rev=886939&amp;r1=886938&amp;r2=886939&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java
(original)
+++ cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java
Thu Dec  3 22:01:49 2009
@@ -193,29 +193,6 @@
     private ArtifactResolver artifactResolver;
 
     /**
-     * Create WsdlOption objects for each wsdl file found in the root dir. includes, excludes
filter which
-     * files are considered. The defaultOptions will be applied.
-     * 
-     * @param root Base directory to search
-     * @param output
-     * @return
-     * @throws MojoExecutionException
-     */
-    private List&lt;WsdlOption&gt; getWsdlOptionsFromDir(final File root, final File output)
-        throws MojoExecutionException {
-        List&lt;WsdlOption&gt; options = new ArrayList&lt;WsdlOption&gt;();
-        for (WsdlOption o : new WsdlOptionLoader().load(root, includes, excludes, defaultOptions))
{
-            if (o.getOutputDir() == null) {
-                o.setOutputDir(output);
-            }
-            if (!options.contains(o)) {
-                options.add(o);
-            }
-        }
-        return options;
-    }
-
-    /**
      * Try to find a file matching the given wsdlPath (either absolutely, relatively to the
current dir or to
      * the project base dir)
      * 
@@ -287,10 +264,14 @@
         throws MojoExecutionException {
         List&lt;WsdlOption&gt; effectiveWsdlOptions = new ArrayList&lt;WsdlOption&gt;();
         if (wsdlRoot != null &amp;&amp; wsdlRoot.exists() &amp;&amp; !disableDirectoryScan)
{
-            effectiveWsdlOptions.addAll(getWsdlOptionsFromDir(wsdlRoot, sourceRoot));
+            effectiveWsdlOptions.addAll(WsdlOptionLoader.loadWsdlOptionsFromFiles(wsdlRoot,
includes,
+                                                                                  excludes,
defaultOptions,
+                                                                                  sourceRoot));
         }
         if (testWsdlRoot != null &amp;&amp; testWsdlRoot.exists() &amp;&amp; !disableDirectoryScan)
{
-            effectiveWsdlOptions.addAll(getWsdlOptionsFromDir(testWsdlRoot, testSourceRoot));
+            effectiveWsdlOptions.addAll(WsdlOptionLoader.loadWsdlOptionsFromFiles(testWsdlRoot,
includes,
+                                                                                  excludes,
defaultOptions,
+                                                                                  testSourceRoot));
         }
         mergeOptions(effectiveWsdlOptions);
         downloadRemoteWsdls(effectiveWsdlOptions);
@@ -298,7 +279,7 @@
     }
     
     @SuppressWarnings("unchecked")
-    public Artifact resolveRemoteWsdlArtifact(List remoteRepos, Artifact artifact) 
+    private Artifact resolveRemoteWsdlArtifact(List remoteRepos, Artifact artifact)
         throws MojoExecutionException {
         
         /**
@@ -333,7 +314,7 @@
         return artifact;
     }
 
-    public void downloadRemoteWsdls(List&lt;WsdlOption&gt; effectiveWsdlOptions) throws MojoExecutionException
{
+    private void downloadRemoteWsdls(List&lt;WsdlOption&gt; effectiveWsdlOptions) throws
MojoExecutionException {
         List remoteRepos;
         try {
             remoteRepos = ProjectUtils.buildArtifactRepositories(repositories, artifactRepositoryFactory,

Modified: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java
URL: 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=886939&amp;r1=886938&amp;r2=886939&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java
(original)
+++ cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlArtifact.java
Thu Dec  3 22:01:49 2009
@@ -19,6 +19,9 @@
 
 package org.apache.cxf.maven_plugin;
 
+/**
+ * Represents a wsdl file that is stored in a maven repository
+ */
 public class WsdlArtifact {
     private String groupId;
     private String artifactId;

Modified: cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOptionLoader.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOptionLoader.java?rev=886939&amp;r1=886938&amp;r2=886939&amp;view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOptionLoader.java
(original)
+++ cxf/branches/2.2.x-fixes/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WsdlOptionLoader.java
Thu Dec  3 22:01:49 2009
@@ -32,9 +32,47 @@
 public final class WsdlOptionLoader {
     private static final String WSDL_OPTIONS = "-options$";
     private static final String WSDL_BINDINGS = "-binding-?\\d*.xml$";
-
     
-    private String getIncludeExcludeString(String[] arr) {
+    private WsdlOptionLoader() {
+    }
+
+    /**
+     * Scan files in a directory and generate one wsdlOption per file found. Extra args for
code generation
+     * can be defined in a file that is named like the wsdl file and ends in -options. Binding
files can be
+     * defined in files named like the wsdl file and end in -binding-*.xml
+     * 
+     * @param wsdlBasedir
+     * @param includes file name patterns to include
+     * @param excludes file name patterns to exclude
+     * @param defaultOptions options that should be used if no special file is given
+     * @return list of one WsdlOption object for each wsdl found
+     * @throws MojoExecutionException
+     */
+    public static List&lt;WsdlOption&gt; loadWsdlOptionsFromFiles(File wsdlBasedir, String
includes[],
+                                                            String excludes[], Option defaultOptions,
+                                                            File defaultOutputDir)
+        throws MojoExecutionException {
+
+        if (wsdlBasedir == null) {
+            return new ArrayList&lt;WsdlOption&gt;();
+        }
+
+        if (!wsdlBasedir.exists()) {
+            throw new MojoExecutionException(wsdlBasedir + " does not exist");
+        }
+
+        List&lt;File&gt; wsdlFiles = getWsdlFiles(wsdlBasedir, includes, excludes);
+        List&lt;WsdlOption&gt; wsdlOptions = new ArrayList&lt;WsdlOption&gt;();
+        for (File wsdl : wsdlFiles) {
+            WsdlOption wsdlOption = generateWsdlOptionFromFile(wsdl, defaultOptions, defaultOutputDir);
+            if (wsdlOption != null) {
+                wsdlOptions.add(wsdlOption);
+            }
+        }
+        return wsdlOptions;
+    }
+
+    private static String joinWithComma(String[] arr) {
         if (arr == null) {
             return "";
         }
@@ -50,40 +88,19 @@
         }
         return str.toString();
     }
-    
-    public List&lt;WsdlOption&gt; load(String wsdlRoot) throws MojoExecutionException {
-        return load(new File(wsdlRoot), new String[] {"*.wsdl"}, null, null);
-    }
 
-    public List&lt;WsdlOption&gt; load(File wsdlBasedir,
-                                 String includes[],
-                                 String excludes[],
-                                 Option defaultOptions)
+    private static List&lt;File&gt; getWsdlFiles(File dir, String includes[], String excludes[])
         throws MojoExecutionException {
-        
-        if (wsdlBasedir == null) {
-            return new ArrayList&lt;WsdlOption&gt;();
-        }
-
-        if (!wsdlBasedir.exists()) {
-            throw new MojoExecutionException(wsdlBasedir + " does not exist");
-        }
 
-        return findJobs(wsdlBasedir, getWsdlFiles(wsdlBasedir, includes, excludes), defaultOptions);
-    }
-
-    private List&lt;File&gt; getWsdlFiles(File dir, String includes[], String excludes[])
-        throws MojoExecutionException {
-        
         List&lt;String&gt; exList = new ArrayList&lt;String&gt;();
         if (excludes != null) {
             exList.addAll(Arrays.asList(excludes));
         }
         exList.addAll(Arrays.asList(org.codehaus.plexus.util.FileUtils.getDefaultExcludes()));
-        
-        String inc = getIncludeExcludeString(includes);
-        String ex = getIncludeExcludeString(exList.toArray(new String[exList.size()]));
-        
+
+        String inc = joinWithComma(includes);
+        String ex = joinWithComma(exList.toArray(new String[exList.size()]));
+
         try {
             List newfiles = org.codehaus.plexus.util.FileUtils.getFiles(dir, inc, ex);
             return CastUtils.cast(newfiles);
@@ -92,69 +109,68 @@
         }
     }
 
-    private File getOptions(File dir, String pattern) {
-        List&lt;File&gt; files = FileUtils.getFiles(dir, pattern);
-        if (files.size() &gt; 0) {
-            return files.iterator().next();
+    private static String[] readOptionsFromFile(File dir, String wsdlName) throws MojoExecutionException
{
+        String[] noOptions = new String[] {};
+        List&lt;File&gt; files = FileUtils.getFiles(dir, wsdlName + WSDL_OPTIONS);
+        if (files.size() &lt;= 0) {
+            return noOptions;
+        }
+        File optionsFile = files.iterator().next();
+        if (optionsFile == null || !optionsFile.exists()) {
+            return noOptions;
+        }
+        try {
+            List&lt;String&gt; lines = FileUtils.readLines(optionsFile);
+            if (lines.size() &lt;= 0) {
+                return noOptions;
+            }
+            return lines.iterator().next().split(" ");
+        } catch (Exception e) {
+            throw new MojoExecutionException("Error reading options from file "
+                                             + optionsFile.getAbsolutePath(), e);
         }
-        return null;
-    }
-
-    private List&lt;File&gt; getBindingFiles(File dir, String pattern) {
-        return FileUtils.getFiles(dir, pattern);
     }
 
-    protected List&lt;WsdlOption&gt; findJobs(File dir, List&lt;File&gt; wsdlFiles, Option
defaultOptions) {
-        List&lt;WsdlOption&gt; jobs = new ArrayList&lt;WsdlOption&gt;();
+    protected static WsdlOption generateWsdlOptionFromFile(final File wsdl, final Option
defaultOptions,
+                                                           File defaultOutputDir)
+        throws MojoExecutionException {
 
-        for (File wsdl : wsdlFiles) {
-            if (wsdl == null || !wsdl.exists()) {
-                continue;
-            }
+        if (wsdl == null || !wsdl.exists()) {
+            return null;
+        }
 
-            String wsdlName = wsdl.getName();
-            int idx = wsdlName.toLowerCase().lastIndexOf(".wsdl");
-            if (idx == -1) {
-                idx = wsdlName.lastIndexOf('.');
-            }
-            if (idx != -1) {
-                wsdlName = wsdlName.substring(0, idx);
-                File options = getOptions(dir, wsdlName + WSDL_OPTIONS);
-                List&lt;File&gt; bindings = getBindingFiles(dir, wsdlName + WSDL_BINDINGS);
-    
-                jobs.add(generateWsdlOption(wsdl, bindings, options, defaultOptions));
-            }
+        final String wsdlFileName = wsdl.getName();
+        int idx = wsdlFileName.toLowerCase().lastIndexOf(".wsdl");
+        if (idx == -1) {
+            idx = wsdlFileName.lastIndexOf('.');
+        }
+        if (idx == -1) {
+            return null;
         }
-        return jobs;
-    }
 
-    protected WsdlOption generateWsdlOption(final File wsdl, 
-                                            final List&lt;File&gt; bindingFiles, 
-                                            final File options,
-                                            final Option defaultOptions) {
-        WsdlOption wsdlOption = new WsdlOption();
-
-        if (options != null &amp;&amp; options.exists()) {
-            try {
-                List&lt;String&gt; lines = FileUtils.readLines(options);
-                if (lines.size() &gt; 0) {
-                    wsdlOption.getExtraargs().addAll(Arrays.asList(lines.iterator().next().split("
")));
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
+        final WsdlOption wsdlOption = new WsdlOption();
+        final String wsdlName = wsdlFileName.substring(0, idx);
+
+        final String[] options = readOptionsFromFile(wsdl.getParentFile(), wsdlName);
+        if (options.length &gt; 0) {
+            wsdlOption.getExtraargs().addAll(Arrays.asList(options));
         } else if (defaultOptions != null) {
             // no options specified use the defaults
             defaultOptions.copyOptions(wsdlOption);
         }
-        
+
+        List&lt;File&gt; bindingFiles = FileUtils.getFiles(wsdl.getParentFile(), wsdlName
+ WSDL_BINDINGS);
         if (bindingFiles != null) {
             for (File binding : bindingFiles) {
                 wsdlOption.addBindingFile(binding);
             }
         }
         wsdlOption.setWsdl(wsdl.toURI().toString());
-        
+
+        if (wsdlOption.getOutputDir() == null) {
+            wsdlOption.setOutputDir(defaultOutputDir);
+        }
+
         return wsdlOption;
     }
-}
\ No newline at end of file
+}




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886934 - /cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLManagerImpl.java</title>
<author><name>dkulp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c20091203215420.69F3223888E9@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091203215420-69F3223888E9@eris-apache-org%3e</id>
<updated>2009-12-03T21:54:20Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: dkulp
Date: Thu Dec  3 21:54:19 2009
New Revision: 886934

URL: http://svn.apache.org/viewvc?rev=886934&amp;view=rev
Log:
Put in place a guard against problems of our resolvers not being able to
resolve a wsdl, but wsd4j can.

Modified:
    cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLManagerImpl.java

Modified: cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLManagerImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLManagerImpl.java?rev=886934&amp;r1=886933&amp;r2=886934&amp;view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLManagerImpl.java (original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLManagerImpl.java Thu Dec  3
21:54:19 2009
@@ -219,21 +219,26 @@
                                                                                 catLocator,
                                                                                 bus);
         InputSource src = wsdlLocator.getBaseInputSource();
-        Document doc;
-        try {
-            doc = StaxUtils.read(StaxUtils.createXMLStreamReader(src), true);
-            if (src.getSystemId() != null) {
-                try {
-                    doc.setDocumentURI(new String(src.getSystemId()));
-                } catch (Exception e) {
-                    // ignore - probably not DOM level 3
+        Definition def = null;
+        if (src.getByteStream() != null || src.getCharacterStream() != null) {
+            Document doc;
+            try {
+                doc = StaxUtils.read(StaxUtils.createXMLStreamReader(src), true);
+                if (src.getSystemId() != null) {
+                    try {
+                        doc.setDocumentURI(new String(src.getSystemId()));
+                    } catch (Exception e) {
+                        //ignore - probably not DOM level 3
+                    }
                 }
+            } catch (Exception e) {
+                throw new WSDLException(WSDLException.PARSER_ERROR, e.getMessage(), e);
             }
-        } catch (Exception e) {
-            throw new WSDLException(WSDLException.PARSER_ERROR, e.getMessage(), e);
+            def = reader.readWSDL(wsdlLocator, doc.getDocumentElement());
+        } else {
+            def = reader.readWSDL(wsdlLocator);
         }
         
-        Definition def = reader.readWSDL(wsdlLocator, doc.getDocumentElement());
         synchronized (definitionsMap) {
             definitionsMap.put(url, def);
         }




</pre>
</div>
</content>
</entry>
<entry>
<title>[CONF] Apache CXF Documentation &gt; Apache Camel Transport</title>
<author><name>confluence@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c1136620708.341.1259773920018.JavaMail.www-data@brutus%3e"/>
<id>urn:uuid:%3c1136620708-341-1259773920018-JavaMail-www-data@brutus%3e</id>
<updated>2009-12-02T17:12:00Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
&lt;html&gt;
&lt;head&gt;
    &lt;base href="http://cwiki.apache.org/confluence"&gt;
            &lt;link rel="stylesheet" href="/confluence/s/1519/1/1/_/styles/combined.css?spaceKey=CXF20DOC&amp;amp;forWysiwyg=true"
type="text/css"&gt;
    &lt;/head&gt;
&lt;body style="background-color: white" bgcolor="white"&gt;
&lt;div id="pageContent"&gt;
&lt;div id="notificationFormat"&gt;
&lt;div class="wiki-content"&gt;
&lt;div class="email"&gt;
     &lt;h2&gt;&lt;a href="http://cwiki.apache.org/confluence/display/CXF20DOC/Apache+Camel+Transport"&gt;Apache
Camel Transport&lt;/a&gt;&lt;/h2&gt;
     &lt;h4&gt;Page &lt;b&gt;edited&lt;/b&gt; by             &lt;a href="http://cwiki.apache.org/confluence/display/~dkulp"&gt;Daniel
Kulp&lt;/a&gt;
    &lt;/h4&gt;
     
          &lt;br/&gt;
     &lt;div class="notificationGreySide"&gt;
         &lt;p&gt;&lt;a href="http://camel.apache.org/" rel="nofollow"&gt;Apache Camel&lt;/a&gt;
offers another Transport for CXF which is quite interesting. The &lt;a href="http://camel.apache.org/camel-transport-for-cxf.html"
rel="nofollow"&gt;Camel Transport for CXF&lt;/a&gt; allows you to attach a CXF service to
an Apache Camel endpoint. This makes it very easy to use Camel´s extensive routing capabilities
together with Apache CXF. For example if you attach a CXF service to the address "camel://direct:MyService"
you can offer it on JMS by using the route from("jms://queue.Myqueue").to("direct:MyService").
The Howto "&lt;a href="/confluence/display/CAMEL/Better+JMS+Transport+for+CXF+Webservice+using+Apache+Camel"
title="Better JMS Transport for CXF Webservice using Apache Camel"&gt;Better JMS Transport
for CXF Webservice using Apache Camel&lt;/a&gt;" shows you how to use Apache Camel for easier
JMS Transport configuration than with the current native CXF JMS Transport. But of course
Camel offers &lt;a href="http://camel.apache.org/components.html" rel="nofollow"&gt;much&lt;/a&gt;
&lt;a href="http://camel.apache.org/enterprise-integration-patterns.html" rel="nofollow"&gt;more&lt;/a&gt;
than only &lt;a href="http://camel.apache.org/jms.html" rel="nofollow"&gt;JMS&lt;/a&gt;.&lt;/p&gt;
     &lt;/div&gt;
     &lt;div id="commentsSection" class="wiki-content pageSection"&gt;
       &lt;div style="float: right;"&gt;
            &lt;a href="http://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey"&gt;Change Notification Preferences&lt;/a&gt;
       &lt;/div&gt;

       &lt;a href="http://cwiki.apache.org/confluence/display/CXF20DOC/Apache+Camel+Transport"&gt;View
Online&lt;/a&gt;
       |
       &lt;a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=95907&amp;revisedVersion=4&amp;originalVersion=3"&gt;View
Change&lt;/a&gt;
              |
       &lt;a href="http://cwiki.apache.org/confluence/display/CXF20DOC/Apache+Camel+Transport?showComments=true&amp;amp;showCommentArea=true#addcomment"&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;


</pre>
</div>
</content>
</entry>
<entry>
<title>[CONF] Apache CXF Documentation &gt; Apache Camel Transport</title>
<author><name>confluence@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c1735544309.340.1259773860030.JavaMail.www-data@brutus%3e"/>
<id>urn:uuid:%3c1735544309-340-1259773860030-JavaMail-www-data@brutus%3e</id>
<updated>2009-12-02T17:11:00Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
&lt;html&gt;
&lt;head&gt;
    &lt;base href="http://cwiki.apache.org/confluence"&gt;
            &lt;link rel="stylesheet" href="/confluence/s/1519/1/1/_/styles/combined.css?spaceKey=CXF20DOC&amp;amp;forWysiwyg=true"
type="text/css"&gt;
    &lt;/head&gt;
&lt;body style="background-color: white" bgcolor="white"&gt;
&lt;div id="pageContent"&gt;
&lt;div id="notificationFormat"&gt;
&lt;div class="wiki-content"&gt;
&lt;div class="email"&gt;
     &lt;h2&gt;&lt;a href="http://cwiki.apache.org/confluence/display/CXF20DOC/Apache+Camel+Transport"&gt;Apache
Camel Transport&lt;/a&gt;&lt;/h2&gt;
     &lt;h4&gt;Page &lt;b&gt;edited&lt;/b&gt; by             &lt;a href="http://cwiki.apache.org/confluence/display/~dkulp"&gt;Daniel
Kulp&lt;/a&gt;
    &lt;/h4&gt;
     
          &lt;br/&gt;
     &lt;div class="notificationGreySide"&gt;
         &lt;p&gt;&lt;a href="http://camel.apache.org/" rel="nofollow"&gt;Apache Camel&lt;/a&gt;
offers another Transport for CXF which is quite interesting. The &lt;a href="http://camel.apache.org/camel-transport-for-cxf.html"
rel="nofollow"&gt;Camel Transport for CXF&lt;/a&gt; allows you to attach a CXF service to
an Apache Camel endpoint. This makes it very easy to use Camel´s extensive routing capabilities
together with Apache CXF. For example if you attach a CXF service to the address "camel://direct:MyService"
you can offer it on JMS by using the route from("jms://queue.Myqueue").to("direct:MyService").
The Howto "&lt;a href="/confluence/display/CAMEL/Better+JMS+Transport+for+CXF+Webservice+using+Apache+Camel"
title="Better JMS Transport for CXF Webservice using Apache Camel"&gt;Better JMS Transport
for CXF Webservice using Apache Camel&lt;/a&gt;" shows you how to use Apache Camel for easier
JMS Transport configuration than with the current native CXF JMS Transport. But of course
Camel offers &lt;a href="http://camel.apache.org/components.html" rel="nofollow"&gt;much&lt;/a&gt;
&lt;a href="/confluence/display/CAMEL/Enterprise+Integration+Patterns" title="Enterprise Integration
Patterns"&gt;more&lt;/a&gt; than only &lt;a href="/confluence/display/CAMEL/JMS" title="JMS"&gt;JMS&lt;/a&gt;.&lt;/p&gt;
     &lt;/div&gt;
     &lt;div id="commentsSection" class="wiki-content pageSection"&gt;
       &lt;div style="float: right;"&gt;
            &lt;a href="http://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey"&gt;Change Notification Preferences&lt;/a&gt;
       &lt;/div&gt;

       &lt;a href="http://cwiki.apache.org/confluence/display/CXF20DOC/Apache+Camel+Transport"&gt;View
Online&lt;/a&gt;
       |
       &lt;a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=95907&amp;revisedVersion=3&amp;originalVersion=2"&gt;View
Change&lt;/a&gt;
              |
       &lt;a href="http://cwiki.apache.org/confluence/display/CXF20DOC/Apache+Camel+Transport?showComments=true&amp;amp;showCommentArea=true#addcomment"&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;


</pre>
</div>
</content>
</entry>
<entry>
<title>[CONF] Apache CXF Documentation &gt; Client HTTP Transport (including SSL support)</title>
<author><name>confluence@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c1600362736.334.1259769600020.JavaMail.www-data@brutus%3e"/>
<id>urn:uuid:%3c1600362736-334-1259769600020-JavaMail-www-data@brutus%3e</id>
<updated>2009-12-02T16:00:00Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
&lt;html&gt;
&lt;head&gt;
    &lt;base href="http://cwiki.apache.org/confluence"&gt;
            &lt;link rel="stylesheet" href="/confluence/s/1519/1/1/_/styles/combined.css?spaceKey=CXF20DOC&amp;amp;forWysiwyg=true"
type="text/css"&gt;
    &lt;/head&gt;
&lt;body style="background-color: white" bgcolor="white"&gt;
&lt;div id="pageContent"&gt;
&lt;div id="notificationFormat"&gt;
&lt;div class="wiki-content"&gt;
&lt;div class="email"&gt;
    &lt;h2&gt;&lt;a href="http://cwiki.apache.org/confluence/display/CXF20DOC/Client+HTTP+Transport+%28including+SSL+support%29"&gt;Client
HTTP Transport (including SSL support)&lt;/a&gt;&lt;/h2&gt;
    &lt;h4&gt;Comment &lt;b&gt;removed&lt;/b&gt; by              &lt;a href="http://cwiki.apache.org/confluence/display/~dkulp"&gt;Daniel
Kulp&lt;/a&gt;
    &lt;/h4&gt;
    &lt;br/&gt;
    &lt;div class="notificationGreySide"&gt;
        &lt;p&gt;Please delete this comment, I have moved my SSL+NTLM question to the forum:
&lt;a href="http://www.coderanch.com/t/473115/Web-Services/java/NTLM-HTTPS-SSL-using-CXF"
rel="nofollow"&gt;http://www.coderanch.com/t/473115/Web-Services/java/NTLM-HTTPS-SSL-using-CXF&lt;/a&gt;&lt;/p&gt;
    &lt;/div&gt;

    &lt;div id="commentsSection" class="wiki-content pageSection"&gt;
       &lt;div style="float: right;"&gt;
            &lt;a href="http://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey"&gt;Change Notification Preferences&lt;/a&gt;
       &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;


</pre>
</div>
</content>
</entry>
<entry>
<title>[CONF] Apache CXF &gt; DOSGi Releases</title>
<author><name>confluence@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c1949329313.313.1259766060021.JavaMail.www-data@brutus%3e"/>
<id>urn:uuid:%3c1949329313-313-1259766060021-JavaMail-www-data@brutus%3e</id>
<updated>2009-12-02T15:01:00Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
&lt;html&gt;
&lt;head&gt;
    &lt;base href="http://cwiki.apache.org/confluence"&gt;
            &lt;link rel="stylesheet" href="/confluence/s/1519/1/11/_/styles/combined.css?spaceKey=CXF&amp;amp;forWysiwyg=true"
type="text/css"&gt;
    &lt;/head&gt;
&lt;body style="background-color: white" bgcolor="white"&gt;
&lt;div id="pageContent"&gt;
&lt;div id="notificationFormat"&gt;
&lt;div class="wiki-content"&gt;
&lt;div class="email"&gt;
     &lt;h2&gt;&lt;a href="http://cwiki.apache.org/confluence/display/CXF/DOSGi+Releases"&gt;DOSGi
Releases&lt;/a&gt;&lt;/h2&gt;
     &lt;h4&gt;Page &lt;b&gt;edited&lt;/b&gt; by             &lt;a href="http://cwiki.apache.org/confluence/display/~eglynn"&gt;Eoghan
Glynn&lt;/a&gt;
    &lt;/h4&gt;
     Updated for dOSGi 1.1 release
          &lt;div id="versionComment" class="noteMacro" style="display:none; padding: 5px;"&gt;
     Updated for dOSGi 1.1 release&lt;br /&gt;
     &lt;/div&gt;
          &lt;br/&gt;
     &lt;div class="notificationGreySide"&gt;
         &lt;h2&gt;&lt;a name="DOSGiReleases-Releases"&gt;&lt;/a&gt;Releases&lt;/h2&gt;

&lt;h3&gt;&lt;a name="DOSGiReleases-CurrentRelease"&gt;&lt;/a&gt;Current Release&lt;/h3&gt;
&lt;p&gt;1.1 is the current release of Distributed OSGi, as of Dec 1st 2009. For more information
on what's new in this release, please see the README in each distribution. The various distributions
can be downloaded as follows:&lt;/p&gt;

&lt;table class='confluenceTable'&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;th class='confluenceTh'&gt;Description&lt;/th&gt;
&lt;th class='confluenceTh'&gt;File&lt;/th&gt;
&lt;th class='confluenceTh'&gt;MD5&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class='confluenceTd'&gt;Multi-bundle distribution (tar.gz)&lt;/td&gt;
&lt;td class='confluenceTd'&gt;&lt;a href="http://www.apache.org/dist/cxf/dosgi/1.1/cxf-dosgi-ri-multibundle-distribution-1.1.tar.gz"
rel="nofollow"&gt;cxf-dosgi-ri-multibundle-distribution-1.1.tar.gz&lt;/a&gt;&lt;/td&gt;
&lt;td class='confluenceTd'&gt;&lt;a href="http://www.apache.org/dist/cxf/dosgi/1.1/cxf-dosgi-ri-multibundle-distribution-1.1.tar.gz.md5"
rel="nofollow"&gt;cxf-dosgi-ri-multibundle-distribution-1.1.tar.gz.md5&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class='confluenceTd'&gt;Multi-bundle distribution (zip)&lt;/td&gt;
&lt;td class='confluenceTd'&gt;&lt;a href="http://www.apache.org/dist/cxf/dosgi/1.1/cxf-dosgi-ri-multibundle-distribution-1.1.zip"
rel="nofollow"&gt;cxf-dosgi-ri-multibundle-distribution-1.1.zip&lt;/a&gt;&lt;/td&gt;
&lt;td class='confluenceTd'&gt;&lt;a href="http://www.apache.org/dist/cxf/dosgi/1.1/cxf-dosgi-ri-multibundle-distribution-1.1.zip.md5"
rel="nofollow"&gt;cxf-dosgi-ri-multibundle-distribution-1.1.zip.md5&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class='confluenceTd'&gt;Single-bundle distribution&lt;/td&gt;
&lt;td class='confluenceTd'&gt;&lt;a href="http://www.apache.org/dist/cxf/dosgi/1.1/cxf-dosgi-ri-singlebundle-distribution-1.1.jar"
rel="nofollow"&gt;cxf-dosgi-ri-singlebundle-distribution-1.1.jar&lt;/a&gt;&lt;/td&gt;
&lt;td class='confluenceTd'&gt;&lt;a href="http://www.apache.org/dist/cxf/dosgi/1.1/cxf-dosgi-ri-singlebundle-distribution-1.1.jar.md5"
rel="nofollow"&gt;cxf-dosgi-ri-singlebundle-distribution-1.1.jar.md5&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class='confluenceTd'&gt;Source distribution&lt;/td&gt;
&lt;td class='confluenceTd'&gt;&lt;a href="http://www.apache.org/dist/cxf/dosgi/1.1/cxf-dosgi-ri-source-distribution-1.1.tar.gz"
rel="nofollow"&gt;cxf-dosgi-ri-source-distribution-1.1.tar.gz&lt;/a&gt;&lt;/td&gt;
&lt;td class='confluenceTd'&gt;&lt;a href="http://www.apache.org/dist/cxf/dosgi/1.1/cxf-dosgi-ri-source-distribution-1.1.tar.gz.md5"
rel="nofollow"&gt;cxf-dosgi-ri-source-distribution-1.1.tar.gz.md5&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;


&lt;h3&gt;&lt;a name="DOSGiReleases-Maven"&gt;&lt;/a&gt;Maven&lt;/h3&gt;

&lt;p&gt;To pull the bundles in from maven, simply add them as a dependency to your pom. For
the &lt;b&gt;Single Bundle Distribution&lt;/b&gt; you depend on &lt;/p&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;&amp;lt;groupId&amp;gt;org.apache.cxf.dosgi&amp;lt;/groupId&amp;gt;
&amp;lt;artifactId&amp;gt;cxf-dosgi-ri-singlebundle-distribution&amp;lt;/artifactId&amp;gt;
&amp;lt;version&amp;gt;1.1&amp;lt;/version&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;When using the &lt;b&gt;Multi Bundle Distribution&lt;/b&gt; you add the following
dependencies:&lt;/p&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;&amp;lt;dependency&amp;gt;
  &amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;cxf-bundle-minimal&amp;lt;/artifactId&amp;gt;
  &amp;lt;version&amp;gt;2.2.5&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;
&amp;lt;dependency&amp;gt;
  &amp;lt;groupId&amp;gt;org.apache.cxf.dosgi&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;cxf-dosgi-ri-discovery-local&amp;lt;/artifactId&amp;gt;
  &amp;lt;version&amp;gt;1.1&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;
&amp;lt;dependency&amp;gt;
  &amp;lt;groupId&amp;gt;org.apache.cxf.dosgi&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;cxf-dosgi-ri-dsw-cxf&amp;lt;/artifactId&amp;gt;
  &amp;lt;version&amp;gt;1.1&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The released artefacts are available from the maven central repository, which is
normally picked up by default. These are the details in case you don't have a default setup:&lt;/p&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;&amp;lt;repository&amp;gt;
  &amp;lt;id&amp;gt;central&amp;lt;/id&amp;gt;
  &amp;lt;name&amp;gt;Default maven repo&amp;lt;/name&amp;gt;
  &amp;lt;url&amp;gt;http:&lt;span class="code-comment"&gt;//repo1.maven.org/maven2&amp;lt;/url&amp;gt;
&lt;/span&gt;  &amp;lt;releases&amp;gt;
    &amp;lt;enabled&amp;gt;&lt;span class="code-keyword"&gt;true&lt;/span&gt;&amp;lt;/enabled&amp;gt;
  &amp;lt;/releases&amp;gt;
  &amp;lt;snapshots&amp;gt;
    &amp;lt;enabled&amp;gt;&lt;span class="code-keyword"&gt;false&lt;/span&gt;&amp;lt;/enabled&amp;gt;
  &amp;lt;/snapshots&amp;gt;
&amp;lt;/repository&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;&lt;a name="DOSGiReleases-Snapshots"&gt;&lt;/a&gt;Snapshots&lt;/h2&gt;

&lt;p&gt;You can download 1.2-SNAPSHOT distributions from the following locations:&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Single-Bundle distribution&lt;/b&gt; &lt;a href="https://repository.apache.org/content/groups/snapshots/org/apache/cxf/dosgi/cxf-dosgi-ri-singlebundle-distribution/1.2-SNAPSHOT/cxf-dosgi-ri-singlebundle-distribution-1.2-SNAPSHOT.jar"
rel="nofollow"&gt;download from here&lt;/a&gt;&lt;br/&gt;
&lt;b&gt;Multi-Bundle distribution&lt;/b&gt; &lt;a href="https://repository.apache.org/content/groups/snapshots/org/apache/cxf/dosgi/cxf-dosgi-ri-multibundle-distribution/1.2-SNAPSHOT/cxf-dosgi-ri-multibundle-distribution-1.2-SNAPSHOT.zip"
rel="nofollow"&gt;download from here&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;a name="DOSGiReleases-Maven"&gt;&lt;/a&gt;Maven&lt;/h3&gt;

&lt;p&gt;You can also pull the snapshots in via maven. Add the Apache Snapshot repository
to your maven repositories:&lt;/p&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;&amp;lt;repository&amp;gt;
  &amp;lt;id&amp;gt;apache.snapshots&amp;lt;/id&amp;gt;
  &amp;lt;name&amp;gt;Apache Maven Snapshot Repository&amp;lt;/name&amp;gt;
  &amp;lt;url&amp;gt;http:&lt;span class="code-comment"&gt;//repository.apache.org/content/groups/snapshots/&amp;lt;/url&amp;gt;
&lt;/span&gt;  &amp;lt;releases&amp;gt;
    &amp;lt;enabled&amp;gt;&lt;span class="code-keyword"&gt;false&lt;/span&gt;&amp;lt;/enabled&amp;gt;
  &amp;lt;/releases&amp;gt;
  &amp;lt;snapshots&amp;gt;
    &amp;lt;enabled&amp;gt;&lt;span class="code-keyword"&gt;true&lt;/span&gt;&amp;lt;/enabled&amp;gt;
  &amp;lt;/snapshots&amp;gt;
&amp;lt;/repository&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Then you can depend on the components in maven.&lt;br/&gt;
For the &lt;b&gt;Single Bundle Distribution&lt;/b&gt; you depend on &lt;/p&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;&amp;lt;groupId&amp;gt;org.apache.cxf.dosgi&amp;lt;/groupId&amp;gt;
&amp;lt;artifactId&amp;gt;cxf-dosgi-ri-singlebundle-distribution&amp;lt;/artifactId&amp;gt;
&amp;lt;version&amp;gt;1.2-SNAPSHOT&amp;lt;/version&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;When using the &lt;b&gt;Multi Bundle Distribution&lt;/b&gt; you add the following
dependencies:&lt;/p&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;&amp;lt;dependency&amp;gt;
  &amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;cxf-bundle-minimal&amp;lt;/artifactId&amp;gt;
  &amp;lt;version&amp;gt;2.2.5&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;
&amp;lt;dependency&amp;gt;
  &amp;lt;groupId&amp;gt;org.apache.cxf.dosgi&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;cxf-dosgi-ri-discovery-local&amp;lt;/artifactId&amp;gt;
  &amp;lt;version&amp;gt;1.2-SNAPSHOT&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;
&amp;lt;dependency&amp;gt;
  &amp;lt;groupId&amp;gt;org.apache.cxf.dosgi&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;cxf-dosgi-ri-dsw-cxf&amp;lt;/artifactId&amp;gt;
  &amp;lt;version&amp;gt;1.2-SNAPSHOT&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;h3&gt;&lt;a name="DOSGiReleases-ArchivedReleases"&gt;&lt;/a&gt;Archived Releases&lt;/h3&gt;
&lt;p&gt;1.0 was the first release of Distributed OSGi. &lt;/p&gt;

&lt;table class='confluenceTable'&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;th class='confluenceTh'&gt;Description&lt;/th&gt;
&lt;th class='confluenceTh'&gt;File&lt;/th&gt;
&lt;th class='confluenceTh'&gt;MD5&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class='confluenceTd'&gt;Multi-bundle distribution (tar.gz)&lt;/td&gt;
&lt;td class='confluenceTd'&gt;&lt;a href="http://www.apache.org/dist/cxf/dosgi/1.0/cxf-dosgi-ri-multibundle-distribution-1.0.tar.gz"
rel="nofollow"&gt;cxf-dosgi-ri-multibundle-distribution-1.0.tar.gz&lt;/a&gt;&lt;/td&gt;
&lt;td class='confluenceTd'&gt;&lt;a href="http://www.apache.org/dist/cxf/dosgi/1.0/cxf-dosgi-ri-multibundle-distribution-1.0.tar.gz.md5"
rel="nofollow"&gt;cxf-dosgi-ri-multibundle-distribution-1.0.tar.gz.md5&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class='confluenceTd'&gt;Multi-bundle distribution (zip)&lt;/td&gt;
&lt;td class='confluenceTd'&gt;&lt;a href="http://www.apache.org/dist/cxf/dosgi/1.0/cxf-dosgi-ri-multibundle-distribution-1.0.zip"
rel="nofollow"&gt;cxf-dosgi-ri-multibundle-distribution-1.0.zip&lt;/a&gt;&lt;/td&gt;
&lt;td class='confluenceTd'&gt;&lt;a href="http://www.apache.org/dist/cxf/dosgi/1.0/cxf-dosgi-ri-multibundle-distribution-1.0.zip.md5"
rel="nofollow"&gt;cxf-dosgi-ri-multibundle-distribution-1.0.zip.md5&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class='confluenceTd'&gt;Single-bundle distribution&lt;/td&gt;
&lt;td class='confluenceTd'&gt;&lt;a href="http://www.apache.org/dist/cxf/dosgi/1.0/cxf-dosgi-ri-singlebundle-distribution-1.0.jar"
rel="nofollow"&gt;cxf-dosgi-ri-singlebundle-distribution-1.0.jar&lt;/a&gt;&lt;/td&gt;
&lt;td class='confluenceTd'&gt;&lt;a href="http://www.apache.org/dist/cxf/dosgi/1.0/cxf-dosgi-ri-singlebundle-distribution-1.0.jar.md5"
rel="nofollow"&gt;cxf-dosgi-ri-singlebundle-distribution-1.0.jar.md5&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class='confluenceTd'&gt;Source distribution&lt;/td&gt;
&lt;td class='confluenceTd'&gt;&lt;a href="http://www.apache.org/dist/cxf/dosgi/1.0/cxf-dosgi-ri-source-distribution-1.0.tar.gz"
rel="nofollow"&gt;cxf-dosgi-ri-source-distribution-1.0.tar.gz&lt;/a&gt;&lt;/td&gt;
&lt;td class='confluenceTd'&gt;&lt;a href="http://www.apache.org/dist/cxf/dosgi/1.0/cxf-dosgi-ri-source-distribution-1.0.tar.gz.md5"
rel="nofollow"&gt;cxf-dosgi-ri-source-distribution-1.0.tar.gz.md5&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;


     &lt;/div&gt;
     &lt;div id="commentsSection" class="wiki-content pageSection"&gt;
       &lt;div style="float: right;"&gt;
            &lt;a href="http://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey"&gt;Change Notification Preferences&lt;/a&gt;
       &lt;/div&gt;

       &lt;a href="http://cwiki.apache.org/confluence/display/CXF/DOSGi+Releases"&gt;View
Online&lt;/a&gt;
       |
       &lt;a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=108957&amp;revisedVersion=10&amp;originalVersion=9"&gt;View
Change&lt;/a&gt;
              |
       &lt;a href="http://cwiki.apache.org/confluence/display/CXF/DOSGi+Releases?showComments=true&amp;amp;showCommentArea=true#addcomment"&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;


</pre>
</div>
</content>
</entry>
<entry>
<title>[CONF] Apache CXF Documentation &gt; WS-SecurityPolicy</title>
<author><name>confluence@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c358810265.289.1259734080020.JavaMail.www-data@brutus%3e"/>
<id>urn:uuid:%3c358810265-289-1259734080020-JavaMail-www-data@brutus%3e</id>
<updated>2009-12-02T06:08:00Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
&lt;html&gt;
&lt;head&gt;
    &lt;base href="http://cwiki.apache.org/confluence"&gt;
            &lt;link rel="stylesheet" href="/confluence/s/1519/1/1/_/styles/combined.css?spaceKey=CXF20DOC&amp;amp;forWysiwyg=true"
type="text/css"&gt;
    &lt;/head&gt;
&lt;body style="background-color: white" bgcolor="white"&gt;
&lt;div id="pageContent"&gt;
&lt;div id="notificationFormat"&gt;
&lt;div class="wiki-content"&gt;
&lt;div class="email"&gt;
     &lt;h2&gt;&lt;a href="http://cwiki.apache.org/confluence/display/CXF20DOC/WS-SecurityPolicy"&gt;WS-SecurityPolicy&lt;/a&gt;&lt;/h2&gt;
     &lt;h4&gt;Page &lt;b&gt;edited&lt;/b&gt; by             &lt;a href="http://cwiki.apache.org/confluence/display/~mazzag"&gt;Glen
Mazza&lt;/a&gt;
    &lt;/h4&gt;
     Added more info on client-side config.
          &lt;div id="versionComment" class="noteMacro" style="display:none; padding: 5px;"&gt;
     Added more info on client-side config.&lt;br /&gt;
     &lt;/div&gt;
          &lt;br/&gt;
     &lt;div class="notificationGreySide"&gt;
         &lt;p&gt;CXF 2.2 introduced support for using &lt;a href="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/v1.3/ws-securitypolicy.html"
rel="nofollow"&gt;WS-SecurityPolicy&lt;/a&gt; to configure WSS4J instead of the custom configuration
documented on the &lt;a href="/confluence/display/CXF20DOC/WS-Security" title="WS-Security"&gt;WS&amp;#45;Security&lt;/a&gt;
page.  However, all of the "background" material on the &lt;a href="/confluence/display/CXF20DOC/WS-Security"
title="WS-Security"&gt;WS&amp;#45;Security&lt;/a&gt; page still applies and is important to
know.   WS-SecurityPolicy just provides an easier and more standards based way to configure
and control the security requirements.   With the security requirements documented in the
WSDL as &lt;a href="/confluence/display/CXF20DOC/WS-Policy" title="WS-Policy"&gt;WS&amp;#45;Policy&lt;/a&gt;
fragments, other tools such as .NET can easily know how to configure themselves to inter-operate
with CXF services.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; at this point, WS-SecurityPolicy support is ONLY available
for "WSDL first" scenarios.   The WS-SecurityPolicy fragments can only be pulled from WSDL.
  In the future, we plan to enable various code first scenarios as well, but at this time,
only WSDL first is available.&lt;/p&gt;

&lt;h3&gt;&lt;a name="WS-SecurityPolicy-EnablingWSSecurityPolicy"&gt;&lt;/a&gt;Enabling WS-SecurityPolicy&lt;/h3&gt;
&lt;p&gt;In CXF 2.2, if the cxf-rt-ws-policy and cxf-rt-ws-security modules are available
on the classpath, the WS-SecurityPolicy stuff is automatically enabled.   Since the entire
security runtime is policy driven, the only requirement is that the policy engine and security
policies be available.  &lt;/p&gt;

&lt;p&gt;If you are using the full "bundle" jar, all the security and policy stuff is already
included.   &lt;/p&gt;


&lt;h3&gt;&lt;a name="WS-SecurityPolicy-Policydescription"&gt;&lt;/a&gt;Policy description&lt;/h3&gt;
&lt;p&gt;With WS-SecurityPolicy, the binding and/or operation in the wsdl references a &lt;a
href="/confluence/display/CXF20DOC/WS-Policy" title="WS-Policy"&gt;WS&amp;#45;Policy&lt;/a&gt;
fragment that describes the basic security requirements for interacting with that service.
  The &lt;a href="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/v1.3/ws-securitypolicy.html"
rel="nofollow"&gt;WS-SecurityPolicy specification&lt;/a&gt; allows for specifying things like
asymmetric/symmetric keys, using transports (https) for encryption, which parts/headers to
encrypt or sign, whether to sign then encrypt or encrypt then sign, whether to include timestamps,
whether to use derived keys, etc...   Basically, it describes what actions are necessary to
securely interact with the service described in the WSDL.&lt;/p&gt;

&lt;p&gt;However, the WS-SecurityPolicy fragment does not include "everything" that is required
for a runtime to be able to able to create the messages.  It does not describe things such
as locations of key stores, user names and passwords, etc...  Those need to be configured
in at runtime to augment the WS-SecurityPolicy fragment.  &lt;/p&gt;


&lt;h3&gt;&lt;a name="WS-SecurityPolicy-Configuringtheextraproperties"&gt;&lt;/a&gt;Configuring
the extra properties&lt;/h3&gt;
&lt;p&gt;With CXF 2.2, there are several extra properties that may need to be set to provide
the additional bits of information to the runtime:&lt;/p&gt;

&lt;table class='confluenceTable'&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td class='confluenceTd'&gt; ws-security.username &lt;/td&gt;
&lt;td class='confluenceTd'&gt; The username used for UsernameToken policy assertions &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class='confluenceTd'&gt; ws-security.password &lt;/td&gt;
&lt;td class='confluenceTd'&gt; The password used for UsernameToken policy assertions.   If
not specified, the callback handler will be called. &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class='confluenceTd'&gt; ws-security.callback-handler &lt;/td&gt;
&lt;td class='confluenceTd'&gt; The WSS4J security CallbackHandler that will be used to retrieve
passwords for keystores and UsernameTokens. &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class='confluenceTd'&gt; ws-security.signature.properties &lt;/td&gt;
&lt;td class='confluenceTd'&gt; The properties file/object that contains the WSS4J properties
for configuring the signature keystore and crypto objects &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class='confluenceTd'&gt; ws-security.encryption.properties &lt;/td&gt;
&lt;td class='confluenceTd'&gt; The properties file/object that contains the WSS4J properties
for configuring the encryption keystore and crypto objects &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class='confluenceTd'&gt; ws-security.signature.username &lt;/td&gt;
&lt;td class='confluenceTd'&gt; The username or alias for the key in the signature keystore
that will be used.   If not specified, it uses the the default alias set in the properties
file.  If that's also not set, and the keystore only contains a single key, that key will
be used. &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class='confluenceTd'&gt; ws-security.encryption.username &lt;/td&gt;
&lt;td class='confluenceTd'&gt; The username or alias for the key in the encryption keystore
that will be used.   If not specified, it uses the the default alias set in the properties
file.  If that's also not set, and the keystore only contains a single key, that key will
be used. &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class='confluenceTd'&gt; ws-security.signature.crypto &lt;/td&gt;
&lt;td class='confluenceTd'&gt; Instead of specifying the signature properties, this can point
to the full &lt;a href="http://ws.apache.org/wss4j/apidocs/org/apache/ws/security/components/crypto/Crypto.html"
rel="nofollow"&gt;WSS4J Crypto&lt;/a&gt; object.  This can allow easier "programmatic" configuration
of the Crypto information."&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class='confluenceTd'&gt; ws-security.encryption.crypto &lt;/td&gt;
&lt;td class='confluenceTd'&gt; Instead of specifying the encryption properties, this can
point to the full &lt;a href="http://ws.apache.org/wss4j/apidocs/org/apache/ws/security/components/crypto/Crypto.html"
rel="nofollow"&gt;WSS4J Crypto&lt;/a&gt; object.  This can allow easier "programmatic" configuration
of the Crypto information."&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; for Symmetric bindings that specify a protection token,
the ws-security-encryption properties are used.&lt;/p&gt;


&lt;h4&gt;&lt;a name="WS-SecurityPolicy-ConfiguringviaSpring"&gt;&lt;/a&gt;Configuring via
Spring&lt;/h4&gt;
&lt;p&gt;The properties are easily configured as client or endpoint properties--use the former
for the SOAP client, the latter for the web service provider.&lt;/p&gt;

&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-xml"&gt;
&amp;lt;beans xmlns=&lt;span class="code-quote"&gt;"http://www.springframework.org/schema/beans"&lt;/span&gt;
   &lt;span class="code-keyword"&gt;xmlns:xsi&lt;/span&gt;=&lt;span class="code-quote"&gt;"http://www.w3.org/2001/XMLSchema-instance"&lt;/span&gt;
   &lt;span class="code-keyword"&gt;xmlns:jaxws&lt;/span&gt;=&lt;span class="code-quote"&gt;"http://cxf.apache.org/jaxws"&lt;/span&gt;
   xsi:schemaLocation="http://www.springframework.org/schema/beans 
   http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
   http://cxf.apache.org/jaxws 
   http://cxf.apache.org/schemas/jaxws.xsd"&amp;gt;

   &lt;span class="code-tag"&gt;&amp;lt;jaxws:client name=&lt;span class="code-quote"&gt;"{http://cxf.apache.org}MyPortName"&lt;/span&gt;
createdFromAPI=&lt;span class="code-quote"&gt;"true"&lt;/span&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="code-tag"&gt;&amp;lt;jaxws:properties&amp;gt;&lt;/span&gt;
         &lt;span class="code-tag"&gt;&amp;lt;entry key=&lt;span class="code-quote"&gt;"ws-security.username"&lt;/span&gt;
value=&lt;span class="code-quote"&gt;"Alice"&lt;/span&gt;/&amp;gt;&lt;/span&gt;
         &lt;span class="code-tag"&gt;&amp;lt;entry key=&lt;span class="code-quote"&gt;"ws-security.callback-handler"&lt;/span&gt;
value=&lt;span class="code-quote"&gt;"interop.client.KeystorePasswordCallback"&lt;/span&gt;/&amp;gt;&lt;/span&gt;
         &lt;span class="code-tag"&gt;&amp;lt;entry key=&lt;span class="code-quote"&gt;"ws-security.signature.properties"&lt;/span&gt;
value=&lt;span class="code-quote"&gt;"etc/alice.properties"&lt;/span&gt;/&amp;gt;&lt;/span&gt;
         &lt;span class="code-tag"&gt;&amp;lt;entry key=&lt;span class="code-quote"&gt;"ws-security.encryption.properties"&lt;/span&gt;
value=&lt;span class="code-quote"&gt;"etc/bob.properties"&lt;/span&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="code-tag"&gt;&amp;lt;/jaxws:properties&amp;gt;&lt;/span&gt;
   &lt;span class="code-tag"&gt;&amp;lt;/jaxws:client&amp;gt;&lt;/span&gt;

&lt;span class="code-tag"&gt;&amp;lt;/beans&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;For the jaxws:client's &lt;em&gt;name&lt;/em&gt; attribute above, use the namespace
of the WSDL along with the &lt;em&gt;name&lt;/em&gt; attribute of the desired wsdl:port element
under the WSDL's service section. (See &lt;a href="/confluence/pages/createpage.action?spaceKey=CXF20DOC&amp;amp;title=here&amp;amp;linkCreation=true&amp;amp;fromPageId=112639"
class="createlink"&gt;http://tinyurl.com/yatskw4&lt;/a&gt; and &lt;a href="/confluence/pages/createpage.action?spaceKey=CXF20DOC&amp;amp;title=here&amp;amp;linkCreation=true&amp;amp;fromPageId=112639"
class="createlink"&gt;http://tinyurl.com/y9e7rjf&lt;/a&gt; for an example.)&lt;/p&gt;

&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-xml"&gt;
&amp;lt;beans xmlns=&lt;span class="code-quote"&gt;"http://www.springframework.org/schema/beans"&lt;/span&gt;
   &lt;span class="code-keyword"&gt;xmlns:xsi&lt;/span&gt;=&lt;span class="code-quote"&gt;"http://www.w3.org/2001/XMLSchema-instance"&lt;/span&gt;
   &lt;span class="code-keyword"&gt;xmlns:jaxws&lt;/span&gt;=&lt;span class="code-quote"&gt;"http://cxf.apache.org/jaxws"&lt;/span&gt;
   xsi:schemaLocation="http://www.springframework.org/schema/beans 
   http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
   http://cxf.apache.org/jaxws 
   http://cxf.apache.org/schemas/jaxws.xsd"&amp;gt;

   &amp;lt;jaxws:endpoint 
      id=&lt;span class="code-quote"&gt;"MyService"&lt;/span&gt;
      address=&lt;span class="code-quote"&gt;"https://localhost:9001/MyService"&lt;/span&gt;

      serviceName=&lt;span class="code-quote"&gt;"interop:MyService"&lt;/span&gt;
      endpointName=&lt;span class="code-quote"&gt;"interop:MyServiceEndpoint"&lt;/span&gt;
      implementor=&lt;span class="code-quote"&gt;"com.foo.MyService"&lt;/span&gt;&amp;gt;
        
      &lt;span class="code-tag"&gt;&amp;lt;jaxws:properties&amp;gt;&lt;/span&gt;
         &lt;span class="code-tag"&gt;&amp;lt;entry key=&lt;span class="code-quote"&gt;"ws-security.callback-handler"&lt;/span&gt;
value=&lt;span class="code-quote"&gt;"interop.client.UTPasswordCallback"&lt;/span&gt;/&amp;gt;&lt;/span&gt;
         &lt;span class="code-tag"&gt;&amp;lt;entry key=&lt;span class="code-quote"&gt;"ws-security.signature.properties"&lt;/span&gt;
value=&lt;span class="code-quote"&gt;"etc/bob.properties"&lt;/span&gt;/&amp;gt;&lt;/span&gt;
         &lt;span class="code-tag"&gt;&amp;lt;entry key=&lt;span class="code-quote"&gt;"ws-security.encryption.properties"&lt;/span&gt;
value=&lt;span class="code-quote"&gt;"etc/alice.properties"&lt;/span&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="code-tag"&gt;&amp;lt;/jaxws:properties&amp;gt;&lt;/span&gt; 
     
   &lt;span class="code-tag"&gt;&amp;lt;/jaxws:endpoint&amp;gt;&lt;/span&gt; 
&lt;span class="code-tag"&gt;&amp;lt;/beans&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;h4&gt;&lt;a name="WS-SecurityPolicy-ConfiguringviaAPI%27s"&gt;&lt;/a&gt;Configuring via
API's&lt;/h4&gt;
&lt;p&gt;Configuring the properties for the client just involves setting the properties in
the clients RequestContext:&lt;/p&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;
Map&amp;lt;&lt;span class="code-object"&gt;String&lt;/span&gt;, &lt;span class="code-object"&gt;Object&lt;/span&gt;&amp;gt;
ctx = ((BindingProvider)port).getRequestContext();
ctx.put(&lt;span class="code-quote"&gt;"ws-security.encryption.properties"&lt;/span&gt;, properties);
port.echoString(&lt;span class="code-quote"&gt;"hello"&lt;/span&gt;);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;




     &lt;/div&gt;
     &lt;div id="commentsSection" class="wiki-content pageSection"&gt;
       &lt;div style="float: right;"&gt;
            &lt;a href="http://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey"&gt;Change Notification Preferences&lt;/a&gt;
       &lt;/div&gt;

       &lt;a href="http://cwiki.apache.org/confluence/display/CXF20DOC/WS-SecurityPolicy"&gt;View
Online&lt;/a&gt;
       |
       &lt;a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=112639&amp;revisedVersion=11&amp;originalVersion=10"&gt;View
Change&lt;/a&gt;
              |
       &lt;a href="http://cwiki.apache.org/confluence/display/CXF20DOC/WS-SecurityPolicy?showComments=true&amp;amp;showCommentArea=true#addcomment"&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;


</pre>
</div>
</content>
</entry>
<entry>
<title>[CONF] Apache CXF &gt; Distributed OSGi Greeter Demo Walkthrough</title>
<author><name>confluence@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/cxf-commits/200912.mbox/%3c489818316.160.1259681580025.JavaMail.www-data@brutus%3e"/>
<id>urn:uuid:%3c489818316-160-1259681580025-JavaMail-www-data@brutus%3e</id>
<updated>2009-12-01T15:33:00Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
&lt;html&gt;
&lt;head&gt;
    &lt;base href="http://cwiki.apache.org/confluence"&gt;
            &lt;link rel="stylesheet" href="/confluence/s/1519/1/11/_/styles/combined.css?spaceKey=CXF&amp;amp;forWysiwyg=true"
type="text/css"&gt;
    &lt;/head&gt;
&lt;body style="background-color: white" bgcolor="white"&gt;
&lt;div id="pageContent"&gt;
&lt;div id="notificationFormat"&gt;
&lt;div class="wiki-content"&gt;
&lt;div class="email"&gt;
     &lt;h2&gt;&lt;a href="http://cwiki.apache.org/confluence/display/CXF/Distributed+OSGi+Greeter+Demo+Walkthrough"&gt;Distributed
OSGi Greeter Demo Walkthrough&lt;/a&gt;&lt;/h2&gt;
     &lt;h4&gt;Page &lt;b&gt;edited&lt;/b&gt; by             &lt;a href="http://cwiki.apache.org/confluence/display/~davidb@apache.org"&gt;David
Bosschaert&lt;/a&gt;
    &lt;/h4&gt;
     Updated links to use the 1.1 release.
          &lt;div id="versionComment" class="noteMacro" style="display:none; padding: 5px;"&gt;
     Updated links to use the 1.1 release.&lt;br /&gt;
     &lt;/div&gt;
          &lt;br/&gt;
     &lt;div class="notificationGreySide"&gt;
         &lt;p&gt;This is a walkthrough of the Distributed OSGi Greeter Demo. It should help
users of the Distributed OSGi get started with it. &lt;/p&gt;

&lt;p&gt;The greeter demo can be found in the &lt;a href="http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/greeter"
rel="nofollow"&gt;samples/greeter directory&lt;/a&gt; of the SVN code base and implements
a simple OSGi Greeter Service and a consumer to that service with a trivial UI. &lt;br/&gt;
In this walkthrough all the required bundles are installed straight from the maven release
repository, so no need to check out SVN and build anything to get started with the Greeter
Demo.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;NOTE&lt;/b&gt;: this demo requires CXF/DOSGi 1.1&lt;/p&gt;
&lt;h3&gt;&lt;a name="DistributedOSGiGreeterDemoWalkthrough-TheGreeterdemodesign"&gt;&lt;/a&gt;The
Greeter demo design&lt;/h3&gt;
&lt;p&gt;The demo is composed of 3 bundles:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;The Greeter Interface bundle&lt;/li&gt;
	&lt;li&gt;The Greeter Service Implementation bundle&lt;/li&gt;
	&lt;li&gt;The Greeter Service Consumer bundle&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The &lt;b&gt;Greeter Interface&lt;/b&gt; bundle exports the &lt;tt&gt;GreeterService&lt;/tt&gt;
interface which both other bundles depend on. This is the interface:&lt;/p&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;&lt;span class="code-keyword"&gt;public&lt;/span&gt; &lt;span
class="code-keyword"&gt;interface&lt;/span&gt; GreeterService {
    Map&amp;lt;GreetingPhrase, &lt;span class="code-object"&gt;String&lt;/span&gt;&amp;gt;
greetMe(&lt;span class="code-object"&gt;String&lt;/span&gt; name);
    GreetingPhrase [] greetMe(GreeterData name) &lt;span class="code-keyword"&gt;throws&lt;/span&gt;
GreeterException;
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The &lt;tt&gt;GreeterData&lt;/tt&gt; interface, &lt;tt&gt;GreetingPhase&lt;/tt&gt;
and &lt;tt&gt;GreeterException&lt;/tt&gt; classes are custom types defined in the Greeter
Interface bundle.&lt;/p&gt;

&lt;p&gt;In this walkthrough, the following setup will be used:&lt;br/&gt;
&lt;img src="/confluence/download/attachments/107706/dosgi_cxf.png" align="absmiddle" border="0"
/&gt;&lt;br/&gt;
The client side bundles will be running in Equinox, invoking on a Distributed OSGi Service
running in Felix. Note that the choice of containers is completely trivial. Any OSGi container
that implements the Service Registry Hooks (a new feature in OSGi 4.2) can be used on either
side.&lt;/p&gt;

&lt;h3&gt;&lt;a name="DistributedOSGiGreeterDemoWalkthrough-TheServerSide"&gt;&lt;/a&gt;The
Server Side&lt;/h3&gt;
&lt;p&gt;The &lt;b&gt;Greeter Service&lt;/b&gt; implementation bundle provides a &lt;a href="http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/greeter/impl/src/main/java/org/apache/cxf/dosgi/samples/greeter/impl/GreeterServiceImpl.java"
rel="nofollow"&gt;trivial implementation of the GreeterService interface&lt;/a&gt;. Additionally,
it has an &lt;a href="http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/greeter/impl/src/main/java/org/apache/cxf/dosgi/samples/greeter/impl/Activator.java"
rel="nofollow"&gt;Activator&lt;/a&gt;:
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;&lt;span class="code-keyword"&gt;public&lt;/span&gt; class Activator
&lt;span class="code-keyword"&gt;implements&lt;/span&gt; BundleActivator {
    &lt;span class="code-keyword"&gt;private&lt;/span&gt; ServiceRegistration registration;

    &lt;span class="code-keyword"&gt;public&lt;/span&gt; void start(BundleContext bc) &lt;span
class="code-keyword"&gt;throws&lt;/span&gt; Exception {
        Dictionary props = &lt;span class="code-keyword"&gt;new&lt;/span&gt; Hashtable();

        props.put(&lt;span class="code-quote"&gt;"service.exported.interfaces"&lt;/span&gt;,
&lt;span class="code-quote"&gt;"*"&lt;/span&gt;);
        props.put(&lt;span class="code-quote"&gt;"service.exported.configs"&lt;/span&gt;,
&lt;span class="code-quote"&gt;"org.apache.cxf.ws"&lt;/span&gt;);
        props.put(&lt;span class="code-quote"&gt;"org.apache.cxf.ws.address"&lt;/span&gt;,
&lt;span class="code-quote"&gt;"http:&lt;span class="code-comment"&gt;//localhost:9090/greeter"&lt;/span&gt;);
&lt;/span&gt;        
        registration = bc.registerService(GreeterService.class.getName(), &lt;span class="code-keyword"&gt;new&lt;/span&gt;
GreeterServiceImpl(), props);
    }

    &lt;span class="code-keyword"&gt;public&lt;/span&gt; void stop(BundleContext bc) &lt;span
class="code-keyword"&gt;throws&lt;/span&gt; Exception {
        registration.unregister();
    }
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;Besides creating the service instance, the activator sets the additional
properties on the service that are required to make it available remotely:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;The &lt;tt&gt;service.exported.interfaces&lt;/tt&gt; property is set to &lt;tt&gt;*&lt;/tt&gt;,
which means that all the interfaces passes to registerService should be made accessible remotely.
In this case it's just the &lt;tt&gt;GreeterService&lt;/tt&gt; interface.&lt;/li&gt;
	&lt;li&gt;The &lt;tt&gt;service.exported.configs&lt;/tt&gt; is set to &lt;tt&gt;org.apache.cxf.ws&lt;/tt&gt;,
which is a CXF specific configuration type that can be used to expose the OSGi Service as
a Web Service over SOAP/HTTP. The address of the service is specified via the &lt;tt&gt;org.apache.cxf.ws.address&lt;/tt&gt;
property.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Let's run the server in Felix 1.8.0. As a prerequisite it requires some of the OSGi
Compendium Specification interfaces. These don't come with the Felix download, but you can
install a bundle that contains these interfaces straight from Maven.&lt;br/&gt;
In this walkthrough I'm using the single-bundle distribution of CXF/DOSGi which can be installed
straight from the Maven release repository.&lt;/p&gt;

&lt;p&gt;To set up my Felix environment, I'm running the following commands:&lt;/p&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;C:\felix-1.8.0&amp;gt;java -jar bin\felix.jar

Welcome to Felix.
=================

-&amp;gt; ps
START LEVEL 1
   ID   State         Level  Name
[   0] [Active     ] [    0] &lt;span class="code-object"&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)
-&amp;gt; start http:&lt;span class="code-comment"&gt;//repo1.maven.org/maven2/org/osgi/org.osgi.compendium/4.2.0/org.osgi.compendium-4.2.0.jar
&lt;/span&gt;-&amp;gt; start http:&lt;span class="code-comment"&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/cxf-dosgi-ri-singlebundle-distribution/1.1/cxf-dosgi-ri-singlebundle-distribution-1.1.jar&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Some log messages may come up now.&lt;/p&gt;

&lt;p&gt;Now let's start up the server-side greeter bundles. Like with the DOSGi bundle itself,
I'm installing these straight from the Maven release repository.&lt;/p&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;
-&amp;gt; start http:&lt;span class="code-comment"&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-greeter-&lt;span
class="code-keyword"&gt;interface&lt;/span&gt;/1.1/cxf-dosgi-ri-samples-greeter-&lt;span class="code-keyword"&gt;interface&lt;/span&gt;-1.1.jar
&lt;/span&gt;-&amp;gt; start http:&lt;span class="code-comment"&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-greeter-impl/1.1/cxf-dosgi-ri-samples-greeter-impl-1.1.jar
&lt;/span&gt;-&amp;gt; ps
START LEVEL 1
   ID   State         Level  Name
[   0] [Active     ] [    0] &lt;span class="code-object"&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] [Active     ] [    1] OSGi R4 Compendium Bundle (4.1.0)
[   5] [Active     ] [    1] Distributed OSGi Distribution Software Single-Bundle Distribution
[   6] [Active     ] [    1] CXF Distributed OSGi Greeter Demo Interface Bundle
[   7] [Active     ] [    1] CXF Distributed OSGi Greeter Demo Service Implementation Bundle
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;



&lt;p&gt;Some more log messages come up. When it says &lt;em&gt;INFO: Remote org.apache.cxf.dosgi.samples.greeter.GreeterService
endpoint has been published into Discovery service&lt;/em&gt; you know that the service is
exposed remotely, and you can verify this by requesting the WSDL:&lt;/p&gt;

&lt;p&gt;&lt;img src="/confluence/download/attachments/107706/greeter_wsdl.jpg" align="absmiddle"
border="0" /&gt;&lt;/p&gt;

&lt;p&gt;This WSDL was dynamically generated from the exposed &lt;tt&gt;GreeterService&lt;/tt&gt;
Java interface. Under the hood, the Aegis data binding is used for this.&lt;/p&gt;

&lt;h3&gt;&lt;a name="DistributedOSGiGreeterDemoWalkthrough-TheServiceConsumerside."&gt;&lt;/a&gt;The
Service Consumer side.&lt;/h3&gt;
&lt;p&gt;The Service Consumer Java code contains no specific Distribution-related elements.
It's simply an &lt;tt&gt;Activator&lt;/tt&gt; that creates a &lt;tt&gt;ServiceTracker&lt;/tt&gt;
listening for services that implement the &lt;tt&gt;GreeterService&lt;/tt&gt; interface. When
the service becomes available it opens a little GUI window that asks you for an argument that
can be sent to the Greeter service. &lt;a href="http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/greeter/client/src/main/java/org/apache/cxf/dosgi/samples/greeter/client/Activator.java"
rel="nofollow"&gt;See here for the actual code&lt;/a&gt;&lt;/p&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="/confluence/images/icons/emoticons/check.gif" width="16" height="16"
align="absmiddle" alt="" border="0"&gt;&lt;/td&gt;&lt;td&gt;Note that in many cases using
an OSGi Component Framework such as Spring-DM, iPojo or OSGi DS is highly recommeded when
writing OSGi Service Consumers. OSGi Services are highly dynamic in nature. They can come
and go. Using a component framework will generally save you from writing &lt;tt&gt;ServiceTracker&lt;/tt&gt;
code as the framework will generally provide the service consumer with a reference to the
service via injection.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;So the remote service is simply looked up the normal way, via the OSGi Service Registry.
&lt;br/&gt;
&lt;b&gt;How does it get there?&lt;/b&gt; The fact that a lookup on a service is done internally
triggers a &lt;b&gt;Service Registry Hook&lt;/b&gt;. This will go out to any registered Distributed
OSGi Discovery implementations and query them for any matching services. &lt;br/&gt;
However, &lt;b&gt;in our setup we haven't yet registered a Discovery implementation&lt;/b&gt;.
There is an alternative, more static way to provide discovery type information, in case this
info is not available via discovery. It can be specified in a &lt;tt&gt;OSGI-INF/remote-service/*.xml&lt;/tt&gt;
file. This the content of the Greeter Service Consumer &lt;a href="http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/greeter/client/src/main/resources/OSGI-INF/remote-service/remote-services.xml"
rel="nofollow"&gt;remote-services.xml&lt;/a&gt; file:&lt;/p&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;&amp;lt;service-descriptions xmlns=&lt;span class="code-quote"&gt;"http:&lt;span
class="code-comment"&gt;//www.osgi.org/xmlns/sd/v1.0.0"&lt;/span&gt;&amp;gt;
&lt;/span&gt;  &amp;lt;service-description&amp;gt;
    &amp;lt;provide &lt;span class="code-keyword"&gt;interface&lt;/span&gt;=&lt;span class="code-quote"&gt;"org.apache.cxf.dosgi.samples.greeter.GreeterService"&lt;/span&gt;/&amp;gt;
    &amp;lt;property name=&lt;span class="code-quote"&gt;"service.exported.interfaces"&lt;/span&gt;&amp;gt;*&amp;lt;/property&amp;gt;
    &amp;lt;property name=&lt;span class="code-quote"&gt;"service.exported.configs"&lt;/span&gt;&amp;gt;org.apache.cxf.ws&amp;lt;/property&amp;gt;
    &amp;lt;property name=&lt;span class="code-quote"&gt;"org.apache.cxf.ws.address"&lt;/span&gt;&amp;gt;http:&lt;span
class="code-comment"&gt;//localhost:9090/greeter&amp;lt;/property&amp;gt;
&lt;/span&gt;  &amp;lt;/service-description&amp;gt;
&amp;lt;/service-descriptions&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Let's run the consumer in Equinox, so that we have the bundles running in Equinox
talking to a remoted service running in Felix!&lt;br/&gt;
As with Felix, we will have to load the bundle with the OSGi compendium interfaces. There's
one that ships with Equinox.&lt;/p&gt;

&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;
java -jar plugins/org.eclipse.osgi_3.5.0.v20090520.jar -configuration conf -console
osgi&amp;gt; install file:plugins/org.eclipse.osgi.services_3.2.0.v20090520-1800.jar
Bundle id is 1
osgi&amp;gt; start 1

osgi&amp;gt; install http:&lt;span class="code-comment"&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/cxf-dosgi-ri-singlebundle-distribution/1.1/cxf-dosgi-ri-singlebundle-distribution-1.1.jar
&lt;/span&gt;Bundle id is 2
osgi&amp;gt; start 2
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Some logging messages may appear. You can also automatically load the DOSGi bundles
by appending the target/equinox.config.ini.append to you equinox config.ini file.&lt;/p&gt;

&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;
osgi&amp;gt; install http:&lt;span class="code-comment"&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-greeter-&lt;span
class="code-keyword"&gt;interface&lt;/span&gt;/1.1/cxf-dosgi-ri-samples-greeter-&lt;span class="code-keyword"&gt;interface&lt;/span&gt;-1.1.jar
&lt;/span&gt;Bundle id is 3
osgi&amp;gt; install http:&lt;span class="code-comment"&gt;//repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-greeter-client/1.1/cxf-dosgi-ri-samples-greeter-client-1.1.jar
&lt;/span&gt;Bundle id is 4
osgi&amp;gt; ss

Framework is launched.

id      State       Bundle
0       ACTIVE      org.eclipse.osgi_3.5.0.v20081201-1815
1       ACTIVE      org.eclipse.osgi.services_3.2.0.v20081205-1800
2       ACTIVE      cxf-dosgi-ri-singlebundle-distribution
3       INSTALLED   cxf-dosgi-ri-samples-greeter-&lt;span class="code-keyword"&gt;interface&lt;/span&gt;
4       INSTALLED   cxf-dosgi-ri-samples-greeter-client

osgi&amp;gt; start 4&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;After a few moments the following window appears:&lt;/p&gt;

&lt;p&gt;&lt;img src="/confluence/download/attachments/107706/greeterui2.jpg" align="absmiddle"
border="0" /&gt;&lt;/p&gt;

&lt;p&gt;The window appears once the ServiceTracker in the consumer has received a callback
that the &lt;tt&gt;GreeterService&lt;/tt&gt; has been found. The value entered will used to
invoke the (remote) OSGi service, with a call like this:&lt;/p&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;Map&amp;lt;GreetingPhrase, &lt;span class="code-object"&gt;String&lt;/span&gt;&amp;gt;
result = greeterService.greetMe(&lt;span class="code-quote"&gt;"foobar"&lt;/span&gt;);&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;I can see that the invocation has been received by the service implementation as
in the Felix window the following appears.&lt;/p&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;-&amp;gt; Invoking: greetMe(foobar)&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;In the Equinox window I can see the response:&lt;/p&gt;
&lt;div class="code panel" style="border-width: 1px;"&gt;&lt;div class="codeContent panelContent"&gt;
&lt;pre class="code-java"&gt;osgi&amp;gt; greetMe(&lt;span class="code-quote"&gt;"foobar"&lt;/span&gt;)
returns:
  Hola foobar
  Bonjour foobar
  Hoi foobar
  Hello foobar&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
     &lt;/div&gt;
     &lt;div id="commentsSection" class="wiki-content pageSection"&gt;
       &lt;div style="float: right;"&gt;
            &lt;a href="http://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey"&gt;Change Notification Preferences&lt;/a&gt;
       &lt;/div&gt;

       &lt;a href="http://cwiki.apache.org/confluence/display/CXF/Distributed+OSGi+Greeter+Demo+Walkthrough"&gt;View
Online&lt;/a&gt;
       |
       &lt;a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=107706&amp;revisedVersion=23&amp;originalVersion=22"&gt;View
Change&lt;/a&gt;
              |
       &lt;a href="http://cwiki.apache.org/confluence/display/CXF/Distributed+OSGi+Greeter+Demo+Walkthrough?showComments=true&amp;amp;showCommentArea=true#addcomment"&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;


</pre>
</div>
</content>
</entry>
</feed>
