You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by da...@apache.org on 2007/06/14 19:21:47 UTC

svn commit: r547322 - in /incubator/cxf/trunk: distribution/src/main/release/ rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/ rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/ rt/core/src/main/java/org/apache/cxf/attac...

Author: dandiep
Date: Thu Jun 14 10:21:45 2007
New Revision: 547322

URL: http://svn.apache.org/viewvc?view=rev&rev=547322
Log:
CXF-633: Fix SOAP 1.2 action headers. Remove logging interceptors which I erroneously introduced into AbstractServiceFactoryBean. Clean up README and release_notes a bit (more coming)

Modified:
    incubator/cxf/trunk/distribution/src/main/release/README
    incubator/cxf/trunk/distribution/src/main/release/release_notes.txt
    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInterceptor.java
    incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/SoapActionInterceptorTest.java
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentSerializer.java
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/factory/AbstractServiceFactoryBean.java

Modified: incubator/cxf/trunk/distribution/src/main/release/README
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/distribution/src/main/release/README?view=diff&rev=547322&r1=547321&r2=547322
==============================================================================
--- incubator/cxf/trunk/distribution/src/main/release/README (original)
+++ incubator/cxf/trunk/distribution/src/main/release/README Thu Jun 14 10:21:45 2007
@@ -36,18 +36,20 @@
 features.
 
 Alternatively, you can also find out how to get started here:
-http://cwiki.apache.org/confluence/display/CXF/Index
+http://incubator.apache.org/cxf/
 
 If you need more help try talking to us on our mailing lists:
-http://cwiki.apache.org/confluence/display/CXF/Mailing+Lists
+http://incubator.apache.org/cxf/mailing-lists.html
  
-If you find any issues during product usage, please submit it here:
+If you find any issues with CXF, please submit reports with JIRA here:
 https://issues.apache.org/jira/browse/CXF
 
-We welcome contributions
-
-Many thanks for using Apache Incubator CXF.
+We welcome contributions, and encourage you to get involved in the CXF
+community. If you'd like to learn more about how you can contribute, please
+see:
+http://incubator.apache.org/cxf/getting-involved.html
 
+Thank you for using CXF!
 
 The Apache Incubator CXF Team
-http://incubator.apache.org/projects/cxf.html
+http://incubator.apache.org/cxf/

Modified: incubator/cxf/trunk/distribution/src/main/release/release_notes.txt
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/distribution/src/main/release/release_notes.txt?view=diff&rev=547322&r1=547321&r2=547322
==============================================================================
--- incubator/cxf/trunk/distribution/src/main/release/release_notes.txt (original)
+++ incubator/cxf/trunk/distribution/src/main/release/release_notes.txt Thu Jun 14 10:21:45 2007
@@ -3,41 +3,14 @@
 1. Overview
 
 Apache CXF 2.0, under incubation,  delivers the second milestone of 
-the Celtix project (http://celtix.objectweb.org) and the Xfire project
-(http://xfire.codehaus.org) merge.  This release includes following new
-features and enhancement:
-    * WS-policy framework
-    * WS-Security
-    * HTTP transport enhancement, including upgrade to jetty 6.1.3 with
-      async http support, and HTTPS improvements
-    * Service routing
-    * Aegis databinding support
-    * Colocated and Object binding support
-    * Configuration refactoring and improvement, including support of 
-      Spring 2.0 config syntax
-    * Tooling (mainly wsdl2java, java2wsdl) refactoring and improvements
-    * Many JAX-WS issues fixes
-    * Support for stateful service
-    * Many other JIRA issues and code cleanup 
-
-Features also available since Apache CXF M1 release:
-    * JAX-WS 2.0 API's
-    * Transports: HTTP 1.1, HTTPS, and JMS
-    * Full SOAP 1.1 and SOAP 1.2 implementation, with MTOM/XOP support
-    * JAXB 2.0 databinding support
-    * StAX-based XML streaming
-    * WS-Addressing support
-    * WS-Reliable Messaging support
-    * Spring support, including spring-based configuration and spring-based
-      lightweight container
-    * Servlet container support
-    * Complete tooling support, including wsdl2java and java2wsdl, plus a
-      bunch of other convenient tools
-    * RESTful web service support
-    * JBI container support, Apache CXF services can be deployed into any JBI
-      compliant container (ServiceMix or OpenESB)
-    * JCA 1.0 support, J2EE application can integrate with legacy application
-      through JCA 1.0 support in Apache CXF
+the Celtix project (http://celtix.objectweb.org) and the XFire project
+(http://xfire.codehaus.org) merge.  This release includes the following 
+new features and enhancements since 2.0-RC:
+    * CXF is now JAX-WS and JWS (JSR 181) compliant
+    * A persistent store for WS-ReliableMessaging
+    * Supports for MTOM Policy expressions
+    * Many performance and stability improvements
+    * Many bug fixes
 
 2. Installation Prerequisites 
 
@@ -83,14 +56,9 @@
 
 4. Errata
 
-4.1 JAX-WS Compliance
-Since JAX-WS TCK testing has not been completed, there is still a chance our 
-internal APIs may change. We do not know of any required changes at this 
-point though.
-
-4.2 WS-Security
+4.1 WS-Security
 The WS-Security configuration mechanisms may change between this release and 
-the next one as we add in support for WS-SecurityPolicy.
+the next one as we add in support for WS-SecurityPolicy and WS-Trust.
 
 5. Reporting Problems
 
@@ -100,168 +68,5 @@
 http://issues.apache.org/jira/browse/CXF
 
 6. Specific issues, features, and improvements fixed in the 
-Apache CXF 2.0 RC (incubating) release:
-
-6.1 Bug
-    * [CXF-19] - getPort(Class) throws exception
-    * [CXF-29] - DatatypeProvider not set
-    * [CXF-90] - The wrapping info should be moved to the binding
-    * [CXF-119] - Empty request elements causes NPE
-    * [CXF-145] - Dynamic discovery of binding creators
-    * [CXF-179] - Move Holder code from JAXWSMethodInvoker to interceptors
-    * [CXF-184] - parameter order should be take care of in runtime
-    * [CXF-188] - invalid wsdl generated by java2wsdl tool
-    * [CXF-236] - NPE thrown by XmlStreamWriter when calling StaxUtils.copy()
-    * [CXF-237] - Problem with checkstyle organisation of imports
-    * [CXF-253] - Server can not start  when the port number is missing
-    * [CXF-255] - js_provider sample problem
-    * [CXF-257] - PortType can have its own targetnamespace and different from the service one
-    * [CXF-258] - Server can not start when SEI has no wsdlLocation in the WebService annotation
-    * [CXF-263] - SOAPBinding annotation can not placed on method with RPC style
-    * [CXF-265] - Java2WSDL NEP when the SEI is DOC-LIT Wrapped style
-    * [CXF-269] - CXF can not handle an empty reponse when using oneway operation.
-    * [CXF-289] - Adding of Root Node in XMLBinding is done without a prefix.
-    * [CXF-290] - wsdl space in path name problem on Windows
-    * [CXF-292] - CXFServlet does not pass the wsdl packaged in war to the EndpointImpl
-    * [CXF-293] - Defining a XML Binding with a rootNode results in Fault Response at the Client end.
-    * [CXF-295] - Service Model can't support import PortType with different name-space
-    * [CXF-296] - Create BindingFactory failure when the first ext element in wsdl binding part is not the protocol element
-    * [CXF-297] - Checking in-bound message format should based on content-type, not by mtom-setting, content-id should be decoded by URLDecoder first
-    * [CXF-303] - Tools generates @WebParam/@WebResult in wrong namespace
-    * [CXF-321] - Wrong code generated when Service in a different namespace
-    * [CXF-323] - Improper synchronization of getDefaultBus(), setDefaultBus()
-    * [CXF-324] - Dynamically generated WSDL for JAX-WS service is invalid
-    * [CXF-335] - SOAP Action header missing
-    * [CXF-337] - Java2WSDL fails to generate wsdl from POJO
-    * [CXF-338] - Http location of wsdllocation attribute in extenal binding file
-    * [CXF-345] - performance test client applications fail with java.net.MalformedURLException.
-    * [CXF-353] - codegen maven plugin returns BUILD SUCCESSFUL when code generation failed
-    * [CXF-354] - Printing Extension Elements in the wsdl doesn't have the proper indentation level.
-    * [CXF-358] - Generated wsdl contains unused namespace declaration 
-    * [CXF-359] - wsdl2java using wrong type (should use wrapper type, but use primitive type) for holder parameter when generating SEI class
-    * [CXF-361] - XML Binding: inconsistency in schema for WSDL Extension.
-    * [CXF-362] - wsdltojava generated code has inconsistent style
-    * [CXF-368] - Logging level
-    * [CXF-369] - xsd:dateTime becomes XMLGregorianCalendarImpl when Date needed
-    * [CXF-370] - ResourceInjector passes incorrect resource names
-    * [CXF-386] - RootNode defined in XMLBinding is not added to the Stax Stream when there is only one Message Part.
-    * [CXF-390] - Endpoint Bean provided configuration values do not override wsdl model
-    * [CXF-393] - All JMS message properties are always copied from source to destination
-    * [CXF-394] - HTTP binding expects '/' on each side of the brackets 
-    * [CXF-398] - XMLBinding Provider<Source> implementations can not receive Multipart/Related messages 
-    * [CXF-403] - CXF fails when a Service contains a collection of ports that refer to multiple portTypes.
-    * [CXF-405] - ws_addressing sample fails
-    * [CXF-406] - AnnotationHandlerChainBuilder.buildHandlerChainFromClass() considers only one handler chain
-    * [CXF-409] - samples/streamInterceptor server fails to start
-    * [CXF-413] - Tools2 needs fixing to support soap headers in rpc/literal case
-    * [CXF-415] - Decoupled Endpoint Observer should not insert HttpRequest and HttpResponse instances into the Message.
-    * [CXF-416] - ws_rm and streamInterceptor samples fail
-    * [CXF-418] - AttachmentDeserializer will throw out NullPoint exception, if Content-ID is null
-    * [CXF-419] - Update JMS samples/document to reflect new config format
-    * [CXF-420] - Support detection of most appropriate Bus
-    * [CXF-426] - wsdl2java generates code/annotations with absolute paths even if relative paths are specified on the command line.
-    * [CXF-429] - SOAP response message is empty when HandlerChain is used
-    * [CXF-436] - JAX-WS Handlers @PostConstruct/@PreDestroy methods not called
-    * [CXF-437] - @Resources are not injected into Handlers
-    * [CXF-444] - Problem with services initialized without WSDL file
-    * [CXF-447] - The java2wsdl tool generated wrong namespace for datatypes
-    * [CXF-449] - In java first approach the localName of the wrapper annotations should be ignored
-    * [CXF-451] - jms_test wsdl has bunch of warnings
-    * [CXF-452] - Classpath for the compiler in the DynamicClientFactory is not correctly set
-    * [CXF-453] - JAXWS Java-Frist server side throws SoapFault when @WebParam is missing for rpc/lit
-    * [CXF-454] - Document/Lit/Bare doesn't work for Java-Frist mode
-    * [CXF-455] - Can't build Service from class with the right MessageInputName and MessageOutputName
-    * [CXF-460] - All endpoints must share the same portType
-    * [CXF-463] - Partial webservice annotation on the SEI but the implementor has complete attributes
-    * [CXF-464] - WS-RM Sample fail
-    * [CXF-470] - Request and Response contexts are the no thread-local objects of the JaxWsClientProxy
-    * [CXF-474] - soapheader.wsdl and soapheader2.wsdl is not valid wsdl
-    * [CXF-480] - Interceptor lists should use thread-safe list impls
-    * [CXF-484] - restful sample client failing
-    * [CXF-492] - EndpointReferenceType class in the generated code is in the incorrect namespace
-    * [CXF-493] - -b option doesn't work
-    * [CXF-498] - Java2WSDL generate wrong schema elements in doc-wrapped style
-    * [CXF-503] - Maven 2 code generation plugin fails if passed in -validate as extraarg
-    * [CXF-510] - SpringBusFactory only use DEFAULT_BUS_ID to create bus from context
-    * [CXF-511] - JaxwsServiceFactoryBean failed if wsdlLocation in sei specify the non-exist file
-    * [CXF-512] - JaxwsServiceFactoryBean generate wrong part name
-    * [CXF-528] - Interface Hello in JaxWsServiceConfigurationTest is not a legal jaxws SEI
-    * [CXF-535] - Service Listing at root of CXF servlet contains usless '/' in the return urls
-    * [CXF-537] - Manage the namespaces in rt
-    * [CXF-549] - hello_world_xml_bare samples does not work
-    * [CXF-550] - restful_http_binding samples does not work
-    * [CXF-551] - soap12 sample does not work
-    * [CXF-552] - streamInterceptor sample does not work
-    * [CXF-553] - mtosi_1.1/alarm_retrieval sample does not work
-    * [CXF-566] - WSS4J constant incorrectly used in WS-Security tests
-    * [CXF-568] - JMS Samples don't work 
-    * [CXF-570] - JCA demo can not work 
-
-6.2 Improvement
-    * [CXF-193] - Support jax-ws handlers for dispatch/provider
-    * [CXF-204] - Remove Stream handlers
-    * [CXF-222] - Tooling Refactoring
-    * [CXF-223] - Refactor CXF Dependencies
-    * [CXF-225] - SAAJ Performance Improvement
-    * [CXF-227] - WSDL Generation for SOAP headers and faults
-    * [CXF-229] - Lazy loading for attachments
-    * [CXF-231] - Complete Simple Frontend
-    * [CXF-233] - resolve interceptor subchain issue
-    * [CXF-238] - SOAP over HTTP response code
-    * [CXF-245] - SOAPHandlerInterceptor handleMessage should be a no-op if no protocol handlers are registered.
-    * [CXF-249] - Performance improvment by using DOMXMLWriter
-    * [CXF-250] - jbi.xml and build.properties issues under JBI sample
-    * [CXF-260] - Clean up Soap headers usage
-    * [CXF-261] - Soap headers only work in doc/literal mode
-    * [CXF-266] - Let servlet control can return list of services which are published by servlet for browsing
-    * [CXF-287] - JCA tests spit a lot of uncessary printout during build
-    * [CXF-288] - Unify holder code across client & server
-    * [CXF-298] - Improve Jar Manifests
-    * [CXF-299] - Readme should have links to bug tracking system
-    * [CXF-341] - Display user supplied wsdl in HTTP transports
-    * [CXF-343] - Servlet transport should be refactored to share common logic with core HTTP transport instead of duplicating
-    * [CXF-385] - XMLFaultOutInterceptor does some redundant JAX_WS related fault detail processing.
-    * [CXF-389] - Make org.apache.cxf.jaxws.EndpointImpl constructor generic
-    * [CXF-428] - Include rhino in packaging
-    * [CXF-445] - Accessing Connection-based info from the transport
-    * [CXF-486] - DestinationFactorys should cache Destinations
-    * [CXF-487] - JAXB shoudl write to the OutputStream if possible
-    * [CXF-500] - Defer creation of OutMessage and OutFaultMessage from OutogingChainSetupInterceptor to ServiceInvokerInterceptor and/or OutgoingChainInterceptor.
-
-6.3 New Feature
-    * [CXF-38] - JBI Integration
-    * [CXF-44] - WS-ReliableMessaging
-    * [CXF-45] - WS-Security
-    * [CXF-144] - Conduits/DestinationFactorys should be able to provide interceptors
-    * [CXF-170] - HTTP Binding Client
-    * [CXF-171] - Rename cxf-extension.xml files to cxf-extension-foo.xml
-    * [CXF-181] - session support as the jax-ws specification
-The default value is false.
-    * [CXF-228] - Asynchronous HTTP support (for client and server)
-    * [CXF-262] - New JBIBinding to allow wsdl with correct informations to be used inside the JBI SE
-    * [CXF-283] - Support SOAPAction header
-    * [CXF-285] - SOAP 1.2 WSDL Extensor Generation in Code First case
-    * [CXF-286] - Supports SOAP faults and headers in runtime WSDL generation
-    * [CXF-407] - Create a JAXB client without wsdl-to-java step
-    * [CXF-440] - OASIS catalog support
-    * [CXF-466] - Check WebServicePermission
-
-6.4 Task
-    * [CXF-20] - Usability Improvements for DI based Configuration Mechanism
-    * [CXF-35] - Support multiple services/bindings on the same endpoint
-    * [CXF-49] - Port XFire Aegis Databinding Library
-    * [CXF-70] - Porting management from Celtix to CXF
-    * [CXF-101] - Decoupled response correlation
-    * [CXF-102] - Partial response to requests with decoupled response endpoint
-    * [CXF-106] - Support Code first JAX-WS Providers
-    * [CXF-147] - support the wrapped and bare message at the same time
-    * [CXF-214] - Document how interceptor chain work
-    * [CXF-271] - Use namespace http://cxf.apache.org/... instead of http://apache.org/... in testutils, demos
-    * [CXF-411] - Refactoring interceptor chain
-    * [CXF-473] - WS-Policyfication of HTTP client and server policies
-
-6.5 Test
-    * [CXF-127] - Mtom/Xop interop test with Axis & .Net
-    * [CXF-182] - Port remaining system tests from Celtix
-    * [CXF-571] - CXF-2.0 RC Kit testing
+Apache CXF 2.0 (incubating) release:
 

Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInterceptor.java?view=diff&rev=547322&r1=547321&r2=547322
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInterceptor.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInterceptor.java Thu Jun 14 10:21:45 2007
@@ -19,7 +19,7 @@
 
 package org.apache.cxf.binding.soap.interceptor;
 
-import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -41,15 +41,12 @@
     }
     
     public void handleMessage(SoapMessage message) throws Fault {
-        // TODO Auto-generated method stub
         if (!(message == message.getExchange().getInMessage())) {
             setSoapAction(message);
         }
     }
 
     private void setSoapAction(SoapMessage message) {
-        List<String> value = new ArrayList<String>();
-        
         BindingOperationInfo boi = message.getExchange().get(BindingOperationInfo.class);
         
         // The soap action is set on the wrapped operation.
@@ -57,28 +54,39 @@
             boi = boi.getWrappedOperation();
         }
         
+        String action = null;
         if (boi == null) {
-            value.add("\"\"");
+            action = "\"\"";
         } else {
             SoapOperationInfo soi = (SoapOperationInfo) boi.getExtensor(SoapOperationInfo.class);
-            String action = soi == null ? "\"\"" : soi.getAction() == null ? "\"\"" : soi.getAction();
+            action = soi == null ? "\"\"" : soi.getAction() == null ? "\"\"" : soi.getAction();
             if (!action.startsWith("\"")) {
                 action = new StringBuffer().append("\"").append(action).append("\"").toString();
             }
             
-            value.add(action);
-        }
-        Map<String, List<String>> reqHeaders = CastUtils.cast((Map)message.get(Message.PROTOCOL_HEADERS));
-        if (reqHeaders == null) {
-            reqHeaders = new HashMap<String, List<String>>();
-        }
-        if (reqHeaders.size() == 0) {
-            message.put(Message.PROTOCOL_HEADERS, reqHeaders);
         }
-        if (message.getVersion() instanceof Soap11 && !reqHeaders.containsKey("SOAPAction")) {            
-            reqHeaders.put("SOAPAction", value);            
-        } else if (message.getVersion() instanceof Soap12 && !reqHeaders.containsKey("action")) {
-            reqHeaders.put("action", value);
+        
+        if (message.getVersion() instanceof Soap11) {
+            Map<String, List<String>> reqHeaders = CastUtils.cast((Map)message.get(Message.PROTOCOL_HEADERS));
+            if (reqHeaders == null) {
+                reqHeaders = new HashMap<String, List<String>>();
+            }
+            
+            if (reqHeaders.size() == 0) {
+                message.put(Message.PROTOCOL_HEADERS, reqHeaders);
+            }
+            
+            if (!reqHeaders.containsKey("SOAPAction")) {            
+                reqHeaders.put("SOAPAction", Collections.singletonList(action));
+            }
+        } else if (message.getVersion() instanceof Soap12 && !"\"\"".equals(action)) {
+            String ct = (String) message.get(Message.CONTENT_TYPE);
+            
+            if (ct.indexOf("action=\"") == -1) {
+                ct = new StringBuilder().append(ct)
+                    .append("; action=").append(action).toString();
+                message.put(Message.CONTENT_TYPE, ct);
+            }
         }
     }
 

Modified: incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/SoapActionInterceptorTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/SoapActionInterceptorTest.java?view=diff&rev=547322&r1=547321&r2=547322
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/SoapActionInterceptorTest.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/SoapActionInterceptorTest.java Thu Jun 14 10:21:45 2007
@@ -22,11 +22,18 @@
 import java.util.List;
 import java.util.Map;
 
+import javax.xml.namespace.QName;
+
 import org.apache.cxf.binding.soap.interceptor.SoapActionInterceptor;
+import org.apache.cxf.binding.soap.model.SoapOperationInfo;
 import org.apache.cxf.helpers.CastUtils;
 import org.apache.cxf.message.ExchangeImpl;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.message.MessageImpl;
+import org.apache.cxf.service.model.BindingInfo;
+import org.apache.cxf.service.model.BindingOperationInfo;
+import org.apache.cxf.service.model.InterfaceInfo;
+import org.apache.cxf.service.model.ServiceInfo;
 import org.junit.Assert;
 import org.junit.Test;
 
@@ -35,6 +42,8 @@
     
     @Test
     public void testSoapAction() throws Exception {
+        SoapActionInterceptor i = new SoapActionInterceptor();
+        
         Message message = new MessageImpl();
         message.setExchange(new ExchangeImpl());
         message.getExchange().setOutMessage(message);
@@ -50,11 +59,32 @@
         assertEquals("\"\"", reqHeaders.get("SOAPAction").get(0));
 
         sb.setSoapVersion(Soap12.getInstance());
+        soapMessage.clear();
         soapMessage = (SoapMessage) sb.createMessage(soapMessage);
-        (new SoapActionInterceptor()).handleMessage(soapMessage);
-        reqHeaders = CastUtils.cast((Map)message.get(Message.PROTOCOL_HEADERS));
-        assertNotNull(reqHeaders);
-        assertEquals("\"\"", reqHeaders.get("action").get(0));
+        i.handleMessage(soapMessage);
+        String ct = (String) message.get(Message.CONTENT_TYPE);
+        assertEquals("application/soap+xml", ct);
+        
+        BindingOperationInfo bop = createBindingOperation();
+ 
+        message.getExchange().put(BindingOperationInfo.class, bop);
+        SoapOperationInfo soapInfo = new SoapOperationInfo();
+        soapInfo.setAction("foo");
+        bop.addExtensor(soapInfo);
+        
+        i.handleMessage(soapMessage);
+        ct = (String) message.get(Message.CONTENT_TYPE);
+        assertEquals("application/soap+xml; action=\"foo\"", ct);
+    }
+
+    private BindingOperationInfo createBindingOperation() {
+        ServiceInfo s = new ServiceInfo();
+        InterfaceInfo ii = s.createInterface(new QName("FooInterface"));
+        s.setInterface(ii);
+        ii.addOperation(new QName("fooOp"));
+        
+        BindingInfo b = new BindingInfo(s, "foo");
+        return b.buildOperation(new QName("fooOp"), null, null);
     }
 
 }

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentSerializer.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentSerializer.java?view=diff&rev=547322&r1=547321&r2=547322
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentSerializer.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentSerializer.java Thu Jun 14 10:21:45 2007
@@ -50,6 +50,7 @@
         bodyBoundary = AttachmentUtil.getUniqueBoundaryValue(0);
         
         String bodyCt = (String) message.get(Message.CONTENT_TYPE);
+        bodyCt = bodyCt.replaceAll("\"", "\\\"");
         String enc = (String) message.get(Message.ENCODING);
         if (enc == null) {
             enc = "UTF-8";

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/factory/AbstractServiceFactoryBean.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/factory/AbstractServiceFactoryBean.java?view=diff&rev=547322&r1=547321&r2=547322
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/factory/AbstractServiceFactoryBean.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/factory/AbstractServiceFactoryBean.java Thu Jun 14 10:21:45 2007
@@ -21,8 +21,6 @@
 
 import org.apache.cxf.Bus;
 import org.apache.cxf.databinding.DataBinding;
-import org.apache.cxf.interceptor.LoggingInInterceptor;
-import org.apache.cxf.interceptor.LoggingOutInterceptor;
 import org.apache.cxf.interceptor.OutgoingChainInterceptor;
 import org.apache.cxf.interceptor.ServiceInvokerInterceptor;
 import org.apache.cxf.service.Service;
@@ -37,9 +35,6 @@
     protected void initializeDefaultInterceptors() {
         service.getInInterceptors().add(new ServiceInvokerInterceptor());
         service.getInInterceptors().add(new OutgoingChainInterceptor());
-        service.getInInterceptors().add(new LoggingInInterceptor());
-        service.getOutInterceptors().add(new LoggingOutInterceptor());
-        service.getOutFaultInterceptors().add(new LoggingOutInterceptor());
     }
     
     protected void initializeDataBindings() {